ABAP CDS View in SAP – Core Data Services

ABAP CDS Views (ABAP Core Data Services Views) sind ein zentraler Bestandteil der modernen SAP-Entwicklung. Sie ermöglichen es Dir, die SAP-HANA-Datenbank effizient zu nutzen und komplexe Informationen nahtlos in SAP-Fiori-Benutzerschnittstellen zu integrieren. Besonders in der ABAP Cloud sind CDS Views unerlässlich, da direkte Datenselektionen auf die Datenbanktabellen nicht erlaubt sind.

In diesem Artikel erfährst Du, was ABAP CDS Views sind, warum sie besonders sind und wie Du sie in Deinen Projekten einsetzen kannst. Tauche ein in die Welt der ABAP CDS und verbessere Deine SAP-Anwendungen.

Was ist eine ABAP CDS View?

ABAP Core Data Services (ABAP CDS) bilden die Grundlage des modernen Programmiermodells der ABAP-Plattform und sind ein wichtiger Bestandteil der aktuellen Technologiestrategie von SAP. Bei der Benutzung werden keine Daten physisch gespeichert. CDS erweitert SQL und ermöglicht eine effiziente Nutzung der SAP-HANA-Datenbank. Mit ABAP CDS und der Annotationstechnologie kannst Du umfangreiche Informationen modellieren, die sich nahtlos in die SAP-Fiori-Benutzerschnittstellen von Cloud-Anwendungen integrieren lassen. Dies wird durch die Verwendung des stark modellbasierten OData-Protokolls unterstützt.

Wichtige Eigenschaften von ABAP CDS Views sind:

  • Datenmodellierung
  • Basierend auf SQL
  • Kompatibel mit allen Datenbanken
  • Annotationen
  • Assoziationen

ABAP CDS View – Beispiel

@AbapCatalog.sqlViewName: 'DEMO_CDS_SFLGHT'
@AccessControl.authorizationCheck: #NOT_REQUIRED
define view demo_cds_sflight
  as select from sflight
{
  key  carrid,
  key  connid,
  key  fldate,
       price,
       currency,
       planetype,
       seatsmax,
       seatsocc,
       paymentsum,
       seatsmax_b,
       seatsocc_b,
       seatsmax_f,
       seatsocc_f
}

ABAP CDS-View vs. HANA CDS-View

Es gibt zwei Arten von CDS-Views: HANA CDS-Views und ABAP CDS-Views. Sie unterscheiden sich in vier Hauptpunkten:

  1. Definitionsort: HANA CDS-Views werden direkt auf der HANA XS-Datenbank definiert, während ABAP CDS-Views auf dem ABAP Application Server erstellt werden.
  2. Definitionssprache: Die Definitionssprache für HANA-Views ist „Native SQL“, während für ABAP-Views „Open SQL“ verwendet wird.
  3. Kompatibilität: HANA-Views erfordern eine HANA-Datenbank, während ABAP-Views flexibel in ihrer Verwendung sind.
  4. Anwendungsbezug: ABAP CDS-Views sind für ABAP-Anwendungen relevant, während HANA CDS-Views für native HANA-Anwendungen gedacht sind.

CDS View-Typen

Es gibt verschiedene Typen von CDS Views, und hier sind nur einige der häufig verwendeten Views:

  • Projection View
  • Join View
  • Aggregation View
  • Union View

Projection Views werden erstellt, um bestimmte Spalten aus einer Tabelle oder einem anderen View auszuwählen und zu projizieren. Du kannst auch Spalten umbenennen, Suchhilfen anbinden, Berechnungen durchführen oder Filterbedingungen hinzufügen.

Join Views werden erstellt, um Daten aus mehreren Quellen zu kombinieren, indem sie JOIN-Operationen zwischen Tabellen durchführen. Dabei kannst Du verschiedene Arten von Joins wie Inner Join, Left Outer Join, Right Outer Join oder Full Outer Join verwenden.

Aggregation Views werden erstellt, um Daten zu aggregieren, indem sie Gruppierungs- und Aggregatfunktionen wie SUM, AVG, MAX oder MIN verwenden. Du kannst komplexe Berechnungen durchführen und eine Zusammenfassung von Daten erstellen.

Union Views werden erstellt, um Daten aus verschiedenen Quellen zu kombinieren, indem sie UNION-Operationen zwischen Tabellen durchführen. Diese Views integrieren Daten aus verschiedenen Quellen und stellen sie als eine einzige Tabelle dar.

Was macht eine ABAP CDS View besonders?

Mit CDS-Modellen kannst Du die Datenbeschaffung Deiner Anwendungen so implementieren, dass diese Logik unmittelbar in der Datenbank ausgeführt wird. CDS-Views sind innerhalb der CDS-Modelle die aktuell bedeutendsten Designtime-Objekte. Sie erlauben es Dir, das starre Design der Datenbanktabellen durch flexible Datenselektionen in geeignete Datenmodelle zu transformieren, auf denen Du Deine Anwendungen aufbauen kannst.

Du modellierst CDS-Views in einer Syntax, die der Structured Query Language (SQL) ähnelt, die Du nutzt, wenn Du Daten aus Datenbanktabellen über die ABAP-SQL-Schnittstelle der ABAP-Laufzeitumgebung selektierst. Auf Basis Deines modellierten CDS-Views erzeugt die ABAP-Infrastruktur einen entsprechenden Datenbank-View auf der SAP-HANA-Datenbank. Das generierte SAP-HANA-Objekt wird ausgeführt, wenn Du über den CDS-View Daten in ABAP selektierst.

Tools für die Implementierung

Bei der Implementierung Deiner CDS-Modelle kannst Du auf eine Vielzahl spezialisierter Entwicklungswerkzeuge zurückgreifen. Diese sind in die ABAP-Umgebung in Eclipse, den sogenannten ABAP Development Tools (ADT), integriert. Diese Tools unterstützen Dich dabei, CDS-Views effizient zu erstellen und zu verwalten, sodass Du das volle Potenzial der ABAP CDS und der SAP-HANA-Datenbank ausschöpfen kannst.

Verfügbarkeit der CDS Views

Core Data Services (CDS) sind auf den folgenden 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)
  • SAP S/4HANA
  • SAP Business Warehouse 7.3

CDS-Entität

Die CDS-Entität repräsentiert den eigentlichen CDS-View. Sie basiert auf einem CDS-Datenbank-View und ermöglicht zusätzliche Eigenschaften, wie zum Beispiel im CDS definierte Zugriffskontrollen. Der Name der Entität wird bei der Definition eines CDS-Views hinter DEFINE VIEW festgelegt. Die Definition der CDS-Entität erscheint ausschließlich im CDS-Quelltext und ist im Dictionary der ABAP Workbench (Transaktion SE11) nicht vorhanden.

Die CDS-Entität ist ein strukturierter Typ im ABAP Dictionary, bei dem die Elemente als Komponenten dienen und kann wie folgt verwendet werden:

  • Du kannst die CDS-Entität als Datenquelle für andere CDS-Entitäten verwenden.
  • In ABAP kann die CDS-Entität als Datentyp und als Quelle in SQL-Anweisungen genutzt werden.
  • Die CDS-Entität kann jedoch nicht als Datentyp im klassischen ABAP Dictionary verwendet werden.

CDS-Datenbank-View

Für die Erstellung eines CDS-Views ist auch der CDS-Datenbank-View von Bedeutung. Der CDS-Datenbank-View bildet die technische Grundlage für die CDS-Views im ABAP Dictionary. Er ist ein schreibgeschützter klassischer Datenbank-View. Der Name des Views wird bei der Definition des CDS-Views in der CDS-Annotation @AbapCatalog.sqlViewName festgelegt. Dieser View kann im ABAP Dictionary (Transaktion SE11) eingesehen, aber nicht geändert werden. Beim Aktivieren der DDL wird ein gleichnamiger SQL-View auf der Datenbank angelegt.

Der Datenbank-View CDS ist im ABAP Dictionary eine flache Struktur mit den Elementen als Komponenten und kann wie folgt verwendet werden:

  • Im ABAP Dictionary kann der CDS-Datenbank-View wie jede klassische Struktur verwendet werden.
  • Der CDS-Datenbank-View ist nicht für die Verwendung in ABAP vorgesehen. Obwohl der View überall dort verwendet werden kann, wo auch Datenbanktabellen oder Views verwendet werden können (lesende Open SQL-Anweisungen, als TYPE-Zusatz), wird dies von SAP nicht empfohlen. Seit Release 7.50 ist die Verwendung in lesenden Open SQL-Anweisungen obsolet und verboten. Hierfür wird die Entität CDS verwendet.

ABAP CDS View erstellen

Eine ABAP CDS View kannst Du einfach in Eclipse mit den ABAP Development Tools (ADT) erstellen. Folgende Schritte sind hierfür notwendig:

  • „New > Other ABAP-Repository-Objekt“
  • „Core Data Services > Data Definition“
  • Paket, Name, Beschreibung und evtl. referenziertes Objekt angeben
  • Bei Bedarf Transport angeben
  • Vorlage auswählen

Die Details hierzu findest Du im Artikel „ABAP CDS View erstellen“.

Über den Autor

Andreas Geiger

Mein Name ist Andreas Geiger und ich bin ein erfahrener Senior SAP Berater. Mit mehr als 10 Jahren Berufserfahrung habe ich mehrere SAP-Projekte erfolgreich abgeschlossen und umfangreiche Kenntnisse in verschiedenen Bereichen wie SAP FI, SAP MM und ABAP erworben. Nun möchte ich mein Wissen mit Dir teilen, um Dir einen Mehrwert zu bieten und Dich bei Deiner täglichen Arbeit mit dem SAP-System zu unterstützen.

Mehr zu ERP UP

ERP UP unterstützen

Wenn Du mit ERP UP zufrieden bist, kannst Du mich gerne unterstützen. Dabei gibt es unzählige Möglichkeiten, wie Du mich einfach und schnell unterstützen kannst. Wie Du genau ERP UP unterstützen kannst, erfährst Du hier. Vielen Dank.

Schreibe einen Kommentar