01. DADOS GERAIS

Produto:

Linha de Produto:

Segmento:

Módulo:

Função:

Cenários Automatização Eventos - html.mcd.cenarioEventoTributos

Agendar Geração Automática de Eventos - html.mcd.agendadorEventoTributos

País:Brasil
Requisito/Story/Issue (informe o requisito relacionado) :

DBACKRTDTS-6700, DBACKRTDTS-6715, DBACKRTDTS-6716, DBACKRTDTS-6717, DBACKRTDTS-6718, DBACKRTDTS-6726, DBACKRTDTS-6729


02. SITUAÇÃO/REQUISITO

Embora o programa Evento Tributos (html.mcd.eventoTributos) permita a gestão individual por documento, a implementação da geração em lote é fundamental para escalar a operação. Essa evolução mitiga o risco de erros manuais e garante a conformidade fiscal em larga escala, tornando o processo de entrega significativamente mais ágil e seguro.

03. SOLUÇÃO

Para viabilizar a geração em lote, a solução foi estruturada em duas frentes: o Cenário Automatização Eventos (html.mcd.cenarioEventoTributos), que centraliza a inteligência das regras e cenários fiscais, e o Agendar Geração Automática de Eventos (html.mcd.agendadorEventoTributos), que garante a execução programada e automática desses processos.

Essa arquitetura é suportada por uma atualização no banco de dados (novos campos, índices e tabelas), assegurando rastreabilidade e performance.

A nova estrutura garante que a geração em lote seja feita de forma ágil, segura e totalmente alinhada às exigências da Reforma Tributária.



Para possibilitar a geração automática dos eventos, foram realizadas as seguintes alterações no dicionário de dados: 


1) Tabela evento-trib-dfe, criado novo o campo para identificar se evento foi criado a partir do cenário: 

Field NameData TypeFormatLabelColumn LabelDescripton/Help TextMandatory
log-tp-geracLogicalYES/NOGerado cenárioGerado cenárioGerado cenárioNO


Criados novos índices: 

Index NameField Name
log-gerac-autolog-gerac-auto
log-tp-geraclog-tp-gerac


2) Criado novas tabelas para permitir a geração automática:


Tabela cenario-evento-trib:

DatabaseTable NameLabelDescription
mgindcenario-evento-tribCenários Eventos TributosCadastro de cenários para automatização da geração dos eventos
Field NameData TypeFormatLabelColumn LabelDescripton/Help TextMandatoryObservação
num-id-cenarioDecimal>>>>>>>>>9Código cenárioCenárioCódigo do cenárioYESNúmero sequencial (autoincremento)
cod-eventoCharacterx(8)EventoEventoCódigo do eventoYESExemplo: 112110, 211110, 211130
modulo-orig-infoCharacterx(5)Módulo origemMóduloMódulo origem da informaçãoYESExemplo: MOF, MRE, MFT
status-cenarioLogicalYES/NOStatusStatusCenário ativo ou inativoYESYES - Ativo / NO - Inativo
Índice primário
idx-cen-eventonum-id-cenario


Índice secundário
idx-cen-evento-2cod-evento | modulo-orig-info | status


Tabela cenario-regras-evento-trib: 

DatabaseTable NameLabelDescription
mgindcenario-regras-evento-tribRegras cenários eventos tributosCadastro das regras de cenários para automatização da geração dos eventos
Field NameData TypeFormatLabelColumn LabelDescripton/Help TextMandatoryObservação
num-id-cenarioDecimal>>>>>>>>>9CenárioCenárioCódigo do cenárioYESCódigo do registro "pai"
num-id-regraDecimal>>>>>>>>>9RegraSequênciaSequência da regraYESNúmero sequencial (autoincremento)
data-inicialDatedd/mm/aaaaData inicialDt InicialData inicial de validade da regraYES
data-finalDatedd/mm/aaaaData finalDt FinalData final de validade da regraNO
cod-estabelCharacterx(5)EstabelecimentoCod EstabCódigo do estabelecimentoNO
cod-emitenteInteger>>>>>>>>9EmitenteEmitenteEmitente do documento. Cliente ou FornecedorNO
cod-fin-nfeInteger>9Finalidade NFeFin. NFeFinalidade de emissão da NF-eNO
cod-tipo-nf-cred-debInteger99Tipo NF Cred/DebTp NF Cred/DebTipo de nota fiscal de crédito e débitoNO
nat-operacaoCharacterx(6)Nat. operaçãoNat. Oper.Natureza de operaçãoNO
it-codigoCharacterx(16)ItemItemCódigo do ItemNO
cod-cclass-tribCharacterx(9)Código classificação tributáriaCod. Class. Trib.Código Classificação TributáriaNO
cod-cred-presCharacterx(10)Código crédito presumidoCod. Cred. PressCódigo Crédito PresumidoNO
cod-class-fiscCharacter9999.99.99Classificação fiscalClassif. FiscalClassificação Fiscal (NCM)NO
cod-nbsCharacterx(20)Código NBSCód. NBSCódigo NBSNO
cod-cta-patCharacterx(18)Conta patrimonialConta PatrimonialCódigo Conta PatrimonialNO
cod-mod-dfeCharacterx(5)Modelo do documento fiscal eletrônicoModelo DFeCódigo do modelo do documento fiscal eletrônicoNO
envio-autoLogicalYES/NOEnvia automanticamenteEnvio AutoEnviar evento automaticamenteYESINITIAL NO
Índice primário
idx-cen-regra

num-id-cenario | num-id-regra



Índice secundário
idx-regra-validadedata-inicial | data-final
idx-regra-estabcod-estabel
idx-regra-EMITcod-emitente
idx-regra-ativocod-cta-pat
idx-regra-doccod-fin-nfe | cod-tipo-nf-cred-deb | nat-operacao
idx-regra-itemit-código | cod-cclass-trib | cod-cred-pres | cod-class-fisc | cod-nbs


Tabela hist-evento-trib: 

DatabaseTable NameLabelDescription
mgindhist-evento-tribHistórico Eventos TributosHistórico de alterações cadastrais de cenários e regras dos eventos
Field NameData TypeFormatLabelColumn LabelDescripton/Help TextMandatoryObservação
dat-alteracaoDate99/99/9999Data AlteraçãoData AlteraçãoData da AlteraçãoYES
cod-hora-alterCharacter99:99:99Hora AlteraçãoHora AlteraçãoHora da AlteraçãoYES
cod-eventoCharacterx(8)EventoEventoCódigo do eventoYESExemplo: 112110, 211110, 211130
nome-tabelaCharacterx(30)Nome TabelaNome TabelaNome da tabela alteradaYES
cod-campoCharacterx(30)Field Name CampoField Name CampoField Name do CampoYES
cod-usuarioCharacterx(20)Código UsuárioCódigo UsuárioCódigo do usuário logadoYES
num-id-cenarioCharacterx(20)Código cenárioCódigo cenárioCódigo cenárioYES
num-id-regraCharacterx(20)Código sequência regraCódigo sequência regraCódigo sequência regraNO
cod-label-campoCharacterx(50)Label CampoLabel CampoLabel do CampoNO
cod-conteudo-iniCharacterx(300)Conteúdo InicialConteúdo InicialConteúdo inicial do campo, antes da alteraçãoNO
cod-conteudo-finCharacterx(300)Conteúdo FinalConteúdo FinalConteúdo final do campo, após a alteraçãoNO
Índice primário
idx-hist-1

dat-alteracao | cod-hora-alter | num-id-cenario | num-id-regra | cod-campo



Índice secundário
idx-hist-2nome-tabela | cod-usuario


Tabela agenda-evento-trib:

DatabaseTable NameLabelDescription
mgindagenda-evento-tribAgendamento Eventos TributosGestão dos agendamentos para geração automática dos Eventos
Field NameData TypeFormatLabelColumn LabelDescripton/Help TextMandatoryObservação
cod-eventoCharacterx(8)EventoEventoCódigo do eventoYESExemplo: 112110, 211110, 211130
dt-cria-agendaDatedd/mm/aaaaData agendamentoData agendamentoData em que foi realizado o agendamentoNO
cod-hora-agendaCharacter99:99:99Hora agendamentoHora agendamentoHora em que foi realizado o agendamentoNO
cod-estabelCharacterx(5)EstabelecimentoCod EstabCódigo do estabelecimentoYES
periodo-execucaoInteger>9PeríodoPeríodoPeríodo dos documentosNO1 - Dia anterior, 2 - Últimos 7 dias, 3 - Mês anterior (fechado), 4 - Hoje, 5 - Mês atual (até hoje)
num-ped-hojeInteger>>>>>>>>>9Número PedidoPedidoNúmero PedidoYESNúmero do pedido que será gerado na data de hoje.
num-ped-hoje-idCharacterx(50)Número Pedido IDPedido IDNúmero Pedido IDYES
num-ped-recorrenteInteger>>>>>>>>>9Número Pedido RecorrênciaPed. Recor.Número Pedido RecorrênciaNO
num-ped-recorrente-idCharacterx(50)Número Pedido Recorrência IDPed. Reco. IDNúmero Pedido Recorrência IDNO
Índice primário
idx-agend-eventcod-evento, cod-estabel


Índice secundárioCampos
idx-agend-estabcod-estabel
idx-pedidonum-ped-hoje
idx-pedido-idnum-ped-hoje-id
idx-recorrencianum-ped-recorrente
idx-recorrencia-idnum-ped-recorrente-id


Cenários Automatização Eventos (html.mcd.cenarioEventoTributos)


Foi desenvolvido o programa que permite cadastrar os cenários e regras que serão utilizados para a geração automática dos eventos. A solução oferece autonomia na parametrização da busca de documentos eletrônicos, permitindo ajustes conforme o tipo de evento e as particularidades de cada estabelecimento.


1) Listagem:

Na listagem é apresentado a lista de todos os cenários que foram inseridos na base, contendo as ações de Editar ou Duplicar um cenário já existente. 
















2) Botão Remover:

Ao selecionar algum registro na listagem, o botão Remover é habilitado, e se acionado será apresentada uma lista para conferência dos registros para exclusão. 

Caso selecionado Sim, os registros são excluídos do sistema e a listagem é atualizada. Caso selecionado Não, nenhuma alteração é realizada e o usuário retorna para a listagem dos registros. 











3) Botão Histórico:

Ainda na listagem, é possível visualizar o histórico de atividade como inclusão, edição e exclusão nos cenários. Para isto, basta acionar o botão Histórico e será apresentado a lista do histórico de atividade em cenários.

É  possível também filtrar as atividades por meio do botão Busca avançada, filtrando por data inicial e final da alteração, usuário e cenário. 













4) Inclusão e Edição:

É possível realizar a inclusão de cenários através do botão Novo cenário, a partir da listagem. Este botão irá redirecionar o usuário para a tela de inclusão de cenários:


Quanto a tela de inclusão, existem alguns comportamentos a serem destacados:

  • Cenário: o campo Cenário é um campo de sequência para controle interno dos cenários, portanto, não pode ser alterado e é carregado automaticamente ao abrir a tela;
  • Evento: o campo Evento possui, no momento, a possibilidade de incluir três eventos:  211110,  211128 e 211130. O campo Módulo origem é carregado conforme o evento escolhido.
  • Módulo origem: o campo Módulo origem determina quais são os parâmetros para inclusão e listagem das regras. No momento, apenas três módulos estão disponíveis: Ativo Fixo, Obrigações Fiscais e Recebimento.
  • Status: o campo Status indica se o cenário está ativo ou não. Só é possível cadastrar um cenário ativo por evento e não é possível ter mais de um cenário ativo com o mesmo evento para diferentes módulos.



Status do cenário

Pode ser cadastrado mais de um cenário para o mesmo evento, desde que esteja com o Status Inativo, pois apenas um cenário pode estar com o Status ativo.

Caso tente cadastrar um novo cenário, para um evento que já possui cenário ativo, ocorrerá mensagem de erro em tela "Não é permitido cadastrar um cenário ativo para um mesmo evento com outro módulo de configurado", ou "Já existe um cenário cadastrado para o mesmo evento e módulo de origem com status ativo".

O cenário que será considerado na geração dos eventos será o cenário com Status ativo.


O formulário de edição apresenta os mesmos campos que o formulário de inclusão, porém os campos EventoMódulo origem não podem ser alterados. O formulário de edição pode ser acessado a partir do ícone de lápis presente nos registros da listagem principal.














4.1) Cadastro/Manutenção de regras: 

Para cada cenário pode existe várias regras, pois o sistema oferece autonomia na configuração de buscas de documentos eletrônicos, adaptando-se às necessidades de cada evento e estabelecimento.


4.1.1) Listagem:

As colunas da listagem de regras são alteradas conforme o módulo que foi selecionado:

  • Módulos Recebimento, Faturamento e Obrigações Fiscais: Regra, Data Inicial, Data Final, Estabelecimento, Emitente, Natureza de Operação e Item.
  • Módulo Ativo Fixo: Regra, Data Inicial, Data Final, Estabelecimento e Conta Patrimonial.


4.1.2) Inclusão e Edição:

Os campos do formulário de inclusão e edição de regras também são condicionados pelo módulo de origem escolhido:

  • Módulos Recebimento, Faturamento e Obrigações Fiscais: Regra, Data Inicial, Data Final, Estabelecimento, Emitente, Finalidade NF-e, Tipo de nota fiscal de crédito e débito, Natureza de Operação, Item, Código Classificação Tributária, Código Crédito Presumido, Classificação Fiscal (NCM) e Código NBS.
  • Módulo Ativo Fixo: Regra, Data Inicial, Data Final, Estabelecimento e Conta Patrimonial.

















Quanto a tela de inclusão e edição de regras, existem alguns comportamentos a serem destacados:

  • O campo Regra é utilizado para controle interno e não pode ser alterado. Seu valor é calculado automaticamente pelo sistema.
  • O campo Tipo de Nota Fiscal de Crédito e Débito só será habilitado caso a Finalidade NF-e escolhida seja NF-e Nota de Crédito ou NF-e Nota de Débito. As opções do campo são apresentadas conforme o tipo que foi escolhido.
  • A edição de regra tem o mesmo comportamento da inclusão, com a diferença de que o campo Data Inicial ficará desabilitado. A edição pode ser acessada pelo ícone de lápis presente na listagem de regras.















Regra genérica

Caso o usuário cadastre uma regra genérica, isto é, com os campos marcados com a opção Todos, será exibido um alerta "Atenção! Não é recomendado criar regras genéricas, pois podem gerar eventos para todos os documentos", no entanto a inclusão irá ocorrer normalmente.


4.1.3) Botão Remover:

Ao selecionar algum registro na listagem, o botão Remover é habilitado, e se acionado será apresentada uma lista para conferência dos registros para exclusão. 

Caso selecionado Sim, os registros são excluídos do sistema e a listagem é atualizada. Caso selecionado Não, nenhuma alteração é realizada e o usuário retorna para a listagem dos registros.

 











Salvar inclusão ou edição de regras 

A efetivação do salvamento das regras no sistema irá ocorrer somente ao clicar no botão Salvar presente acima do formulário de cenários no canto superior direito da página. Enquanto isso, qualquer regra adicionada ou alterada não foi efetivada no sistema.


4.1.4) Botão Histórico

É possível visualizar um histórico de atividade nas regras dos cenários por meio do botão Histórico. Ao acionar o botão, é apresentada uma tela com a atividade nas regras dos cenários de automatização de eventos. 


 

Agendar Geração Automática de Eventos (html.mcd.agendadorEventoTributos)


Foi desenvolvido um programa que permite o agendamento da geração automática dos eventos, seguindo os cenários e regras pré-definidos. Vale ressaltar que o sistema processa apenas as regras do cenários com status Ativo. Ao final de cada execução, será gerado um relatório em Excel para conferência dos documentos eletrônicos e eventos processados.


1) Listagem:

Na listagem é apresentado a lista de todos os agendamentos do tipo Oficial, contendo a ação de eliminar o agendamento.   


2) Botão Novo Agendamento:

O agendamento oferece dois tipos de execução, e para cada tipo de execução, os parâmetros da tela se adaptam:


Prévia: 

  • Esta opção não efetiva a criação os eventos e deve ser usada para conferencia e validação, dos documentos eletrônicos encontrados e dos eventos gerados. 
  • A geração prévia não cria o agendamento na listagem da tela principal. Quando o geração é solicitada pelo botão Gerar Agendamento RPW será apresentado uma mensagem em tela informando o numero do pedido, exemplo "Prévia gerada com sucesso! Acompanhe o pedido 272836 no programa Monitor de Pedidos";
  • O campo Evento possui, no momento, a possibilidade de geração para três eventos:  211110,  211128 e 211130;
  • A Data Inicial e Data Final é o período em que os documentos eletrônicos serão buscados para geração do evento. A data inicial e final deve ser no máximo um período de 1 mês, do contrário ocorrerá a mensagem de erro "O intervalo entre a Data Inicial e Data Final não pode ser superior a 1 mês".  


Oficial:

  •  Esta opção efetiva a criação dos eventos em lote;
  • A geração oficial cria o agendamento na listagem da tela principal;
  • O campo Evento possui, no momento, a possibilidade de geração para três eventos:  211110,  211128 e 211130;
  • O campo Periodicidade é o período em que os documentos eletrônicos serão buscados para a geração do evento. As opção são: 
    • Dia anterior: É a data de ontem, exemplo: Hoje é 23/03/2026, para essa opção será a data de 22/03/2026 até 22/03/2026;
    • Últimos 7 dias: É o período de 7 dias atrás, exemplo: Hoje é 23/03/2026, para essa opção será a data de 16/03/2026 até 22/03/2026;
    • Mês anterior (fechado): É o período do mês anterior, exemplo: Hoje é 23/03/2026, para essa opção será a data de 01/02/2026 até 28/02/2026;
    • Hoje: É a data de hoje, exemplo: Hoje é 23/03/2026, para essa opção será a data de 23/03/2026 até 23/03/2026;
    • Mês atual (Até hoje): Será o mês atual até da data de hoje, exemplo: Hoje é 23/03/2026, para essa opção será a data de 01/03/2026 até 23/03/2026.


3) Botão Atualizar:

Cada registro de agendamento na listagem há um um Status, podendo ser: 

  • Aguardando: Significa que a geração ainda está em espera na fila do RPW, ou processando a geração; 
  • Falha: Significa que ocorreu erro durante a geração dos eventos;
  • Concluído: Significa que o processamento foi concluído.

 Quando o agendamento está com o Status Aguardando na listagem, o botão Atualizar pode ser acionado para conferência do Status do pedido, e se o pedido já foi processado o status é atualizado na listagem, podendo ficar como Falha ou Concluído.


4) Botão Monitor de Pedidos:

Esse botão é um facilitador para a consultar os pedidos agendados no programa Monitor Pedidos Execução (HTML). O monitor será aberto já com o filtro aplicado, buscando pelo programa gerador dos eventos que é  "cdGeraEventosAuto", posicionando assim a listagem com os pedidos gerados a partir do programa Agendar Geração Automática de Eventos.


5) Relatório excel

Após cada pedido processado, será gerado no diretório SPOOL do servidor RPW um relatório excel com o nome "ConfDoctosEventosAuto+Ano+Mês+Dia+_+Hora+Min+Segundo".

Exemplo: ConfDoctosEventosAuto20260316_111101.xls 



Como o processamento para geração dos eventos funcionará? 

  • Ao iniciar o processamento o produto irá buscar o cenário ativo e regras, de acordo com os parâmetros informados em tela.
  • Mandará as regras para a API do módulo responsável. O módulo responsável é o que foi informando durante o cadastro de cenário para o Evento em questão;
  • A API do módulo responsável, ou API da área, irá buscar todos os documentos e itens do documentos, se for necessário dependendo do evento, para a geração dos eventos;
  • Se o tipo de geração for oficial, a criação dos eventos será efetivada na base, podendo ser consultados no programa Evento Tributos (html.mcd.eventoTributos);
  • Será gerado a planilha de conferência no diretório SPOOL do servidor RPW, contendo a listagem de erro, documentos, itens do documento, eventos e parâmetros. 


O relatório irá conter as abas: 

  • Inconsistências: Irá apresentar essa aba apenas se ocorrer alguma inconsistência durante o processamento, listando os erros encontrados;
  • Documentos: Irá apresentar essa aba apenas se encontrar os documentos eletrônicos, para a geração dos eventos, listando todos os documentos encontrados de acordo com as regras configuradas no programa Cenários Automatização Eventos (html.mcd.cenarioEventoTributos);
  • Itens do Docto: Irá apresentar essa aba apenas se encontrar os itens dos documentos eletrônicos, para a geração dos eventos que são pelos itens da nota, listando todos os itens encontrados de acordo com as regras configuradas no programa Cenários Automatização Eventos (html.mcd.cenarioEventoTributos);
  • Eventos:  Irá apresentar essa aba apenas se gerar os Eventos, de acordos com os documentos e itens do documentos (se houver conforme evento), listando todos os eventos gerados. 
  • Parâmetros: Essa aba sempre será apresentada, listando os parâmetros informados para o agendamento e geração dos eventos.   


Principais mensagens de erro apresentadas no relatório: 

  • Se não encontrar cenário cadastrado de acordo com os parâmetros informados em tela, irá gerar a mensagem de erro 58214 e abortará a geração;
  • Se não encontrar regras para o cenário encontrado de  acordo com os parâmetros informados em tela, irá gerar a mensagem de erro 58215 e abortará a geração;
  • Se não encontrar a API das áreas, irá gerar a mensagem de erro 58216 e abortará a geração;
  • Se não encontrar documentos conforme regras cadastradas para o cenário, irá gerar a mensagem de erro 58217 e abortará a geração.

 


Inconsistências

Poderá ser apresentado outras mensagens de inconsistências, e todas as mensagens serão listadas na aba Inconsistências da planilha, garantindo a segurança da geração dos eventos em lote durante o processamento. 

 


04. ASSUNTOS RELACIONADOS