Ansicht
Dokumentation

ABENCDS_ANNOTATIONS_SYNTAX - CDS ANNOTATIONS SYNTAX

ABENCDS_ANNOTATIONS_SYNTAX - CDS ANNOTATIONS SYNTAX

TXBHW - Original Tax Base Amount in Local Currency   ABAP Short Reference  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

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

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

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 )