Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Davi RJ

montagem de uma Array ( Soap nusoap)

Recommended Posts

Bom dia a todos!

Não sei se o que estou querendo é possível, mas gostaria que fosse! Seria uma mão na roda para uma futura solução.

 

Seguinte, eu gostaria de criar um montador de WSDL.

E como, através de uma tabela do banco:

 

Mas vou explicar o que estou querendo fazer, no código abaixo.

 

Existe uma tabela no meu banco oracle que é cadastra os campos que são esperados em uma determinada integração webservice SOAP. Se vocês repararem abaixo estou lendo ela e tentando montar o Array, sendo assim caso seja necessário incluir mais um campo o proprio cliente iria inclui-lo.

 

Legal ideia boa, mas não está dando certo pq não estou conseguindo montar esse array.

 

Veja o codigo server.php

 

<?phpinclude('lib/nusoap.php');$servidor = new nusoap_server();$servidor->configureWSDL('urn:Servidor');        conn = conn();$qtd= 0;       $stid = oci_parse($conn, ' SELECT  count(1) VAL FROM integracao_layout  WHERE  COD_INTEGRACAO = 64');oci_execute($stid);while (($row = oci_fetch_array($stid, OCI_BOTH)) != false) {    $qtd = $row['VAL'];}$i=1;$stid = oci_parse($conn, 'SELECT CAMPO, TYPE_DATA FROM integracao_layout  WHERE  COD_INTEGRACAO = 64 ORDER BY ordem ');oci_execute($stid);$monta_array = ""; while (($row = oci_fetch_array($stid, OCI_BOTH)) != false) {    if ($i==$qtd){           $monta_array.= "'".$row['CAMPO']."' => array('name' => '".$row['CAMPO']."', 'type' => 'xsd:".$row['TYPE_DATA']."')";     }else{          $monta_array .= "'".$row['CAMPO']."' => array('name' => '".$row['CAMPO']."', 'type' => 'xsd:".$row['TYPE_DATA']."'),";    } $i=$i+1;}$servidor->wsdl->addComplexType('Processo_seletivo',    'complexType',    'struct',    'all',    '',    array ($monta_array));include('functions/function.php');          $servidor->register('insert_processo',                array('new_contact' => 'tns:Processo_seletivo'),array('retorno'=>'xsd:string'),'urn:Servidor.exemplo','urn:Servidor.exmeplo','rpc','encoded','Inserir Processo');$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';$servidor->service($HTTP_RAW_POST_DATA);        $DateOfRequest = date('Ymd_His');$file = fopen('log/log_wsdl_processo_seletivo_'.$DateOfRequest.'.xml', 'w');fwrite($file, $HTTP_RAW_POST_DATA);?>

Essa informação não rola:

$servidor->wsdl->addComplexType('Processo_seletivo',

'complexType',

'struct',

'all',

'',

array ($monta_array) <=========

);

 

 

Warning: Invalid argument supplied for foreach() in /var/www/apps/soap/fiergs/processo_seletivo/lib/nusoap.php on line 6370[/size]

 

Alguém sabe como isso poderia ser feito? transformar o $monta_array nos dados do array?

 

Desde já agradeço!

 

 

 

Ninguém entendeu né?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.