Extender CDS

  • Sintaxis

@AbapCatalog.sqlViewAppendName: ‘CDS_APPEND_VIEW’

EXTEND VIEW cds_entity WITH cds_view_extension
[association1 association2]
{ select_list_extension }
[GROUP BY field1, field2, …  ]
[UNION [ALL] { … }] [;]

  • Efecto

Extiende una vista de CDS existente cds_entity usando una extensión de vista de CDS cds_view_extension. La vista extendida de CDS debe especificarse con el nombre de su entidad CDS.
EXTEND VIEW se usa para realizar las siguientes extensiones:

  • Los elementos de la lista de extensiones select_list_extension especificada después de EXTEND VIEW se agregan a la lista SELECT existente. Al menos un elemento debe ser agregado. Es posible acceder a todos los campos de las fuentes de datos utilizadas en la vista ampliada de CDS en la lista de extensiones select_list_extension. La lista puede tener todos los elementos de una lista SELECT, excepto expresiones agregadas. También puede especificar lo siguiente: parámetros de entrada de la vista extendida de CDS; expresiones “path” para varias asociaciones y para asociaciones de la vista extendida de CDS; otros literales, expresiones y funciones.

Si un elemento añadido ya aparece en la lista SELECT existente, o si se produce una extensión diferente, se debe asignar un nombre de elemento alternativo utilizando AS. Un campo adjunto no se puede definir como un campo clave usando KEY.
Las asociaciones opcionales association1, association2, … especificadas después de EXTEND VIEW se pueden agregar a la instrucción SELECT existente.

  • Notas

Cada extensión de vista CDS tiene su propio código fuente CDS. El código fuente CDS en una extensión de vista CDS y se edita en un editor diferente del código fuente CDS de una vista CDS.
Se puede extender una vista existente de CDS usando múltiples extensiones de vista de CDS.
El nombre de la nueva vista de adición y de la extensión de vista de CDS real debe ubicarse en el espacio de nombre del cliente (o en el espacio de nombre de un partner o desarrollo especial) para protegerlo contra sobrescrituras por actualizaciones o nuevas versiones.
Actualmente no es posible definir categorías de extensión para vistas de CDS. Las siguientes restricciones se aplican por este motivo:

  • Las vistas de CDS tienen la propiedad de que se pueden extender de cualquier manera con respecto a la categoría de extensión de estructuras. Las consecuencias de esto deben respetarse al extender una vista de CDS.
  • Los atributos de una vista de CDS definida mediante anotaciones, como la activación del almacenamiento en búfer de SAP, no se pueden modificar mediante extensiones.

Es aconsejable ponerse en contacto con SAP antes de extender las vistas de CDS desde paquetes basis.
El código fuente CDS de una extensión de vista CDS no necesita tener el mismo nombre que la entidad de extensión de vista CDS, pero es aconsejable usar el nombre de la entidad.

  • Ejemplo práctico

Creamos el CDS con el nombre ZB_07_GVALER y el nombre ZVB_07_GAVLER en la anotación @AbapCatalog.sqlViewName para el nombre de la vista del diccionario de datos. El CDS extenderá el CDS con el nombre ZB_01_GVALER creado en la clase CDS – Vista básica. Para esta implementación añadimos una nueva columna MATKL con el nombre alias MatGroup.

  1. Creamos el CDS utilizando la plantilla de código10 03 07 01
  2. Implementamos la lógica.
  3. Realizamos el test con Data Preview, donde podemos visualizar todas las columnas del CDS que hemos extendido, más la nueva columna MatGroup.10 03 07 02

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Suscríbete al blog
Recibe las últimas actualizaciones y contenidos exclusivos directamente en tú correo electrónico.
Inscribime
close-link