Guía de creación de scripts de ACL 14.1

Comando DEFINE RELATION

Define una relación entre dos tablas de Analytics.

Nota

Puede relacionar hasta 18 tablas de Analytics y acceder a cualquier combinación de campos de las tablas relacionadas y analizar sus datos como si existieran en una sola tabla. Debe especificar un comando DEFINE RELATION independiente para cada par de tablas relacionadas.

DEFINE RELATION campo_clave WITH nombre_tabla_relacionada INDEX nombre_índice <AS nombre_relación>
Nombre Descripción
campo_clave

El campo clave de la tabla principal.

Sólo puede seleccionar un campo clave para cada relación.

Nota

Al crear relaciones entre las tablas principales y las tablas subrelacionadas, debe especificar un nombre de campo clave totalmente calificado con el formato nombre_tabla.nombre_campo.

En Relacionar tres tablas, vea: Comprobantes.creado_por

WITH nombre_tabla_relacionada

El nombre de la tabla relacionada.

INDEX nombre_índice

El nombre del índice para el campo clave de la tabla relacionada.

Debe indexar la tabla relacionada utilizando el campo clave para poder relacionar la tabla.

AS nombre_relación

opcional

Un nombre único para la relación.

Por valor predeterminado, se utiliza el nombre de la tabla relacionada como nombre de la relación. Si está definiendo relaciones adicionales con la misma tabla relacionada, debe especificar un nombre único.

Relacionar dos tablas

El siguiente ejemplo relaciona la tabla abierta con la tabla Cliente utilizando el campo número de cliente (NúmCliente) como campo clave:

DEFINE RELATION NúmCliente WITH Cliente INDEX Cliente_en_NúmCliente

Cliente_en_NúmCliente es el nombre del índice de la tabla relacionada en el campo clave. Al relacionar tablas, es necesario que la tabla relacionada tenga un índice.

Si la tabla relacionada aún no tiene un índice al ejecutar el comando DEFINE RELATION, aparecerá un mensaje de error y no se realizará la relación.

Consejo

Si define una relación en la interfaz de usuario de Analytics, el índice de la tabla relacionada se crea automáticamente.

Crear un índice de la tabla relacionada antes de relacionar dos tablas

Si es necesario, puede crear un índice de la tabla relacionada inmediatamente antes de relacionar las dos tablas. El ejemplo a continuación muestra la creación de un índice para la tabla relacionada Cliente antes de relacionar la tabla Ar con la tabla Cliente.

OPEN Cliente
INDEX ON NúmCliente TO Cliente_por_NúmCliente
OPEN Ar
DEFINE RELATION NúmCliente WITH Cliente INDEX Cliente_en_NúmCliente

Relacionar tres tablas

El siguiente ejemplo relaciona tres tablas en el proyecto de muestra ACL_Rockwood.ACL:

  • Elementos_comprobantes la tabla principal
  • Comprobantes la tabla relacionada
  • Empleados la tabla subrelacionada

Al utilizar la tabla Comprobantes como la tabla intermediaria en la relación, puede relacionar cada elemento del comprobante con el empleado que procesó el elemento.

OPEN Comprobantes
INDEX ON número_comprobante TO "Comprobantes_por_número_comprobante"
OPEN Elementos_comprobantes
DEFINE RELATION número_comprobante WITH Comprobantes INDEX Comprobantes_por_número_comprobante
OPEN Empleados
INDEX ON número_de_empleado TO "Empleados_por_número_de_empleado"
OPEN Elementos_comprobantes
DEFINE RELATION Comprobantes.creados_por WITH Empleados INDEX Empleados_por_número_de_empleado

Explicación de la lógica de la sintaxis

  1. Abrir la tabla Comprobantes e indexarla por el campo número_comprobante.
  2. Abrir la tabla Elementos_comprobantes y relacionarla con la tabla Comprobantes usando número_comprobante como campo clave.
  3. Abrir la tabla Empleados e indexarla por el campo número_empleado.
  4. Abrir la tabla Elementos_comprobantes y relacionarla con la tabla Empleados usando Comprobantes.creado_por como campo clave.

    Nota

    Comprobantes.creado_por está disponible como un campo clave en la segunda relación porque usted ya relacionó Elementos_comprobantes y Comprobantes en la primera relación.

Nota

Si desea obtener más información sobre la forma en la que funciona este comando, consulte Guía de ayuda.