Module Php pour SAP R3

 

Ce module peut être utilisé pour appeller les modules fonction ( la liste est obtenu par le contenu de la table TFDIR avec comme selection FMODE = R )

Il se trouve à l'adresse/ http://saprfc.sourceforge.net/ la doc est suffisament claire pour étre l'installer facilement mais si vous avez un probléme

contactez moi

Pour tester un module fonction utilisez la transaction se37

Pour appeler un bapi il faut bien comprendre comment convertir les paramétres.

Par exemple le module fonction BAPI_CUSTOMER_GETLIST qui posséde comme paramêtre d'appel sous sap

IMPORTING
*" VALUE(MAXROWS) LIKE BAPIF4A-MAX_ROWS DEFAULT 0
*" VALUE(CPDONLY) LIKE BAPICUSTOMER_CPD-CPD_ONLY OPTIONAL
EXPORTING
*" VALUE(RETURN) LIKE BAPIRETURN1 STRUCTURE BAPIRETURN1
TABLES
*" IDRANGE STRUCTURE BAPICUSTOMER_IDRANGE
*" ADDRESSDATA STRUCTURE BAPICUSTOMER_ADDRESSDATA OPTIONAL
*" SPECIALDATA STRUCTURE BAPICUSTOMER_SPECIALDATA OPTIONAL

Peut donner sous php

<html>
<title>Liste Des Clients</title>
<h1> Liste des CLIENTS</h1>
<?

require_once("saprfc.php");

// Create saprfc-instance
$sap = new saprfc(array(
"logindata"=>array(
"ASHOST"=>"Monserveursap" // application server
,"SYSNR"=>"00" // system number
,"CLIENT"=>"007" // client ( mandant)
,"USER"=>"testrfc" // user
,"PASSWD"=>"password" // password
)
,"show_errors"=>false // let class printout errors
,"debug"=>false)) ; // detailed debugging information

// Call-Function
$result=$sap->callFunction("BAPI_CUSTOMER_GETLIST",
array(
// array("IMPORT","CUSTOMER_NUMBER","*"),
array("TABLE","IDRANGE",array(array("SIGN"=>"E","OPTION"=>"EQ","LOW"=>"*"))),
array("TABLE","ADDRESSDATA",array())
));

// Call successfull?
if ($sap->getStatus() == SAPRFC_OK) {
// Yes, print out the Userlist
ECHO "Nombre de clients : ".count($result["ADDRESSDATA"])."<br><br>";
?>
<table border="1" align="center" bordercolor="#009933">
<tr><td>Client</td><td>Nom</td></tr><?



foreach ($result["ADDRESSDATA"] as $user) {
echo "<tr><td>", $user["CUSTOMER"],"</td><td>",$user["NAME"],"</td></tr>";
}

?></table><?
} else {
// No, print long Version of last Error
$sap->printStatus();
echo "Erreur";
// or print your own error-message with the strings received from
// $sap->getStatusText() or $sap->getStatusTextLong()
}

// Logoff
$sap->logoff();
?>