Ansicht
Dokumentation

ABENCDS_F1_DEFINE_ANNOTATION_TYPE - CDS F1 DEFINE ANNOTATION TYPE

ABENCDS_F1_DEFINE_ANNOTATION_TYPE - CDS F1 DEFINE ANNOTATION TYPE

General Material Data   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- DEFINE ANNOTATION, type

... dtype $[enum { SYMBOL1; SYMBOL2; ... }$] $[default val$|#SYMBOL$]

Wirkung

Definition der Annotationswerte, die bei der Verwendung einer mit define annotation definierten CDS-Annotation in einer CDS-Entität angegeben werden sollen.

Mit dtype wird der Typ definiert. Die folgenden Tabellen zeigen die möglichen Angaben für dtype und ihre Bedeutung für die Annotationswerte. Die Groß-/Kleinschreibung von dtype und von vordefinierten Werten ist relevant.

Wertetypen

dtype Annotationswert
Boolesch Wahrheitswerte true und false.
Decimal(len,dec) Numerische Literale ohne Hochkommata mit optionalen Dezimalpunkt, mit maximal len minus dec Vorkommastellen und maximal dec Nachkommastellen. Für len kann eine Zahl zwischen 1 und 31 und für dec kann eine Zahl zwischen 0 und 14 angegeben werden, wobei dec nicht größer als len sein darf.
DecimalFloat Numerische Literale ohne Hochkommata. Es können die gleichen Werte angegeben werden, wie im Quellfeld einer Konvertierung in ABAP von c nach decfloat34.
Ganze Zahl Numerische Literale ohne Hochkommata und ohne Dezimaltrennzeichen im Wertebereich des ABAP-Typs i.
String(len) In Hochkommata eingefasste Zeichenliterale mit einer maximalen Länge von len. Für len kann eine Zahl zwischen 0 und 1298 angegeben werden.

Referenztypen

dtype Annotationswert
AssociationRef Name einer CDS-Assoziation, die in der Annotation verwendenden SELECT-Liste exponiert wird. Falls die Assoziation in der gleichen CDS-Entität definiert ist, muss der Annotationswert der Name der Assoziation sein. Falls die Assoziation in einer anderen Entität definiert ist, muss der Annotationswert ein Pfadausdruck sein.
ElementRef Name eines Elements der Annotation verwendenden CDS-Entität. Für Elemente von Assoziationszielen ist der Annotationswert ein Pfadausdruck.
EntityRef Name einer beliebigen CDS-Entität.
KeyElement Name eines Schlüsselfelds der Annotation verwendenden CDS-Entität.
LocalDefinitionRef Name einer Datenquelle der aktuellen CDS-Entität. Die Datenquelle kann entweder nach FROM oder als eine Assoziation gepflegt sein. Wenn ein Aliasname für die Datenquelle angegeben ist, muss dieser Aliasname als Annotationswert angegeben sein.
ParameterRef Name eines Parameters der Annotation verwendenden CDS-Entität.

Der Annotationswert eines Referenztyps muss bei der Verwendung als in Hochkommata eingefasstes Zeichenliterale angegeben werden, das keine Leerzeichen enthält. Das angegebene Objekt muss vorhanden sein.

Mit enum { SYMBOL1; SYMBOL; ... } kann in geschweiften Klammern eine durch Semikola (;) separierte Liste von Enumerationssymbolen SYMBOL1, SYMBOL2, ...in Großbuchstaben angegeben werden. Hier muss hinter dem letzten Eintrag auch ein Semikolon in der Liste stehen. Als Annotationswert darf bei der Verwendung der Annotation nur eines der Enumerationssymbole verwendet werden, dem das Zeichen # vorangestellt ist. Wenn Enumerationssymbole für den Typ String angegeben werden, sind die Symbole implizit auch die Enumerationswerte. Die für String angegebene Länge muss dann mindestens so lange sein, wie das längste Enumerationssymbol.

Mit default kann ein typgerechter Standardwert angegeben werden, der bei einer Verwendung der Annotation angenommen werden soll, wenn kein expliziter Annotationswert angegeben ist. Dabei gilt:

  • Für den Typ Boolean kann als Standardwert nur true angegeben werden.
  • Wenn Enumerationssymbole definiert sind, muss der Standardwert eines dieser Symbole mit vorangestelltem Zeichen # sein.
  • Für Referenztypen kann kein Standardwert angegeben werden.
  • Für die Elemente eines Annotationsarrays können keine Standardwerte angegeben werden.

Hinweise

  • Die Wahrheitswerte für den Typ boolean können auch als 'true' und 'false' in Hochkommata angegeben werden.
  • Die kleinste sinnvolle Größe ist 1 für ein Zeichen.
  • Der mit default definierte Standardwert beschreibt den Standardwert bei Verwendung der Annotation in ihrem Framework. Wenn eine Annotation nicht verwendet wird, kann es einen anderen Standardwert geben, der in der Dokumentation der Annotation beschrieben ist. Bei der internen Ablage der Annotation und deren Auswertung wird der Standardwert der Annotationsdefinition nicht berücksichtigt.

Beispiel

Die folgende Annotationsdefinition schreibt Wahrheitswerte als mögliche Annotationswerte der Annotation vor.

Die Annotation kann in einem CDS-Quelltext wie folgt verwendet werden:

  • @DemoAnnoBoolean: true
  • @DemoAnnoBoolean: false
  • @DemoAnnoBoolean: 'true'
  • @DemoAnnoBoolean: 'false'

Beispiel

Die folgende Annotationsdefinition schreibt Enumerationssymbole als mögliche Annotationswerte der Annotation vor. Die Enumerationssymbole sind beim Typ String gleichzeitig die Enumerationswerte und für den Typ muss mindestens die Länge 10 angegeben werden, da das längste Enumerationssymbol 10 Zeichen hat.

Die Annotation kann in einem CDS-Quelltext wie folgt verwendet werden:

  • @DemoAnnoEnum: #SHORT_TEXT
  • @DemoAnnoEnum: #TEXT
  • @DemoAnnoEnum: #LONG_TEXT

Beispiel

Die folgende Annotationsdefinition schreibt Zahlenliterale als mögliche Annotationswerte der Annotation vor, wobei ein Standardwert vorgegeben ist.

Die Annotation kann in einem CDS-Quelltext wie folgt ohne und mit Wertangabe verwendet werden:

  • @DemoAnnoDefault
  • @DemoAnnoDefault: 100

Beispiel

Die folgende Annotationsdefinition ist syntaktisch falsch. Die angegebene Länge 1 reicht für den angegebenen Standardwert der Länge 3 nicht aus.

annotation DemoAnno : String(1) default 'XXX';






TXBHW - Original Tax Base Amount in Local Currency   RFUMSV00 - Advance Return for Tax on Sales/Purchases  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 12916 Date: 20240523 Time: 161606     sap01-206 ( 145 ms )