En la lección CDS Metadata Extension – Annotate View hemos creado una extensión de los metadatos de una entidad CDS y hemos asignado una capa en la anotación @Metadata.layer. Las capas se utilizan para indicar la prioridad de los metadatos cuando en la misma entidad CDS existe más de una extensión.
- Layer – Valores posibles
- #CUSTOMER
- #PARTNER
- #INDUSTRY
- #LOCALIZATION
- #CORE
Los valores enumerados se muestran de mayor a menor prioridad, teniendo #CUSTOMER la prioridad más alta y #CORE la prioridad más baja. Si se asignan múltiples extensiones de metadatos de CDS con ninguna o la misma variante de CDS a la misma capa, se emite una advertencia de verificación de sintaxis para las anotaciones especificadas en más de una, y el sistema usa la anotación de la primera extensión de metadatos encontrada.
- Ejemplo práctico
Utilizamos el mismo CDS con los siguientes elementos:
Que tiene creada la siguiente extensión de metadatos:
Ahora creamos una nueva extensión con el nombre ZME_02_USUARIOSAP*. En la anotación @Metadata asignamos la capa #PARTNER que tiene una prioridad más alta que la extensión anterior. También en la lógica del objeto asignamos las siguientes anotaciones para los elementos Material y MaintenanceStatus:
Elemento | Anotación | Valor |
Material | @UI.dataPoint.title | MDE Partner Title – Material Code |
Material | @UI.dataPoint.description | MDE Partner Description – Material Code |
MaintenanceStatus | @UI.dataPoint.title | MDE Partner Title – Maintenance Status |
MaintenanceStatus | @UI.dataPoint.description | MDE Partner Description – Maintenance Status |
- Testear Metadata Extension – Layer
Para comprobar los datos que devuelven las anotaciones para los servicios Odata o SADL utilizamos en un programa ejecutable el método estático GET_ANNOS de la clase estándar CL_DD_DDL_ANNOTATION_SERVICE y mostramos en la salida las anotaciones asignadas a los elementos de la vista CDS creada.
Ejecutamos el programa:
Como podemos visualizar se han devuelto los valores del Metadata Extension con la prioridad más alta en el Layer: #PARTNER.