Ansicht
Dokumentation

ABENCDS_F1_ENTITY_ANNOTATIONS - CDS F1 ENTITY ANNOTATIONS

ABENCDS_F1_ENTITY_ANNOTATIONS - CDS F1 ENTITY ANNOTATIONS

ROGBILLS - Synchronize billing plans   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- entity_annot

... @annotation ...

Wirkung

Angabe einer Annotation annotation in der Definition einer CDS-Entität als Entitätsannotation vor der Anweisung Kann für folgende Entitäten verwendet werden:

Vor den Bezeichner annotation der Annotation muss direkt das Zeichen @ gestellt werden. Die Annotation sollte in einer CDS-Annotationsdefinition als CDS-Objekt definiert und die Annotationsdefinitionsannotation @Scope sollte dort mit dem Wert #ENTITY angegeben sein.

AbapCatalog-Annotationen

Technische Einstellungen einer CDS-Entität.
AbapCatalog.extensibility.elementSuffix,, Hiermit wird ein dreistelliger Elementsuffix definiert, der für Erweiterungsfelder und Erweiterungsassoziationen bei der Erweiterung eines freigegebenen APIs verwendet werden muss. ,, 'suffix' \lbr suffix muss aus genau drei alphabetischen Zeichen bestehen. ,,-,,-
AbapCatalog.extensibility.extensible,,Hiermit wird die Erweiterbarkeit über CDS-Entitätserweiterungen gesteuert. ,, true: \lbr Erweiterungen über CDS-Entitätserweiterungen sind erlaubt \lbr\lbr false:\lbr Erweiterungen über CDS-Entitätserweiterungen sind nicht erlaubt.,, true,,true
AbapCatalog.extensibility.quota.maximumBytes,,Hiermit wird die maximale Anzahl Byte, die über Erweiterungen einem freigegeben API hinzugefügt werden kann. ,, Ganze Zahl zwischen 0 und 10000,, -,,-
AbapCatalog.extensibility.quota.maximumFields,, Hiermit wird die maximale Anzahl Felder, die über Erweiterungen einem freigegeben API hinzugefügt werden kann. ,, Ganze Zahl zwischen 0 und 1000.,, -,,-

  • AbapCatalog.extensibility.quota.maximumFields:
  • Die maximale hinter maximumFields angegebene Feldanzahl zuzüglich der Feldanzahl der aktuellen CDS-Entität darf die technischen Beschränkungen des ABAP-Servers nicht übersteigen. Zur Zeit liegt die technische Beschränkung bei 1500 Feldern.

  • Der angegebene Wert sollte bei mindestens 100 liegen (sonst Warnung der Syntaxprüfung).

  • AbapCatalog.extensibility.quota.maximumBytes:
  • Die maximale hinter maximumBytes angegebene Byteanzahl zuzüglich der Byteanzahl der aktuellen CDS-Entität darf die technischen Einschränkungen des ABAP-Servers nicht übersteigen. Zur Zeit liegt die technische Beschränkung bei 2^19-1 Byte.

  • Der angegebene Wert sollte bei mindestens 1000 liegen (sonst Warnung der Syntaxprüfung).

  • AbapCatalog.extensibility.elementSuffix:
Ein gültiger Suffix muss folgende Regeln folgen:
  • Falls das Objekt in einem Kunden- oder Partnersystem angelegt wurde, muss der Suffix Y oder Z als erstes Zeichen haben.

  • Falls das Objekt in einem SAP-System angelegt wurde, darf der Suffix Y oder Z als erstes Zeichen nicht haben.

  • Falls der Feldsuffix bereits von einem anderen Entwicklungsobjekt verwendet wird, kommt es zu einer Warnung der Syntaxprüfung.

Hinweis

Mit der Annotation AbapCatalog.viewEnhancementCategory wird die Art der Erweiterung einer CDS-View angegeben. AbapCatalog.viewEnhancementCategory und AbapCatalog.extensibility.extensible können optional gemeinsam in derselben CDS-View angegeben werden. In diesem Fall müssen die Annotationswerte zueinander passen. Sie müssen beide Erweiterungen entweder erlauben oder verbieten.

EndUserText-Annotationen

Übersetzbare Texte der CDS-Entität.
EndUserText.label,,An die Übersetzung angeschlossener Kurztext der CDS-Entität,,Maximal 60-stellige Zeichenkette,,-,,-

Hinweis

Metadata-Annotationen

Definiert, ob Metadatenerweiterungen für eine CDS-Entitäten erlaubt sind.
Metadata.allowExtensions,,Definiert, ob eine CDS-Entität durch Metadatenerweiterungen erweitert werden kann.,,true:\lbr Die aktuelle CDS-Entität kann erweitert werden. \lbr false:\lbr Die aktuelle CDS-Entität kann nicht erweitert werden.,,false,,true

Hinweis

Metadatenerweiterungen sind zur Zeit nur in CDS-Views und abstrakten CDS-Entitäten unterstützt. In allen anderen CDS-Entitäten kommt es zwar nicht zu einem Syntaxfehler, aber die Annotation Metadata.allowExtensions ist wirkungslos.

ObjectModel-Annotation

Mit folgender Unterannotation von ObjectModel wird eine ABAP-Klasse an eine CDS-Entität gebunden.
ObjectModel.query.implementedBy,,Hiermit wird eine ABAP-Klasse an eine CDS-Entität gebunden, die die eigene Datenbeschaffungsmethode der Entität übersteuert. Die Datenbeschaffung findet über einer Methode der Klasse zur Laufzeit statt. ,,'ABAP:class_name'\lbr Der Name der ABAP-Klasse class_name muss in einfachen Anführungszeichen und in Großschreibung angegeben werden. Er wird durch die Zeichenkette ABAP: eingeleitet.,,-,,-

Zur Zeit ist diese Annotation in allen CDS-Entitäten außer abstrakter CDS-Entitäten unterstützt. Die Annotation wird von Frameworks wie SADL ausgewertet und ist daher für in RAP-Business-Services verwendete Entitäten besonders relevant.

Hinweise

  • Diese Annotation ist Framework-spezifisch. Sie wird nicht durch die ABAP-Laufzeitumgebung, sondern beispielsweise durch das SADL-Framework ausgewertet. Die ABAP-Klasse muss der vordefinierte ABAP-Interface IF_RAP_QUERY_PROVIDER implementieren, um es mit SADL zu verbinden.
  • Diese Annotation stand ursprünglich CDS-Custom-Entitäten zur Verfügung und diese Art von Datenbeschaffung ist für CDS-Custom-Entitäten typisch. Erst später konnte sie auch bei anderen Arten von CDS-Entitäten verwendet werden.
  • Bei der Arbeit in oder ist die Annotation ObjectModel.query.implementedBy in CDS-Custom-Entitäten obligatorisch. In allen anderen Umgebungen und für alle anderen CDS-Entitäten ist sie optional.
  • Wenn eine CDS-Projektions-View eine nicht verwaltete RAP-Queryüber ObjectModel.query.implementedBy implementiert und auch ein virtuelles CDS-Element enthält, wird zuerst die ABAP-Query ausgewertet und erst nachher das virtuelle CDS-Element berechnet. Das virtuelle CDS-Element darf von der ABAP-Query zurückgegebene Werte verwenden. Dies kann beispielsweise in Erweiterbarkeitsszenarien nützlich sein.

Beispiel

Die CDS-View-Entität DEMO_CDS_SCARR_FROM_ABAP_CLASS wird an die ABAP-Klasse CL_DEMO_GET_SCARR gebunden. Mit dieser ABAP-Klasse wird das Interface IF_RAP_QUERY_PROVIDER implementiert und die gleiche SQL-Query wie mit der View-Entität über ihre SELECT-Anweisung implementiert.

Mit dem Programm DEMO_CONSUME_BS_SCARR_ABAP wird auf die CDS-View-Entität einmal über die Service-Bindung DEMO_SB_SCARR_FROM_ABAP zugegriffen, die die Service-Definition DEMO_SD_SCARR_FROM_ABAP_CLASS an einen OData-Knoten in ICF bindet. Dafür wird die Demonstrationsklasse CL_DEMO_BS_CONSUMPTION verwendet, die über einen ICF-Client auf den OData-Dienst der Service-Bindung zugreift.

Das Programm greift ein zweites Mal auf die CDS-View-Entität über eine SELECT-Anweisung. Das Ergebnis ist bis auf den Unterschied gleich, dass die Query-Klasse die Meldung Nothing found zurückgibt und die SELECT-Anweisung bei einer leeren Rückgabe der Query keine Einträge zurückgibt.






General Data in Customer Master   BAL_S_LOG - Application Log: Log header data  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 16127 Date: 20240523 Time: 153148     sap01-206 ( 203 ms )