Páginas filhas
  • DSERTSS3-3380 - DT TRANSMITE - Adequar o projeto NFe Worker+transmite framework com a implementação do uso da GCs

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-3380


02. SITUAÇÃO/REQUISITO

Hoje o TOTVS Transmite armazena os arquivos de documentos fiscais (XML), de forma heterogênea, em base de dados (MongoDB) e na Google Cloud Storage (GCS). Pensando que solução serve também ao proposito de guarda das informações fiscais, essa descentralização da informação pode se tornar uma complexidade em futuras funcionalidades como disponibilização dos documentos em massa.

Com este cenário em mente, existe então a necessidade de tornar a forma de armazenagem homogênea, armazenando todos os  documentos fiscais na GCS.  Dando continuidade ao processo, iniciado com as NF-e recebidas, deve-se então realizar o mesmo ajuste para NF-e emitidas, seguindo os seguintes critérios:

  • Todos os pontos de entrada de NF-e emitidas; ou seja, importação, transmissão e sincronização, devem enviar o XML para a GCS;
  • Funcionalidades existentes que utilizam o XML, como detalhamento, envio de e-mail, exportações, dentre outros serão adaptados para realizar a busca do XML tanto na GCS quanto no MongoDB, preservando o legado e respeitando o novo padrão;
  • Especificamente na exportação em lote, deverá ser implementado mecanismo que realize a adequação do legado para o novo padrão; ou seja, coletar os XML ainda no MongoDB e realizar o upload deste para a GCS.

Essa melhoria visa tornar a forma de armazenamento de arquivos centralizada GCS, inclusive os eventos vinculados aos documentos fiscais. Desta premissa surge a necessidade de também enviar os eventos para a GCS. Baseando-se em Nota Técnica (NNT2013 002_B2B_v1.00b) da SEFAZ, definiu-se que ao invés de se gerar arquivos separados de notas e eventos, será gerado um arquivo unificado nos moldes do presente nesta nota técnica, conforme esquema abaixo:

Modelo B2B Expandir origem

Com isso definido, em adição aos critérios já definidos, somam-se estes:

  • Eventos recebidos (importação e sincronização) serão agrupados ao documento técnico seguindo o modelo acima e por consequência também deverão estar na GCS, mantendo apenas o metadado no MongoDB;
  • Resumo de nota, porém, não será enviado, pois não se trata de um documento ou evento aprovado, devendo este permanecer no MongoDB;
  • Eventos recebidos do sincronismo, sem terem o documento fiscal recebidos (processo não entrega dados em ordem, podendo o evento ser sincronizado antes da nota que o originou), mesmo assim serão enviados a GCS, como parte do arquivo unificado, respeitando também o modelo;
  • Função de exportação em lote deverá fornecer a opção de receber o arquivo unificado ou documento e eventos separadamente.

Essa demanda, para NF-e emitidas foi dividida por projetos, sendo o escopo da tarefa DSERTSS3-3380, a alteração da transmissão (projetos transmit-nfe-worker e transmit-framework) de NF-e e eventos (como carta de correção e cancelamento), para que seus XML autorizados sejam enviados para a GCS.

03. SOLUÇÃO

Para realização do proposto, foi necessária a intervenção nos seguintes projetos e serviços:

  • transmit.framework;
  • transmit.nfe.domain;
  • transmit.nfe.worker.


TRANSMIT FRAMEWORK

Criação em conjunto entre os analistas Pedro, Bruno, Weldon, Fernando e Danillo de implementação genérica, chamada de UploadService para a interface IUploadService, de tal forma que esta atenda todos os documentos fiscais emitidos pela SEFAZ. Adequação de fluxo de transmissão contido na classe UpdateTransmitStatusService para envio de XML para a GCS, de NF-e emitidas autorizadas. Para maiores detalhes de codificação, consultar o Pull request de alterações do transmit-framework.


TRANSMIT NFE DOMAIN

Adequação do fluxo de transmissão contido na classe EventService para o envio de XML de eventos de NF-e emitidas, que foram autorizados pela SEFAZ, para a GCS. Para maiores detalhes de codificação, consultar o Pull request de alterações do transmit-nfe-domain.


TRANSMIT NFE WORKER

 Devido a alterações realizadas no transmit-framework e no transmit-nfe-domain foi necessária a adequação das referências destes no projeto. Para maiores detalhes de codificação, consultar o Pull request de alterações do transmit-nfe-worker.


04. DEMAIS INFORMAÇÕES

Não Há.

05. ASSUNTOS RELACIONADOS

Não Há.