Vamos a hablar del pasado-presente-futuro del acceso a los datos de la base de datos de los sistemas SAP. ¿Por qué digo pasado-presente-futuro?
- Pasado: Porque es algo que salió sobre 2012 (12 años hace) dentro de la solución de acceso a datos de HANA. En ese momento, claro, habría entre 0 y 1 implantación de SAP HANA en España, pero el dato está ahí.
- Presente: Porque ahora mismo ya lo estamos usando. Aunque no lo sepas, el estándar ya usa CDS para muchos de los procesos estándar y las búsquedas de la herramienta.
- Futuro: Porque para mucha gente esto es nuevo (que no lo es) y siguen tirando sus Selects a base de datos. SAP ha trazado un camino claro hacia el futuro con CDS, destacando su importancia en la optimización del acceso a datos en un entorno de crecimiento exponencial de los mismos. Además CDS no solo facilita este acceso, sino que también se integra de manera efectiva con otras tecnologías emergentes, como RAP, para ofrecer soluciones de desarrollo modernas y escalables.
Esto está muy bien, pero no sabemos qué es los CDS Core Data Services. Vamos a verlo.

¿Qué son las CDS Core Data Services?
SAP CDS es un paradigma de programación para la plataforma SAP ABAP introducido inicialmente en SAP NetWeaver 7.4 SP05 y SAP HANA SPS6. Su enfoque principal es optimizar las operaciones de bases de datos, permitiendo a los desarrolladores crear modelos de datos eficientes y robustos que se integran perfectamente con SAP HANA y otras plataformas SAP.

Voy a traducirlo.
CDS permite a los desarrolladores crear modelos de datos abstractos que luego se traducen en consultas SQL optimizadas para ejecutarse en SAP HANA. Esta abstracción es crucial para realizar operaciones complejas de bases de datos de manera más eficiente y coherente. Por ejemplo, en lugar de escribir consultas SQL complejas y propensas a errores, los desarrolladores pueden definir vistas CDS que encapsulan la lógica y el comportamiento de los datos, lo que facilita el mantenimiento y la evolución del sistema.
¿Lo hemos entendido?

Lo intento explicar mejor.
Básicamente, una CDS te permite crear una «vista» o «representación» de los datos que necesitas extraer de la base de datos, pero con muchas ventajas adicionales.
En términos simples, una CDS es como un «filtro inteligente» que se coloca entre la base de datos y la aplicación. Este filtro te permite seleccionar y organizar los datos de la manera exacta que necesitas, sin tener que escribir consultas SQL complejas cada vez. Además, este filtro puede incluir reglas de negocio, lógica adicional, y definiciones de seguridad, todo integrado en una única definición. Todo esto se ejecuta en la capa In-Memory de SAP HANA, dejando que sea SAP HANA quien gestione ciertos aspectos de rendimiento y dependencias entre datos.
Pero entonces ¿Qué diferencia hay entre una vista de la SE11 y una CDS?
Pues mucha, muchísima. Y a varios niveles.
Optimización y funcionalidad
Las CDS están diseñadas específicamente para aprovechar al máximo SAP HANA, lo que les permite ejecutar consultas de manera más eficiente y rápida, gracias a la capacidad de procesamiento en memoria de HANA. En contraste, las vistas de la SE11, aunque funcionan en HANA, no están tan optimizadas para esta base de datos, lo que puede hacerlas menos eficientes en términos de rendimiento.
Capacidad funcional
Las CDS ofrecen un conjunto de herramientas mucho más amplio y avanzado. Por ejemplo, permiten incluir lógica de negocio, realizar cálculos complejos, aplicar anotaciones para definir comportamientos específicos, y gestionar uniones de datos de forma más sofisticada. Además, las CDS son altamente flexibles y modulares, lo que facilita su mantenimiento y actualización en comparación con las vistas de la SE11, que tienden a ser más rígidas y difíciles de modificar cuando cambian los requisitos.
Integración con tecnologías modernas
Las CDS están claramente diseñadas para el futuro. Se integran perfectamente con SAP Fiori y RAP, permitiendo la exposición de datos a través de servicios OData, algo crucial para el desarrollo de aplicaciones modernas y basadas en servicios. Por otro lado, las vistas SE11, aunque útiles, no están tan bien adaptadas para estos escenarios de aplicación moderna, lo que puede limitar su uso en proyectos que requieren conectividad y exposición de datos a través de servicios web.
Seguridad
Las CDS incorporan controles de acceso y autorizaciones directamente en la definición de la vista, lo que permite un control más detallado y seguro sobre quién puede acceder o modificar los datos. Las vistas de SE11, por su parte, dependen más de configuraciones externas para la seguridad, lo que las hace menos integradas en este aspecto.
Componentes Principales de CDS
SAP CDS se basa en tres componentes clave que permiten a los desarrolladores crear modelos de datos optimizados:
- Vistas CDS: Las vistas CDS son la base de SAP CDS. Permiten definir estructuras de datos y consultas que se ejecutan directamente en la base de datos, actuando como una capa de abstracción sobre las tablas subyacentes. Estas vistas facilitan el acceso y la manipulación de los datos, optimizando las consultas SQL y mejorando el rendimiento general.
- Anotaciones: Las anotaciones en CDS permiten enriquecer los modelos de datos con metadatos que definen características importantes como la seguridad, las relaciones entre entidades, y el comportamiento de los datos. Esto ayuda a crear modelos de datos que no solo son eficientes, sino también seguros y coherentes con la lógica de negocio.
- Funciones de CDS: Las funciones de CDS son operaciones predefinidas que pueden aplicarse directamente sobre los datos en la capa de la base de datos, mejorando la eficiencia al realizar cálculos complejos o transformaciones de datos. Son parecidas a las funciones que podemos usar en SQL (SUM, MAX, MIN, etc.) pero más potentes porque se aplican directamente en las definiciones de las vistas CDS, lo que permite que la lógica de negocio se implemente y se ejecute en la base de datos, mejorando la eficiencia y reduciendo la necesidad de procesar los datos en la capa de aplicación.
La Herramienta Necesaria: ADT (ABAP Development Tools)
Para gestionar y desarrollar con CDS, es esencial utilizar ABAP Development Tools (ADT) en el entorno de desarrollo Eclipse. ADT proporciona un conjunto de herramientas específicas para trabajar con CDS, que incluyen un editor avanzado de código, herramientas de depuración, y funciones para la gestión y visualización de las vistas CDS.
Sobre ADT tengo previsto hacer un artículo explicando más pormenorizadamente sus capacidades, como instalarlo y su uso. No vanos a detenernos en ello ahora.
Beneficios de Usar SAP CDS
Más o menos los hemos ido viendo durante el artículo, pero lo podemos resumir en lo siguiente:
- Rendimiento Mejorado: CDS maximiza el uso de SAP HANA, reduciendo la latencia y mejorando significativamente el rendimiento de las consultas. Es la forma nativa de explotar el potencial del procesamiento en Memoria de HANA.
- Integración Nativa: CDS está profundamente integrado en el ecosistema SAP, lo que facilita la creación de aplicaciones que pueden interactuar con diferentes módulos de SAP, garantizando una interoperabilidad fluida. Siendo la base de tecnologías como RAP (RESTful ABAP Programming) o OData V4.
- Facilidad de Mantenimiento: Dado que las vistas CDS son declarativas el mantenimiento y las actualizaciones de las aplicaciones son más simples y menos propensas a errores. La lógica de negocio queda claramente definida y separada de la lógica de presentación, mejorando la mantenibilidad del código. De todo esto y de como usarlo hablaremos en otro artículo concreto.
En conclusión
Sirva este artículo como introducción a SAP CDS si es que alguien no lo conocía ya. Quiero hacer una serie sobre como usar CDSs y ejemplos más palpables de las ventajas que ofrece.

Un comentario sobre “SAP CDS Core Data Services – ¿Qué son las CDS?”