그래서 엔터프라이즈 환경에서 수행하고자하는 작업은 wsdl 모드에서 PHP 클래스 SoapClient를 사용하여 SAP 웹 서비스에 연결하는 것입니다.SOAP with PHP with SAP 웹 서비스
지금까지 내가 수행 한 작업은 "누락 된 속성"오류가 발생하는 것입니다. 누락 된 모든 속성 오류를 해결하면 내가 몸과 지칠대로 지친 HTTP 오류 500 무엇입니까 : 비누-ENV를 :
: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();
내 XML 출력은 다음과 같습니다 : 서버
것은 그래서 내 코드입니다 이 경우 나는 확실하지 않다
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:sap-com:document:sap:soap:functions:mc-style">
<soapenv:Body>
<urn:_-bic_-nf2>
<ETColumnDescription/>
<ETGridData/>
<ETMessageLog/>
<ETRowDescription/>
<ISVar_01xwerbet>
<Sign>I</Sign>
<Option>LE</Option>
<Low>3</Low>
<High/>
</ISVar_01xwerbet>
</urn:_-bic_-nf2>
</soapenv:Body>
</soapenv:Envelope>
:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:sap-com:document:sap:soap:functions:mc-style">
<SOAP-ENV:Body>
<ns1:_-bic_-nf2>
<ETColumnDescription/>
<ETGridData/>
<ETMessageLog/>
<ETRowDescription/>
<ISVar_01xwerbet>
<Sign>I</Sign>
<Option>LE</Option>
<Low>3</Low>
<High/>
</ISVar_01xwerbet>
</ns1:_-bic_-nf2>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
예상되는 XML은 다음과 같아야합니다 누락 된 빈 헤더 태그, 기본 PHP로 추가 할 수없는 것 같습니다 (헤더를 추가 할 수 있지만 빈 헤더를 추가하는 것이 어려운 부분 인 것 같습니다). 또는 다른 접두사 (ns1/urn 또는 soapenv/SOAP-ENV)이지만이 문제에 대해 미쳐 가기 시작합니다. 도움을 많이 주시면 감사하겠습니다. 사전에
감사합니다!
감사를 시도, 빈 SOAP 헤더 만들기, 빈 SOAP 헤더를 만들 수있는 방법은 무엇입니까? –
업데이트 된 답변. –
치명적인 오류가 발생합니다 :-(감사합니다, 다른 것을 시도해보십시오 –