Ursprünglich veröffentlicht am 14. Dezember 2021.
Verfasst von: Anja Kaup (PR und Marketing Managerin) – anja.kaup@infocient.de

Core Data Services (CDS) stellen eine Infrastruktur dar, mit der semantisch umfangreiche Datenmodelle in SAP HANA definiert und konsumiert werden können.
Der Fokus der zukünftigen Datenverarbeitung wird durch den Code Pushdown auf die Ebene der Datenbank verlagert. Berechnungen auf der Datenbankschicht – statt auf der Anwendungsschicht – rufen Daten schneller ab. Diese Umstellung verlangte nach einer neuen Datenmodellierung, denn ABAP Dictionary Views sind auf die Applikationsebene beschränkt. HANA CDS Views bieten hier neue Möglichkeiten.

CDS Views Definition

CDS Views bilden den neuen Standard für das moderne Aussehen von SAP Anwendungen.

Bei CDS Views handelt es sich um virtuelle Programmiermodelle, bei deren Nutzung keine Daten physisch gespeichert werden.

Durch die Nutzung von entsprechenden SQL-Befehlen kann das starre Design der Datenbanktabellen in ein anwendungsorientiertes Datenmodell transformiert werden.

HANA CDS Views: sie definieren Datenmodelle auf der Ebene einer HANA-Datenbank. Aus technischer Sicht werden CDS Views in sog. DDL Dateien (Data Definition Language) gespeichert und verwaltet. “Programmiersprache” ist das native SQL zur Definition der Views.

ABAP CDS Views: diese sind für generelle Daten ausgelegt, unabhängig von einer SAP HANA Datenbank. In ABAP 7.40 SP08 wurde die erste Variante der CDS Views für ABAP eingeführt, damit die neuen Features unabhängig von einer SAP HANA Datenbank auf ein SAP System ausgerollt werden können. OpenSQL statt nativem SQL gewährt die Unabhängigkeit bei der Datenbankwahl.

Vorteile der CDS Views

CDS wird sowohl auf der ABAP- als auch auf der HANA-Plattform nativ unterstützt.

Dank dieser SAP-Entwicklung im Bereich der Datenmodellierung können Datenmodelle unabhängig von der SAP-Technologieplattform (ABAP oder HANA) auf die gleiche Weise definiert und konsumiert werden (Syntax, Verhalten, etc.).

Weil CDS Views programmierbar sind, bieten sich viele Möglichkeiten, beispielsweise das Zusammenführen von Tabellen.

Ein weiterer Vorteil der CDS Views liegt in der einfachen Erweiterung des Datenmodells. Da es sich um virtuelle Objekte / Programmiermodelle handelt und somit das Datenmodell per Laufzeit erzeugt wird, können weitere Felder oder zusätzliche Information ohne größeren Aufwand dem Datenmodell hinzugefügt werden.

Es gibt also mehr Möglichkeiten und weniger Einschränkungen, als oft allgemein angenommen. Die Performance ist meist akzeptabel.

Vorteil Performancesteigerung

Durch den Code Pushdown, auch als Code-to-Data bezeichnet, werden die Rechenoperationen im CDS View direkt auf der SAP HANA Datenbank ausgeführt. Dadurch wird die Bearbeitungslast auf die in Memory Datenbank verschoben, was zu enormen Performancesteigerungen führt.

Vorteil Verschachtelte Views (Views auf Views) oder Nested Views

Es ist möglich, CDS Views auf CDS Views aufzubauen. Hierdurch wird es möglich, komplexe Anforderungen durch die Implementierung mehrerer aufeinander aufbauender CDS Views zu modellieren.

Die nachfolgende Grafik verdeutlicht diese Logik:

Grafik mit gekapselten CDS Views, die aufeinander aufbauen

Abb. 1: Kapselung von CDS Views, angelehnt an https://erlebe-software.de/sap-hana-entwicklung/abap-cds-views-vs-abap-dictionary-views/

Weiterhin sind hierdurch Kapselungen und Modularisierungen einzelner Bausteine möglich. Einerseits kann auf die implementierte Logik und Semantik von bestehenden CDS Views zurückgegriffen werden und andererseits können Funktionen in einzelne CDS Views ausgelagert werden.

Bei der Kapselung geht es darum, dass Daten einmalig dem BW zur Verfügung gestellt werden, um in höheren Ebenen wiederverwendet werden zu können.

Beispielsweise können Kostenstellendaten aufbereitet in einem CDS View abgelegt werden, damit sie im Fall der nächsten Verwendung nicht wieder aus dem Quellsystem gesucht werden müssen, sondern direkt auf den aufbereiteten Daten aufgesetzt werden kann.

Bereits erarbeitetes Wissen wird so in Form eines BW-tauglichen Datenmodells konserviert und angeboten.

Verfügbarkeit der CDS Views

Die Core Data Services sind in den unten genannten SAP-Plattformen verfügbar:
  • SAP NetWeaver 7.50, SP01 oder höher
  • SAP NetWeaver 7.4 SP05
  • SAP HANA SPS6
  • SAP Business Suite EHP7 (Suite auf HANA)
  • S/4HANA
  • SAP Business Warehouse 7.3

Kennzeichen der CDS Views

  • semantisch reichhaltige Datenmodelle: Domain-spezifische Sprachen (DDL, QL, DCL), dem konzeptionellen Denken nahe.
  • basiert vollständig auf SQL: Alle ‚Standard SQL‘-Funktionen sind direkt verfügbar, wie Joins, eingebaute Funktionen, ….
  • kompatibel mit allen Datenbanken: CDS wird in verwalteten Open SQL-Ansichten generiert und in die SAP HANA-Schicht integriert. Diese Ansichten werden von allen wichtigen DBs unterstützt.
  • Unterstützung für Annotationen: Die CDS-Syntax unterstützt domänenspezifische Anmerkungen, die von anderen Komponenten wie den UI-, Analyse- und OData-Diensten leicht ausgewertet werden können.
  • Assoziationen: Vereinfachte Definition von Ansichten auf der Oberfläche von Ansichten. Pfadausdrücke zur Navigation entlang von Beziehungen.
  • Erweiterbarkeit: von SAP definierte CDS-Views können um Felder erweitert werden, die automatisch der CDS-View zusammen mit ihrer Nutzungshierarchie hinzugefügt werden.

Beispiele für CDS Views

Es stellt sich die Frage, wozu CDS Views genutzt werden können? Was ist der konkrete Einsatz in einem BW-Szenario?

Aufbauend auf CDS Views können verschiedene Objekte zur weiteren Datenmodellierung im Business Warehouse angelegt werden.

(Es ist natürlich möglich die BW-üblichen Layer einzubauen. Die dargestellten Grafiken stellen lediglich eine schematische Abbildung dar.)

Auf die CDS View im Quellsystem (SAP HANA) kann über eine DataSource die Brücke zum Business Warehouse gebaut werden. Aufbauend auf der DataSource im BW können die Objekte Advanced DataStore Object (ADSO), Open ODSV View (OODSV) oder Calculation View (CAV) implementiert werden.

Persistente Datemodellierung mit CDS Views

Abb. 2: persistente Datenmodellierung

Das Advanced Data Store Object beschreibt eine Möglichkeit zur persistenten Datenmodellierung. Die Daten werden hierbei physisch im InfoProvider gespeichert. Abgeschlossen wird dieser Datenfluss durch einen CompositeProvider.

Im Gegensatz dazu stellen die Open ODS Views (OODSV) eine Möglichkeit dar, wie ein Datenmodell vollständig virtuell abgebildet werden kann.

Dies ist die große Errungenschaft. Ohne CDS Views hätte man deutlich weniger Möglichkeiten oder Werkzeuge, um Daten zu verändern oder den Datenfluss zu verändern (Umformungen, Harmonisierungen, Zusammenführungen).

Virtuelle Datenmodellierung mit CDS Views

Abb. 3: virtuelle Datenmodellierung

Hierbei wird aufbauend auf der DataSource der OODSV modelliert. Da es sich auch beim CompositeProvider um ein virtuelles Objekt handelt, ist der oben dargestellte Datenfluss komplett virtuell modelliert.

Funktionelle Einsatzmöglichkeiten von CDS Views

Was kann man funktional mit CDS Views tun?

CASE Anweisung

Mithilfe von CASE Anweisungen können Logiken im Prinzip von Wenn (WHEN) – Dann (THEN) Funktionen erstellt und genutzt werden. Die Ergebnisse dieser Anweisungen werden in einem neuen Feld ausgegeben.

Folgendes Beispiel soll diese Logik verdeutlichen.

Case Anweisung mit CDS View

Durch diese CASE Anweisung wird das neue Feld partner_role erstellt.
Befüllt wird das neue Feld in Abhängigkeit des Feldes partner.bp_role.

Detailliertere Informationen und weitere Beispiele zu CASE Anweisungen finden Sie unter folgendem Link:
https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-DE/abencds_f1_simple_case_expression.htm

CAST Anweisung

Mithilfe von CAST Anweisungen lassen sich explizite Typumwandlungen durchführen. Innerhalb dieser Umwandlungen ist es zudem möglich, verschiedene Berechnungen durchzuführen.

Folgendes Beispiel soll diese Logik verdeutlichen:

Cast Anweisung mit CDS View

In der obenstehenden Anweisung wird das Feld net_amount in ein floating point number (Gleitpunktzahl) umgewandelt und mit 1,19 multipliziert. Ausgegeben wird das Ergebnis in dem neuen Feld gross_amount.
Weiterhin kann die Länge des Ergebnisses durch die CAST Anweisung festgelegt werden.

Folgende Beispiele sollen diese Logik verdeutlichen:

Cast Anweisungen mit CDS Views

Detaillierte Informationen zur Cast Anweisung und eine Tabelle zu allen möglichen Typumwandlungen finden sich unter folgendem Link:
https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-DE/abencds_f1_cast_expression.htm

Associations

Mit Hilfe von Associations können Daten aus mehreren Tabellen, ähnlich wie bei Join-Bedingungen, zusammengeführt werden. Im Gegensatz zu den üblichen SQL-Joins handelt es sich bei Associations um „Joins on Demand“.

Das bedeutet, der Befehl wird nur ausgeführt, wenn der Benutzer auf die erforderlichen Daten zugreift. Hiermit ist es dem System möglich, Daten schneller zurückzugeben. Die Performance von CDS Views kann so gesteigert werden.

Folgendes Beispiel beschreibt die Verwendung einer Association:

association [0..*] to ZI_SalesOrderItem as _Item on table1.SalesOrder = _Item.SalesOrder

Bei dieser Association wird eine Verbindung zur CDS VIEW ZI_SalesOrderItem über die Bedingung Tab-le1.SalesOrder = _Item.SalesOrder hergestellt. Anschließend können auf alle Felder der CDS View ZI_SalesOrderItem, gleich wie nach einem Join zugegriffen werden.

Associations werden mit Kardinalitäten (association [<cardinality>]) erstellt, basierend auf den Daten und Beziehungen der verbundenen Tabellen.

Kardinalitäten sollten immer explizit und so präzise wie möglich definiert werden. Fehlerhafte Kardinalitätsangaben können zu Folgefehlern in der Datenmodellierung führen.

Folgende Tabelle beschreibt die möglichen Kardinalitätsangaben:

Tabelle für Kardinalitätsangaben mit CDS Views

Abb. 3: Tabelle mir Kardinalitätsangaben, Quelle: Core Data Services für ABAP, SAP Press, S. 84

CDS Views Tutorial

Wenn Sie wissen möchten, wie man einen CDS View erstellt, empfehlen wir folgendes Tutorial:

Tutorial: Get Started with CDS
https://help.sap.com/viewer/b3d0daf2a98e49ada00bf31b7ca7a42e/2.0.04/en-US/72ab5eadfad747b28f5c886b42373cc0.html

Weiterführende Informationen

Weiterführende Informationen finden Sie unter:

SAP Help Portal – CDS Views (https://help.sap.com/viewer/8308e6d301d54584a33cd04a9861bc52/2021.000/en-US/5418de55938d1d22e10000000a44147b.html)

Fazit


CDS Views sind einfach anzuwenden und ermöglichen auch bei virtuellen Datenmodellen die Abbildung einer komplexen Logik mit einer hohen Performance.

Sie wurde für die Datenmodellierung in SAP HANA eingeführt und führen Operationen möglichst direkt im Arbeitsspeicher aus.

Vorteile von CDS Views sind, dass die Vorteile der virtuellen Datenmodellierung genutzt werden können sowie die Flexibilität der Datenmodellierung durch SQL-Anweisungen.

Damit ist der CDS View auch im BW bei der virtuellen Datenmodellierung ein unverzichtbarer Bestandteil zur Abbildung von Logik und zur Kapselung von aufbereiteten Daten geworden.

 

Coverphoto:  Ivars Utināns auf Unsplash