CDS Table Function

CDS Table Function

Un CDS Table Function es una entidad dentro del diccionario ABAP, está asociada a un AMDP, donde se implementa un script SQL como en cualquier otra entidad CDS. Además, se utiliza como una fuente de datos, la cual se puede consultar con una sentencia de Open SQL.

A diferencia de un CDS, un table function se implementa utilizando SQL nativo, esta implementación se maneja por el AMDP Framework en la base de datos como una función AMDP. Adicional, al momento de crear una función de tabla se generan dos componentes, la entidad CDS y una librería de clases ABAP.

Como crear un CDS Table Function

La sentencia básica para definir un table function es la siguiente:

DEFINE TABLE FUNCTION <nombre_de_la_entidad>

A continuación te mostraré paso a paso como crear este objeto en el IDE Ecplise.

Lo primero que haremos será crear un objeto de tipo Data Definition.

CDS Table Function

Ahora, asignamos un nombre, una descripción y un paquete a nuestro ABAP Table Function.

Dentro del catálogo de objetos, seleccionamos la opción Definir Un Table Function Con Parámetros, esto nos cargará una plantilla con los principales componentes de nuestro objeto. Ciertamente, en esta ocasión estaremos creando una plantilla que adicione un parámetro de entrada a nuestro objeto.

Aquí te dejo la plantilla predeterminada que SAP nos proporciona. Adicional, el CDS table function ya construido, el cual está diseñado para utilizar el método «method_name» de un procedimiento ABAP AMDP.

@EndUserText.label: 'Table Function Demo'
define table function ZDEMO_TABLE_FUNCTION
with parameters parameter_name : parameter_type
returns {
  client_element_name : abap.clnt;
  element_name : element_type;
  
}
implemented by method class_name=>method_name;

Por último, es importante menciona que las CDS table functions constituyen una extensión de base de datos que no es compatible con todos los sistemas de bases de datos. Sin embargo, el CDS DDL en ABAP CDS permite crear la y acceder a el independientemente del sistema de base de datos. Adicional, si se utiliza una sentencia SELECT para acceder a una vista que contiene funciones de tabla como fuentes de datos, pero el sistema de base de datos actual no las soporta, se genera una excepción no manejable de la clase CX_SY_SQL_UNSUPPORTED_FEATURE.

Documentación Oficial SAP

Para más información puedes visitar el siguiente enlace.