Тук ще представим пример за комуникационна сесия с Colibri® ERP, която връща масив с наличностите за артикули с определени от заявката номера.
Пример 54. Пример за Colibri® ERP web service – Наличности за избрани артикули
<?php /*
Colibri ERP - Web Services
Copyright (c) 2006 EDA Ltd.
$Id: wsclient-example.php,v 1.4 2009/11/12 13:29:16 $
Simple Script Demonstrating use of Colibri ERP Web Services
Simple Web Service Session scenario:
1. Logging in to Colibri ERP
2. Calling application methods and retrieve information
3. Logout
Notes:
1. Web Service exchange data in UTF-8 encoding.
2. Both peers must conform using of Windows-1251 charset.
Modified client scenario:
Before pass data to calling methods data must be encoded in UTF-8 and
after receive data must be decoded from UTF-8.
*/
include("nusoap.php");
// Common functions supporting encoding transformation between peer
function cyr2utf($data) {
if (!is_array($data)) return iconv("Windows-1251", "UTF-8", $data);
foreach($data as $key => $val)
$data[$key] = cyr2utf($val);
return ($data);
}
function utf2cyr($data) {
if (!is_array($data)) return iconv("UTF-8", "Windows-1251", $data);
foreach($data as $key => $val)
$data[$key] = utf2cyr($val);
return ($data);
}
// Entry point data
$WS_URL = "https://colibrierp.mydomain.com/ws/wsbase.php?wsdl";
$CNum = "000";
$DBName = "erp_database";
$UserName = "ws-user";
$UserPass = "ws-pass";
// Initializing client
$sc = & new nusoap_client($WS_URL, true);
$err = $sc->getError();
if ($err) {
echo "Constructor error $err\n";
}
$sc->soap_defencoding = "UTF-8";
$sc->decode_utf8 = false;
echo "Logging in ...\n";
$result = $sc->call("erpSOAPServer..Login",
array("username" => $UserName, "password" => $UserPass, "cnum" => $CNum, "db" => $DBName));
//$result = $sc->call("erpSOAPServer..Login",
// array("username" => $UserName, "password" => $UserPass));
if ($sc->fault) {
echo "Fault:\n";
print_r($result);
die;
} else {
$err = $sc->getError();
if ($err) {
echo "Error: $err\n";
die;
} else {
echo "Login OK! Result:$result\n";
}
}
echo "\nRequest ERP Info ...\n";
$result = $sc->call("erpSOAPBase..Info");
if ($sc->fault) {
echo "Fault:\n";
print_r($result);
} else {
$err = $sc->getError();
if ($err) {
echo "Error: $err\n";
} else {
echo "Result:\n";
print_r(utf2cyr($result));
}
}
echo "\nCheck encoding between peers ...\n";
$result = $sc->call("erpSOAPServer..CheckEncoding",
array("input" => cyr2utf("Тестово съобщение на кирилица (Charset: Windows-1251)!"))
);
if ($sc->fault) {
echo "Fault:\n";
print_r($result);
} else {
$err = $sc->getError();
if ($err) {
echo "Error: $err\n";
} else {
echo "Result:\n";
print_r(utf2cyr($result));
}
}
echo "\nRequest Available quantity\n";
//$result = $sc->call("erpSOAPStore..GetAvQ", array("SNumber" => "001", "MNum" => "001"));
$result = $sc->call("erpSOAPStore..GetAvQA", cyr2utf(array("SNumber" => "001", "MNumA" => array("001", "002", "003"))));
if ($sc->fault) {
echo "Fault:\n";
print_r($result);
} else {
$err = $sc->getError();
if ($err) {
echo "Error: $err\n";
} else {
echo "Result:\n";
print_r(utf2cyr($result));
}
}
echo "\nLogout ...\n";
$result = $sc->call("erpSOAPServer..Logout");
if ($sc->fault) {
echo "Fault:\n";
print_r($result);
} else {
$err = $sc->getError();
if ($err) {
echo "Error: $err\n";
} else {
echo "Logout OK! Result:$result\n";
}
}
echo "\nDone.\n";
//echo "\n\nDebug\n";
//echo "".$sc->debug_str."\n";
?>