Davi RJ 0 Denunciar post Postado Julho 15, 2015 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