Ver Mensaje Individual
  #6 (permalink)  
Antiguo 04/08/2009, 11:28
Avatar de Snaft_J1
Snaft_J1
 
Fecha de Ingreso: diciembre-2006
Mensajes: 285
Antigüedad: 18 años, 3 meses
Puntos: 8
Buenas, te gustaría pegar aqui la salida que optienes?

si no estoy mal, pienso que deberias pasar a la llamada es el valor(es) obtenidos desde getAsSOAP().

puedo hacer el ejemplo con l oque planteas, pero me gustaría visualizar cual es tu salida o en su efecto lo que estas haciendo tu en tu propio codigo y/o como lo haces, de esta manera yo lo adapto a mi ejemplo.


Saludos.

Bueno mientras puedes analizar algo asi como esto y me cuentas (recuerda, adaptarlo para lo que realmente necesitas).

Código PHP:
<?php 

abstract class SoapWrapper 
    public function 
getAsSOAP() { 
        foreach(
$this as $key=>&$value) { 
            
$this->prepareSOAPrecursive($this->$key); 
        } 
        return 
$this
    } 

    private function 
prepareSOAPrecursive(&$element) { 
        if(
is_array($element)) { 
            foreach(
$element as $key=>&$val) { 
                
$this->prepareSOAPrecursive($val); 
            } 
            
$element=new SoapVar($element,SOAP_ENC_ARRAY); 
        }elseif(
is_object($element)) { 
            if(
$element instanceof SoapWrapper) { 
                
$element->getAsSOAP(); 
            } 
            
$element=new SoapVar($element,SOAP_ENC_OBJECT); 
        } 
    } 

// ------------------------------------------ 
//  Ejemplo de uso 
// ------------------------------------------ 

class PersonList extends SoapWrapper 
    protected 
$ArrayOfPerson;  


class 
Person extends SoapWrapper 
}  

$client=new SoapClient("MY WSDL", array( 'soap_version'=>SOAP_1_2'trace'=>1'classmap' => array('Person' => "Person"'PersonList' => "PersonList")  )); 
//$PersonList=new PersonList; 
//$PersonList->getAsSOAP(); 

//Continuas aqui con tus metodos u operaciones.
try 
{
    
// Valores
    
$nameSpace "EL ESPACIO DE NOMBRES DE LAS CABECERAS";
    
$SessionId "bc1e84c4-b5c4-4713-9476-882ac2fa7897";

    
// Parametros para la llamada
    
$parametros = array("LanguageId" => "es_ES""DestinationName" => "Madrid");
    
$soapHeader = new SoapHeader($nameSpace,"objectId",$SessionId,0);

    echo 
"<br><hr><br><pre>";
    
print_r($soapHeader);
    echo 
"</pre><br><hr><br>";
    
    
//TODO: reemplazo tu linea por lo que creo intentas hacer.
    
$PersonList=new PersonList
                
$client->MetodoRequerido($PersonList);
                
//TODO: un pequeño ejemplo de uso
    //$client->echoStruct(new SoapParam($PersonList, "inputStruct"));
    
    //TODO: de ser asi entonces pienso que solo deberias pasarlo en la seccion parametros no?
    //$resultado = $client->__soapCall("getDestinationSearch", $parametros, NULL, $soapHeader, $output_headers);

}
catch(
SoapFault $fault)
{
    
//echo '<b>Mensaje:</b> ' .$e->getMessage();

    
echo "<pre>*** ERROR ***<br><br>";
    echo 
"Fault Code : ".$fault->faultcode."<br>";
    echo 
"Fault String : ".$fault->faultstring."<br>";
    echo 
"Fault Actor : ".$fault->faultactor."<br><br>";
    echo 
"</pre><br><br>";
}

?>
espero dar en el punto que requieres... jeje y ahora si comprendas algo de algo. je je je...

Última edición por GatorV; 04/08/2009 a las 12:15