Hallo,

ich habe da noch was gefunden.
Sind zwar nur Fragmente, aber vielleicht ist die Doku hilfreich.
PHP-Code:
$conn i5_connect("localhost""gpapayia""secret");

if (!
$conn) {
    
throw_error("i5_connect");
    exit();
}



function 
throw_error($func) {
    echo 
"Error in function: ".$func." --- ";
    echo 
"Error Number: ".i5_errno()." --- ";
    echo 
"Error Message: ".i5_errormsg()."";
}




     
C     *ENTRY        PLIST
     C                   PARM                    prod_id           7
     C                   PARM                    store_loc        10
     C                   PARM                    price             5 2
      
/FREE
       price 
price 10.99;
       *
INLR = *ON;
      /
END-FRE



$description 
= array(
    array(
        
"Name"=>"PROD_ID",
        
"IO"=>I5_IN,
        
"Type"=>I5_TYPE_CHAR,
        
"Length"=>"7"
    
),
    array(
        
"Name"=>"STORE_LOC",
        
"IO"=>I5_IN,
        
"Type"=>I5_TYPE_CHAR,
        
"Length"=>"10"
    
),
    array(
        
"Name"=>"PRICE",
        
"IO"=>I5_INOUT,
        
"Type"=>I5_TYPE_PACKED,
        
"Length"=>"5.2"
    
),
);

$pgm i5_program_prepare("QGPL/GEOPGRM"$description);

if (!
$pgm) {
    
throw_error("i5_program_prepare");
    exit();

oder mit Übergabe der Parameter :
PHP-Code:
$parameter = array(
    
"PROD_ID"=>"xyz101",
    
"STORE_LOC"=>"a1001",
    
"PRICE"=>0.00
);

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

$ret i5_program_call($pgm$parameter$parmOut);

if (!
$ret) {
    
throw_error("i5_program_call");
    exit();
}

echo 
"Product Id: ".$PROD_ID."";
echo 
"Store Location: ".$STORE_LOC."";
echo 
"Price: ".$AMOUNT."";


i5_program_close($pgm);
i5_close($conn);