The PHP program does:
• connection with i5_connect
• ADDLIBLE of EASYCOMXMP with i5_command
• the definition of the ADDMULDEC procedure with i5_XmlDefine
• ADDMULDEC call with i5_XmlExecRequest. Result within XML format.
• ADDMULDEC call with i5_XmlCallProgram. Result into Array.
For more visibility, error checkinf is not done.
<?php
$user = "user";
$pass = "pwd";
$connect = "power8";
$property = array (I5_OPTIONS_JOBNAME => "PHPXML" );
$TraceLvl = 4;
$TraceFile = "CR/TRACEPHP2";
$Hdlcon = i5_connect($connect, $user, $pass, $property);
$retStartTrace = i5_start_testfile($TraceFile, $TraceLvl);
echo 'Trace activated<br/>';
i5_command("ADDLIBLE LIB(EASYCOMXMP)");
echo 'i5_command ADDLIBLE done<br/>';
// Define procedures
$SRPG = "
AddMulDec PR extpgm(ADDMULDEC);
PARM1 5p2;
PARM2 5p2;
PARM3 10p4;";
i5_XmlDefine ("s-rpg", $SRPG);
echo 'i5_XmlDefine done<br/>';
// Effective Call
$val1I = "2";
$val2IO = "3";
$XmlIn = '<?xml version="1.0" encoding="utf-8"'.'?'.'>'.
'<Easycom>'.
' <Program Name="ADDMULDEC">'.
' <parameterList>'.
' <PARM1>'.$val1I.'</PARM1>'.
' <PARM2>'.$val2IO.'</PARM2>'.
' </parameterList>'.
' </Program>'.
'</Easycom>';
$XmlOut = i5_XmlExecRequest($XmlIn,$Hdlcon);
echo 'i5_XmlExecRequest done<br/>';
echo $XmlOut;
echo '<br/>';
// Call it!
$ArrayIn = array("PARM1"=>"2", "PARM2"=>"3");
$ArrayOut = i5_XmlCallProgram("ADDMULDEC", $ArrayIn);
echo 'i5_XmlCallProgram done<br/>';
echo 'Param2 = '. $ArrayOut['PARM2'].'<br/>';
echo 'Param3 = '. $ArrayOut['PARM3'].'<br/>';
?>