← ClaudeAtlas

advpl-mvc-tlpplisted

Use ao criar/editar rotina MVC (browse, ModelDef/ViewDef/MenuDef, cadastro com inclusão) em fonte .tlpp com namespace, migrar MVC de .prw pra .tlpp, ou diagnosticar "browse abre mas Incluir/Visualizar não respondem" / "menu sem opções" em TLPP. Cobre a resolução por namespace (FWLoadModel/ACTION/SetMenuDef recebem namespace.funçãoPrincipal), regras do U_, pré-requisito release 12.1.2410 + LIB 20240520, FWLoadBrw/BrowseDef e FWMVCRotAuto sem StaticCall. Para MVC em .prw clássico use advpl-mvc.
JoniPraia/plugadvpl · ★ 13 · Web & Frontend · score 69
Install: claude install-skill JoniPraia/plugadvpl
# advpl-mvc-tlpp — MVC do Protheus em TLPP (namespace) Em `.tlpp` o framework MVC **muda o mecanismo de resolução**: o MVC clássico localiza `MenuDef`/`ModelDef`/`ViewDef` como `Static Function` pelo **nome do fonte** via `StaticCall` — e a `StaticCall` é **inibida em TLPP**. No TLPP, essas funções viram `User Function` dentro do `namespace`, e tudo que o framework recebe passa a ser **`namespace.funçãoPrincipal`** (a função do browse), nunca o nome do arquivo. > O miolo do MVC (MPFormModel, AddFields/AddGrid, SetRelation, FWModelEvent, FWFormView) **não muda** — veja `[[advpl-mvc]]`. O que muda é a **casca de resolução**: declaração das *Def e as strings passadas ao framework. ## Pré-requisitos (cheque ANTES de escrever) | Requisito | Mínimo | Se não atender | |---|---|---| | Release Protheus | **12.1.2410** (parcial na LIB 20240520) | MVC em `.tlpp` **não funciona** — orientação oficial TOTVS: mantenha o fonte em `.prw` | | LIB (framework) | **20240520**+ | idem | | Includes | FWMVCDEF.CH / tlpp-core.th **atualizados** da LIB nova | erros de compilação/resolução | | Encoding do fonte | `.tlpp` = **UTF-8** | mojibake em acentos (veja `[[advpl-encoding]]`) | Sintoma clássico de ambiente antigo (documentado pela TOTVS): **browse abre, mas o menu fica sem opções / Incluir não responde** — e o mesmo fonte renomeado pra `.prw` funciona. ## O que muda de .prw pra .tlpp | Aspecto | `.prw` clássico | `.tlpp` com namespace | |---|---|---| | `MenuDef`/`ModelDef`/`ViewDef` | `St