Ansicht
Dokumentation
ABENCDS_VIEW_ENTITY_ANNO - CDS VIEW ENTITY ANNO
ABAP Short Reference rdisp/max_wprun_time - Maximum work process run timeDiese Dokumentation steht unter dem Copyright der SAP AG.
- CDS-View-Entität, view_entity_annot
... @annotation ...
Wirkung
Angabe einer Annotation annotation in der Definition einer CDS-View-Entität vor der Anweisung DEFINE VIEW ENTITY als View-Entitätsannotation. Vor den Bezeichner annotation der Annotation muss direkt das Zeichen @ gestellt werden. Die Annotation muss als CDS-Objekt in einer CDS-Annotationddefinition definiert werden. Andernfalls kommt es zu einem Syntaxfehler. Die Annotationsdefinitionannotation @Scope sollte mithilfe des Wertes #VIEW angegeben werden.
Hinweise
- Neben den hier gezeigten View-Annotationen können für eine CDS-View-Entität auch die allgemeingültigen Entitätsannotationen angegeben werden.
- Die Mandantenbehandlung für CDS View-Entitäten erfolgt implizit und automatisch durch das Filtern der Sitzungsvariable $session.client. Annotationen zur Mandantenbehandlung sind nicht notwendig und auch nicht erlaubt.
AbapCatalog-Annotationen
Technische Einstellungen einer CDS-View-Entität.
AbapCatalog.dataMaintenance,,Kann zur Einschränkung der Datenvorschau für eine
CDS-View-Entität verwendet werden. ,, #RESTRICTED:\lbr
Anzeige ohne Einschränkungen erlaubt\lbr\lbr
#DISPLAY_ONLY:\lbr Nur Anzeige. Datenvorschau ist erlaubt \lbr\lbr
#NOT_ALLOWED:\lbr Anzeige nicht erlaubt \lbr\lbr ,, #RESTRICTED,,-
AbapCatalog.entityBuffer.definitionAllowed,,Hiermit wird die
Tabellenpufferung für eine
CDS-View-Entität ein- oder ausgeschaltet.,,
true:\lbr Tabellenpufferung ist erlaubt. \lbr\lbr
false:\lbr Tabellenpufferung ist nicht erlaubt. \lbr\lbr ,,
false,,true
AbapCatalog.extensibility.allowNewDatasources ,, Hiermit wird definiert, ob eine
CDS-View-Entitäts-Erweiterung
neue Datenquellen verwenden darf. Genauer gesagt definiert diese Annotation bei der Angabe einer Assoziation durch eine CDS-View-Entitätserweiterung, ob die neue definierte lokale Assoziation in
Pfadausdrücken
verwendet werden darf.,, true:\lbr Neue
Datenquellen sind in Erweiterungen erlaubt. \lbr\lbr
false:\lbr Neue Datenquellen sind in Erweiterungen nicht erlaubt. \lbr\lbr ,,
false,,true
AbapCatalog.extensibility.dataSources[
],, Erlaubtlist von stabilen Aliasnamen von Datenquellen und lokal definierten Assoziationen
für die Verwendung in Erweiterungen.,, 'data_source_name':
\lbr Aliasname einer Datenquelle oder Aliasname einer lokal definierten oder neu definierten Assoziation.,, -,,-
AbapCatalog.viewEnhancementCategory[ ],,Steuert die Erweiterbarkeit der CDS-View-Entität über
CDS-View-Erweiterungen. In den eckigen Klammern des
Annotationsarrays
kann eine kommaseparierte Liste von Werten angegeben werden.,,
#PROJECTION_LIST:\lbr Erweiterungen der SELECT-Liste
und zusätzliche Annotationen sind erlaubt; Erweiterungen von CDS-Views, dessen SELECT-Listen
Aggregatausdrücke enthalten
oder, die eine
Mengenoperator-Klausel enthalten, sind nicht erlaubt. \lbr\lbr
#GROUP_BY:\lbr Kann nur zusammen mit #PROJECTION_LIST angegeben werden. Ermöglicht die Erweiterung von Views, die einen
Aggregatausdruck in der
SELECT-Liste haben. Aggregierte und nicht aggregierte Elemente können der
SELECT-Liste über die Erweiterung hinzugefügt werden. Die
GROUP-BY-Klausel muss mithilfe des Zusatzes
GROUP BY entsprechend erweitert werden. \lbr\lbr
#UNION:\lbr Kann nur zusammen mit #PROJECTION_LIST
angegeben werden. Ermöglicht das Erweitern von Views, die eine Klausel mit einem
Mengenoperator
verwenden. \lbr\lbr#NONE:\lbr Keine Erweiterungen
erlaubt; Kann nicht zusammen mit anderen Werten angegeben werden. ,,
#PROJECTION_LIST,,#PROJECTION_LIST
Hinweise
- Im Annotationsarray AbapCatalog.viewEnhancementCategory[ ] können #GROUP_BY und #UNION nur zusammen mit dem Standardwert #PROJECTION_LIST angegeben werden. Der Wert #NONE schließt andere Werte aus.
- AbapCatalog.viewEnhancementCategory[#NONE] ist obligatorisch für Views, die ein Element vom Datentyp LRAW oder LCHR enthalten. Der Grund hierfür ist, dass sich Elemente vom Datentyp LRAW oder LCHR stets an letzter Stelle in der SELECT-Liste befinden müssen und deshalb keine Erweiterungen erlaubt sind.
- Erweiterungen einer View mit Aggregatausdrücken oder mit einer Mengenoperatorklausel ( EXCEPT, INTERSECT, oder UNION) modifizieren die Kardinalität der Ergebnismenge. Das heißt, dass diese Erweiterungen besondere Berechtigungen in der View haben müssen, um Consumern der View die Behandlung von Änderungen an Kardinalitäten zu erlauben.
- AbapCatalog.viewEnhancementCategory[#UNION] erlaubt Erweiterung sowohl für Union-Views als auch für Views, die einen beliebigen Mengenoperator enthalten (d.h. EXCEPT und INTERSECT). Der Annotationsarraywert #UNION ist eine bekannte Fehlbezeichnung.
- AbapCatalog.extensibility.allowNewdataSources muss in CDS-View-Entitäten auf false gesetzt werden. Der Wert true ist nur in CDS-Projektions-Views erlaubt.
- AbapCatalog.extensibility.dataSources:
- kann nur angegeben werden, wenn Erweiterungen erlaubt sind. Falls @AbapCatalog.extensibility.extensible auf false oder @AbapCatalog.viewEnhancementCategory auf #NONE gesetzt wird, können keine Datenquellen gesetzt werden.
- kann nur diejenigen Assoziationen als data_source_name angeben, die eine maximale Kardinalität nicht größer 1 haben.
- darf in Union-Views nicht gesetzt werden.
- Die Annotation AbapCatalog.dataMaintenance definiert, ob die CDS-View-Entität mit bestimmten Werkzeugen wie Data Preview in den ABAP Development Tools (ADT) angezeigt oder bearbeitet werden kann. Die Annotation wird durch diese Werkzeuge ausgewertet. Die von dieser Annotation implementierten Einschränkungen sind benutzerunabhängig und werden vor dem Datenzugriff ausgewertet. Zusätzliche von den CDS-Rollen implementierte Einschränkungen werden während des eigentlichen Datenzugriffs, wenn durch durchgeführt, ausgewertet.
- Die folgende AbapCatalog-Annotationen sind in anderen CDS-Entitäten verfügbar, aber sie werden nicht in CDS-View-Entitäten unterstützt:
- Pufferungsannotationen werden in CDS-View-Entitäten aktuell nicht unterstützt, da die Pufferung noch nicht möglich ist.
- Die Annotation @AbapCatalog.compiler.compareFilter ist in CDS-View-Entitäten nicht erforderlich und nicht erlaubt, weil der Filter implizit und automatisch verglichen wird.
- Die ABAP-Annotation @AbapCatalog.dbHints, die in verwendet wurde, wird nicht unterstützt. Stattdessen ist die Framework-spezifische Annotation @Consumption.dbHints verfügbar.
- Die Annotation @AbapCatalog.preserveKey ist in CDS-View-Entitäten nicht erforderlich und nicht erlaubt. Sie dient zur Definition von Schlüsselfeldern der
CDS-verwalteten DDIC-View in
. Da es keine CDS-verwaltete DDIC-View in CDS-View-Entitäten gibt, ist sie hier obsolet.
AccessControl-Annotationen
Steuerung der Zugriffskontrolle für die CDS-View-Entität.
AccessControl.authorizationCheck,,Definiert die implizite
Zugriffskontrolle
bei einem Zugriff auf die CDS-View-Entität mit ,,#CHECK:\lbr Bei einem Zugriff über wird implizit eine
Zugriffskontrolle durchgeführt, falls der View eine
CDS-Rolle zugeordnet
ist. Es kommt zu einer Warnung von der Syntaxprüfung, wenn es keine Rolle für die View
gibt. \lbr\lbr#NOT_REQUIRED:\lbr Wie
#CHECK, außer dass es keine Warnung
von der Syntaxprüfung gibt. \lbr\lbr#NOT_ALLOWED:\lbr Es wird keine
Zugriffskontrolle durchgeführt.
Wenn dieser View im DCL-Quelltext eine Rolle zugeordnet wird, kommt es zu einer Syntaxwarnung. \lbr\lbr
#PRIVILEGED_ONLY:\lbr Privilegierte CDS-Assoziation, die Auswertung erfolgt durch
SADL.,,
#CHECK,,#CHECK
Hinweise
- Der Wert #NOT_REQUIRED ist für CDS-View-Entitäten empfohlen, die am Anfang keine Zugriffssteuerung erfordern, aber später mit Rollen erweitert werden könnten.
- Der Wert #NOT_ALLOWED schaltet die implizite Zugriffskontrolle beim Zugriff auf die CDS-View-Entität in ab. Um die Zugriffssteuerung für Views zu deaktivieren, die nicht mit dieser Annotation annotiert sind, kann der Zusatz WITH PRIVILEGED ACCESS in der FROM-Klausel verwendet werden. Auch für Views muss bei einer ABAP-SQL-Anweisung in Verbuchungssitzungen die Berechtigungsprüfung mit dem Zusatz WITH PRIVILEGED ACCESS ausgeschaltet werden, sonst kommt es zum Laufzeitfehler.
- Die CDS-Zugriffskontrolle funktioniert nicht für mandantenübergreifende Zugriffe. Für View-Entitäten, die dem mandantenunabhängigen Zugriff unterliegen, wird die Verwendung der Annotation AccessControl.authorizationCheck:#NOT_ALLOWED empfohlen.
- Die Annotation AccessControl hat weitere Framework-spezifische Unterannotationen.
DataAging-Annotationen
Definition der Datenalterung für die CDS-View-Entität.
DataAging.noAgingRestriction,,Steuert bei einem Zugriff auf die View-Entität über die Berücksichtigung der
Datenalterung auf einer
SAP-HANA-Datenbank.
,,true:\lbr liest alle Daten \lbr\lbr
false:\lbr liest nur aktuelle Daten ,,false,,true
Metadata-Annotationen
Steuerung der Behandlung der Metadaten der CDS-View-Entität.
Metadata.ignorePropagatedAnnotations,,Steuert die
Auswertung von Annotationen über die Annotations-API
CL_DD_DDL_ANNOTATION_SERVICE.,,
true:\lbr Es werden nur direkte und abgeleitete Annotationen der aktuellen CDS-View-Entität
berücksichtigt. \lbr\lbrfalse:\lbr
Es werden auch geerbte Annotationen verwendeter CDS-View-Entitäten berücksichtigt.,,
false,,true
ObjectModel-Annotationen
Die folgenden Unterannotationen von ObjectModel
charakterisieren CDS-View-Entitäten mit Bezug auf die Performance-relevanten Eigenschaften.
ObjectModel.usageType.dataClass,,Angabe der Datenkategorie der CDS-View-Entität.,,Eine
CDS-View-Entität kann einer der folgenden Datenkategorien zugeordnet werden: \lbr\lbr
#TRANSACTIONAL: \lbr Die CDS-View-Entität liefert Daten, die bei Transaktionen mit hohem
Volumen oder bei der Hintergrundverarbeitung geschrieben oder geändert werden. \lbr\lbr
#MASTER: \lbr Die CDS-View-Entität liefert die Stammdaten. Die Stammdaten werden bei Transaktionen
mit hohem Volumen oder bei der Hintergrundverarbeitung gelesen, aber nicht geschrieben oder geändert.
\lbr\lbr#ORGANIZATIONAL: \lbr Die CDS-View-Entität
liefert Daten, die Organisationsstrukturen und Prozesse des Kunden beschrieben. \lbr\lbr
#CUSTOMIZING: \lbr Die CDS-View-Entität enthält Daten, die Customizing-Daten eines
Kunden enthalten. \lbr\lbr#META: \lbr
Die CDS-View-Entität liefert technische Systemkonfigurationsdaten oder die Struktur von Entitäten.
\lbr\lbr#MIXED: \lbr Die CDS-View-Entität
enthält Daten aus gemischten Datenkategorien.,,#MIXED,,#MIXED
ObjectModel.usageType.serviceQuality,,Die
Qualität des Services in Bezug auf die Performance, die der Verbraucher von der CDS-View-Entität
erwarten kann.,,Eine CDS-View-Entität kann einer der folgenden Qualitätskategorien zugeordnet
werden: \lbr\lbr#A: \lbr Die CDS-View-Entität
kann für Transaktionen mit hohem Volumen oder für die Hintergrundverarbeitung verwendet
werden. \lbr\lbr#B: \lbr Die CDS-View-Entität
kann für Transaktionen oder für die Hintergrundverarbeitung verwendet werden. \lbr\lbr
#C: \lbr Die CDS-View-Entität kann in Transaktionen zum Abrufen einzelner Objekte verwendet
werden. \lbr\lbr#D: \lbr Die CDS-View-Entität
kann für analytische Abfragen verwendet werden. \lbr\lbr
#X: \lbr Die CDS-View-Entität ist für spezielle Anwendungsfälle wie die
Datenmigration konzipiert. \lbr\lbr#P:
\lbr Mit der CDS-View-Entität werden Hierarchien von CDS-Entitäten strukturiert und sie
darf nicht außerhalb solcher Hierarchien verwendet werden.,,
#X,,#X
ObjectModel.usageType.sizeCategory,,Gibt die Größe des Datenvolumens an, der durchsucht
werden muss, um das Ergebnis zurückzugeben. Das entspricht in der Regel der größten
zugrundeliegenden Tabelle.,,Eine CDS-View-Entität kann einer der folgenden Größenkategorien
zugeordnet werden: \lbr\lbr#S: \lbr Die
erwartete Größe des Datenvolumens der durchsucht werden muss, beträgt weniger als
1000. \lbr\lbr#M: \lbr Die erwartete
Größe des Datenvolumens der durchsucht werden muss, beträgt weniger als 100.000.
\lbr\lbr#L: \lbr Die erwartete Größe
des Datenvolumens der durchsucht werden muss, beträgt weniger als 10.000.000. \lbr\lbr
#XL: \lbr Die erwartete Größe des Datenvolumens der durchsucht werden muss, beträgt
weniger als 100.000.000. \lbr\lbr#XXL:
\lbr Die erwartete Größe des Datenvolumens, der durchsucht werden muss, beträgt
100.000.000 oder mehr.,,#S,,#S
Hinweise
- Mit obigen Unterannotationen von ObjectModel kann für eine View die vorgesehene Anwendungsart und die erwartete Datenkategorien dokumentiert werden. Diese Information ist vor allem bezüglich der von einem Verwender der View erwarteten Leistung wichtig. Die folgenden Regeln gelten für die mit ObjectModel.usageType.serviceQuality annotierten Qualitätskategorien:
- Eine CDS-View-Entität mit der Qualitätskategorie A sollte auf nicht mehr als 3 Datenbanktabellen zugreifen, keine Funktionen aufrufen, keine große Anzahl von Tabellenzeilen für den direkten Zugriff aggregieren und auf keine DDIC-Datenbanktabellen verschiedener Datenarten zugreifen. Die CDS-View-Entität sollte gepuffert werden, wenn die zugrunde liegenden Tabellen gepuffert sind. Die Laufzeit beim Lesen einer Einzelzeile mit einem vollständig angegebenen Schlüssel sollte beim Auswählen eines Feldes aus einer Feldliste weniger als 1 ms oder beim Auswählen aller Felder mit * weniger als 2 ms betragen.
- Eine CDS-View-Entität mit der Qualitätskategorie B sollte auf nicht mehr als 5 Datenbanktabellen zugreifen, keine Funktionen aufrufen, keine große Anzahl von Tabellenzeilen für den direkten Zugriff aggregieren und auf keine DDIC-Datenbanktabellen verschiedener Datenarten zugreifen. Die CDS-View-Entität sollte gepuffert werden, wenn die zugrunde liegenden Tabellen gepuffert sind. Die Laufzeit beim Lesen einer Einzelzeile mit einem vollständig angegebenen Schlüssel sollte für Feldes aus einer Feldliste weniger als 2 ms oder beim Auswählen aller Felder mit * weniger als 5 ms betragen.
- Eine CDS-View-Entität mit der Qualitätskategorie C sollte auf nicht mehr als 15 DDIC-Datenbanktabellen zugreifen, keine große Anzahl von Tabellenzeilen für den direkten Zugriff aggregieren und auf keine DDIC-Datenbanktabellen mit gemischten Datenkategorien zugreifen. Die Laufzeit beim Lesen einer Einzelzeile mit einem vollständig angegebenen Schlüssel sollte für Feldes aus einer Feldliste weniger als 10 ms oder beim Auswählen aller Felder mit * weniger als 20 ms betragen.
- Eine CDS-View-Entität mit Qualitätskategorie D sollte auf nicht mehr als 100 DDIC-Datenbanktabellen zugreifen. Die Performance sollte geprüft und von einem Test-Framework mit realistischen Daten überwacht werden.
- Eine CDS-View-Entität mit Qualitätskategorie X kann auf mehr als 100 Datenbanktabellen zugreifen. Die Performance muss geprüft und von einem Test-Framework mit realistischen Daten überwacht werden.
- Eine CDS-View-Entität mit Qualitätskategorie P ist nicht für die Verwendung in Geschäftsanwendungen gedacht. Performance-Prüfungen durch ein Test-Framework sind nicht erforderlich.
- Die Unterannotationen sizeCategory und dataClass sollten für alle Qualitätskategorien angegeben werden. Nur für Qualitätskategorie P müssen sie nicht angegeben werden.
- Diese Regeln können im ABAP Test Cockpit (ATC) von durch SAP gelieferte Tests geprüft werden.
- In der Regel sollte eine CDS-View-Entität, die in Anwendungen verwendet wird, eine Qualitätskategorie zwischen A und D haben und nicht auf mehr als 100 DDIC-Datenbanktabellen zugreifen.
- Zusätzlich zu den hier gezeigten ABAP-Annotationen, hat die Annotation ObjectModel weitere Framework-spezifische Unterannotationen.
CL_GUI_FRONTEND_SERVICES - Frontend Services PERFORM Short Reference
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 32958 Date: 20240523 Time: 153017 sap01-206 ( 508 ms )