Jump to content

click.png

click.png

click.png

click.png click.png click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

coisvaes

Membros
  • Posts

    23
  • Joined

  • Last visited

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

coisvaes's Achievements

Explorer

Explorer (4/14)

  • First Post
  • Collaborator Rare
  • Week One Done
  • One Month Later
  • One Year In

Recent Badges

8

Reputation

  1. Ok, Ítalo. Já testei e deu certo. Muito obrigado.
  2. Oi, Ítalo... 1) Desculpe-me pela postagem dos códigos como parte do texto; 2) Não se trata dos eventos S-5001, S-5002, S-5011 e S-5012, mas o arquivo de retorno do S-2200 (S-1010, S-1030 e etc...) que são obtidos através do protocolo de envio. Eu gerei o S-2200 de 50 funcionários, enviei e obtive o protocolo. Depois, consultei usando esse protocolo e obtive o XML que anexei no tópico. Eu rodei essa rotina de consulta linha por linha e observei que ela obtém o arquivo XML de retorno, lê esse arquivo linha por linha e cria o texto que é mostrada na aba "Dados" do exemplo, sem, contudo, preocupar-se com as Tags <evento Id="ID1230691980000002018100312591100003"> ou <retornoEvento Id="ID1230691980000002018100312591100003">, que é o que preciso, além do nrRecibo. Sei que dá para incluir isso na rotina de consulta mas não estou sabendo como fazê-lo. Eu estou vendo o tópico indicado pelo Rafael, mas, se você puder dar uma dica , com certeza será muito útil. Obrigado. Obrigado, Rafael. Estou vendo o tópico...
  3. Oi, Rafael. Obrigado! Ainda sou iniciante no excelente ACBr e sua sugestão é muita bem vinda. Analisei a procedure do botão consultar do ExemploeSocial e verifiquei que posso pegar o nrRecibo através dela. Mas eu preciso pegar, também, a Tag <evento Id="ID1230691980000002018100312591100003"> ou <retornoEvento Id="ID1230691980000002018100312591100003"> , que contem o ID que me permite identificar o funcionário na tabela de funcionarios. Você poderia me ajudar com a adaptação da procedure, listada abaixo? <retornoEventos> <evento Id="ID1230691980000002018100312591100003"> <retornoEvento> <eSocial xmlns="http://www.esocial.gov.br/schema/evt/retornoEvento/v1_2_0"> <retornoEvento Id="ID1230691980000002018100312591100003"> procedure TFExemploEsocial.btnConsultarClick(Sender: TObject); var Protocolo: string; i, J: Integer; evtS5001: TS5001; evtS5002: TS5002; evtS5011: TS5011; evtS5012: TS5012; begin Protocolo := ''; if not(InputQuery('WebServices: Consulta Protocolo', 'Protocolo', Protocolo)) then Exit; if ACBreSocial1.Consultar(Protocolo) then begin MemoResp.Lines.Text := ACBreSocial1.WebServices.ConsultaLote.RetWS; with MemoDados.Lines do begin with ACBreSocial1.WebServices.ConsultaLote.RetConsultaLote do begin Add(''); Add('Código Retorno: ' + IntToStr(Status.cdResposta)); Add('Mensagem: ' + Status.descResposta); if Status.cdResposta in [201, 202] then begin Add('ideEmpregador'); Add(' - TpInsc: ' + eSTpInscricaoToStr(IdeEmpregador.TpInsc)); Add(' - NrInsc: ' + IdeEmpregador.NrInsc); Add('ideTransmissor'); Add(' - TpInsc: ' + eSTpInscricaoToStr(IdeTransmissor.TpInsc)); Add(' - NrInsc: ' + IdeTransmissor.NrInsc); Add('dadosRecepcaoLote'); Add(' - dhRecepcao..............: ' + DateTimeToStr(dadosRecLote.dhRecepcao)); Add(' - versaoAplicativoRecepcao: ' + dadosRecLote.versaoAplicRecepcao); Add(' - protocoloEnvio..........: ' + dadosRecLote.Protocolo); for i := 0 to retEventos.Count - 1 do begin Add('Processamento'); Add(' - cdResposta.........: ' + IntToStr(retEventos.Items.Processamento.cdResposta)); Add(' - descResposta.......: ' + retEventos.Items .Processamento.descResposta); Add(' - versaoAplicProcLote: ' + retEventos.Items .Processamento.versaoAplicProcLote); Add(' - dhProcessamento....: ' + DateTimeToStr(retEventos.Items .Processamento.dhProcessamento)); if retEventos.Items.Processamento.Ocorrencias.Count > 0 then begin Add('Ocorrencias do Processamento'); for J := 0 to retEventos.Items.Processamento.Ocorrencias. Count - 1 do begin Add(' Ocorrencia ' + IntToStr(J)); Add(' Código.....: ' + IntToStr(retEventos.Items.Processamento.Ocorrencias.Items [J].Codigo)); Add(' Descrição..: ' + retEventos.Items .Processamento.Ocorrencias.Items[J].Descricao); Add(' Tipo.......: ' + IntToStr(retEventos.Items.Processamento.Ocorrencias.Items [J].Tipo)); Add(' Localização: ' + retEventos.Items .Processamento.Ocorrencias.Items[J].Localizacao); end; end; for J := 0 to retEventos.Items.tot.Count - 1 do begin Add(' Tot ' + IntToStr(J)); Add(' Tipo.........: ' + retEventos.Items.tot[J].Tipo); case retEventos.Items.tot[J].Evento.TipoEvento of teS5001: begin evtS5001 := TS5001(retEventos.Items.tot[J].Evento.GetEvento); Add(' Id...........: ' + evtS5001.EvtBasesTrab.Id); Add(' nrRecArqBase.: ' + evtS5001.EvtBasesTrab.IdeEvento.nrRecArqBase); end; teS5002: begin evtS5002 := TS5002(retEventos.Items.tot[J].Evento.GetEvento); Add(' Id...........: ' + evtS5002.EvtirrfBenef.Id); Add(' nrRecArqBase.: ' + evtS5002.EvtirrfBenef.IdeEvento.nrRecArqBase); end; teS5011: begin evtS5011 := TS5011(retEventos.Items.tot[J].Evento.GetEvento); Add(' Id...........: ' + evtS5011.EvtCS.Id); Add(' nrRecArqBase.: ' + evtS5011.EvtCS.IdeEvento.nrRecArqBase); end; teS5012: begin evtS5012 := TS5012(retEventos.Items.tot[J].Evento.GetEvento); Add(' Id...........: ' + evtS5012.EvtIrrf.Id); Add(' nrRecArqBase.: ' + evtS5012.EvtIrrf.IdeEvento.nrRecArqBase); end; end; end; Add('Recibo'); Add(' - nrRecibo: ' + retEventos.Items.Recibo.NrRecibo); Add(' - hash....: ' + retEventos.Items.Recibo.hash); end; end else begin for i := 0 to Status.Ocorrencias.Count - 1 do begin with Status.Ocorrencias.Items do begin Add(' Ocorrencia ' + IntToStr(i)); Add(' Código.....: ' + IntToStr(Codigo)); Add(' Descrição..: ' + Descricao); Add(' Tipo.......: ' + IntToStr(Tipo)); Add(' Localização: ' + Localizacao); end; end; end; end; end; pgWebservice.ActivePageIndex := 3; end; end;
  4. Realmente os lotes não haviam sido processados. Reenviei e deu tudo certo. Obrigado, Ítalo.
  5. Olá! Estou utilizando o ExemploeSocial que acompanha o ACBr como base para enviar os eventos para o eSocial e queria saber como eu poderia pegar o campo nrRecibo, da Tag recibo do arquivo de retorno, e gravar na minha tabela. Já tentei de várias formas, mas não estou tendo sucesso. Alguém poderia me ajudar? Desde já, obrigado. (...) <?xml version="1.0" encoding="UTF-8"?> <eSocial xmlns="http://www.esocial.gov.br/schema/lote/eventos/envio/retornoProcessamento/v1_3_0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <retornoProcessamentoLoteEventos> <retornoEventos> <evento Id="ID1230691980000002018100312591100003"> <retornoEvento> <eSocial xmlns="http://www.esocial.gov.br/schema/evt/retornoEvento/v1_2_0"> <retornoEvento Id="ID1230691980000002018100312591100003"> <recepcao> <tpAmb>1</tpAmb> <dhRecepcao>2018-10-03T13:01:49.53</dhRecepcao> <versaoAppRecepcao>0.1.0-A0349</versaoAppRecepcao> <protocoloEnvioLote>1.1.201810.0000000000184437735</protocoloEnvioLote> </recepcao> <recibo> <nrRecibo>1.1.0000000002076970009</nrRecibo> (...) Estou tentando adaptar um exemplo que encontrei na web, mas estou "muito perdido": procedure TFrmLerGravarTagXML.BtnnrRecibo(Sender: TObject); var vXMLDoc: TXMLDocument; Node_retornoProcessamentoLoteEventos, Node_retornoEventos, Node_eSocial, Node_retornoEvento, Node_recibo : IXMLNode; begin vXMLDoc := TXMLDocument.Create(self); vXMLDoc.LoadFromFile('c:\LiDelphiXE\LerGravarTagXML\eSocial-sit.xml'); //Le Arquivo Recibo XML'); Memo1.lines.Add( VXMLDoc.XML.Text +#13+#13 ); repeat Node_retornoProcessamentoLoteEventos := vXMLDoc.DocumentElement.ChildNodes.FindNode('retornoProcessamentoLoteEventos'); Node_retornoEventos := Node_retornoProcessamentoLoteEventos; Node_retornoEventos.ChildNodes.FindNode('retornoEventos'); Node_eSocial := Node_retornoEventos; Node_eSocial.ChildNodes.FindNode('eSocial'); Node_retornoEvento := Node_eSocial; Node_retornoEvento.ChildNodes.FindNode('recibo'); Node_recibo := Node_retornoEvento; if recibo <> '' then Memo2.Lines.Add( recibo ); until Node_recibo = nil;; end; eSocial-sit-parte.xml
  6. Enviei os eventos iniciais, eventos de tabela e eventos não periódicos de empregados através do ACBreSocial. Os eventos foram recebidos com sucesso (201-Lote recebido com sucesso), mas os dados não constam na base de dados do Ambiente Nacional do eSocial, o que pode ser verificado através do eSocial - Módulo Web, que permite a consulta e a edição dos eventos enviados por meio de web service, bem como pegar o recibo de envio. Eu estive em uma unidade da RFB, onde fui orientado a enviar os dados novamente, o que fiz por diversas vezes, algumas, inclusive, através do ACBrMonior, mas sem sucesso. Os eventos são recebidos normalmente, mas os dados não entram na base do eSocial. Será que estou fazendo algo errado? Eu anexei um dos XML's enviados + protocolo, para facilitar o entendimento do problema. Desde já, obrigado. 20180903205155-env-lot.xml 20180903205158-rec.xml
  7. Resolvi, trocando o Certificado A3 pelo A1, conforme dica "Prefira Certificados A1", do Daniel, em "NFe40 - Certificados e TLS12.pdf", indicado pelo Felipe. Obrigado!
  8. Estou tentando enviar NFe através do ACBrMonitorPlus, mas ainda não tive sucesso. Já tentei algumas configurações de Certificado (A3), mas recebo como resposta a mensagem ERRO: Falha em obter Provedor de Criptografia do Certificado. Erro: 80090014 , erro: $80090014, Configurei o Certificado da seguinte forma... SSL Lib: libWinCripty SSL Type: LT_All Crypt. Lib. : cryWinCripty HTTP lib: httpWinHttp XML Sign. Lib.: xsLibXml2 entretanto, já tentei outras configurações e o erro persiste. As vezes, dependendo da configuração, a mensagem de erro muda. Estou utilizando um Certificado A3, do SERASA, conforme abaixo: Nome: eToken-Serasa Categoria do Token: Hardware Nome do leitor: AKS ifdh 0 Número de série: 0x02225189 Total de capacidade de memória: 73728 Espaço livre no cartão de token: 40672 Versão do Hardware: 8.0 Versão do Firmware: 1.0 ID do cartão: 02225189 Nome do produto: SafeNet eToken 510x Modelo: Token 8.0.0.0 1.0.0 Tipo de Cartão: Java Card Versão OS: eToken Java Applet 1.2.9 Versão da máscara: 9.18 (9.12) Cor: Preto Tamanho de chave suportado: 2048 Senha do token: Presente Tentativas restantes de Senha de token: 5 Tentativas máximas de Senha do token: 5 Expiração da Senha do token: Sem expiração Senha do administrador: Presente Tentativas de Senha do administrador restantes: 5 Tentativas máximas de Senha do administrador: 5 FIPS: FIPS 140-2 L2 inicializado Sign padding no token: Yes Common Criteria: N/A RSM: N/A CSP: eToken Base Cryptographic Provider KSP: SafeNet Smart Card Key Storage Provider Obs. Já reinstalei o drive do certificado; Fiz testes utilizando mais de um computador; Antes, enviava as NFe's com este certificado; e, etc... Qual a configuração ideal do Certificado no ACBrMonitorPlus, com base nas informações acima? Desde já, obrigado!
  9. Oi, Italo. Bom dia!Foi falta de experiência minha com o ACBr. Sabe aquele for 0 to 2 to Begin antes do with ACBreSocial1.Eventos.Tabelas.S1005.Add do?... é para gerar mais de um registro. Só que, em vez de gerar vários registros dentro de um XML, gera vários XML's que depois são "envelopados" e enviados em um único XML, conforme observei no LOG. Eu precisava enviar os arquivos ontem, dia 28, até as 23:59 e, no último momento, deu certo. Muito obrigado. Francisco Rodrigues
  10. Complementando, também testei o exemplo duplicando o código abaixo, na tentativa de gerar 2 registros no XML, mas gera apenas 1. with ACBreSocial1.Eventos.Iniciais.S1005.Add dobegin (...) end;with ACBreSocial1.Eventos.Iniciais.S1005.Add dobegin (...) end;
  11. Oi, pessoal. Eu novamente... Desculpem-me! É que eu queria incluir um ClientDataSet no ExemploEsocial, Evento S1005 para gerar mais de 1 estabelecimento no arquivo. Já tentei de várias maneiras, mas sempre gera 1 único estabelecimento. Isso é possível? Eu anexei uma parte do exemplo onde estou tentando fazer isso, mas ainda não deu certo. GerareSocial1005.txt
  12. Ok, Italo. Então devo controlar o sequencial pela aplicação... Obrigado!
  13. Olá! Conforme REGRA_VALIDA_ID_EVENTO, os 5 últimos dígitos do ID (QQQQQ) devem corresponder a um nº sequencial. Então, não deveria ser 00001, 00002,... Fazendo testes com o ExemploEsocial, parece que esse nº é gerado aleatoriamente (ou randomicamente). O sequencial deverá ser assim, como no ExemploEsocial, ou 00001, 00002,... nnnnn? Se for 00001, 00002, ..., como faço para alterar essa variável/propriedade?
  14. Olá! Conforme REGRA_VALIDA_ID_EVENTO, os 5 últimos dígitos do ID (QQQQQ) devem corresponder a um nº sequencial. Então, não deveria ser 00001, 00002,... Fazendo testes com o ExemploEsocial, parece que esse nº é gerado randomicamente. Deve ser assim ou deveria ser 00001, 00002,... nnnnn? Obrigado.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.