Hola comunidad
Necesito consumir un WS que fue echo con el generador Adempiere (copy and paste en SOAPUI trabaja bien) pero al realizar el consumo desde PHP norealiza el llamado.
Algun Ejemplo o ayuda llevo 1 semana y no hay documentacion
Aca vamos esta es la llamada desde SOAPUI:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:adin="http://3e.pl/ADInterface">
<soapenv:Header/>
<soapenv:Body>
<adin:queryData>
<adin:ModelCRUDRequest>
<adin:ModelCRUD>
<adin:serviceType>matricula</adin:serviceType>
<adin:TableName>RVOFB_MatriculaWB</adin:TableName>
<adin:RecordID>0</adin:RecordID>
<adin:Filter></adin:Filter>
<adin:Action>Read</adin:Action>
<adin:DataRow>
<adin:field type="?" column="Rut" lval="?" disp="?" edit="?" error="?" errorVal="?">
<adin:val>79808091</adin:val>
<adin:lookup>
<adin:lv val="?" key="?"/>
</adin:lookup>
</adin:field>
</adin:DataRow>
</adin:ModelCRUD>
<adin:ADLoginRequest>
<adin:user>AdminWS</adin:user>
<adin:pass>ws1234</adin:pass>
<adin:lang>135</adin:lang>
<adin:ClientID>1000000</adin:ClientID>
<adin:RoleID>1000010</adin:RoleID>
<adin:OrgID>1000000</adin:OrgID>
<adin:WarehouseID>1000000</adin:WarehouseID>
<adin:stage>0</adin:stage>
</adin:ADLoginRequest>
</adin:ModelCRUDRequest>
</adin:queryData>
</soapenv:Body>
</soapenv:Envelope>
PHP code,
1) make XML string
$strXML = ""."\n";
$strXML = $strXML.'<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ';
$strXML = $strXML.'xmlns:adin="http://3e.pl/ADInterface">' . "\n";
$strXML = $strXML." <soapenv:Header/>"."\n";
$strXML = $strXML." <soapenv:Body>"."\n";
$strXML = $strXML." <adin:queryData>"."\n";
$strXML = $strXML." <adin:ModelCRUDRequest>"."\n";
$strXML = $strXML." <adin:ModelCRUD>"."\n";
$strXML = $strXML." <adin:serviceType>".$wsserviceType."</adin:serviceType>"."\n";
$strXML = $strXML." <adin:TableName>".$wsTableName."</adin:TableName>"."\n";
$strXML = $strXML." <adin:RecordID>".$wsRecordID."</adin:RecordID>"."\n";
$strXML = $strXML." <adin:Filter></adin:Filter>"."\n";
$strXML = $strXML." <adin:Action>".$wsAction."</adin:Action>"."\n";
$strXML = $strXML." <adin:DataRow>"."\n";
$strXML = $strXML.' <adin:field column="Rut">'."\n";
$strXML = $strXML." <adin:val>".$parametros[0]."</adin:val>"."\n";
$strXML = $strXML." </adin:field>"."\n";
$strXML = $strXML.' <adin:field column="org">'."\n";
$strXML = $strXML." <adin:val>".$parametros[1]."</adin:val>"."\n";
$strXML = $strXML." </adin:field>"."\n";
$strXML = $strXML." </adin:DataRow>"."\n";
$strXML = $strXML." </adin:ModelCRUD>"."\n";
$strXML = $strXML." <adin:ADLoginRequest>"."\n";
$strXML = $strXML." <adin:user>".$wsuser."</adin:user>"."\n";
$strXML = $strXML." <adin:pass>".$wspass."</adin:pass>"."\n";
$strXML = $strXML." <adin:lang>".$wslang."</adin:lang>"."\n";
$strXML = $strXML." <adin:ClientID>".$wsClientID."</adin:ClientID>"."\n";
$strXML = $strXML." <adin:RoleID>".$wsRoleID."</adin:RoleID>"."\n";
$strXML = $strXML." <adin:OrgID>".$wsOrgID."</adin:OrgID>"."\n";
$strXML = $strXML." <adin:WarehouseID>".$wsWarehouseID."</adin:WarehouseID>"."\n";
$strXML = $strXML." <adin:stage>".$wsstage."</adin:stage>"."\n";
$strXML = $strXML." </adin:ADLoginRequest>"."\n";
$strXML = $strXML." </adin:ModelCRUDRequest>"."\n";
$strXML = $strXML." </adin:queryData>"."\n";
$strXML = $strXML." </soapenv:Body>"."\n";
$strXML = $strXML."</soapenv:Envelope>"."\n";
//Enviemos el XML a un log en disco, lo genera bien y lo probe con SOAPUI
log_debug("strXML ".$strXML."\n");
2) use lib NUSOAP
$client = new nusoap_client($url_servicio2,'WSDL');
$err=$client->getError();
if ($err)
{
$log_contenido = $err;
log_debug("nusoap_client : ".$log_contenido."\n");
die();
}
///He probado con Call y la verdad no funka el mismo error
$client->useHTTPPersistentConnection();
$client->use_curl = TRUE;
$result = $client->send($strXML,$url_servicio2);
$err=$client->getError();;
if ($err)
{
$log_contenido = $err;
log_debug("call del WS : ".$log_contenido."\n");
die();
}
Error en el LOG LOG:
call del WS : HTTP Error: no proper separation of headers and document
Alguna Idea de como usar NUSOAP Con DataComplex
Lo he probado muchas veces con XML regulares y 100 maravilla
Gracias a Todos