Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/09/2013, 13:15
DiTeN
 
Fecha de Ingreso: octubre-2009
Mensajes: 15
Antigüedad: 14 años, 6 meses
Puntos: 0
Problema con un cliente SOAP en php

Hola estimados, les cuento un poco, estoy desarrollando un cliente SOAP, y me encuentro con el siguiente inconvieniente que me tira el servidor

Fatal error: Uncaught SoapFault exception: [Client] SOAP-ERROR: Encoding: object hasn't 'Sdt_coleccionretornoitemsagrupacion' property in /var/www/sitios/webservices/Diego.php:129 Stack trace: #0 /var/www/sitios/webservices/Diego.php(129): SoapClient->__soapCall('Execute', Array) #1 {main} thrown in /var/www/sitios/webservices/Diego.php on line 129

Yo tengo el siguiente código:

Código:
  	echo 'SEGUNDO XML------------------------------' . '<br/><br/>';
	$objClienteSOAP2 = new SoapClient('http://192.168.1.12:8080/geotributosval/servlet/agen?wsdl');
	//$newRecibos = json_decode($recibos, true);
	$params2 = array('Ipmaquina'=>'127.0.0.1', 'Concod'=>'1', 'Vartribmen1'=>'?', 'Vartribmen2'=>'?', 'Vartribmen3'=>'?',
	'coleccionretornoitemsagrupacion'=>array('IdTramite'=>1008,array('IdTributo'=>802,'NombreTributo'=>'CERTIFICADO','UnidadCodigo'=>1,
	'UnidadNombre'=>'PESOS','ValorTributo'=>256.00),'Cantidad'=>3));
	$objRespuesta2 = $objClienteSOAP2->__soapCall('Execute', array($params2));
	
	// var_dump($objClienteSOAP2->__getFunctions());
	echo '<pre>';
	print_r($objRespuesta2);
	echo '</pre>';
Y en el soft que utilizo para que me devuelva el Cliente para testear si me funciona, estas son las lineas.

Código:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:geot="GeoTribUy">
   <soapenv:Header/>
   <soapenv:Body>
      <geot:GenWs14GenerarCobroVarios.Execute>
         <geot:Ipmaquina>imstimbres</geot:Ipmaquina>
         <geot:Concod>1</geot:Concod>
         <geot:Vartribmen1>?</geot:Vartribmen1>
         <geot:Vartribmen2>?</geot:Vartribmen2>
         <geot:Vartribmen3>?</geot:Vartribmen3>
         <geot:Sdt_coleccionretornoitemsagrupacion>
            
            <geot:SDT_ColeccionRetornoItemsAgrupacion.SDT_ColeccionRetornoItemsAgrupacionItem>
 
               <geot:IdTramite>1008</geot:IdTramite>
               <geot:ColeccionRetornoItemsTributos>
 
                  <geot:SDT_ColeccionRetornoItemsTributos.SDT_ColeccionRetornoItemsTributosItem>
 
                     <geot:IdTributo>802</geot:IdTributo>
                     <geot:NombreTributo>CERTIFICADO</geot:NombreTributo>
                     <geot:UnidadCodigo>1</geot:UnidadCodigo>
                     <geot:UnidadNombre>PESOS</geot:UnidadNombre>
                     <geot:ValorTributo>256.00</geot:ValorTributo>
                     <geot:Cantidad>3</geot:Cantidad>
                     <geot:SubTotal>?</geot:SubTotal>
                  </geot:SDT_ColeccionRetornoItemsTributos.SDT_ColeccionRetornoItemsTributosItem>
               </geot:ColeccionRetornoItemsTributos>
            </geot:SDT_ColeccionRetornoItemsAgrupacion.SDT_ColeccionRetornoItemsAgrupacionItem>
         </geot:Sdt_coleccionretornoitemsagrupacion>
      </geot:GenWs14GenerarCobroVarios.Execute>
   </soapenv:Body>
</soapenv:Envelope>
El tema, es que no estoy logrando pasar la colección es decir el array dentro del array de los parámetros. Será que se les ocurre donde puedo estar cometiendo el error o si me está faltando algo?.

Agradezco cualquier ayuda.

Saludos.