🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP HANA ABAP Core Data Services

ABAP HANA ABAP Core Data Services

ABAP HANA ABAP Core Data Services

ABAP Core data services.

1.- Introducción a la programación Avanzada de BD con ABAP 7.4

Para utilizar el paradigma code-to-data en las aplicaciones ABAP, necesitamos implementar y ejecutar la lógica de procesamiento en la base de datos.

Disponemos de una serie de objetos de desarrollo de SAP HANA para este propósito, los cuales solo se encuentran disponibles en Eclipse y pueden ser creados mediante SAP HANA Studio, entre lo que podremos mencionar los siguientes objetos:

- Procedimiento de base de datos

- Vistas de atributos

- Vistas analítcas

- Vistas de cálculo

Sin embargo, el uso de estos objetos nos puede ocasionar restricciones o desventajas de los objetos de desarrollo de SAP HANA en ABAP:

Desventaja 1.

Los objetos de desarrollo de SAP HANA no se integran completamente con la gestión de version del ciclo de vida de ABAP. Es decir si modificamos un objeto de desarrollo en SAP HANA
Studio entonces deberemos sincronizar manualmente los cambios realizados en el diccionario de datos ABAO DDIC.

Por otro lado, los objetos de desarrollo de SAP HANA no están vinculados a la Gestión de versiones de ABAP.

Desventaja 2.

Los objetos de desarrollo de SAP HANA no se consideran en la verificación de sintaxis y activación de una aplicación o programa ABAP.

El entorno en tiempo de ejecución 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 ejecución.

Desventaja 3.

Los objetos de desarrollo SAP HANA no pueden extenderse o ampliarse.

Cuestión que so podemos llevar a cabo perfectamente por ejemplo con las tablas bases de datos existentes en el Diccionario de datos ABAP DDIC.

Desventaja 4.

Para implementar los objetos de desarrollo de SAP HANA, los desarrolladores ABAP requieren un usuario adicional para la base de datos de SAP HANA y las autorizaciones correspondientes de la base de datos.

Mientras que cuando trabajamos con el diccionario de datos ABAP podíamos realizar todo lo necesario desde este punto central.

A partir de ABAP 7.4 se introducen una serie de mejoras en el lenguaje de modo de garantizar la integración de los objetos en el ciclo de vida ABAP, incluida la gestión de versiones y la posibilidad de extender o ampliar los objetos. Las más relevantes son:

- CD: Las core data services son un método específico de SAP que se utiliza para definir modelos de datos persistentes.

- Nuevas características de Open SQL: estas incluyen, por ejemplo, el soporte de expresiones SQL en el SELECT Y enr las cláusulas GROUP BY, HAVINGM y WHERE.

- Implementación de procedimientos de base de datos SAP HANA en métodos ABAP: Los procedimientos de base de datos administrados ABAP (AMDP) nos permiten ejecutar la lógica de procesamiento en la base de datos. Podemos implementar estos procedimientos de base datos en el entorno de desarrollo ABAP normal son requerir un usuario para la base de datos SAP HANA.

2.- ABAP Core Data Service.

CDS.- Los servicios de datos centrales (CDS) son un método específico de SAP para definir modelos de datos persistentes.

La especificación se basa en los estándares SQL-92 y SQL-1999.

El objetivo de las CDS es facilitar la implementación de los modelos de datos desarrollados en fase de diseño.

Al igual que SQL, las CDS definen:

- Un lenguaje de definición de datos (DDL): que utilizamos para describir tablas de bases de datos 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): que nos permite leer datos de una manera cómoda y se utiliza en combinación con DDL para definir vistas de base de datos.

Originalmente, solamente era posible crear vistas CDS para SAP HANA y requería una conexión directa al servidor HANA, pero a partir de SAP NETWAEVER ABAP 7.4 SP05, podemos crear vistas CDS desde el servidor de aplicación ABAP utilizando el Eclipse el plug-in ADT.

Las CDS también contienen las siguientes mejoras de SQL que son necesarias para la creación de modelos de datos óptimos para aplicaciones de negocios.

- Anotaciones.- se utilizan para enriquecer los objetos CDSc con metadatos adicionales, que no se pueden expresar en SQL. Estos metadatos también pueden ser consultados y utilizados por las aplicaciones cliente. Las aplicaciones cliente también 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 definir las relaciones entre los objetos CDS. Durante el proceso de modelado y cuando los datos se leen de la base de datos, podemos utilizar expresiones de ruta para abordar las relaciones que se han descrito con las asociaciones.

ABAP Core Data Service.

Debido a que los datos de las soluciones SAP utilizadas en las empresas ya están almacenados en el sistema de la base de datos, el enfoque principal de ABAP CDS es la creación de vistas de los datos comerciales existentes.

Las vistas de CDS resultantes sientan las bases para la aceleración de los programas ABAP existentes y para el desarrollo de aplicaciones nuevas e innovadoras.

En SAP HANA por ejemplo, los datos comerciales se proporcionan mediante vistas CDS bien definidas en las tablas de base de datos de SAP BUSINESS Suite.

Estas vistas permiten que las nuevas aplicaciones cliente accedan a interfaces claras y consistentes y se beneficen de la reducción de código de estas vistas. Esa es una de las características más importantes de ABAP CDS.

También se puede reutilizar directamente los modelos de datos existentes y objetos DDIC (tablas, vistas elementos de datos) del diccionario de datos ABAP CDS.

Por lo tanto, las ABAP CDS son una extensión del Diccionario de datos DDIC y los objetos SQL definidos en el DDIC.

Una característica importante de las CDS es su implementación independiente de la base de datos al igual que el OPEN SQL, las CDS se pueden ejecutar en todos los sistemas de bases de datos compatibles con SAP servidor ABAP 7.4.

Si ejecutamos las CDS en la base de datos de HANA, también nos beneficiaremos de la técnica in-memory.

2.1 HANA CDS vs ABAPA cds.

Tal como mencionamos anteriormente existen dos implementaciones diferentes de las CDS: Las CDS de SAP HANA y las ABAP CDS.

Las SAP HANA CDS:

- Se crean directamente en la base de datos SAP HANA.

- Pueden consumirse externamente con servicios ODATA.

- Para consumirlas desde una aplicación ABAP debemos crear una vista externa en le Diccionario de datos ABAP, enlazar la vista externa con la vista HANA CDS y consumir la vista externa utilizando sentencias OPEN SQL.

- Necesitamos crear dos órdenes de transporte diferentes: una para la vista HANA CDS que se transporta como una unidad de transporte de HANA y otra para la vista externa que se transporta con una orden de SAP a través de la transacción STMS.

Las ABAP CDS.

- Están disponibles desde SAP NW ANAPA 7.4 SP05.

- Se puede definir y crear desde el servidor de aplicaciones ABAP mediante Eclipse y el plug-in ADT.

- Pueden consumirse externamente con servicios ODATA.

- Son independientes de la base de datos.

- Pueden utilizar tabas, vistas, etc ... definidos en el diccionario de datos ABAP.

- No requieren crear vistas externa.

- Necesitan crear una única orden de transporte estándar de SAP mediante la transacción STMS.

Las CDS se pueden implementar tanto EN ABAP HANA como en SAP NW, estas implementaciones son independientes.

No se puede utilizar objetos SAP HANA CDS en objetos de ABAP CDS.

2.2 ABAP CDS vs Vistas de la transacción SE11.

Las vistas creadas desde la transacción SE11 tienen limitaciones, por ejemplo solamente podemos crear asociaciones de tipo INNER JOIN y no podemos utilizar asociaciones de tipo LEFT OUTHER JOIN.

Comparación entre ABAP CDS y Vistas del Diccionario de datos.

Características ABAP CDS Vistas_del_diccionario de datos.

Parámetros de entrada si NO

SQL Joins (inner, join, left outer, right join SI si pero con limitaciones

Agrupar resultados (UNION / UNION ALL) SI NO

Funciones de agregación

(SUM, MAX, MIN, COUNT, AVG... SI NO

Cláusulas SELECT (WHERE,

GROUP BY, HAVING SI NO

Operaciones aritméticas sobre

columnas (, -, *, DIV ...) SI NO

Insertar literales en la selección SI NO

Funciones de conversión de fechas SI NO

Expresiones condicionales (CASE) SI NO

Asociación de tablas SI NO

Anotaciones SI NO

Path expresions SI NO

2.3 Pasos para crear y consumir una vista ABAP CDS.

1. Seleccionamos el proyecto ABAP donde queremos crear la vista ABAP CDS.

2. Seleccionamos el paquete donde vamos a crear la vista CDS, para ello hacemos click derecho sobre el paquete y elegimos las opciones: NEW / Other ABAP Repository.

3. Seleccionamos el objeto data Definition dentro de la carpeta Core Data Services.

Si trabajamos con un componente SAP_BASES inferior a la versión 7.5 tendremos que seleccionar el objeto Data Definition o DLL Source dentro de la carpeta Dictionary.

4. Completamos el nombre de la vistas ABAP CDS y la descripción.

5. Seleccionamos una orden de transporte existente o creamos una nueva orden de transporte.

6. Seleccionamos la plantilla define view y hacemos finalizar.

7. Continuación se abrirá una nueva ventana con el código vacío de la VISTA.

8. Para implementar la vista ABAPCDS debemos.

- Cambiar e sql_view_name por el nombre que tendrá la vista en el diccionario ABAP. Es importante tener en cuenta que el nombre de la vista en el diccionario de ABAP no puede ser el mismo que el nombre que hemos dado a la vista ABAP CDS en el paso 4.

- Reemplazar data_source_name por el nombre de la tabla de base de datos.

- Para referenciar los campos se utiliza el punto.

- La columnas que recuperamos en la consulta se definen dentro de las llaves.

- Después de las llaves podemos incluir la cláusula WHERE.

- Los comentarios empiezan por // para una línea o /* */ para un bloque.

9. Finalmente grabamos y activamos la vista.

Una vez activada la vista en Eclipse, ya podemos ver desde la transacción SE11.

No se puede modificar la vista ABAP CDS desde el diccionario ABAP, solamente desde ECLIPSE.

Desde nuestras aplicaciones ABAP, las vistas ABAP CDS pueden consumirse con sentencias OPEN SQL como cualquier vista o tabla del diccionario ABAP.

También pueden utilizarse como tipos para la definición de tabas internas, estructuras y variables de los portaras ABAP.

Debemos utilizar el nombre que hemos especificado en el atributo sqlViewName y no el nombre de la vista ABAP CDS.

2.4 Cómo encontramos las vistas ABAP CDS creadas en el sistema SAP?

Podemos consultar la tabla base de datos estándar TADIR con los siguientes parámetros de selección, de modo de encontrar todas las vistas CDS en SAP, su nombre en el diccionario ABAP y el paquete al que pertenecen.

Debemos acceder a la taba TADIR con los siguientes parámetros.

PGMID = R3TR

OBJECT = DDLS

Accediendo a la tabla DDLDEPENDENCY podemos obtener los nombres de la vista en el diccionario de ABAP y en SAP HANA

OBJECTTYPE = VIEW


 

 

 


Sobre el autor

Publicación académica de Miguel Angel Acosta Acosta, en su ámbito de estudios para el Máster ABAP for HANA.

SAP Expert


Miguel Angel Acosta Acosta

Profesión: Ingeniero de Sistemas - Ecuador - Legajo: TF64C

✒️Autor de: 238 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Presentación:

Profesional de ingeniería de sistemas en computación e informática, con experiencia en la implantación y soporte de proyectos informáticos para empresas del sector industrial y financiero.

Certificación Académica de Miguel Acosta