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=
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 […]
{{brizy_dc_image_alt entityId=
Adicionar validação na exclusão do documento de saída no Protheus
Se tem uma coisa que pode virar dor de cabeça rápida dentro do Protheus, é exclusão indevida de documento de saída. E não estamos falando só de erro operacional… estamos falando de impacto fiscal, retrabalho e, em alguns casos, até problema com auditoria. Recentemente, em um cliente, surgiu exatamente esse cenário:como impedir que qualquer usuário […]
{{brizy_dc_image_alt entityId=
Big Techs em Guerra: como Apple, Google, TOTVS, Amazon e Microsoft estão redesenhando o mercado de tecnologia
Se você olhar as principais movimentações recentes do mercado de tecnologia, pode até parecer que são notícias isoladas. Uma empresa mudando produção, outra lançando estratégia de produto, outra investindo em logística. Mas quando você conecta os pontos, fica muito claro que existe um padrão por trás disso tudo. Gigantes como Apple, Google, Amazon, Microsoft e […]
{{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. […]