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=
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. […]
{{brizy_dc_image_alt entityId=
Protheus lento? Os erros de infraestrutura e banco que ninguém te conta
Seu Protheus está lento… mas talvez o problema não seja o sistema Se você usa Protheus no dia a dia, provavelmente já passou por isso: a tela demora para carregar, um simples faturamento vira um teste de paciência, relatórios levam minutos (ou mais) para sair… e no final, a conclusão mais comum é sempre a […]
{{brizy_dc_image_alt entityId=
POUI vs ADVPL: qual escolher no Protheus sem travar seu projeto?
Se você trabalha com Protheus há algum tempo, provavelmente já passou por isso: surge uma demanda nova, alguém comenta sobre POUI, outro fala que resolve com ADVPL, e pronto… começa aquele debate que parece mais opinião do que decisão técnica. E é exatamente aqui que muitas empresas começam a errar. Não porque escolheram POUI ou […]
{{brizy_dc_image_alt entityId=
Primeiros Passos no POUI: participe do workshop ao vivo com a Rayanne
Se você sente que está perdendo tempo tentando entender como usar o POUI da melhor forma… relaxa, você não está sozinho. A real é que muita gente até sabe que o POUI pode ajudar — mas trava logo no começo. E é exatamente por isso que a gente criou esse workshop. No dia 07 de […]