✒️ABAP HANA / ABAP Core Data Services Por Jeferson Pena Curvelo
ABAP ABAP Core Data Services

Programacion Avanzada de Base de datos con ABAP 7.4
Necesitamos impkementar y ejecutar la logica de procesamiento en la base de datos pra poder usar el paradigma code to data en las aplicaciones ABAP.
Disponemos de una seria de objetos de desarrollo de SAP HANA para este proposito, los cuales solo se encuentran disponibles en Eclipse por ejemplo:
- Procedimiento de BD
- Vistas de Atributos
- Vistas Analiticas
- Vistas de Cálculo
Sin embargo, el uso de estos nos puede ocasionar algunos problemas, ya que a diferencia de los objetos que estan completamente administrados por el servidor de aplicaciones ABAP, existen restricciones que aplican a los objetos de desarrollo de SAP HANA.
Entre las restricciones o desventajas de los objetos de desarrollo de SAP HANA en ABAP podemos mencionar lo siguientes:
- Los objetos de desarrollo de SAP HANA no se integran completamente con la gestion del ciclo de vida de ABAP. es decir si modificamos un objeto de desarrollo en SAP entonces deberemos sincronizar manualmente los cambios realizandos en el diccionario de datos ABAP DDIC. Por otro lado, los objetos de desarrollo de SAP HANA no estan vinculados a la gestion de versiones de ABAP.
- Los objetos de desarrollo de SAP HANA no se consideran en la verificacion de sintaxis y activacion de una aplicacion o programa ABAP. El entorno en tiempo de ejecucion de ABAP no muestra errores y advertencias relacionados con las implementaciones de objetos de desarrollo de SAP HANA. esto a menudo nos conduce a errores en tiempo de ejecucion.
- Los Objetos de desarrollo de SAP HANA no pueden extenderse o ampliarse. Cuestion que si podemos llevar a cabo perfectamente por ejemplo con las tablas BD existentes en el diccionario de datos ABAP (DDIC)
- Para implementar los objetos de desarrollo de SAP HANA, los desarrolladores ABAP requieren un usuario adicional para la BD de SAP HANA y las autorizaciones correspondientes de la BD. Mientras que cuando trabajamos con el diccionario de datos ABAP podriamos realizamos todo lo necesario desde este punto central.
A partir de ABAP 7.4 se introducen una serie de mejoras en el lenguaje de modo garantizar la integracion de los objetos en el ciclo de vida ABAP, incluida la gestion de versiones y la posibilidad de extender o ampliar los objetos. Las mas relevantes son:
- CDS: las Core Data Services (Servicios de datos basicos) son un metodo especifico de SAP que se utilizan para definir modelos de datos persistentes. La especificacion se basa en los estandares SQL-92 y SQL 1999. el objetivo de las CDS es facilitar la implementacion de los modelos de datos desarrollados en la fase de diseño.
- Nuevas caracteristicas de Open SQL: estas incluyen, por ejemplo, el soporte de expresiones SQL en el SELECT y en las clausulas GROUP BY, HAVING y WHERE.
- Implemtentacion de procedimientos de BD SAP HANA en Metodos ABAP: los AMDP (Procedimiento de base de datos administrados ABAP) nos permiten ejecutar la logica de procesamiento en la BD, podemos implementar estos procedimientos de BD en el entorno de desarrollo ABAP normal sin requerir un usuario para la BD SAP HANA.
Al Igual que SQL, las CDS definen:
- Un lenguaje de definicion de datos (DDL): que utilizamos para describir las tablas de BD y tipos estructurados.
- Un lenguaje de control de datos (DCL): con el que definimos restricciones de acceso para los objetos CDS.
- Un lenguaje de consulta (QL): permite leer datos de una manera comoda y se utiliza en combinacion con DDL para definir vistas de BD.
Originalmente solamente era posible crear vistas CDS para SAP HANA y requeria una conexion directa al servidor de HANA, pero a partir de SAP NW ABAP 7.4 SP05, podemos crear vistas CDS desde el servidor de aplicacion ABAP utilizando el Eclipse con el plugin ADT.
Las CDS tambien contienen las siguientes mejoras de SQL que son necesarias para la creacion de modelos de datos optimos para aplicaciones de negocios:
- Anotaciones: se utilizan para enriquecer los objetos CDS con metadatos adicionales, que no se pueden expresar en SQL. estos metadatos tambien pueden ser consultados y utilizados por las aplicaciones cliente. Las aplicaciones cliente tambien pueden definir sus propias anotaciones y almacenar sus propios metadatos junto con el modelo de datos.
- Tipos de datos definidos por el usuario, escalares y estructurados: estos se utilizan para ilustrar mejor la semántica de los tipos de datos utilizados.
- Asociaciones: estas se utilizan para definiar las relaciones entre los objetos CDS. Durante el proceso de modelado y cuando los datos se leen de la BD, podemos utilizar expresiones de ruta para abordar las relaciones que se han descrito con las asociaciones.
ABAP Core Data Services: debido a que los datos de las soluciones SAP utilizadas en las empresas ya estan almacenados en el sistema de la BD, el enfoque principal de ABAP CDS es la creacion de vistas de los datos comerciales existentes.
Las Vistas de CDS resultantes sientan las bases para la aceleracion de los programas ABAP existentes y para el desarrollo de aplicaciones nuevas e innovadoras
En SAP S/4HANA, por ejemplo, los datos comerciales se proporcionan mediante vistas CDS bien definidas en las tablas de BD de SAP Business Suite.
Estas vistas permiten que las nuevas aplicaciones cliente accedan a interfaces claras y consistentes y se beneficien de la reducciion del codigo de estas vistas. Esta es una de las caracteristicas mas imortantes de ABAP CDS.
Tambien se puede reutilizar directamente los modelos de datos existentes y objetos DDIC (tablas, vistas, elementos de datos) del Diccionario de datos en ABAP CDS.
Por lo tanto, las ABAP CDS son una extension del diccionario de datos (DDIC) y los objetos SQL Definidos en el DDIC.
Una Caracteristica importante de las CDS es su implementacion independiente de la BD, al igual que en Open SQL las vistas CDS se pueden ejecutar en todos los sistemas de BD compatibles con SAP en el servidor ABAP 7.4. Esto garantiza que las BD que los modelos de las BD que hayamos modelado con las CDS muestren su comportamiento funcional uniforme independientemente de su case de apliacion y landscape de sistema. si ejecutamos las vistas de CDS en la BD de SAP HANA tambien nos beneficiaremos de las ventajas de rendimiento del procesamiento de datos en memoria.
HANA CDS vs ABAP CDS:
Las SAP HANA CDS:
- Se crean directamente en la BD de SAP HANA
- Pueden consumirse con servicios ODATA (Open Data Protocol: e sun protocolo que permite a cualquier cliente obtener informacion de cualquier fuente mediante servicios REST, permitiendo pasar por parametros los filtros a aplicar en los resultados. Este protocolo utiliza otros protocolos y tecnologias ya reconocidas como HTTP, AtomPub o JSON.)
- Para consumirlas desde una aplicacion ABAP debemos crear una vista externa en el diccionario de datos ABAP, enlazar la vista externa con la vista HANA CDS y consumir la vista externa utilizando sentencias Open SQL.
- Necesitaremos crear dos órdenes de transaporte diferentes: una para la vista HANA CDS que se transporta como una unidad de transporte de HANA y la otra para la vista externa que se transporta con una orden de SAP a través de la transaccion STMS.
Las ABAP CDS:
- Estan disponibles desde SAP NW ABAP 7.4 SP05.
- Se pueden definit y crear desde el servidor de aplicaciones ABAP mediante Eclipse y el plugin ADT.
- Pueden consumirse externamente con servicios ODATA.
- Son independientes de la BD.
- Pueden utilizar tablas, vistas, etc.. definidos en el diccionario de datos ABAP.
- No requieren crear vistas externas.
- Necesitaremos crear una única orden de transporte estándar de SAP mediante la transaccion STMS.
Las CDS se implementan tanto en SAP NW Aplication Server ABAP como en SAP HANA, estas implementaciones son idependientes una de la otra es decir CDS para ABAP y CDS para SAP HANA, aunque la implementación de la CDS en el Application Server ABAP tambien conocida como ABAP CDS aprovecha la infraestructura de ABAP Application server como objeto CDS de ABAP principalmente que son independientes de la BD. la Implementacion de CDS en SAP HANA tambien conocida como CDS para SAP HANA esta totalmente limitada por la condiciones de las BD de SAP HANA. por lo tanto actualmente No se puede usar objetos de SAP HANA CDS en objetos de Application Server ABAP o ABAP CDS en SAP HANA.
ABAP CDS Vs Vistas de la trx SE11
Las Vistas creadas desde la trx SE11 tienen limitaciones, por ejemplo solamente podemos crear asociaciones de tipo INNER JOIN y no podemos utilizar asociaciones de tipo LEFT OUTER JOIN.
|
Caracteristicas |
ABAP CDS |
Vistas del Diccionario de Datos |
|
Parametros de Entrada |
SI |
NO |
|
SQL Joins (Inner Join, Left, Outer join) |
SI |
Si pero con limitaciones |
|
Agrupar resultados (Union / Union ALL) |
Si |
NO |
|
Funciones de agregacion (SUM, MAX, MIN, COUNT, AVG) |
Si |
NO |
|
Cláusulas SELECT (WHERE, GROUP BY, HAVING) |
SI |
NO |
|
Opciones aritmeticas sobre columnas (+,-,*,DIV) |
SI |
NO |
|
Insertar literales en la seleccion |
SI |
NO |
|
Funciones de conversión de fechas |
Si |
NO |
|
Expresion condicionales (CASE) |
SI |
NO |
|
Asociacion de tablas |
Si |
NO |
|
Anotaciones |
Si |
NO |
|
Path Expressions |
Si |
NO |
Los pasos para crear y consumir una vista ABAP CDS
- Seleccionar el proyecto ABAP donde se quiere crear la vista ABAP CDS.
- Seleccionar el paquete donde se va a crear la vista CDS, para ello se hace clic en el boton derecho del mouse sobre el paquete y se elige las opciones: New --> Other ABAP Repository Object.
- Seleccionar el objeto DATA Definition dentro de la carpeta Core Data Services. Si se trabaja con un componente SAP_BASIS inferior a la version 7.5 se debe seleccionar el objeto "Data Definition" o "DLL Source" dentro de la carpeta Dictionary.
- Ingresar el nombre de la vista ABAP CDS y la descripcion.
- Seleccionar una orden de transporte existente o crear una nueva orden de transporte.
- Por defecto se tendran varias plantillas disponibles para crear las vistas ABAP CDS. Seleccionamos la Plantilla Define View y Finalizar.
- Con la ventana y el codigo. y para poder implementar la vista ABAP CDS
- Cambiar el texto " por el nombre que tendra la vista en el diccionario ABAP. Es importante tener en cuenta que el nombre de la vista en el diccionario ABAP no puede ser el mismo que el nombre que hemos dado a la vista ABAP CDS en el paso 4.
- reempazar "data_Source_name" por el nombre de la tabla de la BD
- Para referenciar los campos se utilizar el punto (.) en vez de (~)
- Las columnas que recuperamos en la consulta se definen dentro de las llaves {}.
- Despues de las llaves {} podemos incluir la cláusula WHERE.
- Los comentarios empiezan por // para una línea o /* */ para un bloque.
8. Grabar y activar la vista y al ejecutar se debe debe ir a visualizar en pantalla el resultado de la ejecución.
Luego en el diccionario de datos ABAP las vistas ABAP CDS se denominan Vistas SQL DDL.
Una vez activada la vista en Eclipse ya podemos ver la Vista desde la transaccion SE11, ejecutarla y acceder a su definicion en SQL, pero no se puede modificar la vista ABAP CDS desde el diccionario de datos ABAP, solamente s epuede modificar desde Eclipse.
Desde nuestras aplicaciones ABAP, las vistas ABAP CDS pueden consumirse con sentencias Open SQL como cualquier vista o tabla del diccionario de datos ABAP.
Tambien puede utilizarse como tipos para la definicion de tablas internas, estructuras y variables de los programas ABAP.
Debemos utilizar el nombre que se ha especificado en el artibuto SQLViewName y no el nombre de la vista ABAP CDS
Nueva Sintaxis Open SQL: Si se utiliza la nueva sintaxis entonces todas las variables del lenguaje principal deben escribirse utilizando @. En el código anterior esta característica la vemos presente en la utilizacion de la tabla interna @ti_facturas y el Select-Option @s_matnr.
Se puede consultar la tabla BD estandar TADIR con los siguientes parámetros de selección, de modo de encontrar todas las vistas CDS existentes en SAP, su nombre en el diccinario de datos ABAP y el paquete al que pertenecen.
Debemos acceder a la tabla BD TADIR con los parametros:
- PGMID = R3TR
- OBJECT = DDLS
se podra observar una nueva vista ABAP CDS.
Accediendo tambien a la tabla BD DDLDEPENDENCY se podrá obtener los nombres de la vista en el diccionario de datos ABAP y en SAP HANA ingresando el parametro:
OBJECTTYPE = VIEW
 
 
 
Sobre el autor
Publicación académica de Jeferson Jos Pena Curvelo, en su ámbito de estudios para el Master ABAP for HANA.
Jeferson Jos Pena Curvelo
Chile - Legajo: PD49W
✒️Autor de: 180 Publicaciones Académicas
🎓Egresado de los módulos:
- Master ABAP Orientado a Objetos
- Master ABAP for HANA
- Carrera Consultor ABAP Nivel Avanzado
- Carrera Consultor ABAP Nivel Inicial
Disponibilidad Laboral: FullTime
























