Foros del Web » Programando para Internet » PHP »

XML complex to NuSoap with PHP

Estas en el tema de XML complex to NuSoap with PHP en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 27/08/2014, 20:25
Avatar de mazingerz  
Fecha de Ingreso: febrero-2003
Ubicación: Sarasota FL
Mensajes: 147
Antigüedad: 21 años, 2 meses
Puntos: 0
XML complex to NuSoap with PHP

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

Etiquetas: nusoap, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:25.