Example
// This function receive refdoc and array of goods movement details
// and return data of material doc, material year and return message
function callissuesap($refdoc, $gmm_detail){
$return = array();
// Create saprfc-instance
$sap = create_connection();
// Import Parameters
$today = date("Ymd");
$header = array();
$header["PSTNG_DATE"] = $today;
$header["DOC_DATE"] = $today;
$header["REF_DOC_NO"] = $refdoc;
$header["HEADER_TXT"] = "";
$code = array();
$code["GM_CODE"] = "03";
$item = array();
$lineitem = array();
foreach ($gmm_detail as $gmm_line) {
$lineitem["ORDERID"] = $gmm_line["orderId"];
$lineitem["MATERIAL"] = $gmm_line["material"];
$lineitem["PLANT"] = $gmm_line["plant"];
$lineitem["STGE_LOC"] = $gmm_line["loc"];
$lineitem["BATCH"] = $gmm_line["batch"];
$lineitem["MOVE_TYPE"] = "261";
$lineitem["ENTRY_QNT"] = $gmm_line["qty"];
$lineitem["ENTRY_UOM"] = $gmm_line["une"];
$item[] = $lineitem;
}
// Call-Function
$result=$sap->callFunction("BAPI_GOODSMVT_CREATE",
array(
array("IMPORT","GOODSMVT_HEADER",$header),
array("IMPORT","GOODSMVT_CODE",$code),
array("EXPORT","MATERIALDOCUMENT",""),
array("EXPORT","MATDOCUMENTYEAR",""),
array("TABLE","GOODSMVT_ITEM",$item),
array("TABLE","RETURN",array())
));
// Call successfull?
if ($sap->getStatus() == SAPRFC_OK) {
$sap->callFunction("BAPI_TRANSACTION_COMMIT",array());
$return["MAT_DOC"] = $result["MATERIALDOCUMENT"];
$return["MAT_DOC_YEAR"] = $result["MATDOCUMENTYEAR"];
$return["RETURN"] = $result["RETURN"];
}
else {
$mess = array();
$messline = array();
$messline["TYPE"] = "E";
$messline["MESSAGE"] = $sap->getStatusTextLong();
$mess[] = $messline;
// $sap->printStatus();
$sap->callFunction("BAPI_TRANSACTION_ROLLBACK",array());
$return["MAT_DOC"] = "";
$return["MAT_DOC_YEAR"] = "";
$return["RETURN"] = $mess;
}
$sap->logoff();
return $return;
}
function create_connection() {
return $sap = new saprfc(array(
"logindata"=>array(
"ASHOST"=>"xxx.xxx.xxx.xxx" // application server
,"SYSNR"=>"xx" // system number
,"CLIENT"=>"xxx" // client
,"USER"=>"xxxxxxxxx" // user
,"PASSWD"=>"xxxxxxxxx" // password
)
,"show_errors"=>false // let class printout errors
,"debug"=>false)) ; // detailed debugging information
}
Information about GM_CODE
GM_Code 01: Goods receipt for purchase order
GM_Code 02: Goods receipt for production order
GM_Code 03: Goods issue
GM_Code 04: Transfer posting
GM_Code 05: Other goods receipts
GM_Code 06: Reversal of goods movements
You can read the further informations in tcode
This comment has been removed by the author.
ReplyDeleteThanks!!!
ReplyDeleteIs a RFC library used to used this PHP code?
ReplyDelete