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 e 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-2725. Foi 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á.
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas