OData-Services mit CDS: Voraussetzungen
Schnell und einfach OData Services zu definieren ist immer eine Herausforderung in UI5 Projekten. In vielen Kundenprojekten, die ich begleitet oder geleitet habe, nimmt die Implementierung der Datenbeschaffung einen Großteil der Entwicklungszeit in Anspruch, ohne sichtbare Ergebnisse zu erzeugen.
Dabei lassen sich ein Großteil der benötigten Entitysets meist direkt oder durch einige Joins durch Datenbanktabellen abbilden. Unter anderem für diesen Anwendungszweck wurden von der SAP die sog. Core Data Services (CDS) entwickelt, welche ich Ihnen in dieser Blogreihe vorstellen werde. Teil 1 dieses Blogs wird sich mit den Voraussetzungen, Vor- und Nachteilen der Core Data Services beschäftigen, während Teile zwei und drei sich mit der konkreten Implementierung und Registrierung des OData-Services beschäftigen.
Schritt 1: Die Voraussetzungen
Anders als weitläufig bekannt, stehen die CDS-Views nicht nur auf den HANA-Systemen zur Verfügung, sondern auch auf den älteren, R/3-baiserten Systemen. Die konkreten Anforderungen sind wie folgt:
- SAP NetWeaver 7.50, SP01, or higher.
- SAP NetWeaver 7.4 SP05
- SAP HANA SPS6
- SAP Business Suite EHP7 (Suite on HANA)
- S/4HANA
- SAP Business Warehouse 7.3
Schritt 2: Installation Eclipse und Einrichtung ABAP Development Tools
Sollten Sie die ABAP Entwicklungstools für Eclipse bereits nutzen, können Sie diesen Abschnitt überspringen. Die Entwicklung der Core Data Services wird per ABAP Development Tools vorgenommen. Dafür ist Eclipse herunterzuladen, einzurichten sowie die Installation des entsprechenden Tools obligatorisch. Eine Installationsanleitung finden Sie auf dieser SAP-Seite: https://tools.hana.ondemand.com/#abap
Nutzen von Core Data Services
Die sog. CDS Views sind eine von SAP entwickelte, systemunabhängige und datenbankunabhängige Definitionssprache für Datenstrukturen. Diese können sowohl auf HANA, als auch Oracle Datenbanken, und im S/4, als auch R/3 Systemen definiert werden. Somit erleichtern CDS-Views einen späteren Wechsel auf S/4-Systeme.
Für die Frontendentwicklung mit SAPUI5 sind die CDS-Views in sofern von nutzen, dass diese direkt als OData Service generiert und aufgrund entsprechender Annotations u.a. eine vereinfachte Modellierung von SAPUI5-Oberflächen mit Smart-Objekts ermöglichen. Dabei stellen die Core Data Services die Schnittstelle Datenbank-Design und Applikations-Design dar. Sie ermöglichen eine Abstraktion, sowohl von der Datenbank, als auch der Anwendungsoberfläche.
Während bei der Modellierung der OData Services die Oberfläche von Bedeutung ist, basiert die Data Provider Class Implementierung auf den entsprechenden Datenbanken (Abschnitt Classic Approach). Die Core Data Services verlagern den entsprechenden Aufwand auf die Datenbankebene und nutzen entsprechende Möglichkeiten des entsprechenden Datenbank Systems (Abschnitt Data Centric Approach).
Aufbau der Core-Data-Services (CDS)
Um die entsprechenden Ergebnisse zu erzielen, basiert der Aufbau der Core Data Services auf 4 Ebenen:
- Grundlage bilden zunächst die Entities, welche bspw. als Tabellen im DBS vorliegen oder anderen CDS-Entities.
- Die Relationships sind die aus dem SQL-Umfeld bekannten Joins, welche erst die Komplexität der Datenbeschaffung abbilden.
- Eine weitere Ebene bilden die sog. Calculated Fields, welche bspw. die Schlüssel der entsprechenden Einträge auflösen oder Berechnungen durchführen.
- Und zuletzt die Annotations, welche erst dem Konzept den Schliff verleihen, in dem Semantische Informationen, wie Beschreibung oder Datentypen ergänzt werden.
Zusammenfassung
Sie kennen nun die Voraussetzungen, die Vorteile und den Aufbau der Core Data Services. Meine größte Erkenntnis, als ich mich das erste Mal dem Thema gewidmet habe war, dass die CDS auch auf den älteren SAP Systemen zur Verfügung stehen und diese die Erstellung von OData-Services stark vereinfachen.
2 Kommentare zu "OData-Services mit CDS: Voraussetzungen"
Hallo Herr Lehker,
ich habe folgendes Problem. Ich möchte gerne meine CDS-Entities mit meinen Kollegen teilen. Ist dies überhaupt möglich? Wenn ja, wo finde ich diese Option?
Hallo Frau Kastner,
in Vertretung für Herr Lehker möchte ich gerne Ihre Frage beantworten. Teilen können Sie Ihre CDS Entities auf 2 Arten: Entweder Sie legen die CDS Views in einem Paket ab, auf das auch andere zugreifen können (also nicht $TMP) oder Sie nutzen (zusätzlich) eine Versionsverwaltung. Hier können Sie beispielsweise abapGit nutzen, was eine passende Lösung darstellt: https://docs.abapgit.org/ Allerdings erfordert dies ebenfalls, dass Sie die CDS Views in allgemein zugänglichen Paketen abgelegt haben.
Ich hoffe, ich konnte Ihre Frage damit beantworten.
Viele Grüße,
Tobias Schießl