ABAP CDS (Core Data Services) Views are a modern data modeling framework in SAP development that allows developers to define database views enriched with business semantics, annotations, and associations — directly on the application server. Unlike traditional ABAP Open SQL queries or database-level views, CDS views push data-intensive operations down to the SAP HANA database layer, dramatically improving query performance while making data models reusable across Fiori apps, OData services, and analytics tools.
CDS Views are written using a SQL-like DDL (Data Definition Language) syntax inside the ABAP Development Tools (ADT) in Eclipse. They are the foundation of SAP’s RAP (RESTful Application Programming) model and Virtual Data Models (VDMs) in S/4HANA — understanding CDS is now a baseline competency for any SAP ABAP developer working in modern SAP landscapes.
Table of Contents
ABAP CDS views are database view definitions managed at the ABAP application layer rather than directly in the database. This distinction matters because:
The most significant performance advantage of CDS views is code push-down: complex calculations, aggregations, and joins are executed directly in SAP HANA’s in-memory engine rather than in the ABAP application layer. This eliminates the “select everything and filter in ABAP” anti-pattern that caused performance problems in older SAP systems. For large data sets, the difference can be orders of magnitude.
Annotations are metadata directives embedded in CDS source code that communicate intent to consuming frameworks. Examples:
@AbapCatalog.sqlViewName
@OData.publish: true
@UI.lineItem
@Analytics.dataCategory
@AccessControl.authorizationCheck
Associations define relationships between CDS views declaratively. Unlike hardcoded JOINs, associations are only resolved when a consuming view or query actually navigates the path — making data models more flexible and preventing unnecessary database reads.
CDS views can be exposed as OData V2 or V4 services with minimal additional configuration. In the RAP model, a CDS view with the right annotations and a behavior definition becomes a full Create-Read-Update-Delete (CRUD) OData service that Fiori apps consume directly.
SAP’s Virtual Data Model (VDM) in S/4HANA organizes CDS views into three layers:
Basic views sit directly on top of physical SAP database tables (like BKPF, VBAK, MARA). They define the raw data exposure with minimal business logic — primarily field selection, type casting, and simple calculations. Basic views are the foundation that composite and consumption views build on.
Composite views combine multiple basic views to build richer data models representing meaningful business entities. This is where joins between documents, currency conversions, and business-specific logic are applied.
Consumption views are optimized for specific UI scenarios (Fiori apps, reports) or API surfaces. They carry the heaviest annotation load — UI annotations, search annotations, and analytics annotations that directly drive application behavior.
CDS views are the data model foundation of SAP’s RESTful ABAP Programming Model (RAP) — the recommended approach for building transactional SAP Fiori apps in S/4HANA. In RAP, a CDS view defines the data structure, a Behavior Definition specifies which CRUD operations are supported, and a Behavior Implementation class provides the ABAP logic.
For teams new to CDS, the SAP Community ABAP topic page provides structured learning paths. Our SAP ABAP consultants can also provide hands-on guidance.
CDS views are used to define reusable, semantically rich data models in SAP systems. They power Fiori applications, OData APIs, analytics reports, and form the data layer of RAP-based transactional apps. They replace older data access patterns with a centralized, maintainable data modeling approach.
ABAP CDS views can be defined and used on non-HANA databases, but their full performance potential — especially code push-down for complex aggregations — is realized only on SAP HANA. In S/4HANA environments (which mandate HANA), CDS views are the standard data modeling approach.
Database views (SE11) are defined at the database level with no business semantics beyond field mappings and join conditions. CDS views are defined at the ABAP application layer, carry annotations, support associations, can include calculated fields and currency conversions, and integrate with the entire SAP application framework.
Yes. SAP S/4HANA’s entire Virtual Data Model is built using CDS views. SAP delivers thousands of CDS views in S/4HANA that expose business data for reporting, APIs, and Fiori apps. Custom development in S/4HANA is expected to follow the same CDS-based approach.
Use a CDS view when your goal is to read and expose data — for reporting, analytics, Fiori UI, or OData APIs. Use an ABAP class or function module when you need to write business logic that modifies data, handles complex control flow, or processes transactions. In RAP, CDS views handle the data model while behavior classes handle the transactional logic — the two complement each other.
Fiori apps built on the List Report and Object Page floorplans read their data directly from CDS consumption views annotated with @UI annotations. The Fiori Elements framework automatically generates the UI layout based on these annotations, without requiring custom frontend coding. This is why understanding CDS annotations is essential for any team building Fiori apps in S/4HANA.
@UI
Open SQL is the query language used inside ABAP programs to read data from database tables. CDS views are persistent, named view objects that can be queried via Open SQL — but they also carry metadata (annotations), associations, and push-down logic that simple Open SQL SELECT statements cannot express. Think of CDS views as reusable, annotated data models built on top of the same database tables that Open SQL reads.
SAP Fiori Consultant Emrah Tezcan, who serves as an SAP ABAP & Fiori Consultant at MDP Group, is a highly skilled SAP expert developing enterprise solutions based on ABAP Cloud and the RAP (RESTful ABAP Programming Model) on the S/4HANA architecture. With deep expertise in extensibility approaches aligned with the Clean Core strategy, HANA Output Management, Adobe Forms, and Flexible Workflow processes, Tezcan takes end-to-end responsibility across the entire software development lifecycle (SDLC), from analysis and design to testing/UAT, go-live, and post-production support.
What is SAP BRF+ and How to Use It?
In today's rapidly changing business environment, it is crucial for companies to manage business rules flexibly and quickly. SAP's Business Rule...
How to Parameterize Decision Rules in SAP TM with BRF+
Introduction SAP Transportation Management (TM) handles complex logistics scenarios where countless decisions need to be made: Which sales orders...
What is SAP Extended Warehouse Management (EWM)? Guide
Today, organizations focus on delivering their services and products to their customers in a fast and high-quality manner to ensure customer...
SAP EWM Rearrangement: Optimizing the PSA
In the age of digital transformation, the integration between production and logistics is more critical than ever. SAP Extended Warehouse Management...
What is SAP MII Energy Monitoring and Analysis?
One of the biggest costs of a product is the cost of energy spent in the production phase. Businesses look for ways to manage their costs in the most...
What is SAP Quality Management (SAP QM)?
Due to the growing competitive pressure and the constant development of the used technologies, the quality requirements of a company are continuously...
JIT & JIS Era in the Automotive Industry with SAP EWM
SAP EWM Solutions for Logistics Excellence in the Automotive IndustryThe automotive industry, with its high-volume production pace, minimal stock...
SAP Quality Management and SAP EWM Integration
What is Quality Management (QM)?SAP Quality Management (QM) is a part of SAP ECC (ERP Central Component) which is mainly used to help businesses...
From Text Retrieval to Knowledge Retrieval: The Multimodal Shift in RAG
Retrieval-Augmented Generation has become one of the most practical ways to connect language models with external knowledge. Yet most...
Your mail has been sent successfully. You will be contacted as soon as possible.
Your message could not be delivered! Please try again later.