SAP NetWeaver AS ABAP Release 750, ©Copyright 2016 SAP AG. Alle Rechte vorbehalten.
ABAP - Schlüsselwortdokumentation →
ABAP - Dictionary →
ABAP CDS im ABAP Dictionary →
ABAP CDS - Datendefinitionen →
ABAP CDS - Views
Eine CDS-View wird für vorhandene Datenbanktabellen und beliebige andere
Views oder CDS-Views des ABAP Dictionary mit der Anweisung DEFINE VIEW der
DDL der
ABAP Core Data Services (CDS) im
CDS-Quelltext einer
CDS-Datendefinition in den
ABAP Development Tools (ADT) definiert. Bei der Aktivierung der CDS-Datendefinition einer CDS-View werden zwei Objekte des ABAP Dictionary erzeugt:
-
Die CDS-Entität repräsentiert die eigentliche CDS-View. Sie basiert auf einer
CDS-Datenbank-View und ermöglicht zusätzliche Eigenschaften, wie z.B. in CDS definierte
Zugriffskontrollen.
Der Name cds_entity der Entität wird bei der Definition einer CDS-View
hinter DEFINE
VIEW definiert. Die Definition der CDS-Entität kommt nur als CDS-Quelltext vor. Das Werkzeug ABAP Dictionary der ABAP Workbench
(SE11) kennt die CDS-Entität nicht.
-
Als Datentyp des ABAP Dictionary repräsentiert die CDS-Entität einen strukturierten Typ mit den
Elementen der CDS-View als Komponenten und kann wie jede
CDS-Entität verwendet werden:
- In ABAP CDS kann die CDS-Entität als Datenquelle anderer CDS-Entitäten verwendet werden.
- In ABAP kann die CDS-Entität als Datentyp und in lesenden Open-SQL-Anweisungen verwendet werden.
-
Die CDS-Datenbank-View ist die technische Grundlage der CDS-View im ABAP Dictionary. Es handelt sich um eine schreibgeschützte klassische
Datenbank-View. Der Name CDS_DB_VIEW dieser View wird bei der
Definition einer CDS-View in der
CDS-Annotation @AbapCatalog.sqlViewName definiert. Das Werkzeug ABAP Dictionary der ABAP Workbench
(SE11) zeigt eine CDS-Datenbank-View zwar an, sie kann dort aber nicht geändert werden. Bei Aktivierung der View wird auf der Datenbank die entsprechende gleichnamige SQL-View erzeugt.
-
Als Datentyp des ABAP Dictionary repräsentiert die CDS-Datenbank-View wie alle klassischen Datenbank-Views eine flache
Struktur mit den
Elementen der CDS-View als Komponenten. Die CDS-Datenbank-View einer
mandantenabhängigen CDS-View hat anders als die CDS-Entität immer auch eine Mandantenspalte.
- Im ABAP Dictionary kann die CDS-Datenbank-View wie jede klassische
Struktur verwendet werden, beispielsweise als Typ einer Unterstruktur, als Include-Struktur oder als Zeilentyp eines Tabellentyps.
- In ABAP sollte die CDS-Datenbank-View dagegen nicht verwendet werden. Sie kann zwar über
ihren Namen CDS_DB_VIEW fast überall dort verwendet werden, wo
auch Datenbanktabellen oder klassische Datenbank-Views angegeben können, wie z.B. hinter dem
TYPE-Zusatz, in lesenden Open-SQL-Anweisungen, aber auch in Native SQL oder
hinter der TABLES-Anweisung, dies wird aber nicht empfohlen. Insbesondere ist die Verwendung der CDS-Datenbank-View in lesenden Open-SQL-Anweisungen
obsolet und im
strikten Modus ab Release 7.50 verboten.
Statt dessen soll in ABAP auf die CDS-Entität zugegriffen werden, welche alle Eigenschaften der CDS-View umfasst.
Beide Namen cds_entity und CDS_DB_VIEW liegen im Namensraum der
Datentypen des ABAP Dictionary. Innerhalb der DDL
der ABAP CDS ist die View ebenfalls unter beiden Namen bekannt. Auch in anderen CDS-Entitäten
sollte aber nur auf die CDS-Entität über ihren Namen cds_entity
und nicht auf die CDS-Datenbank-View über den Namen CDS_DB_VIEW zugegriffen werden.
Eine CDS-View hat zwei Arten von Schlüsseln:
- Für CDS-Entitäten können mit
KEY Schlüsselelemente definiert werden. Dieser Schlüssel ist der semantische Schlüssel der CDS-View.
- Der Schlüssel der CDS-Datenbank-View wird wie bei einer
klassischen View implizit bestimmt. Dieser Schlüssel ist der technische Schlüssel der CDS-View.
In Open SQL hängt es davon ab, ob über den Namen der CDS-Entität oder über
den Namen der CDS-Datenbank-View auf eine CDS-View zugegriffen wird, welcher Schlüssel für die Syntaxprüfung verwendet wird.
Die folgenden Abschnitte beschreiben die Mandantenbehandlung und die SAP-Pufferung für CDS-Views:
Hinweise
- Die Programmierung von CDS-Views mit der DDL der Core Data Services ist in aller Regel nicht Sache
der normalen ABAP-Anwendungsprogrammierung sondern gehört zum Aufgabengebiet der Implementierung
von Datenmodellen im ABAP Dictionary. Einmal angelegt werden CDS-Views in ABAP-Programmen über lesende Open-SQL-Anweisungen verwendet und müssen entsprechend stabil sein.
- Neben den für CDS-Views spezifischen Möglichkeiten wie die Definition von Assoziationen
gehen auch die Möglichkeiten der normalen SQL DDL der CDS DDL weit über die des formularbasierten Werkzeugs ABAP Dictionary der ABAP Workbench zur Definition von
klassischen Views hinaus.
- CDS-Views werden plattformunabhängig definiert. Sie können aber Anteile enthalten, die derzeit nicht von allen Datenbanksystemen unterstützt werden. Vor einem Zugriff in ABAP kann mit der Klasse
CL_ABAP_DBFEATURES festgestellt werden, ob die Eigenschaft im aktuellen System unterstützt wird, um eine Ausnahme zu verhindern.
- Für CDS-Views gibt es mit CDS-View-Erweiterungen
eine eigene Möglichkeit für modifikationsfreie Erweiterungen.
Weiterlesen
ABAP CDS - Mandantenbehandlung bei CDS-Views
ABAP CDS - SAP-Pufferung von CDS-Views