Ansicht
Dokumentation
ABENCDS_F1_ENTITY_ANNOTATIONS - CDS F1 ENTITY ANNOTATIONS
ROGBILLS - Synchronize billing plans Fill RESBD Structure from EBP Component StructureDiese Dokumentation steht unter dem Copyright der SAP AG.
- 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.,, -,,-
- Diese Annotationen werden in allen CDS-Entitäten außer DDIC-basierten CDS-Views und CDS-Tabellenfunktionen unterstützt.
- 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 )