
En la lección anterior aprendió, que las dependencias de clave externa expresan relaciones entre tablas de base de datos. De forma similar, las asociaciones expresan relaciones entre entidades CDS.
Las asociaciones son más flexibles que las dependencias de clave externa. Una relación de clave externa siempre vincula una tabla de claves externas a una tabla de verificación. Una asociación puede vincular cualquier origen de asociación a cualquier destino de asociación. En particular, normalmente hay dos asociaciones entre las entidades CDS en las que existe una dependencia de clave externa entre dos tablas de base de datos. Veamos un ejemplo:
La definición de la tabla de base de datos EMPLOYEE contiene una dependencia de clave externa para el campo DEPMENT_ID, utilizando la tabla de base de datos DEPMENT como tabla de verificación. R_Employee y R_Department son vistas CDS que leen de estas dos tablas de base de datos. En el nivel CDS, la dependencia de clave externa corresponde a una asociación (relación) con R_Employee como fuente y R_Department como destino. Vincula a cada empleado con su departamento respectivo. Sin embargo, también puede haber una asociación (relación) en sentido inverso, vinculando un departamento con todos los empleados que trabajan en este departamento.

Las asociaciones se definen en la definición de datos de la entidad CDS que sirve como fuente de asociación. En nuestro ejemplo, esta es la definición de la vista CDS R_Employee. La asociación se define en la cláusula FROM, después de la fuente de datos de la vista. Una definición de vista CDS puede contener cualquier número de asociaciones.
Nota
El modelo de datos de SAP S/4HANA contiene vistas con más de cien asociaciones.
Una definición de asociación consta de las siguientes partes:
- Destino de asociación
La asociación a la palabra clave va seguida del nombre del destino de asociación; en nuestro ejemplo, es la vista CDS R_Department. El destino de asociación siempre debe ser una entidad CDS. Es posible, pero no se recomienda, que las asociaciones en vistas CDS utilicen tablas de base de datos como destinos.
- Nombre de asociación
El nombre de asociación viene después del suplemento AS y sirve como identificador para la asociación. Se recomienda utilizar un carácter de subrayado (_) como primer carácter del nombre de asociación CDS. En el ejemplo, el nombre de asociación es _Departamento.
Nota
Desde un punto de vista técnico, la definición de un nombre de asociación es opcional. Sin el nombre de asociación, el nombre del destino de asociación se utiliza como identificador para la asociación. Esto puede dificultar la lectura del código y hace imposible tener más de una asociación para el mismo destino. Por lo tanto, se recomienda encarecidamente definir un nombre de asociación para todas las asociaciones.
- Condición de asociación
La condición de asociación empieza con la palabra clave ON. Normalmente, compara elementos de vista de la fuente de asociación para ver elementos del destino de asociación, pero también son posibles otras condiciones. En el formato recomendado, los elementos de vista de la fuente de asociación están a la izquierda, con $jection como prefijo, y los elementos de vista del destino de asociación a la derecha, con el nombre de asociación como prefijo.
Nota
Como no es necesario incluir el campo de cliente en la lista de elementos de las vistas CDS, el campo de cliente tampoco aparece en la condición de asociación.
Consejo
Al definir una asociación, utilice la finalización de código (Strg + Espacio) para insertar las palabras clave, el nombre del destino de asociación y los elementos de vista.




