Я пытаюсь получить те же данные, которые я получил, используя SOAPUI в PHP, так как я не могу экспортировать в PHP.
Увидеть Мой файл WSDL. Я вызываю функцию AUXTableAdminstration.
Если я получаю всю таблицу, PHP-код работает, но если я использую что-нибудь между <web:xDoc> </web:xDoc>
тогда у меня проблемы.
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webcominc.com/">
<soapenv:Header/>
<soapenv:Body>
<web:AUXTableAdministration>
<!--Optional:-->
<web:userName>UserName</web:userName>
<!--Optional:-->
<web:password>Password</web:password>
<!--Optional:-->
<web:action>EXPORTROWS</web:action>
<!--Optional:-->
<web:tableName>ContactData</web:tableName>
<web:xDoc>
<Root>
<Columns>
<Column>ContactInternalId</Column>
<Column>ContactName</Column>
</Columns>
<SearchCriteria>
<Value>12345</Value>
<Value>TestName</Value>
</SearchCriteria >
</Root>
</web:xDoc>
</web:AUXTableAdministration>
</soapenv:Body>
</soapenv:Envelope>
Я ищу значения строки, используя вышеуказанный запрос
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<AUXTableAdministrationResponse xmlns="http://webcominc.com/">
<AUXTableAdministrationResult>
<Result>
<Status>OK</Status>
<Message>action 'EXPORT' for ContactData succeeded</Message>
<Root>
<Columns>
<Column>CpqTableEntryId</Column>
<Column>ContactInternalId</Column>
<Column>ContactName</Column>
<Column>CustomerInternalId</Column>
<Column>Company</Column>
</Columns>
<Rows>
<Row>
<Value>1234</Value>
<Value>1234</Value>
<Value>Test Value</Value>
<Value>86392</Value>
<Value>Erin Test2</Value>
</Row>
</Rows>
</Root>
</Result>
</AUXTableAdministrationResult>
</AUXTableAdministrationResponse>
</soap:Body>
</soap:Envelope>
<?php
header('Content-Type: application/xml; charset=utf-8');
ini_set('soap.wsdl_cache_enable', '0');
$username ="username";
$password = "password";
$action = "EXPORTROWS";
$tablename= "ContactData";
$xml ="<Root><Columns><Column>ContactInternalId</Column><Column>ContactName</Column></Columns><SearchCriteria><Value>86393</Value><Value>Erin Hensz</Value></SearchCriteria></Root>";
$parameters= array('userName' => $username,'password' => $password,'action' => $action,'tableName' => $tablename,xDoc => $xml);
$options = array('soap_version'=>SOAP_1_1,'exceptions'=>true,'trace'=>1,'cache_wsdl'=>WSDL_CACHE_NONE);
$client = new SoapClient('https://sandbox.webcomcpq.com/wsAPI/wssrv.asmx?WSDL' , $options);
$data = $client->AUXTableAdministration($parameters);
echo $result= $client->__getLastResponse();
?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<AUXTableAdministrationResponse xmlns="http://webcominc.com/">
<AUXTableAdministrationResult>
<Result xmlns="http://webcominc.com/">
<Status>NOK</Status>
<Message>EXPORTROWS failed</Message>
<Error>
<ErrorCode>100000</ErrorCode>
<Description>
Object reference not set to an instance of an object.
</Description>
</Error>
</Result>
</AUXTableAdministrationResult>
</AUXTableAdministrationResponse>
</soap:Body>
</soap:Envelope>
Задача ещё не решена.
Других решений пока нет …