Passo um XML, chega outro, pode isso Arnaldo???

Discussão em 'Progress 4GL' iniciado por edney, Julho 27, 2012.

  1. edney

    edney Membro Participativo

    Eu comecei faz pouco tempo a fazer a comunicação com webservices, então ainda estou meio inexperiente no assunto, mas esta acontecendo algo muito estranho comigo.

    Estou tentando me conectar a um servidor de homologação do rodocred, para enviar um evento de autenticação, mas o XML de retorno sempre diz que esta com algo declarado errado (xmlsaida.xml), e eu não sei o que esta acontecendo.

    Entrei em contato com provedor de servicos, mandei para ele os XML´s de entrada e saida, e ele me falou que os XML´s estão corretos, porem, quanto fomos testar "on-line", o rapaz do outro lado falou que o XML que esta chegando pra ele é outra coisa do que eu falei que estava mandando (esta la em baixo, ultimo XML).

    Sera que o quando eu dou o comando RUN AutenticarCliente IN hPortType (INPUT xmlentrada, OUTPUT xmlsaida) o progress subsitui algo? Eu não sei mais o que fazer.

    Código:
    DEFINE VARIABLE hWebSrvc AS HANDLE NO-UNDO.
    DEFINE VARIABLE hPortType AS HANDLE NO-UNDO.
    DEFINE VARIABLE xmlentrada AS LONGCHAR NO-UNDO.
    DEFINE VARIABLE xmlsaida AS LONGCHAR NO-UNDO.
    
    CREATE SERVER hWebSrvc.
    
    hWebSrvc:CONNECT("-WSDL http://homologacao.ws.rodocred.com.br/rodocred.asmx?WSDL").
    
    RUN RodocredSoap SET hPortType ON hWebSrvc.
    
    COPY-LOB FILE "C:\Desenvolvimento\CIOT\xmlentrada.xml" TO xmlentrada.
    
    RUN AutenticarCliente IN hPortType (INPUT xmlentrada,
                                        OUTPUT xmlsaida).
    
    COPY-LOB xmlsaida TO FILE "c:\xmlsaida.xml".
    
    DELETE OBJECT hPortType.
    
    hWebSrvc:DISCONNECT().
    
    DELETE OBJECT hWebSrvc.
    
    XMLENTRADA.XML
    Código:
    <?xml version="1.0" encoding="UTF-8" ?> 
    <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:ws="https://ws.rodocred.com.br/">
    	<soap:HEADER> 
    	</soap:HEADER> 
    	<soap:Body>
    		<ws:AutenticarClienteRequest>
    			<ws:IdClienteRodocred>320</ws:IdClienteRodocred> 
    			<ws:LoginIntegracao>integracao-320</ws:LoginIntegracao> 
    			<ws:ChaveAutenticacao>1234</ws:ChaveAutenticacao> 
    		</ws:AutenticarClienteRequest>
    	</soap:Body>
    </soap:Envelope>
    
    XMLSAIDA.XML
    Código:
    <AutenticarClienteResponse xmlns="https://ws.rodocred.com.br/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    	<RetornoMensagem>
    		<StatusRetorno>ERRO</StatusRetorno> 
    		<Excecao>
    			<TipoExcecao>VALIDACAO</TipoExcecao> 
    			<CodigoExcecao>GENXSD002</CodigoExcecao> 
    			<MensagemExcecao>The element 'AutenticarClienteRequest' in namespace 'https://ws.rodocred.com.br/' has incomplete content. List of possible elements expected: 'LoginIntegracao' in namespace 'https://ws.rodocred.com.br/'.</MensagemExcecao> 
    		</Excecao>
    	</RetornoMensagem>
    </AutenticarClienteResponse>
    
    XML que o provedor do serviço (no caso a rodocred) diz que chega la pra ele
    Código:
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    	<SOAP-ENV:Body xmlns:s0="https://ws.rodocred.com.br/" xmlns:s1="http://www.w3.org/2001/XMLSchema">
    		<s0:AutenticarClienteRequest>
    			<IdClienteRodocred>1290</IdClienteRodocred>
    			<LoginIntegracao>int1290</LoginIntegracao>
    			<ChaveAutenticacao>123456</ChaveAutenticacao>
    		</s0:AutenticarClienteRequest>
    	</SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    
  2. edney

    edney Membro Participativo

    Putz, to no maior apuro aqui gente, mas acho que sei o que é.

    Alguem sabe porque o progress troca o meu "<soap:envelope..." por "SOAP-ENV:envelope..."?

Compartilhe esta Página