GFEA052
PE durante geracao de Frete (GFE052). Permite customizar calculo de tarifa antes do commit.
Assinatura: User Function GFEA052() --> NIL
Retorna: NIL
Modulo: SIGATMS · Rotina: GFEA052 · Momento: Geracao do frete
Parametros (PARAMIXB)
// GW4 (frete) ainda nao gravado, em M->Retorno
NIL
Exemplo
User Function GFEA052()
// Custo de frete custom (regra do cliente)
If M->GW4_DESTI == "ZN" // Zona Norte
M->GW4_VLRBASE *= 1.15 // 15% adicional
EndIf
ReturnPegadinhas
- Alteracao de M->GW4_* afeta frete gerado.
- Multiplas tabelas de frete (GW4 vs GWA) — confirmar qual mexer.
Quando usar
- Customizacao da rotina padrao Protheus
Cuidados gerais
- Idempotencia: PEs podem disparar mais de uma vez em retry ou reprocessamento — codigo deve ser seguro pra rodar varias vezes sem efeito colateral.
- Performance critica: PE roda em fluxo do usuario. Operacoes pesadas (loop sobre milhares de registros, chamada HTTP sincrona) podem travar a tela. Use
StartJobpra background. - Em JOB sem AppServer ativo: PE chamado via RPC pode ter
cFilAnt/cEmpAntvazios — sempre garantaRpcSetEnv. - Begin Sequence + Recover: erros nao tratados em PE podem deixar transacao Protheus em estado inconsistente. Sempre envolver em
Begin Sequence ... End Sequence. - Logging com contexto: use
FwLoggercom identificacao do PE no log — facilita troubleshooting.
Tabelas afetadas
- GW4 — frete (geralmente posicionada quando PE dispara)
- Relacionadas: GWN