Datos y servicios

Vistas ABAP CDS

Las vistas ABAP CDS son modelos de datos definidos con Core Data Services, el lenguaje de definición de datos basado en SQL de la plataforma ABAP. Una vista CDS declara campos, joins, asociaciones con otras entidades y anotaciones, y la base de datos la ejecuta. En SAP S/4HANA, las vistas CDS forman el modelo de datos virtual que hay detrás de muchas aplicaciones SAP Fiori, análisis y API.

Datos clave

Tipo
Objeto del repositorio ABAP (definición de datos, DDLS)
Capa
Lógica de negocio y modelo de datos
Se edita en
ABAP Development Tools (Eclipse)
Variante actual
CDS view entities (DEFINE VIEW ENTITY), en on-premise a partir de ABAP 7.55 / SAP S/4HANA 2020
Variante obsoleta
Vistas CDS basadas en DDIC (DEFINE VIEW), disponibles desde ABAP 7.40 SP05
Quién trabaja con ello
Desarrolladores ABAP, modeladores de análisis, key users (app Custom CDS Views)
Se aplica a
SAP S/4HANA (todas las opciones de implementación); también SAP BTP ABAP environment
Capa: Lógica de negocio y modelo de datosDónde se ubica ▾
Dónde se ubica: L5 · Lógica de negocio y modelo de datosCapa: Lógica de negocio y modelo de datos.L1L2L3L4L5L6BTP

Capa: Lógica de negocio y modelo de datos

Abrir el mapa de arquitectura →

¿Cómo funciona una vista ABAP CDS?

Una vista ABAP CDS es código fuente que el sistema ABAP convierte en una vista de base de datos:

  1. Un desarrollador crea una definición de datos en ABAP Development Tools y escribe una sentencia DEFINE VIEW ENTITY: fuentes de datos, campos seleccionados, cálculos, joins y asociaciones con otras entidades CDS.
  2. Las anotaciones añaden metadatos: etiquetas, semántica como campos de moneda o de unidad, roles analíticos, indicaciones de UI y ajustes de exposición OData.
  3. Al activarla, el sistema crea la entidad CDS y la vista correspondiente en la base de datos, de modo que la lógica se ejecuta donde están los datos.
  4. Los consumidores leen la vista: ABAP SQL en programas, servicios OData construidos con RAP, consultas analíticas y API liberadas.
  5. Si existe un control de acceso CDS para la vista, sus condiciones se aplican a cada lectura de la vista.

Las asociaciones son una diferencia clave frente a las vistas de base de datos clásicas: declaran una relación una sola vez, y el join solo se construye cuando un consumidor sigue la ruta de la asociación. Una vista ABAP CDS es, por tanto, un modelo de datos semántico reutilizable, no un simple SELECT almacenado.

¿Cuál es la diferencia entre las CDS view entities y las vistas basadas en DDIC?

CDS view entityVista CDS basada en DDIC
SentenciaDEFINE VIEW ENTITYDEFINE VIEW con un nombre de vista SQL
Vista adicional del ABAP DictionaryNingunaSe genera una vista DDIC gestionada por CDS
Disponible en on-premiseABAP 7.55 (SAP S/4HANA 2020)ABAP 7.40 SP05
Disponible en la nubeSAP BTP ABAP environment y Public Edition 2005No recomendada; use view entities
EstadoRecomendadaObsoleta: todavía posible, no recomendada

La documentación de SAP cita una activación más rápida, una sintaxis más sencilla y comprobaciones más estrictas entre los motivos para usar view entities. Las vistas basadas en DDIC existentes siguen funcionando, y ABAP Development Tools ofrece un asistente de migración, documentado en on-premise a partir de SAP S/4HANA 2023 FPS00. RAP en strict mode también espera view entities como fuentes de datos. Para cualquier desarrollo nuevo, las view entities son la variante de vistas ABAP CDS que debe usarse.

¿Cómo encajan las vistas CDS en el modelo de datos virtual?

SAP S/4HANA incluye miles de vistas CDS organizadas como el modelo de datos virtual (VDM). Las basic interface views exponen entidades de negocio cercanas a las tablas, las composite interface views las combinan y las consumption views sirven a una aplicación o consulta concreta. El prefijo del nombre indica la capa: I_ para las interface views, como I_SalesOrder, y C_ para las consumption views.

Lo que importa a los clientes es el estado de liberación de una vista:

  • Liberada para la extensibilidad key user (contrato C1): utilizable en herramientas de key user como la app Custom CDS Views.
  • Liberada para el desarrollo en la nube (contrato C1): utilizable por los desarrolladores en ABAP Cloud, incluida la extensibilidad para desarrolladores.
  • No liberada: visible en el sistema pero sin contrato de estabilidad; SAP puede modificarla en cualquier actualización.

Un key user de Alder Manufacturing que necesita los pedidos de compra abiertos por proveedor, por ejemplo, construye una vista CDS personalizada sobre vistas de compras liberadas en lugar de leer tablas. En el modelo de datos virtual, el estado de liberación decide si es seguro construir sobre una vista ABAP CDS.

¿Cómo se convierten las vistas ABAP CDS en aplicaciones SAP Fiori?

Una vista CDS aporta datos y metadatos; otros objetos la convierten en una aplicación:

  1. Camino actual (RAP): las CDS view entities forman un business object, una behavior definition añade operaciones, las projection views lo adaptan, y una service definition junto con un service binding lo exponen como OData V2 o V4.
  2. SAP Fiori elements lee las anotaciones de UI de ese servicio y genera un list report o un object page.
  3. Las aplicaciones analíticas consumen consultas analíticas CDS, definidas como transient view entities en los releases recientes y con la anotación obsoleta @Analytics.query en los más antiguos.

Los sistemas más antiguos usan caminos anteriores: la anotación @OData.publish del ABAP Programming Model for SAP Fiori, o un proyecto de SAP Gateway que usa la vista CDS como fuente de datos referenciada; compruebe cuál de ellos sigue admitiendo su release. En todos los caminos, la vista ABAP CDS define qué son los datos; el comportamiento transaccional proviene de RAP o, en el modelo predecesor, de BOPF.

¿Dónde terminan las vistas ABAP CDS?

Los puntos fuertes son considerables. Un único modelo sirve por igual a OData, al análisis y a ABAP SQL; los cálculos se ejecutan en la base de datos; las anotaciones aportan una semántica que todos los consumidores entienden; y el control de acceso se declara junto a los datos.

Los límites se derivan de lo que es una vista:

  • Solo modelo de lectura. Una vista CDS no crea, modifica ni valida datos. Las transacciones necesitan un business object RAP por encima.
  • SQL declarativo, no lógica procedimental. Los algoritmos complejos pasan a CDS table functions implementadas en AMDP, o a ABAP.
  • El rendimiento depende de la pila. Las vistas construidas sobre vistas que a su vez se basan en otras vistas pueden producir un SQL pesado; las asociaciones usadas sin cuidado multiplican los joins.
  • Ligadas al release. Las funcionalidades de sintaxis llegan release a release; una vista escrita para el SAP BTP ABAP environment puede no activarse en un release on-premise más antiguo.

Las vistas ABAP CDS son el lugar adecuado para la semántica de los datos, no para la lógica de procesos o de transacciones.

¿Cuáles son los errores comunes con las vistas ABAP CDS?

  1. Crear nuevas vistas basadas en DDIC. Son obsoletas; empiece con view entities.
  2. Construir sobre vistas SAP no liberadas. Funciona hasta que una actualización modifica la vista. Compruebe primero el contrato de liberación.
  3. Olvidar el control de acceso. Sin un control de acceso CDS, cualquier persona autorizada a leer la vista ve todos sus datos. Añada un control de acceso y mantenga también las autorizaciones de inicio de la aplicación.
  4. Escribir anotaciones de UI en la definición de datos. Las metadata extensions mantienen legible el modelo y permiten que los metadatos de UI cambien a su propio ritmo.
  5. Confundir ABAP CDS con CAP CDS. Misma idea y sintaxis similar, runtime diferente: un modelo CAP no se activa en un sistema ABAP.

La mayoría de los problemas con las vistas ABAP CDS provienen de decisiones de ciclo de vida, no del SQL.

ABAP CDS frente a CAP CDS: ¿cuál es la diferencia?

ABAP CDSCAP CDS
Se ejecuta enLa plataforma ABAP (SAP S/4HANA, SAP BTP ABAP environment)Runtime CAP de Node.js o Java, principalmente en SAP BTP
Se convierte enVistas de base de datos gestionadas por el repositorio ABAPTablas y vistas de base de datos más service definitions, generadas por el compilador CAP
Comportamiento transaccionalSe añade con behavior definitions de RAPHandlers genéricos de CAP más código personalizado
Ciclo de vidaTransportes ABAPBuilds y despliegues del proyecto (por ejemplo, multi-target applications)
Uso típicoModelos de datos dentro de SAP S/4HANA y extensiones ABAPAplicaciones y servicios side-by-side en SAP BTP

ABAP CDS y CAP CDS comparten una idea de modelado y un nombre, pero son lenguajes distintos, con compiladores y runtimes distintos.

Preguntas frecuentes

¿Siguen siendo compatibles las vistas CDS basadas en DDIC?

Las vistas CDS basadas en DDIC existentes siguen funcionando, pero SAP las clasifica como obsoletas y recomienda las CDS view entities para los desarrollos nuevos. ABAP Development Tools también ofrece un asistente para migrar las vistas basadas en DDIC a view entities, documentado como compatible a partir de SAP S/4HANA 2023 FPS00.

¿Se pueden usar vistas ABAP CDS en SAP ECC?

Las vistas CDS basadas en DDIC existen a partir de ABAP 7.40 SP05, por lo que los sistemas SAP ERP con un release de SAP NetWeaver suficientemente reciente pueden usarlas. Las CDS view entities requieren ABAP 7.55, el release de SAP S/4HANA 2020, así que compruebe el release de SAP NetWeaver del sistema SAP ERP antes de planificarlas.

¿Pueden los key users crear vistas CDS sin desarrollo ABAP?

Sí. La app Custom CDS Views permite a los key users construir vistas personalizadas sobre vistas CDS de SAP liberadas para la extensibilidad key user. El resultado puede servir como vista de cubo o de dimensión para análisis o exponerse como API OData externa, dentro de los límites de las vistas liberadas.

¿Las vistas ABAP CDS sustituyen a las calculation views de SAP HANA?

No en general. Las vistas ABAP CDS son objetos del repositorio ABAP con los conceptos de ciclo de vida y de autorización de ABAP. Las calculation views de SAP HANA son modelos nativos de base de datos. En SAP S/4HANA, los modelos de datos de las aplicaciones se construyen en ABAP CDS.

¿Cómo encuentro la vista CDS que hay detrás de una aplicación SAP Fiori?

Parta del servicio OData de la aplicación en la SAP Fiori apps reference library y luego abra la service definition o el servicio en ABAP Development Tools para ver las entidades CDS expuestas. La app View Browser ayuda a explorar las vistas liberadas por nombre y descripción.

Fuentes

Se aplica a
SAP S/4HANA on-premise · SAP S/4HANA Cloud Private Edition · SAP S/4HANA Cloud Public Edition
Última revisión

SAP, SAP Fiori, SAPUI5, SAP S/4HANA, SAP BTP y los demás productos y servicios de SAP mencionados son marcas comerciales o marcas registradas de SAP SE (o de una empresa afiliada de SAP) en Alemania y otros países. Esta guía es independiente y no está afiliada, patrocinada ni respaldada por SAP SE.