Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Bom dia Colegas!

É possível apenas assinarmos o XML e não fazer o envio?

Explico: No evento ACBreSocial.AssinarEventos, assim que o mesmo é assinado é feito também o envio. Acontece que estou desenvolvendo uma rotina onde será gerado vários XMLs e assinados, para depois serem enviados e o que acontece, durante o processo de geração se ocorre erro de validação em um dos XMLs o processo para naquele ponto.

[ ]'s,

Hélio

Postado

Boa tarde, aqui a gente gera/assina evento por evento. A gente chama a função GerarXML para cada evento que estamos gerando...

Exemplo:

evtInfoEmpregador.GerarXML; (S-1000)

evtTabEstab.GerarXML; (S-1005)

EvtTabRubrica.GerarXML; (S-1010)

EvtAdmissao.GerarXML; (S-2200)

Essa função retorna um boolean que indica se foi gerado/assinado corretamente ou não.

Além disso, a gente coloca o GerarXML em um try/except, pois quando há problema de validação de schema, o componente dispara uma exceção, e dessa forma conseguimos pegar a exceção e saber exatamente de qual evento ela veio.

E na hora de enviar chamamos apenas o método: ACBreSocial.Enviar(Grupo);

  • Curtir 1
Postado (editado)

Boa tarde Paulo!

Eu não utilizo o componente (ACBreSocial) para a geração do XML, apenas para assinar o XML já gerado anteriormente. Com relação ao try/except também faço uso, porém quando ocorre qualquer erro o processo para naquele ponto.... exemplo, seleciono 100 ASOs para gerar o eSocial e digamos que no segundo dê algum erro... pronto, o XML dos demais 98 não são gerados.

ACBreSocial.Eventos.LoadFromFile(W_XML);
      try
         ACBreSocial.AssinarEventos;
      except
         on e : Exception do begin
            raise Exception.Create('Classe: ' + e.ClassName + ' Erro: ' + e.Message);
         end;
      end;

Editado por hpensador
  • Consultores
Postado

Boa tarde hpensador,

O código do botão [Carregar XML] que se encontra no programa exemplo do componente, permite carregar o XML gerado pela sua aplicação, assinar e validar.

Desta forma é possível criar um loop para carregar cada um dos XMLs.

Depois de todos carregados, assinados e validados, você envia.

Estude o programa exemplo.

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

Postado

Boa tarde Italo!

Seguindo sua orientação fui estudar o exemplo do ACBreSocial, porém estou com o seguinte problema: mesmo estando com as informações do certificado carregada recebo mensagem de erro:

image.png.b87de8bed2a624c7fddf4a7d7f4fd9f2.png

Postado
1 hora atrás, Italo Jurisato Junior disse:

Bom dia,

Após alterar a configuração, você clicou no botão salvar a configuração?

 

Ok, realmente depois é que observei que não havia modificado a versão para 2.4.02.
Obrigado!

Agora vou depurar o exemplo e ver como é que faço para apenas assinar o XML.

Postado
2 minutos atrás, Italo Jurisato Junior disse:

O componente após carregar o XML checa se o mesmo esta assinado ou não, se não estiver assina, em seguida realiza a sua validação.

Agora foi.. mais uma vez muito obrigado!
Justamente isto, observei no exemplo que ele apenas faz o LoadFromFile e eu estava além de fazer o LoadFromFile executando o metodo ACBreSocial.AssinarEventos e este sim faz o envio.

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

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...