Usina BRAdvPL Guia
Entrar
← Todos os tópicos
GUIA PRÁTICOEm revisão

Validações e gatilhos no modelo MVC

Separa validação de dados de preenchimento por gatilho.

Validações e gatilhos no modelo MVCAdvPL
01 · VISÃO GERAL

Visão geral

Um gatilho deriva um valor; isso não dispensa validar o resultado no modelo. FWStruTrigger fornece quatro elementos: campo de origem, campo de destino, condição e execução para AddTrigger. O exemplo cria um gatilho sem busca em tabela, usando campos fictícios que precisam existir na estrutura. VldData verifica o modelo/submodelos; CommitData só deve ser chamado após validação e com a persistência correta configurada. Não repetir a mesma regra com efeitos colaterais em evento visual e gravação. (Fontes: refs. 1–3.)

03 · EXEMPLO PRÁTICO

Exemplo comentado

// Fragmento: oStruct possui ED_ORIG e ED_DEST, ambos caracteres.
Local aGatilho := FWStruTrigger("ED_ORIG","ED_DEST","Upper(M->ED_ORIG)",.F.,"",0,"","","ED704")
// A regra e autoral fixa; nao recebe expressao externa.
oStruct:AddTrigger(aGatilho[1],aGatilho[2],aGatilho[3],aGatilho[4])
Resultado esperado

Registra a definição do gatilho; não ativa modelo nem grava dados. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

BOAS PRÁTICAS
  • Testar origem, destino, dependências cíclicas e validação recusada. Regras textuais são código, não entrada livre do usuário.
  • Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. FWStruTrigger. Array de definição e AddTrigger. Consulta em 2026-10-28.
  2. TOTVS. FWFormModel. VldData e CommitData. Consulta em 2026-10-28.
  3. Atilio. dan-atilio/AdvPL. Exemplos/Vídeo Aulas/018 - Modelo 1 em MVC/zModel1.prw. Arquivo completo analisado; adaptação editorial. Consulta em 2026-10-28.
Situação
Em revisão
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha