Página 1 de 1

WebService ELT

Enviado: 30 Abr 2025 16:27
por Alexandre Silva
Eu uso WebService da ELT para averbar CTes e Manifestos, tudo ok
Agora estou tentando averbar um xml proprio do cliente, da Ordem de carregamento

Eu sempre faço o envelope e uso essa funcao MicrosoftXmlSoapPost (abaixo peguei aqui do forum sempre funcionou)
O que esta acontecendo é que o retorno esta vindo vazio...
E se pegar o mesmo envelope e colocar no SOAPUI, com o endereco do webservice, averba certinho
Entao nao sei o que pode ser , nao tem uma mensagem, apenas volta vazio,
Já entrei em contato com a ELT, mas o que posso argumentar já que via SOAPUI esta certo.
Alguma dica

Código: Selecionar todos

  cWebservice := "http://www.eltseg04.com.br/ELTSEGWS/ELTSEGWS.svc?wsdl"
  cSoapAction := "urn:ATMWebSvr#averbaCTe"
  cOperation := "averbaCTe"

Código: Selecionar todos

FUNCTION MicrosoftXmlSoapPost( cXmlSoap, cSoapAction, cWebService )
LOCAL oServer, oDOMDoc, nCont, cRetorno := "*ERRO*", cXmlRetorno := ""

   oServer := win_OleCreateObject( "MSXML2.ServerXMLHTTP.5.0")
   oServer:Open( "POST", cWebService, .F. )
   oServer:SetRequestHeader( "SOAPAction", cSoapAction )
   oServer:SetRequestHeader( "Content-Type", "text/xml; charset=utf-8" )

   oDOMDoc = Win_oleCREATEOBJECT("MSXML2.DOMDocument.5.0")

   oDOMDoc:async = .F.
   oDOMDoc:validateOnParse  = .T.
   oDOMDoc:resolveExternals := .F.
   oDOMDoc:preserveWhiteSpace = .T.
   oDOMDoc:LoadXML(cXmlSoap)
   IF oDOMDoc:parseError:errorCode <> 0
     ? 'Erro: xML nao carregado'
     RETURN Nil
   ENDIF
   TRY
     oServer:send(oDOMDoc:xml)
   CATCH oError
     ? 'Falha no envio do xML'
     RETURN Nil
   END
   DO WHILE oServer:readyState <> 4
     HB_milliseconds(500)
   ENDDO
   cRetorno := oServer:responseText

IF ValType( cRetorno ) == "C"
   cXmlRetorno := cRetorno
ELSEIF cRetorno == NIL
   cXmlRetorno := "*ERRO*"
ELSE
   cXmlRetorno := ""
   FOR nCont = 1 TO Len( cRetorno )
     cXmlRetorno += Chr( cRetorno[ nCont ] )
   NEXT
ENDIF
RETURN cXmlRetorno

*----------------------------------------------
FUNCTION SoapElt( cXml, cOperation )
LOCAL cXmlEnvelope

cXmlEnvelope:= '<?xml version="1.0" encoding="utf-8"?>'+hb_eol()+;
               '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">'+hb_eol()+;
               '   <soapenv:Header/>'+hb_eol()+;
               '   <soapenv:Body>'+hb_eol()+;
               '      <tem:'+cOperation+'>'+hb_eol()

cXmlEnvelope+= cXml

cXmlEnvelope+= '      </tem:'+cOperation+'>'+hb_eol()+;
               '   </soapenv:Body>'+hb_eol()+;
               '</soapenv:Envelope>'

RETURN cXmlEnvelope
Retorno pelo sistema

Código: Selecionar todos

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<averbaCTeResponse xmlns="urn:ATMWebSvr">
<Response xmlns=""/>
</averbaCTeResponse>
</s:Body>
</s:Envelope>