PDA

View Full Version : PHP Programmaufruf



mk
20-09-08, 16:04
Hallo zusammen,

ich rufe über eine PHP Funktion ein RPG Programm auf. Das
klappt auch. Das RPG Programm hat zwei Entryparameter. Der zweite wird im Programm geändert.
Leider gelingt es mir nicht den veränderten Parameter im PHP
zu erhalten.
Hat jemand das schon gelöst ?

Hier die PHP Fuktion

function startpgm($aString,$arpgpgm)
{
$USER='user';
$PASSWORD='pw';
//echo $USER . $PASSWORD;
$conn = i5_connect('127.0.0.1', $USER, $PASSWORD);
if ($conn === false)
{ echo "Fehler Benutzer=$USER Passwort= $PASSWORD" ;
$errortab=i5_error();var_dump($errortab);
die();
}

//*********************************************
// Anmeldung vom Programm vorbereiten
//*********************************************
$desc=array(
array("name"=>"input", "io"=>I5_INOUT, "type" => I5_TYPE_CHAR, "length"=>"20"),
array("name"=>"output", "io"=>I5_INOUT, "type" => I5_TYPE_CHAR, "length"=>"20"),
);
$prog=i5_program_prepare("WORKLIB/TEST01R",$desc, $conn);
if ($prog === false)
{ echo "Fehler beim Programm mit Parameter $desc" ;
$errortab=i5_error();var_dump($errortab);
die();
}
//*********************************************
// Programmm starten
//*********************************************
$parms = array ("input"=>"MüllersMühle","output"=>"spart Strom");
$retval= array ("input"=>"","output"=>"");
$ret=i5_program_call($prog, $parms, $retval);
if ($ret === false)
{ echo "Fehler beim Programmstart" ;
$errortab=i5_error();var_dump($errortab);
die();
}
foreach($parms as $parm=>$value)
{ echo utf8_encode("\n Parm= $parm Wert= $value"); }

foreach($retval as $parm=>$value)
{ echo utf8_encode("\n Parm= $parm Wert= $value"); }




}





Wenn ich es richtig verstanden habe, müssten im
Array retval die geänderten Werte erscheinem oder ?

Gruß
Michael:eek:

Fuerchau
20-09-08, 17:58
Vielleicht hilft dir dieses Beispiel weiter:
George A. Papayiannis » Print » How to: PHP on the i5 - The i5 PHP API Toolkit and Calling RPG/CL Programs (http://www.sematopia.com/?p=146&print=1)

vergleiche den Unterschied:

$retval= array ("input"=>"","output"=>"");

$parmOut = array(
"PROD_ID"=>"PROD_ID",
"STORE_LOC"=>"STORE_LOC",
"PRICE"=>"AMOUNT",
)

mk
21-09-08, 16:04
Hi Baldur,

alles klar das war es.

Vielen dank. Manchmal sieht man den Wald vor lauter Bäumen nicht.
Gruss
Michael