MVC no Protheus¶
Status: parcial — afirmações verificadas, com lacunas declaradas.
[n · F]remete à fontenda lista de fontes; a letra marca a procedência: F fato em fonte oficial TOTVS/TDN · S fonte secundária (blog, fórum) · unverified sem fonte que sustente.
Escopo desta seção¶
A anatomia de uma tela MVC — ModelDef, ViewDef, MenuDef e BrowseDef —, a
nomenclatura Modelo 1 / Modelo 3 (e por que ela merece ressalva) e o par
FWFormModel / FWFormView que sustenta a separação entre regra e interface.
As três funções reservadas¶
- As três funções reservadas:
ModelDefconstrói a definição do Model, que contém as regras de negócio;ViewDefconstrói a View, ou seja, a interface;MenuDefdefine as operações disponíveis para o modelo de dados.[69 · F] - Cada fonte MVC em
.PRWsó pode conter umaModelDef, umaViewDefe umaMenuDef.[69 · F] - A cadeia completa inclui
BrowseDef();ModelDefdevolveFWFormModel(regras de negócio) eViewDefdevolveFWFormView(layout visual).[50 · F]
Sobre a fonte [50]
É documento escrito para agentes de IA no repositório oficial TOTVS
engpro-advpl-tlpp-skills — oficial pela origem, mas não a página canônica do
framework. Mantido como fonte oficial por procedência, não por autoridade de manual.
Modelo 1, Modelo 3, Modelo X — com ressalva¶
- "Modelo 1" é uma entidade/tabela; "Modelo 3" é mestre-detalhe com cabeçalho e grid; existe ainda "Modelo X" com três níveis. O exemplo citado é SBM (Modelo 1), SBM+SB1 (Modelo 3) e SBM+SB1+SB2 (Modelo X).[62 · S]
A nomenclatura não é normativa
"Modelo 1/3" não aparece no manual oficial do MVC[69] nem na página "Fontes em MVC"[32]. É convenção de mercado — útil para conversar, ruim para citar como termo do manual.
A estrutura, na prática¶
FWFormViewfornece interface gráfica para um model (FWFormModel/MPFormModel) e suporta formulário do tipo FormField, com um registro por vez, e do tipo FormGrid.[30 · F]- Padrão de
ViewDef:FWFormView():New(),FWFormStruct(2,"SA1"),SetModel(oModel)eAddField(...).[30 · F] - No
ModelDefusa-seFWFormStruct(1, alias); em fonte existente,FWLoadModel("MATA010_MVC")carrega o model pronto.[30 · F] FWFormStructfaz a carga dos campos do dicionário para a estrutura.[30 · F]- Rotinas MVC padrão declaram Model e componentes (master mais grid), o que evidencia o padrão mestre-detalhe:
TECA080comAddFields AA6MASTEReAddGrid AA6GRID.[32 · F]
Lacunas declaradas¶
Lacuna: as páginas TDN próprias de
FWFormModel,FWFormBrowseeFWFormStructnão foram lidas. A evidência de MVC aqui vem deFWFormView[30] e do manual oficial em PDF[69].Lacuna: a correspondência com TLPP — desde quando o MVC roda em
.tlpp— está em Migração.
Fontes¶
[30] · [32] · [50] · [62] · [69] — ver lista completa.