CDS-View meets ABAP

Potential von CDS-View nutzen

Moderne SAP-Entwicklung wird häufig mit S/4HANA, SAP-Cloud und SAP Fiori in Verbindung gebracht. Basis für die Datenmodellierung bei Eigenentwicklungen bilden CDS-Views in Kombination mit AMDP (ABAP Managed Database Procedures). Viele Unternehmen entwickeln allerdings noch klassisches ABAP (OO) auf dem Application Server. Ist der Einsatz von CDS-Views und AMDPs auch hier sinnvoll?

In diesem Beitrag möchte ich verdeutlichen, warum sie auch in diesem Szenario eine leistungsstarke Lösung darstellen.

Was sind CDS-Views

Die Core Data Service Views sind eine Technologie zur Erstellung von applikationsspezifischen Sichten auf Daten. Sie ermöglicht Entwicklern, komplexe Abfragen aber auch Aggregationen und Berechnungen auf Datenbankebene.

CDS-Views sind bereits seit Release 7.40 SP05 verfügbar. Eine Hana Datenbank ist keine Grundvoraussetzung für ihren Einsatz, allerdings spielen sie erst auf der In-Memory-Technologie der HANA DB ihren vollen Leistungsumfang aus.

Die Entwicklung von CDS-Views findet ausschließlich in Eclipse statt.

Welchen Mehrwert bieten sie in der klassischen ABAP (OO) Welt?

Bei CDS-Views steht der Code-Pushdown im Vordergrund, um die Komplexität von der Applikations­ebene auf Datenbankebene zu verlagern. Sie weisen gegenüber traditionellen ABAP Dictionary Views viele Vorzüge auf.

Eingebaute Funktionen erlauben Kontrollstrukturen, Berechnungen und Konvertierungen. Die Operationen erfolgen direkt auf Datenbankebene, wodurch der Datentransfer zur Applikationsebene minimiert, und die Performance erhöht wird. Es werden Laufzeiten erzielt, die Auswertungen von Massendaten im Dialog mit Interaktion durch den User ermöglichen. Neben Inner Joins lassen sich auch Outer Joins und Unions verwenden. CDS-Views lassen sich beliebig verschachteln.

Abbildung 1 - Vergleich ABAP Dictionary View vs. CDS-Views

Bei der Entwicklung ohne CDS-Views liegt die Komplexität auf Applikationsebene. Das hat zwar deutlich höhere Laufzeiten zur Folge, bietet jedoch auf der anderen Seite die Möglichkeit, das Coding mittels Debugger zu analysieren. Diese Option existiert auch bei AMDPs, fehlt jedoch beim Einsatz von CDS-Views. Daher muss die Entwicklung stets gut durchdacht sein.

Bei der Entwicklung einer Applikation gibt es in der Regel nicht die „eine“ CDS-View. Umfangreiche Views werden schnell unübersichtlich und sind fehlerträchtig. Sinnvoller ist der modulare Aufbau kleiner, atomarer Views, die zusammen die Basis der Applikation bilden.

Im S/4 Hana System basieren das ABAP Programming Model for SAP Fiori als auch das ABAP RESTful Application Programming Model (RAP) auf dem Virtual Data Model (VDM). Dieses Modell setzt den hierarchischen Aufbau von CDS-Views voraus. Der direkte Zugriff auf Datenbanktabellen erfolgt dabei in den CDS-Views auf unterster Ebene. Diese werden zu größeren Einheiten zusammengefasst. Auf Basis der CDS-Views auf oberster Ebene werden einzelne Applikationen entwickelt.

Im Non-Hana System bzw. der klassischen ABAP-Entwicklung ist ein solcher Aufbau nicht zwingend erforderlich. Es ist jedoch sinnvoll, die CDS-Views in ähnlicher Art und Weise aufzubauen, um die Komplexität auf einzelne Views aufzuteilen und wiederverwendbare Komponenten zu schaffen.

Abbildung 2 - CDS-View-Hierarchie

Auch hier dienen die Views auf unterer Ebene dem Zugriff auf einzelne Datenbanktabellen. Diese werden zu neuen CDS-Views kombiniert, die beispielsweise die Daten eines Kundenauftrags oder eines Geschäftspartners zur Verfügung stellen. Häufig lassen sich diese Views wiederverwenden.

Abbildung 3 - CDS-Views mit Partner Daten

Je nach Bedarf werden die Views weiter zusammengefasst und bilden letztendlich die Grundlage für einzelne Anwendungen. Die Views auf oberster Ebene sind in der Regel applikationsspezifisch.

Im ABAP-Coding ist häufig nur der Zugriff auf die oberste CDS-View erforderlich. Die Komplexität des Datenmodells verbirgt sich hinter der CDS-Hierarchie. Dadurch wird das Coding übersichtlicher, es muss jedoch sichergestellt werden, dass jede CDS-View die erforderlichen Daten liefert.

Abbildung 4 - Zugriff auf oberste Ebene der CDS-View-Hierarchie

Aber auch bei kleineren, spezifischen Aufgabenstellungen sind sie sehr hilfreich und sorgen für bessere Performance und Übersicht, wie ich an folgenden Beispielen zeigen möchte.

Join von Datenquellen über Felder unterschiedlichen Typs

Bei einem klassischen SELECT müssen die Felder der JOIN-Bedingung einen identischen Typ haben. Manchmal weichen Typ und Länge der Felder ab oder der Key einer Tabelle setzt sich aus mehreren Feldern der anderen Tabelle zusammen. In CDS-Views lassen sich die Felder angleichen.

Abbildung 5 - Join über zusammengesetzten Key

Ermittlung von Feldern mit Hilfe von Kontrollstrukturen (bedingte Datenermittlung)

In manchen Fällen müssen Werte abhängig von anderen Feldern bestimmt werden. Mit Hilfe von Kontrollstrukturen ist dies möglich.

Abbildung 6 - Verwendung von Kontrollstrukturen

Direkter Zugriff auf unstrukturierte Daten, wie IDoc-Segmente

Einige Tabellen des SAP-Systems, darunter die Tabelle der IDoc-Segmente, halten Daten in unstrukturierter Form. Diese müssen zunächst von der Datenbank gelesen und in die entsprechende Struktur gemappt werden. Ein direkter Zugriff auf einzelne Feldinhalte ist nicht möglich.

CDS-Views bzw. Table Functions können hier ggf. im Zusammenspiel mit AMDPs Abhilfe schaffen.

Abbildung 7 - Zugriff auf unstrukturierte Daten mittels Table Function

Leistungsfähiges Reporting mit ALV IDA

Durch CDS-Views in Kombination mit dem ALV IDA (Integrated Data Access) lässt sich ein einfaches und komfortables Reporting aufbauen. Dabei wird lediglich die CDS-View übergeben, die Datenausgabe wird intern vom ALV IDA verwaltet. Dadurch lassen sich auch umfangreiche Daten performant ausgeben. Neben den üblichen ALV-Funktionen stehen spezielle Funktionen, z.B. zur phonetischen Suche, zur Verfügung. Der ALV IDA ist in der Lage, UI-Annotations zu interpretieren, die üblicherweise im Fiori Umfeld verwendet werden (z.B. Labels für Datenfelder).

Abbildung 8 - Reporting mit CDS-View und ALV IDA

Fazit

Ich denke, die genannten Beispiele haben deutlich gemacht, was für ein Potential CDS-Views haben. Sie bieten auch in der klassischen ABAP-Entwicklung eine hervorragende Grundlage für Eigenentwicklungen. Die Komplexität darf dabei jedoch nicht unterschätzt werden. Bei wohl durchdachtem Einsatz erhält man zukunftsorientierte Lösungen hoher Performance. Auch bei umfangreichen Szenarien lassen sich übersichtliche, wartbare Anwendungen mit hoher Qualität implementieren.

Kontakt

Dirk Kassebaum
Telefon: +49 (0)40 53302-0
E-Mail: kontakt@cimt-ag.de

cimtAcademy

Jetzt registrieren und keine Veranstaltungen mehr verpassen.​



    Nach oben scrollen