Vinculación Implícita y Explícita¶
Descripción General¶
La siguiente es la lista actual de tipos de reglas:
Tipo de regla | Vinculación explícita/implícita | Columnas de destino | Comentarios |
---|---|---|---|
Notificación | Explícito | La fuente de datos debe estar vinculada a la fuente de datos de vinilo (sellada). Los campos de destino que terminan en () pueden tener varias columnas orientadas a ellos. | |
Objeto de negocio | N/A | Campos grabables Claves primarias | |
Controlar | Implícito | Metadatos | Las columnas están orientadas con valores: 0: oculta 1: visible (obligatorio) 2: visible (opcional) Las claves principales generalmente no están orientadas. |
CRUD | Explícito | Las reglas CRUD están vinculadas explícitamente mediante enlaces de acción. Las reglas CRUD de XP se ejecutan en una sola fila a la vez, en lotes, según el tamaño del lote definido en Be_Config. Cuando se ejecuta en lotes, el recuento de filas de las reglas XP CRUD no debe cambiar entre lotes Vinyl ordenará las filas por las claves principales como se indican en la regla XP CRUD y/o la tabla fuente subyacente. No marque los valores generados (newuuid()) como clave principal o los resultados de ejecutar repetidamente una regla cambiarán. | |
CRUD Crear | Explícito | Datos | Los valores generados automáticamente no se generan automáticamente con CRUD-Create (use XPCRUD-Create). Generalmente, todos los campos de la tabla/objeto de datos de destino están dirigidos. |
CRUD Actualización | Explícito | Datos | Se utilizan 2 tipos de destino diferentes para las reglas de actualización CRUD Destino - Enlace: se utiliza para apuntar a las columnas en las que desea realizar la actualización (a menudo la PK, pero no tiene que ser la PK) Destino - |
CRUD Eliminar | Explícito | N/A | Se deben apuntar a las claves primarias de una regla de eliminación |
Predeterminado | Implícito | Datos | Si ve un error sobre "se devolvieron demasiadas filas", verifique lo siguiente: 1. ¿La regla predeterminada incluye la tabla de destino en la cláusula from (consulte el enlace implícito a continuación) 2. Si obtiene resultados duplicados, es posible que deba configurar el indicador DISTINCT en su regla 3. Ejecute su regla y verifique que los resultados sean los esperados |
Migración | N/A | Se utiliza durante la gestión de paquetes y actualizaciones de Vinyl. | |
Subconsulta | N/A | N/A | Utilizadas por otras reglas, no utilizadas directamente por ellas mismas. |
Validación | Explícito implícito: la mayoría de las reglas de validación utilizarán enlace implícito |
Cómo Funciona el Enlace Implícito¶
Al crear una regla con enlace implícito, la primera instancia de la tabla de destino u objeto de datos en la regla se sustituye por la fila "actual":
La cláusula from en su regla debe ser la tabla de almacenamiento para que el enlace implícito funcione como se desea.
Ejemplo 1: Incumplimiento OrderDetails.UnitPrice
con Product
Precio (el Objetivo EsOrderDetails
)¶
Select Products.UnitPrice
from OrdersDetails, Products
where OrderDetails.ProductId = Products.ProductId
Se convierte en:
Select Products.UnitPrice
from OrderDetails, Products
where 1234 = Products.ProductId
(dónde 1234
se utiliza de OrderDetails
)
Ejemplo 2: Volver a Unirse en la Mesa¶
A veces es necesario volver a unirse a la mesa de destino (predeterminado City
basado en el emparejamiento Zip
de otro Customer
):
select Customer2.City
from Customer, Customer as Customer2
where Customer.Zip = Customer2.Zip
se convierte en (Customer
reemplazado con la fila actual, Customer2
solo una referencia a una tabla en la base de datos):
select Customer2.City
from Customer, Customer as Customer2
where '90210' = Customer2.Zip