Ansicht
Dokumentation
ABENCDS_ANNOTATIONS_SYNTAX - CDS ANNOTATIONS SYNTAX
TXBHW - Original Tax Base Amount in Local Currency ABAP Short ReferenceDiese Dokumentation steht unter dem Copyright der SAP AG.
- Annotationssyntax
@$[$]Anno$[: value $]
$|$[: { subannos } $]
$|$[: [ arrelem ] $]
$|$[.subAnno$[ ... $]$]
Wirkung
Die Angabe einer CDS-Annotation in einem CDS-Quelltext erfolgt mit einer fest vorgegebenen Annotationssyntax, die folgendes vorschreibt:
- Eine Einleitung durch das Zeichen @ oder @.
- Außer für CDS-View-Entitäten darf @ in den CDS DDL für CDS-Entitäten verwendet werden, um die Annotation hinter einem Listenelement in einer kommaseparierten oder semikolonseparierten Liste anzugeben.
- Eine Hauptannotation Anno, die aus Buchstaben, Ziffern und Unterstrichen besteht und mit einem Buchstaben beginnen muss. Eine Hauptannotation, die nicht durch Unterannotationen strukturiert ist, kann in einem Geltungsbereich genau einmal angegeben werden.
- Eine optionale Angabe hinter einem Doppelpunkt (:), die eine der folgenden Alternativen sein kann:
- einem Annotationswert value
- Angabe von Unterannotationen subannos in geschweiften Klammern { ... }.
- Angabe der Elemente eines Annotationsarrays arrelem in eckigen Klammern [ ... ].
- Die Verkettung der Hauptannotation Anno mit einer Unterannotation subAnno über einen Punkt (.). Die Kombination Anno.subAnno ist ein strukturierter Annotationsname, der durch weitere Unterannotationen verlängert werden kann.
Ein Annotationsname muss innerhalb eines Geltungsbereichs eindeutig sein. Es sollen nur Annotationen angegeben werden, für die es eine CDS-Annotationsdefinition gibt. Die Annotationsdefinition legt neben obigen Syntaxregeln fest:
- Die Anweisung define annotation definiert den Namen, die möglichen Annotationswerte, den Aufbau aus Unterannotationen und ob es sich um einen Annotationsarray handelt.
- Die Annotationen einer Annotationsdefinition legen den Geltungsbereich der Annotation fest, ob eine Auslagerung in Metadatenerweiterungen möglich ist und ob sich bei einem Annotationswert um einen übersetzbaren Text handelt.
In den DCL-Quelltexten für CDS-Rollen, DDLX-Quelltexten für Metadatenerweiterungen und den DDLA-Quelltexten für Annotationsdefinitionen lässt die Syntaxprüfung nur Annotationen zu, die den Regeln einer Annotationsdefinition folgen. In den DDL-Quelltexten für Datendefinitionen haben Annotationsdefinitionen Einfluss auf die Quelltexteinfärbung und die Code Completion in den ADT. Sie werden derzeit aber noch nicht von der Syntaxprüfung berücksichtigt.
Hinweise
- Die Auswertung der Annotationen eines CDS-Quelltexts findet durch das Framework statt, in dem das CDS-Objekt verwendet wird.
- Die Methoden der Klasse CL_DD_DDL_ANNOTATION_SERVICE zur Auswertung von Annotationen von CDS-Entitäten geben neben den direkt im zugehörigen DDL-Quelltext aufgeführten Annotationen auch abgeleitete und geerbte Annotationen zurück.
- Die im DDL-Quelltext einer CDS-Entität angegebenen Annotationen können durch die Annotationen von CDS-Metadatenerweiterungen ergänzt bzw. übersteuert werden. Dort werden die Annotationen mit der gleichen Syntax wie im DDL-Quelltext einer CDS-Entität angegeben mit folgenden Einschränkungen:
- Die Einleitung einer Annotation mit @ ist nicht möglich.
- Es können nur bestimmte Annotationen angegeben werden, für die dies in ihrer Annotationsdefinition vorgesehen ist.
- Es gibt einen von SAP vordefinierten Satz von SAP-Annotationen, bei dem zwischen ABAP-Annotationen, die vom ABAP-Laufzeit-Framework ausgewertet werden, und Framework-spezifischen Annotationen die von anderen Frameworks ausgewertet werden, unterschieden werden. Alle anderen Annotationen, werden in der Regel nicht ausgewertet. Es ist aber auch nicht auszuschließen, dass ein Framework nur bestimmte Annotationen zulässt.
- Das Programm ABAP_DOCU_CDS_ANNOS_OVERVIEW zeigt alle SAP-Annotationen und deren Eigenschaften.
Beispiel
Der folgende DDL-Quelltext zur Definition einer CDS-View enthält ABAP- und andere Annotationen an den dort erlaubten Stellen, d.h. für die gesamte View, für die Elemente der SELECT-Liste und für einen Eingabeparameter.
Die ABAP-Annotationen sind:
- EndUserText.label, AbapCatalog.sqlViewName und ClientHandling.type für die gesamte View
- EndUserText.label und EndUserText.quickInfo für das Element some_field der SELECT-Liste
- EndUserText.label und Environment.systemField für den Eingabeparameter param.
Die übrigen Annotationen dienen als Beispiel für beliebige Framework-spezifische Annotationen. Eine Annotationsdefinition, welche die gezeigten Annotationsangaben erlaubt, könnte wie folgt aussehen:
Das Programm DEMO_CDS_DDL_ANNOTATIONS greift auf die durch die Annotationsangaben erzeugten Metadaten in den DDIC-Datenbanktabellen DDHEADANNO, DDFIELDANNO und DDPARAMETERANNO direkt und über Methoden der Klassen CL_DD_DDL_ANNOTATION_SERVICE und CL_DD_DDL_ANALYZE zu und stellt diese dar. Insbesondere ist zu beachten:
- Die Annotation @DemoAnno.vAnnot3 ist ein Annotationsarray aus drei Elementen, die in der Auswertung durch die Indizes $1$, $2$ und $3$ zu erkennen sind.
- Die Annotationen @DemoAnno.vAnnot4 und @DemoAnno.vAnnot5 zeigen die alternativen Möglichkeiten zur Angabe einer strukturierten Annotation über eine kommaseparierte Liste in geschweiften Klammern und über strukturierte Bezeichner.
Die Tabellen DDFIELDANNO und DDPARAMETERANNO für die Elemente und Parameter enthalten im Vergleich zur Tabelle DDHEADANNO für die gesamte View zusätzlich den Namen des Elements bzw. Parameters, für welches eine Annotation angelegt wurde.
RFUMSV00 - Advance Return for Tax on Sales/Purchases Fill RESBD Structure from EBP Component Structure
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 14183 Date: 20240523 Time: 164430 sap01-206 ( 132 ms )