Cita:
Iniciado por abrahamhs
Estas equivocado en conceptos, si te proporcionaron un
WSDL, lo que vas a consumir es un
WebService y el WSDL es un XML que describe la interfaz de entrada (o de llamado) a ese WebService. Investiga mas sobre WebService. Si usas las herramientas adecuadas del lenguaje, podrás consumirlo en pocas lineas. Ejemplos:
Código PHP:
Ver original$WebService= new SoapClient("http://factulaar.grupolaar.com:9019/ClsWaybill.svc?wsdl",
array('trace' => 1,'soap_version' => SOAP_1_1
)); $arreglo=array('parametro1'=>$parametro1,'parametro2'=>$parametro2, ...);//PuedenSerVarios $respuesta = $WebService->__soapCall
('CreateWayBill',array($arreglo));
Código PHP:
Ver original$WebService= new SoapClient
("http://factulaar.grupolaar.com:9019/ClsWaybill.svc?wsdl", array('trace' => 1,'soap_version' => SOAP_1_1
)); $wayBill=new WayBill();
$wayBill->ActualWeight=$valor1;
$wayBill->Branch=$valor2;
//etc. Así con el resto de los campos
$arreglo=array('objWayBillDetails'=>$wayBill); $respuesta = $WebService->__soapCall
('CreateWayBill',array($arreglo));
Si te das cuenta en estos ejemplos
no desarme el WSDL, ni lo explore como el xml que es, solo lo cargue en la clase
SoapClient.
Mira
aqui y
aqui tambien.
Gracias por la respuesta, pero, eh trabajo mucho con WSDL, el tema es que la estructura de arreglos que tiene definidael XML, es repetitiva como di en el ejemplo, necesito enviar
- parametro->codigo->valor
- parametro->codigo->valor
- parametro->codigo->valor
- parametro->codigo->valor
- parametro->codigo->valor
- parametro->codigo->valor
No puedo enviarle un arreglo ya que no tiene una estructura con un indice predeterminado, algo más directo
<atributo>
<codigo>A</codigo>
<valor>1</valor>
</atributo>
<atributo>
<codigo>B</codigo>
<valor>2</valor>
</atributo>
<atributo>
<codigo>C</codigo>
<valor>3</valor>
</atributo>
Si te pasan un WSDL con esa estructura y debes consumirlo, como lo haces para indicarle en la llamada enviar el arreglo con datos siendo que cada TAG se llama de igual forma, en Java te crea objetos pero en PHP en manual
¿No sé si me explico bien?
si no es igual a crear esto:
$array = array("atributo" => array("codigo" => "A",
"valor" => "1"),
"atributo" => array("codigo" => "B",
"valor" => "2"));
Si estoy le envío al WSDL sólo enviará el último atributo por un tema de indices de arreglos