Clipper On Line • Ver Tópico - Consultar e-Social

Consultar e-Social

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

Consultar e-Social

Mensagempor jairfab » 23 Ago 2017 11:28

Já conseguir assinar, enviar e receber o retorno com o numero do protocolo, agora estou precisando consultar o resultado do procesamento e não estou conseguindo, porem eu não tenho nenuma experiencia relacionado a nota fiscal eletronica e ou processo que utiliza web service, gostara de saber onde está o erro nas funcoes em anexo.

Se algum colega pouder me dar uma dica, ficarei grato.

Documentação está em : http://portal.esocial.gov.br/institucional/ambiente-de-producao-restrita

   
FUNCTION EnviarConsulta( oRec )
      
LOCAL cXml, cSoapAction, cWebservice, cOperation, cRetorno, cxlido
LOCAL oXML
      

           cWebservice :="https://webservices.producaorestrita.esocial.gov.br/servicos/empregador/consultarloteeventos/WsConsultarLoteEventos.svc"
      cSoapAction :="http://www.esocial.gov.br/servicos/empregador/lote/eventos/envio/consulta/retornoProcessamento/v1_1_0/ServicoConsultarLoteEventos/ConsultarLoteEventos"
      cOperation  :="ConsultarLoteEventos"
   
     cXml := '<eSocial xmlns="http://www.esocial.gov.br/schema/lote/eventos/envio/consulta/retornoProcessamento/v1_0_0">' 
          cXml += '<consultaLoteEventos>' 
          cXml += '<protocoloEnvio>1.2.201707.0000000000000056672</protocoloEnvio>' 
          cXml += '</consultaLoteEventos>' 
          cXml += '</eSocial>' 
    
     cXml := SoapEnvelope( cXml, cOperation ) //
        
     oXML := TXMLDocument():New( cXml, HBXML_STYLE_NOESCAPE )
   
     IF oXML:nError != HBXML_ERROR_NONE
       MsgAlert( "xml com problema " + Str( oXML:nError ) )
     ENDIF
   
     cRetorno := MicrosoftXmlSoapPost( cXml, cSoapAction, cWebservice )
    
     MemoWrit('.\retorno.xml',cRetorno)
      
     MsgAlert(cRetorno)
   
    RETURN Nil

   
*------------------------------------------------------
FUNCTION MicrosoftXmlSoapPost( cXmlSoap, cSoapAction, cWebService )
      LOCAL oServer, oDOMDoc, oError
      LOCAL nCont
      LOCAL cRetorno := "*ERRO*", cXmlRetorno := ""
   
      oServer := CreateObject( "MSXML2.ServerXMLHTTP")
      oServer:Open( "POST", cWebService, .F. )
      oServer:SetRequestHeader( "SOAPAction", cSoapAction )
      oServer:SetRequestHeader( "Content-Type", "text/xml; charset=utf-8" )
   
      oDOMDoc = CREATEOBJECT("MSXML2.DOMDocument")
   
      oDOMDoc:async = .F.
      oDOMDoc:validateOnParse  = .T.
      oDOMDoc:resolveExternals := .F.
      oDOMDoc:preserveWhiteSpace = .T.
      oDOMDoc:LoadXML(cXmlSoap)

      IF oDOMDoc:parseError:errorCode <> 0
        MsgAlert('Erro: xML nao carregado'+CRLF+'Erro: '+ToString(oDOMDoc:parseError:Reason)+' Posição: '+ToString(oDOMDoc:parseError:linepos))
        RETURN Nil
      ENDIF

      TRY
        oServer:send(oDOMDoc:xml)
      CATCH oError
        MsgAlert('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 ToString( xValue )
RETURN iif( xValue == NIL, "", xValue )
    
   
   
*----------------------------------------------
FUNCTION SoapEnvelope( cXml, cOperation )
LOCAL cXmlEnvelope

*cMethod:= "EnviarLoteEventos"
cMethod:= "ConsultarLoteEventos"
cXmlEnvelope:= '<?xml version="1.0" encoding="utf-8"?>' 
cXmlEnvelope+= '<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://www.w3.org/2003/05/soap-envelope">' 
cXmlEnvelope+= '<soap:Header/>' 
cXmlEnvelope+= '<soap:Body>' 
cXmlEnvelope+=   cXml
cXmlEnvelope+= '</soap:Body>' 
cXmlEnvelope+= '</soap:Envelope>' 


MemoWrit('.\vai.xml',cXmlEnvelope)
   
RETURN cXmlEnvelope
   
*--------------------------------
FUNCTION XmlTag( cNome, cConteudo )
      IF Empty( cConteudo )
         RETURN "<" + cNome + " />"
      ENDIF
RETURN "<" + cNome + ">" + cConteudo + "</" + cNome + ">"
Delpji 7, harbour 3.2, xharbour 1.2.3, Bcc7, Minigw, Minigui 19.11, hwgui 2.20, FiveWin 19.05 Gtwvw, Gtwvg, C# VS 2017
Avatar de usuário

jairfab
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 242
Data de registro: 21 Mai 2007 09:43
Cidade/Estado: São Paulo, Região Leste - Suzano
Curtiu: 0 vez
Mens.Curtidas: 13 vezes



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Bing [Bot] e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro