Páginas filhas
  • DSERTSS3-3462 - DT TRANSMITE - Erro exportação NF-e em lote

01. DADOS GERAIS

Produto:

TOTVS Transmite

Linha de Produto:

Linha Protheus

Segmento:

BackOffice

Módulo:TOTVS Transmite
Função:Não Há
País:Brasil
Ticket:Não Há
Requisito/Story/Issue (informe o requisito relacionado) :DSERTSS3-3462

02. SITUAÇÃO/REQUISITO

O processo de exportação de NF-e em lote no formato Xml está apresentando falhas intermitentes. Em alguns casos identificados nos logs do serviço transmit-mail-worker, o Pod foi encerrado devido estouro de memória. Também foram identificados casos onde um documento com Xml inválido interrompeu a exportação. 

Nesses casos, a exportação não é concluída e o usuário não recebe a notificação no Transmite.

03. SOLUÇÃO

Após análise e desenvolvimento de POC comparando as classes XmlDocument e XmlReader disponíveis no SDK do .NET, foi identificado que a classe XmlReader apresenta uma performance melhor e também um menor consumo de memória na leitura de Xml.

Com isso foram feitos alguns ajustes no processo de exportação das NF-e emitidas e recebidas:

    • Implementação de métodos genéricos no transmit-framework para leitura do Xml utilizando a classe XmlReader. Esses métodos foram implementados em bloco Using, o que garante o Dispose adequado após sua utilização.
    • Alterada a exportação de NF-e emitidas no transmit-mail-worker, substituindo a classe XmlDocument pelos novos métodos do transmit-framework. A exportação de NF-e recebidas faz a leitura através de template.
    • Implementado tratamento de exceção no método que produz os arquivos Xml para exportação, evitando que algum provável registro com problema inviabilize a exportação de todo o lote de documentos.
    • Ajustes nos recursos de memória e processador dos PODs, adequando aos níveis definidos em outros serviços.

04. DEMAIS INFORMAÇÕES

  • Não há

05. ASSUNTOS RELACIONADOS

  • Não há