Ir para conteúdo
  • Cadastre-se

dev botao

eSocial S-2220 Assinar xml


  • Este tópico foi criado há 2033 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.

Editado por hpensador
Link para o comentário
Compartilhar em outros 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 / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia,

Favor anexar o XML do evento para que eu possa fazer um teste usando o programa exemplo.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros 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

Editado por hpensador
Link para o comentário
Compartilhar em outros 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 / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde,

Ao gerar o XML não inclua o encoding.

Removi o grupo assinatura e o encoding e funcionou.

S-2220-0.xml

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros 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

Editado por hpensador
Link para o comentário
Compartilhar em outros sites

  • Consultores

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

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros 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 / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros 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 para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2033 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.