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

Relacionamentos e chave primária no MVC

Distingue a identidade do modelo da ligação entre seus submodelos.

Relacionamentos e chave primária no MVCAdvPL
01 · VISÃO GERAL

Visão geral

SetPrimaryKey define a identidade do primeiro FormField; não recebe uma chave por grid. Quando SX2 já declara a chave, o framework pode aproveitá-la. SetRelation define como carregar e atualizar a ligação do detalhe com seu proprietário, incluindo a expressão de ordenação do detalhe. Use xFilial da tabela filha, pois compartilhamento do mestre e do detalhe pode diferir. O exemplo é configuração não invocada de ZZ1/ZZ2 hipotéticas, cujos campos e índices precisam existir no dicionário. Configure antes de Activate e teste inclusão, alteração, cópia e exclusão. (Fontes: refs. 1–2.)

03 · EXEMPLO PRÁTICO

Exemplo comentado

#Include "Protheus.ch"

User Function Ed615()
    // Modelo ZZ1/ZZ2 ja definido e ainda nao ativado; blocos nao invocados.
    Local bChave := {|oModelo| oModelo:SetPrimaryKey({"ZZ1_FILIAL","ZZ1_COD"})}
    Local bRelacao := {|oModelo| oModelo:SetRelation("ZZ2DETAIL", ;
        {{"ZZ2_FILIAL",'xFilial("ZZ2")'}, {"ZZ2_COD","ZZ1_COD"}}, ;
        "ZZ2_FILIAL+ZZ2_COD+ZZ2_ITEM")}
    ConOut(ValType(bChave)+ValType(bRelacao))
Return Nil
Resultado esperado

Cria dois blocos, BB; não cria tabelas nem configura um modelo real. Em revisão: exemplo editorial não compilado nem executado em Protheus. Conferir includes, release, RDD e contexto antes de homologar.

BOAS PRÁTICAS
  • Confirme IDs, expressões, tipos, duplicidades e integridade. Não use a chave do mestre como se fosse a ordem inteira do detalhe.
  • 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. FWFormModel. Seções SetRelation, SetPrimaryKey, SetOperation, VldData, CommitData e GetErrorMessage. Consulta em 2026-10-27.
  2. Atilio. dan-atilio/AdvPL. Exemplos/MVC/zMVCMd3.prw. Arquivo completo consultado; adaptação editorial. Consulta em 2026-10-27.
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