← ClaudeAtlas

advpl-pontos-entradalisted

Pontos de Entrada (PEs) no Protheus — User Function NOME(PARAMIXB[1..N]), naming patterns (MA440LOK/MT100GRV/A300STRU), retorno via Return ou PARAMIXB[última-posição], convenção _pe.prw, ExecBlock/ExistBlock no fonte TOTVS, ~280 PEs catalogadas em pontos_entrada_padrao. Use ao criar/editar PE, refatorar rotina customizada que devia ser PE, ou investigar comportamento estranho em rotina padrão.
JoniPraia/plugadvpl · ★ 12 · Data & Documents · score 66
Install: claude install-skill JoniPraia/plugadvpl
# advpl-pontos-entrada — Customização via PE **Ponto de Entrada (PE)** é o mecanismo oficial TOTVS para customizar comportamento de rotinas padrão **sem alterar o fonte original**. Toda rotina Protheus principal tem dezenas de PEs cadastrados em pontos estratégicos (antes de validar, antes de gravar, antes de imprimir, etc.). O cliente implementa uma `User Function` com **nome exato e assinatura esperada** pela rotina TOTVS. Em runtime, o framework chama via `ExecBlock` se a função existir no RPO (`ExistBlock` confirma). ## Quando usar - Usuário pede "criar ponto de entrada", "implementar PE", "customizar rotina padrão TOTVS". - Edit em arquivo cuja função casa com pattern de PE (ver regex abaixo). - Investigar comportamento "modificado" de rotina TOTVS — provavelmente há PE ativa. - Antes de copiar rotina TOTVS inteira para customizar → **sempre prefira PE**. - Customização de cadastro MVC padrão (PE STRU/MOD/VLD/COMMIT) — veja `[[advpl-mvc-avancado]]`. ## Pattern de naming Regex que casa a esmagadora maioria dos PEs oficiais: ``` ^[A-Z]{2,4}\d{2,4}[A-Z_]*$ ``` Exemplos: - `MT100LOK` — Módulo MT (Faturamento) + 100 (rotina) + LOK (linha OK). - `M460FIM` — MATA460 — fim do processamento. - `MA410LOK` — MATA410 — Pedido de venda, line OK. - `MA410BUT` — MATA410 — botões adicionais. - `FA080INC` — FINA080 — pós-inclusão. - `SF2100I` — SF2 + 100 + I (post Insert). - `A300STRU` — CNTA300 — estrutura MVC (model + view). ### Sufixos comuns por classe de hook | Sufixo |