SOAP mit PHP zum SAP Web ServicePhp

PHP-Programmierer chatten hier
Anonymous
 SOAP mit PHP zum SAP Web Service

Post by Anonymous »

Was ich also in unserer Unternehmensumgebung versuche, ist, über die PHP-Klasse SoapClient im WSDL-Modus eine Verbindung zu einem SAP-Webdienst herzustellen.

Bisher habe ich die Fehlermeldung „fehlende Eigenschaften“ erhalten. Nachdem ich alle fehlenden Eigenschaftsfehler behoben habe, erhalte ich den gefürchteten http-Fehler 500 mit dem Text: Soap-env:Server

Das ist also mein Code:

Code: Select all

class SapTest {
const SAP_WSDL_URI  = *wsdl_uri*;
const SAP_USER = *username*;
const SAP_PWD  = *password*;

public function execute() {

$client = new SoapClient('http://'.urlencode(self::SAP_USER).':'.urldecode(self::SAP_PWD).'@'.self::SAP_WSDL_URI,
array("trace" => 1,
"exceptions" => 1,
"login" => self::SAP_USER,
"password" => self::SAP_PWD,
'features' => SOAP_SINGLE_ELEMENT_ARRAYS)
);

$method = '_-bic_-nf2';

$parameter = array('ETColumnDescription' => null,
'ETGridData' => null,
'ETMessageLog' => null,
'ETRowDescription' => null,
'ISVar_01xwerbet' => array('Sign' => 'I',
'Option' => 'LE',
'Low' => '3',
'High' => null));

try
{

$result = $client->$method($parameter);
print_r($result);
} catch(SoapFault $e) {

echo "REQUEST HEADER:\n" . $client->__getLastRequestHeaders() . "\n";
echo "REQUEST:\n" . $client->__getLastRequest() . "\n";

echo "RESPONSE HEADER:\n" . $client->__getLastResponseHeaders() . "\n";

echo "RESPONSE:\n" . $client->__getLastResponse() . "\n";
print_r($e);
}

}

}

$oSap = new SapTest();
$oSap->execute();
Meine XML-Ausgabe sieht wie folgt aus:

Code: Select all









I
LE
3





Das erwartete XML sollte wie folgt aussehen:

Code: Select all








I
LE
3





Ich bin mir nicht sicher, ob es am fehlenden leeren Header-Tag liegt, den ich mit einfachem PHP anscheinend nicht hinzufügen kann (ich kann einen Header hinzufügen, aber das Hinzufügen eines leeren Headers scheint der schwierige Teil zu sein). Oder wenn es die unterschiedlichen Präfixe sind (ns1/urn oder Soapenv/SOAP-ENV), aber ich fange an, darüber verrückt zu werden. Hilfe wäre sehr dankbar.

Vielen Dank im Voraus!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post