Relaciones y clave primaria en MVC
Distingue identidad del modelo de relación entre submodelos.
Descripción general
SetPrimaryKey define identidad del primer FormField, no clave por grid. El framework puede usar clave declarada en SX2. SetRelation define carga y vínculo del detalle con propietario e incluye orden del detalle. Use xFilial de tabla hija: el compartimiento puede diferir. La configuración no invocada usa ZZ1/ZZ2 hipotéticas que deben existir en diccionario. Configure antes de Activate y pruebe alta, cambio, copia y baja. (Fuentes: refs. 1–2.)
Ejemplo comentado
#Include "Protheus.ch"
User Function Ed615()
// Modelo ZZ1/ZZ2 definido y aún no activo; bloques no invocados.
Local bClave := {|oModelo| oModelo:SetPrimaryKey({"ZZ1_FILIAL","ZZ1_COD"})}
Local bRelacion := {|oModelo| oModelo:SetRelation("ZZ2DETAIL", ;
{{"ZZ2_FILIAL",'xFilial("ZZ2")'}, {"ZZ2_COD","ZZ1_COD"}}, ;
"ZZ2_FILIAL+ZZ2_COD+ZZ2_ITEM")}
ConOut(ValType(bClave)+ValType(bRelacion))
Return NilCrea dos bloques, BB; no crea tablas ni configura modelo real. En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.
- Compruebe IDs, expresiones, tipos, duplicados e integridad. Clave del maestro no es orden completo del detalle.
- En revisión: ejemplo editorial no compilado ni ejecutado en Protheus. Comprobar includes, release, RDD y contexto antes de probar.

Comentarios
Todavía no hay comentarios aprobados.
Inicia sesión con Google o Microsoft para comentar.