Atualizar automaticamente datas na NFe SEFAZ no Protheus (sem retrabalho)

Se você usa o Protheus no dia a dia, já sabe como funciona.

Você abre a tela da NFe SEFAZ…
E lá vai você ajustar data manualmente de novo.

Pode parecer detalhe, mas isso acontece todos os dias.
E quando soma no tempo da operação, vira retrabalho puro.

Foi exatamente esse cenário que vimos em um cliente.

E a pergunta foi direta:

“Tem como abrir a tela já com as datas atualizadas automaticamente?”

A resposta é: tem sim.
E sem gambiarra.

O problema por trás disso

A rotina padrão da NFe SEFAZ não traz inteligência nos parâmetros.

Ou seja:

  • Cada usuário define o filtro do jeito que quiser
  • Datas ficam desatualizadas
  • Consultas podem sair inconsistentes
  • E o time perde tempo ajustando sempre a mesma coisa

Agora imagina isso rodando em escala.

Você começa a ter:

  • Falta de padrão
  • Erro humano
  • Perda de produtividade

A ideia da solução

Aqui a lógica foi simples:

Interceptar a execução da rotina e já entrar com os parâmetros certos.

No nosso caso:

  • Sempre buscar os últimos 3 dias
  • Sem depender do usuário lembrar disso

Ou seja, a tela já abre pronta para uso.

Como fizemos isso

Usamos o ponto de entrada ChkExec, que é acionado quando o usuário executa uma rotina.

A lógica é:

  • Identificar se a rotina chamada é a NFe SEFAZ (SPEDNFE)
  • Se for, rodar uma função que ajusta os parâmetros automaticamente

Código do ChkExec

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} User Function ChkExec
Ponto de Entrada acionado ao clicar em alguma opção no menu
@type Function
@author Atilio
@since 16/10/2025
@see https://tdn.totvs.com/display/public/framework/CHKEXEC+-+Dispara+ponto+de+entrada
/*/

User Function ChkExec()
Local lContinua := .T.
Local cFuncao := Upper(ParamIXB)

//Se for a função NFE Sefaz
If ("SPEDNFE" $ cFuncao) .And. ! IsBlind()
u_zAtuParNfe()
EndIf

Return lContinua

O que esse trecho faz

Aqui não tem mistério:

  • Captura a função executada
  • Verifica se é a SPEDNFE
  • Se for, chama a customização

Sem impacto em outras rotinas.
Sem risco de efeito colateral.

A customização

Aqui é onde realmente resolvemos o problema.

A função abaixo define os parâmetros automaticamente antes da tela abrir.

Código da zAtuParNfe

//Bibliotecas
#Include "TOTVS.ch"

/*/{Protheus.doc} zAtuParNfe
Função para atualizar as datas de emissão de/até na tela de parâmetros da tela NFe Sefaz
@type user function
@author Atilio
@since 02/03/2026
@obs Similar ao SetMvValue, mas usando ParamSave pois é um ParamBox
/*/

User Function zAtuParNfe()
Local aArea := FWGetArea()
Local cGrupo := FWGrpCompany()
Local cFil := FWCodFil()
Local cLoadName := "SPEDNFE" + cGrupo + cFil
Local aRespostas := {}
Local aBackup := NgSalvaMvPa()

//Define as respostas
aRespostas := Array(5)
aRespostas[01] := "1-Saída " //Tipo NFe
aRespostas[02] := "2-Sem filtro " //Filtra
aRespostas[03] := "1 " //Série
aRespostas[04] := DaySub(Date(), 3) //Data De
aRespostas[05] := Date() //Data Até

//Define agora nos MV_PAR
MV_PAR01 := aRespostas[01]
MV_PAR02 := aRespostas[02]
MV_PAR03 := aRespostas[03]
MV_PAR04 := aRespostas[04]
MV_PAR05 := aRespostas[05]

//Atualiza os parâmetros em memória
ParamSave(cLoadName, aRespostas, "1")

NgRetAuMVPa(aBackup)
FWRestArea(aArea)
Return

O que isso resolve na prática

Não é só sobre automatizar data.

Você passa a ter:

  • Padronização no uso da rotina
  • Menos erro humano
  • Mais agilidade no dia a dia
  • Mais confiabilidade nas consultas

E isso escala muito rápido dentro da operação.

Um detalhe importante

Aqui usamos ParamSave — e isso faz diferença.

Como a tela trabalha com ParamBox, essa é a forma correta de persistir os valores.

Se fizer diferente, pode ter comportamento inconsistente.

Onde você pode aplicar isso

Esse padrão não serve só para NFe.

Dá pra aplicar em:

  • Pedido de venda
  • Financeiro
  • Relatórios
  • Integrações
  • Qualquer rotina com ParamBox

Ou seja, você começa com um ajuste simples…
E quando vê, melhorou a operação inteira.

O ponto que pouca gente fala

Isso aqui não é sobre código.

É sobre maturidade.

Operação que cresce:

  • Não depende de usuário lembrar processo
  • Não aceita retrabalho como padrão
  • Automatiza o que é repetitivo

E o Protheus permite isso — só precisa usar direito.

Index

Categorias

Sobre o Autor

Foto do Autor
Fábio Hayama

Apaixonado por gestão, tecnologia e inovação, Fábio Hayama possui mais de 15 anos de experiência no universo do ERP Protheus, estratégia empresarial e automação de processos.

Leia mais sobre o Fábio

Entre em contato conosco

Veja mais artigos relacionados

{{brizy_dc_image_alt entityId=
Como impedir a alteração da numeração da Nota Fiscal sem perder a facilidade do Ctrl+C
Em projetos de sustentação e melhorias no Protheus, muitas vezes encontramos situações que parecem pequenas, mas que podem gerar grandes dores de cabeça no dia a dia da operação. Recentemente nos deparamos com um cenário interessante em um cliente. Durante o processo de faturamento, os usuários precisavam consultar a numeração da Nota Fiscal antes da […]
{{brizy_dc_image_alt entityId=
3 coisas que já automatizamos com IA + Protheus na prática
Empresas passam anos investindo em ERP, implantando processos, organizando áreas e treinando equipes. Mesmo assim, em muitos casos, a operação continua dependendo de planilhas paralelas, validações manuais, retrabalho e pessoas apagando incêndio o dia inteiro. E é justamente aí que entra um ponto que muita empresa ainda não percebeu: a inteligência artificial não veio para […]
{{brizy_dc_image_alt entityId=
Guia de Sobrevivência Para Quem Está Começando no Protheus
Entrar no universo do ERP da TOTVS pode parecer simples olhando de fora. Afinal, o mercado fala o tempo todo sobre oportunidades, falta de profissionais e crescimento da área. Mas quem já tentou começar no ecossistema Protheus sabe que a realidade é um pouco diferente. No começo, surgem várias dúvidas ao mesmo tempo. “Por onde […]
{{brizy_dc_image_alt entityId=
n8n, IA e Protheus: dá para automatizar muita coisa sem projetos gigantes
O problema nunca foi o Protheus. Foi a forma como muita empresa tentou automatizar Durante muitos anos, falar sobre automação dentro do ERP significava praticamente a mesma coisa: projeto longo, documentação infinível, customizações enormes, integração complicada, custo alto e meses esperando alguma entrega começar a gerar valor. Muita empresa ficou traumatizada com esse modelo. E […]