Páginas filhas
  • DSERTSS3-2826 DT TRANSMITE Adaptação das funcionalidades de eventos

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

02. SITUAÇÃO/REQUISITO

Durante o desenvolvimento do processo de transmissão de eventos de NF-e (Carta de correção e Cancelamento), foram identificadas melhorias a realizar em métodos desenvolvidos anteriormente, no processo de transmissão de NF-e em si. Foi então definido o escopo dos ajustes necessários, sendo este o que segue:

  • Restruturação da função SignatureEvent, para torná-la genérica;
  • Restruturação da função GetAuthorizationServiceUrl, para torná-la genérica;
  • Utilização da função TreatmentTemplate, nas tratativas com XSLT (Remover os escapes, tratar namespaces, dentre outros);
  • Adição na Collection de NF-e, do campo sequência do evento (nSeqEvento), na estrutura de eventos do registro;
  • Criação de classe estática para compor funcionalidades que serão utilizadas em quaisquer eventos (como o método ValidateEvent, por exemplo);
  • Verificação do comportamento da função CheckByModelAsync quando utilizada em forma de pacotes (utilizando localmente funciona, mas como dll não).

03. SOLUÇÃO

Seguindo o escopo definido, as seguintes ações foram realizadas:

  • Criação de método Signature na extensão XmlDocumentExtension, que é capaz de assinar qualquer XML, independente de ser uma nota ou um evento;
    • Nesta mesma extensão, adicionalmente, foram incluídos novos métodos para captura de tags do XML de uma maneira menos verbosa;
    • O projeto nfe-worker foi revisado por completo, para utilizar esta extensão e seus métodos em assinaturas e capturas de tags dos XML's.
  • Remoção da função GetAuthorizationServiceUrl. Inclusão de novo método GetServiceUrl na classe SefazService, que é capaz de retornar qualquer URL que conste disponível no registro da Collection em uso pela aplicação;
    • O projeto nfe-worker foi revisado por completo, para utilizar este método sempre que necessitar obter uma URL de um registro da Collection sefazservice.
  • Revisão do uso de função TreatmentTemplate, pois esta removia os namespaces dos XML para que não houvessem erros na transformação com o XSLT, porém, a fins de preservar a estrutura original dos XML's, evitando adulterações, foi idealizada pelo Tech Lead Renato Nagib, dois novos métodos SetNamespacePrefix RemoveNamespacePrefix, que em conjunto, adicionam prefixos aos namespaces (evitando que a transformação XSLT falhe) e posteriormente removendo-os, preservando o XML original. Esses métodos foram incluídos em uma nova extensão StringExtension;
    • O projeto nfe-worker foi revisado por completo, para utilizar estes dois métodos evitando adulterações nos XML's.
  • Adição em classe Evento, do campo SeqEvento, para registrar no metadado em MongoDB, do número sequencial do evento registrado na Sefaz;
    • Adaptação de fluxo do evento da Carta de Correção e de Cancelamento, para gravar e utilizar o campo SeqEvento em seu fluxo.
  • Essa atividade foi executada pelos analistas Bruno Seiji e Fernando Bastos durante o andamento das tarefas DSERTSS3-2724 e DSERTSS3-2725Foi criada uma classe abstrata EventService, que possui todos os métodos em comum para tratativas de eventos, conforme solicitado no escopo que aqui consta.
  • Assim como o tópico anterior, esta atividade foi resolvida com a finalização das tarefas citadas acima. Provavelmente o incidente relatado com a dll diz respeito a não atualização da versão do framework com a função em questão. Quando nova versão do framework foi gerada, não houveram mais incidentes com o método CheckByModelAsync.

04. DEMAIS INFORMAÇÕES

  • Não Há.

05. ASSUNTOS RELACIONADOS

  • Não Há.