CTRA040
PE apos medicao de contrato (CTRA040). Trigger pra geracao automatica do titulo a pagar.
Assinatura: User Function CTRA040() --> NIL
Retorna: NIL
Modulo: SIGAGCT · Rotina: CTRA040 · Momento: Pos-medicao
Parametros (PARAMIXB)
// CNE (medicao) posicionadaRetorno
NIL
Exemplo
User Function CTRA040()
// Medicao gera titulo automatico se config ativo
If GetMV("MV_CNTITAU") == "S"
U_GeraTitDeMedicao(CNE->CNE_NUMERO, CNE->CNE_MEDICAO)
EndIf
ReturnPegadinhas
- Medicao parcial gera titulo parcial — controle de "executado" e critico.
- Em contrato com glosa, valor liquido pode diferir do bruto.
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
- CNE — medicao de contrato (geralmente posicionada quando PE dispara)
- Relacionadas: SE2