Jump to content

dev botao

eSocial S-2220 Assinar xml


hpensador
  • Este tópico foi criado há 2252 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Boa tarde Colegas!
Estou desenvolvendo uma rotina para geração do evento s-2220 (a geração do xml já está pronta) - minha dificuldade persiste na assinatura do mesmo. Baseando-me nos exemplos do ACBreSocial - carrego o xml gerado para o componente ACBreSocial, carrego as informações do certificado digital e mando fazer a assinatura do mesmo. Não ocorre nenhum erro, porém o referido xml não é assinado (ou seja, as informações do CD não são inseridas na tags <DigestValue>, <SignatureValue> e <X509Certificate> - algum colega já passou por este problema e poderia me dar alguma dica de como resolver.

Obs.: Utilizo certificado A1 do SERPRO.

Edited by hpensador
Link to comment
Share on other sites

  • Consultores

Boa tarde,

Após gerar o XML através da sua aplicação, carregue o mesmo através do método LoadFromFile do componente ACBreSocial.

O componente vai detectar que o XML não esta assinado e vai realizar a assinatura no mesmo automaticamente.

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

Em 08/06/2018 at 16:15, Italo Jurisato Junior disse:

Boa tarde,

Após gerar o XML através da sua aplicação, carregue o mesmo através do método LoadFromFile do componente ACBreSocial.

O componente vai detectar que o XML não esta assinado e vai realizar a assinatura no mesmo automaticamente.

 

Boa tarde Italo!

Já faço isto, porém estudando um pouco mais os exemplos encontrei alguns erros (meu de programação) - tipo, não estava especificando se o evento era: Periodico, Não Periodico ou Tabelas... bem, fiz as devidas correções e agora ocorre um erro quando vou fazer W_ACBreSocial.Eventos.Iniciais.LoadFromString(W_XML) - dá a seguinte mensagem de erro: Falha ao interpretar o XML "xmlParseDoc". Nas minhas pesquisas ainda não encontrei nenhuma referencia a geração do eSocial e mesmo tendo tentado aplicar algumas soluções não consegui obter exito ainda.

Estou usando D7 com ACBr Truck2 baixado recentemente.

Link to comment
Share on other sites

  • Consultores

Boa tarde,

A minha sugestão é que você carregue qualquer tipo de evento da seguinte forma:

    ACBreSocial1.Eventos.LoadFromFile(NomeXML);
 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

21 horas atrás, Italo Jurisato Junior disse:

Boa tarde,

A minha sugestão é que você carregue qualquer tipo de evento da seguinte forma:

    ACBreSocial1.Eventos.LoadFromFile(NomeXML);
 

Boa tarde Italo!

Modifiquei a carga do arquivo conforme sua orientação, porém o erro persiste. Debugando o código percebi GerarXML da classe TNaoPeriodicos o count fica = 0, ou seja é como se não tivesse sido gerado/carregado nenhum XML para o componente.
for I := 0 to Self.S2220.Count - 1 do
    Self.S2220.Items.evtMonit.GerarXML;

 

Link to comment
Share on other sites

3 horas atrás, Italo Jurisato Junior disse:

Bom dia,

Favor atualizar os fontes e faça novos testes.

Boa tarde Ítalo!

Atualizei os fontes e nos testes ocorre o seguinte erro:


Falha na validação dos dados do evento: evtMonit-v02_04_02

1824 - Element '{http://www.esocial.gov.br/schema/evt/evtMonit/v02_04_02}nrCRM': '' is not a valid value of the local atomic type.

Sendo que a referida tab (nrCRM) está preenchida, segue anexo XML.
 

eSocial_S-2220_ADAILTON SANTOS ALVES.xml

Link to comment
Share on other sites

  • Consultores

Bom dia,

Esse XML esta errado, pois segundo o manual o grupo <ideServSaude> fica dentro do grupo <aso> logo após o grupo <exames>

Favor montar corretamente o XML e faça novos testes.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

47 minutos atrás, Italo Jurisato Junior disse:

Bom dia,

Esse XML esta errado, pois segundo o manual o grupo <ideServSaude> fica dentro do grupo <aso> logo após o grupo <exames>

Favor montar corretamente o XML e faça novos testes.

Bom dia Italo!

XML remontado e teste feito, erro persiste.


Falha na validação dos dados do evento: evtMonit-v02_04_02

1824 - Element '{http://www.esocial.gov.br/schema/evt/evtMonit/v02_04_02}nrCRM': '' is not a valid value of the local atomic type.
 

eSocial_S-2220_ADAILTON SANTOS ALVES.xml

Link to comment
Share on other sites

  • Consultores

Peguei o seu XML, removi a assinatura e tentei ler com o programa exemplo.

O erro que apareceu não foi esse referente ao elemento nrCRM e sim pela ausência da tag obrigatória <interprExm> que se encontra dentro do grupo exames e fica entre as tags: obsProc (opcional) e ordExame (obrigatória).

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

19 minutos atrás, Italo Jurisato Junior disse:

Peguei o seu XML, removi a assinatura e tentei ler com o programa exemplo.

O erro que apareceu não foi esse referente ao elemento nrCRM e sim pela ausência da tag obrigatória <interprExm> que se encontra dentro do grupo exames e fica entre as tags: obsProc (opcional) e ordExame (obrigatória).

Adicionei o valor 1 (Referencial) a tag <ordExame> e 1 (EE) a tab <interprExm>, sendo que o erro apresentado agora é:


Falha na validação dos dados do evento: evtMonit-v02_04_02

1824 - Element '{http://www.esocial.gov.br/schema/evt/evtMonit/v02_04_02}nrCRM': '' is not a valid value of the local atomic type.


 

 

eSocial_S-2220_ADAILTON SANTOS ALVES.xml

Edited by hpensador
Link to comment
Share on other sites

  • Consultores

Qual é a aplicação que esta gerando esse XML?

Se é a sua, por favor tenha em mãos o Manual do eSocial, pois removi a assinatura do XML que você anexou tentei ler com o programa exemplo do eSocial e o erro não é esse e sim: 

1871 - Element '{http://www.esocial.gov.br/schema/evt/evtMonit/v02_04_02}respMonit': Missing child element(s). Expected is ( {http://www.esocial.gov.br/schema/evt/evtMonit/v02_04_02}nisResp ).

Ou seja esta faltando o elemento nisResp que faz parte do grupo respMonit.

Se você olhar o seu XML o grupo respMonit esta vazio e esse grupo é obrigatório e nele consta 3 tags sendo que as 2 primeiras são obrigatórias e a ultima opcional.

Enquanto você não gerar o XML conforme o manual (sem o grupo Signature) para ser lido pelo componente não vai funcionar.
 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

8 minutos atrás, Italo Jurisato Junior disse:

Qual é a aplicação que esta gerando esse XML?

Se é a sua, por favor tenha em mãos o Manual do eSocial, pois removi a assinatura do XML que você anexou tentei ler com o programa exemplo do eSocial e o erro não é esse e sim: 

1871 - Element '{http://www.esocial.gov.br/schema/evt/evtMonit/v02_04_02}respMonit': Missing child element(s). Expected is ( {http://www.esocial.gov.br/schema/evt/evtMonit/v02_04_02}nisResp ).

Ou seja esta faltando o elemento nisResp que faz parte do grupo respMonit.

Se você olhar o seu XML o grupo respMonit esta vazio e esse grupo é obrigatório e nele consta 3 tags sendo que as 2 primeiras são obrigatórias e a ultima opcional.

Enquanto você não gerar o XML conforme o manual (sem o grupo Signature) para ser lido pelo componente não vai funcionar.
 

Obrigado Italo!

Desculpa minha falta de atenção.

Restaurei um backup na base de testes e não alterei o cadastro do médico novamente para colocar a informação do NIS.

Vou refazer.

Link to comment
Share on other sites

1 hora atrás, hpensador disse:

Obrigado Italo!

Desculpa minha falta de atenção.

Restaurei um backup na base de testes e não alterei o cadastro do médico novamente para colocar a informação do NIS.

Vou refazer.

Boa tarde Italo!

Fiz as correções, removi as tags da parte da assinatura. Agora ocorre o erro:


Falha na validação dos dados do evento: evtMonit-v02_04_02

1824 - Element '{http://www.esocial.gov.br/schema/evt/evtMonit/v02_04_02}dtIniMonit': '18/06/2018' is not a valid value of the local atomic type.

No manual diz: "Validação: Deve ser uma data válida, posterior a data de admissão do trabalhador". Já tentei com varias data e não obtive exito.

eSocial_S-2220_ADAILTON SANTOS ALVES.xml

Link to comment
Share on other sites

  • Consultores

Bom dia,

As datas estão informadas de forma errada.

O formato correto de uma data no XML é: AAAA-MM-DD

No seu XML esta no seguinte formato: DD/MM/AAAA

Corrija o formato de todas as datas e tente novamente.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

6 horas atrás, Italo Jurisato Junior disse:

Bom dia,

As datas estão informadas de forma errada.

O formato correto de uma data no XML é: AAAA-MM-DD

No seu XML esta no seguinte formato: DD/MM/AAAA

Corrija o formato de todas as datas e tente novamente.

Boa tarde Italo!

Muito obrigado pelo retorno.

Formato das datas corrigidas, XML assinado - porém, não enviado. Mensagem de erro:


Falha na validação dos dados do evento: evtMonit-v02_04_02

1824 - Element '{http://www.esocial.gov.br/schema/evt/evtMonit/v02_04_02}nrCRM': '' is not a valid value of the local atomic type.

Porém o valor da tag nrCRM está preenchido com o referido valor.


 

1000000157538472018061915262400001-S-2220-0.xml

Link to comment
Share on other sites

27 minutos atrás, Italo Jurisato Junior disse:

Boa tarde,

Ao gerar o XML não inclua o encoding.

Removi o grupo assinatura e o encoding e funcionou.

S-2220-0.xml

Bem, ao remover o encoding o componente dá erro na carga do XML. ( W_ACBreSocial.Eventos.LoadFromFile(W_XML); )


Erro: Falha ao interpretar o XML "xmlParseDoc"

 

eSocial_S-2220_ADAILTON SANTOS ALVES.xml

Edited by hpensador
Link to comment
Share on other sites

15 horas atrás, Italo Jurisato Junior disse:

Esse arquivo que você anexou tem: "<?xml version="1.0"?>" não é para ter nada disso.

Bom dia Italo!

Obrigado pelo retorno.

W_XMLDoc                                      := TXMLDocument.Create(nil);
      W_XMLDoc.Active                               := True;
     // W_XMLDoc.Version                              := '1.0';  <--- linha comentada.
      W_XMLDoc.Encoding                             := 'utf-8';

Na programação retirei a parte onde era definida a versão do XML, e mesmo assim a mesma é adicionada. Não sei se isto é um comportamento padrão do componente XMLDocument.
O XML é assinado, porém é apresentado erro e o processo não é concluído (não ocorre o envio).


Falha na validação dos dados do evento: evtMonit-v02_04_02

1824 - Element '{http://www.esocial.gov.br/schema/evt/evtMonit/v02_04_02}nrCRM': '' is not a valid value of the local atomic type.
 

Anexo o XML gerado por minha aplicação e o salvo após ser salvo.

 

1000000157538472018062008591600001-S-2220-0.xml

eSocial_S-2220_ADAILTON SANTOS ALVES.xml

Link to comment
Share on other sites

16 horas atrás, Italo Jurisato Junior disse:

Esse arquivo que você anexou tem: "<?xml version="1.0"?>" não é para ter nada disso.

Italo, mais algumas informações.

O XML por minha aplicação criada está sem as tags version e encoding - porém, após ser carregado para o componente ACBreSocial e submetido ao metodo W_ACBreSocial.AssinarEventos, e salvo é que essas tags são adicionadas.

1000000157538472018062009263800001-S-2220-0.xml

eSocial_S-2220_ADAILTON SANTOS ALVES.xml

Link to comment
Share on other sites

  • Consultores

Bom dia,

Acabei de fazer um teste usando o programa exemplo do eSocial.

Primeiramente carreguei o XML que você anexou (eSocial_S-2220_ADAILTON SANTOS ALVES.xml) através do botão [Carregar XML]

Este botão após você selecionar o XML desejado, o carrega através do seguinte comando:

    ACBreSocial1.Eventos.LoadFromFile(OpenDialog1.FileName);

Ao executar o método LoadFromFile o componente verifica se o XML esta assinado, caso não esteja o mesmo será assinado e em seguida será validado.

Portanto não se faz necessário executar o método AssinarEventos.

Como não obtive nenhum erro referente a assinatura ou de validação, em seguida cliquei no botão [Enviar] e o evento foi enviado sem nenhum problema.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

10 minutos atrás, Italo Jurisato Junior disse:

Bom dia,

Acabei de fazer um teste usando o programa exemplo do eSocial.

Primeiramente carreguei o XML que você anexou (eSocial_S-2220_ADAILTON SANTOS ALVES.xml) através do botão [Carregar XML]

Este botão após você selecionar o XML desejado, o carrega através do seguinte comando:

    ACBreSocial1.Eventos.LoadFromFile(OpenDialog1.FileName);

Ao executar o método LoadFromFile o componente verifica se o XML esta assinado, caso não esteja o mesmo será assinado e em seguida será validado.

Portanto não se faz necessário executar o método AssinarEventos.

Como não obtive nenhum erro referente a assinatura ou de validação, em seguida cliquei no botão [Enviar] e o evento foi enviado sem nenhum problema.

Opa, muito obrigado!
Fiz aqui seguindo os passos por você indicado e agora foi.

No retorno consta o erro: "Erro na cadeia do certificado digital do signatário ou do solicitante da informação."

 

20180620101243-env-lot.xml

20180620101244-rec.xml

Link to comment
Share on other sites

  • Este tópico foi criado há 2252 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • 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.

The popup will be closed in 10 seconds...