Friday 26 May 2017

Core Data Services [CDS] in SAP S/4 HANA

A data model represents framework of what relationships are in a database. Data models are the foundation of software development. They provide a standardized method for defining and formatting database contents consistently across systems, enabling different applications to share the same data.
Professional data modeling tools provide a way to generate SQL from a modeled ER diagram although some developers often prefer writing SQL directly. Below is a look of a data model.

SAP HANA Tutorials and Materials, Core Data Services, SAP S/4HANA

Virtual Data Model

The concept of the Virtual Data Model (VDM) was introduced with HANA Live three years ago. SAP HANA Live is a Virtual data model on top of suite tables which uses native SAP HANA SQL views called Calculation views for real-time operational Reporting. This came with certain issues:
  • This model didn’t support hierarchies properly. Hierarchies help businesses to analyze their data in a tree structure through different layers with drilldown capability. For example, a time hierarchy consists comprises of levels such as fiscal year, fiscal quarter, fiscal month and so on.
  • Since, the HANA Live virtual data models were defined in the HANA database layer itself as HANA calculation views it led to duplication of security roles between Business Suite for transactional processing and HANA database for operational reporting.
With S/4HANA, SAP launched S/4HANA Analytics as an upgrade to HANA Live. S/4HANA supports a new data model by providing a ready-to-use content using CDS view. The CDS data model used by SAP S/4HANA can be considered a successor to the virtual data model used by SAP HANA Live as the new CDS provides certain advantages over VDM which are discussed later in this blog.

 As for our customers, which are the current users of HANA Live nothing changes unless they migrate to S/4 HANA. The existing virtual data models will continue to be supported by SAP. Once customers migrate to S/4HANA, the new CDS-based views can be used and upgraded against the simplified data model in S/4HANA.

Core Data Services

With the availability of the SAP HANA platform there has been a paradigm shift in the way business applications are developed at SAP. The rule-of-thumb is: Do as much as you can in the database to get the best performance.

To take advantage of SAP HANA for application development, SAP introduced a new data modeling infrastructure known as core data services. With CDS, data models are defined and consumed on the database rather than on the application server. CDS also offers capabilities beyond the traditional data modeling tools, including support for conceptual modeling and relationship definitions, built-in functions, and extensions

SAP HANA Tutorials and Materials, Core Data Services, SAP S/4HANA

Technically, CDS is an enhancement of SQL which provides a Data Definition Language (DDL) for defining semantically rich database tables/views (CDS entities) and user-defined types in the database. Some .of the enhancements are:
  • Expressions used for calculations and queries in the data model
  • Associations on a conceptual level, replacing joins with simple path expressions in queries
  • Annotations to enrich the data models with additional (domain specific) metadata

CDS Value Proposition for Customers

CDS offers a SQL based layer that extends the SQL-92 standard with features that bridge and unify the traditional OLTP and OLAP models of data definition, data query, and data manipulation. Supported natively in both ABAP and SAP HANA, the data models are expressed in data definition language (DDL) and are defined as CDS views, which can be used in ABAP programs via Open SQL statements to enable access to the database. CDS provides a range of advantages for businesses and developers, including:

Semantically rich data models

CDS builds on the well-known entity relationship model and is declarative in nature, very close to conceptual thinking.

Compatibility across any database platform

CDS is generated into managed Open SQL views and is natively integrated into the SAP HANA layer. These views based on Open SQL are supported by all major database vendors


CDS offers a variety of highly efficient built-in functions — such as SQL operators, aggregations, and expressions — for creating views.

Support for annotations.

The CDS syntax supports domain-specific annotations that can be easily evaluated by other components, such as the UI, analytics, and OData services.

Support for conceptual associations

CDS helps you define associations that serve as relationships between different views. Path expressions can be used to navigate along relations. Introducing an abstraction of foreign key relationships and joins, associations make navigation between entities consumable


Customers can extend SAP-defined CDS views with fields that will be automatically added to the CDS view along with its usage hierarchy.

SAP HANA Live(based upon VDM) SAP S/4 Analytics ( based upon CDS )

  • No latency
  • No data duplication
  • Integration scenarios with SAP BW
  • Ready to use content

Best of HANA Live Features
  • Full ABAP Lifecycle Integration
  • Supports ERP authorizations
  • Supports ERP hierarchies
  • Part of the general Extensibility concept
  • Supports more business cases
  • (Analytics, search, Fact sheets, planning…)
VDM to CDS Migration

In order to ensure a smooth migration from HANA Live VDM Model to S/4 HANA VDM CDS Model, SAP provides a migration roadmap tailored for the Customer businesses. In the past a lot of effort was spent to define and implement the HANA Live Virtual Data Model based on HANA Calculation Views. This is used as a starting point for the definition and implementation of the CDS Data Model. CDS views are generated for the Calculation views. Please note, after the generation additional effort is necessary to adapt the generated views to the new approach (CDS). Typical tasks which might be necessary are:
  • Adding needed CDS annotations for analytical or other scenarios. Annotations allow to enhance the core Meta model with consumer-specific vocabularies.
  • Restructuring or renaming the views to support the higher level of reuse which shall be reached with the new approach (Using naming convention like I view for public view, P for Private and C for Consumption views).
  • Adapting the views that as parts of the original functionality could not be migrated due to missing or different features in CDS. 
  • Adapting the views to changed view behavior (if on running the view, a different result for the views is displayed).
However, not all of these manual tasks are necessary for each migrated calculation view. In particular, “simple” views can often be left unchanged after generation.

Example: Calculation View “sap.hba.ecc.BusinessTransactionType”

The calculation view “BusinessTransactionType” has a text join node “Join_1” with the join condition “TJ01.VRGNG = TJ01T.VRGNG” .

SAP HANA Tutorials and Materials, Core Data Services, SAP S/4HANA

If associations are used for join nodes and the resulting CDS view definition has following form: 

NAMESPACE sap.hba.ecc;
 ASSOCIATION [1, 0..1] TO "SAP_ECC".TJ01T as _Text  ON  TJ01.VRGNG = _Text.VRGNG
 and _Text.SPRAS = $session.system.language
  TJ01.VRGNG AS BusinessTransactionType,
  TJ01T.TXT AS BusinessTransactionTypeName,
  TJ01.WTKAT AS ControllingValueCategory,
  TJ01.PSIKZ AS ControllingValueClassification

If standard SQL joins are used for join nodes the resulting CDS view definition looks like this: 

NAMESPACE sap.hba.ecc;
  TJ01.VRGNG = TJ01T.VRGNG and 

TJ01T.SPRAS = $session.system.language

  TJ01.VRGNG AS  BusTransTypee,
  TJ01T.TXT AS BusinessTransactionTypeName,
  TJ01.WTKAT AS ControllingValueCategory,
  TJ01.PSIKZ AS ControllingValueClassification

CDS: Development Environment

CDS views can be developed and maintained in SAP HANA studio and in ABAP in Eclipse. The textual editor in eclipse provides rich feature set for fast development like:

SAP HANA Tutorials and Materials, Core Data Services, SAP S/4HANA
  • Code completion
  • Data preview
  • Quick-fix function
  • Syntax highlighting
NOTE: To search for CDS view for an ABAP table, call se11 transaction. Enter the table name and click on Where used list. Select the type DDL source and the result list will show the views for that consume the table.

Consumption of CDS in an OData Service

Key Takeaways:
  • CDS provides a unified data model across all application domains
  • CDS provides one semantic layer for all use cases: search, operational and analytical
  • CDS extends SQL to capture the business intent instead of technical complexity.

No comments:

Post a Comment