Ansicht
Dokumentation

ABENCDS_VIEW_ENTITY_ANNO - CDS VIEW ENTITY ANNO

ABENCDS_VIEW_ENTITY_ANNO - CDS VIEW ENTITY ANNO

ABAP Short Reference   rdisp/max_wprun_time - Maximum work process run time  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- 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

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 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.

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.





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 )