Ansicht
Dokumentation

ABENCDS_TYPED_LITERAL_V2 - CDS TYPED LITERAL V2

ABENCDS_TYPED_LITERAL_V2 - CDS TYPED LITERAL V2

PERFORM Short Reference   Fill RESBD Structure from EBP Component Structure  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- CDS-View-Entität, typisierte Literale

... dtype'...'

Wirkung

Typisiertes Literal in einer SELECT-Anweisung einer CDS-View-Entität. Typisierte Literale können für alle eingebauten ABAP-Dictionary-Typen mit Ausnahme von LCHR, LRAW, GEOM_EWKB, PREC, ACCP, DF16_SCL, DF34_SCL und VARC. Ein typisiertes Literal kann an allen Operandenpositionen eingesetzt werden, bei denen dies dokumentiert ist.

dtype ist der Name eines eingebauten Dictionary-Typs mit dem Typnamensraum abap. auf den die in einfache Backquotes (`) eingeschlossene zeichenartige Darstellung des Wertes folgt. Es dürfen nur Werte angegeben werden, die zum Datentyp des Literals passen. Länge und Nachkommastellen werden aus dem Literalwert abgeleitet und dürfen nicht explizit angegeben werden.

Hinweise

  • Typisierte Literale sollten untypisierten Literalen vorgezogen werden. Sie haben viele Vorteile wie zum Beispiel ihre Flexibilität bezüglich des Datentyps, explizite Typdeklarationen, und Prüfungen auf die Typkompatibilität des angegebenen Wertes.
  • Aktuell sind typisierte Literale in CDS-View-Entitäten und in CDS-Hierarchien verfügbar, in denen untypisierte Literale möglich sind, mit einer Ausnahme: typisierte Literale werden nicht in der ON-Bedingung einer CDS-Assoziation unterstützt.

Es lassen sich folgende Arten von typisierten Literalen unterscheiden:

Typisierte numerische Literale

Die folgende Tabelle beschreibt die typisierten Zahlenliterale.

Syntax Name Mögliche Zeichen
abap.int1'...'\lbr abap.int2'...'\lbr abap.int4'...'\lbr abap.int8'...' Integerliteral Ununterbrochene Folge von Ziffern, vor der optional ein Vorzeichen + oder - stehen kann. Es muss mindestens eine Ziffer angegeben sein. Der Wert der Zahl muss im Wertebereich des entsprechenden Dictionary-Typs sein. Das leere Literal `` ist nicht erlaubt.
abap.dec'...' Gepacktes Zahlenliteral Folge von Ziffern mit maximal einem Dezimalpunkt (.). Dieser kann vor, zwischen oder hinter den Ziffern stehen. Vor der Folge kann optional ein Vorzeichen + oder - stehen. Es muss mindestens eine und es können maximal 31 Ziffern angegeben sein. Die maximale Anzahl von Nachkommastellen ist 14. Die im Speicher belegte Länge und die Anzahl der Nachkommastellen werden durch die Anzahl der angegebenen Ziffern bestimmt. Das leere Literal `` ist nicht erlaubt.
abap.decfloat16'...'\lbr $| abap.d16n'...' \lbr abap.decfloat34'...'\lbr $| abap.d34n'...'\lbr Dezimales Gleitpunktliteral Mantisse gefolgt von einem optionalen Exponent. Die Mantisse ist eine Folge von Ziffern mit maximal einem Dezimalpunkt (.). Dieser kann vor, zwischen oder hinter den Ziffern stehen. Vor der Folge kann optional ein Vorzeichen + oder - stehen. Es gelten die Längenbeschränkungen, Typisierungskonventionen und Skalierungsregeln des entsprechenden Dictionary-Typs. Ein leeres Literal '' ist nicht erlaubt.
abap.fltp'...' Binäres Gleitpunktliteral Mantisse gefolgt von einem optionalen Exponent. Die Mantisse ist eine Folge von Ziffern mit maximal einem Dezimalpunkt (.). Dieser kann vor, zwischen oder hinter den Ziffern stehen. Vor der Folge kann optional ein Vorzeichen + oder - stehen. Die maximale Anzahl von gültigen Stellen ist 16. Ein leeres Literal '' ist nicht erlaubt.

Hinweise

  • Eine Null mit Vorzeichen + ist weder für Integerliterale noch für gepackte Zahlenliterale erlaubt. Zum Beispiel ist abap.int4'+0' nicht erlaubt. Diese Regel wird von der Syntaxprüfung überprüft. Eine Null mit Vorzeichen - ist jedoch erlaubt.
  • Für alle dezimalen Gleitpunktliterale gibt es alternative Notationen für den Datentyp. In der Tabelle oben wird dies durch das $|-Zeichen vermerkt.

Beispiel

Verwendung eines typisierten numerischen Literals in unterschiedlichen Positionen in einer CDS-View-Entität.

Typisierte Zeichenliterale

Die folgende Tabelle beschreibt die typisierten Zeichenliterale:

Syntax Name Mögliche Zeichen
abap.char'...' Textfeldliteral Folge beliebiger alphanumerischer Zeichen. Ein Textfeldliteral ist mindestens ein und maximal 255 Zeichen lang. Ein leeres Textfeldliteral abap.char'' ist erlaubt und kennzeichnet den Initialwert eines einzelnen Leerzeichens. Schließende Leerzeichen werden entfernt, aber die typisierte Länge berücksichtigt die gekürzten schließenden Leerzeichen.
abap.string'...'\lbrabap.sstring'...' Textstringliteral Folge beliebiger alphanumerischer Zeichen. Ein typisiertes Textstringliteral kann maximal 255 Zeichen enthalten. Ein typisiertes Textstringliteral kann leer sein und das typisierte Textstringliteral abap.string'' stellt einen leeren String mit Länge 0 da. \lbr Bei dem Datentyp abap.sstring werden schließende Leerzeichen entfernt, aber die typisierte Länge berücksichtigt die gekürzten schließenden Leerzeichen. \lbr Bei dem Datentyp abap.string werden die schließenden Leerzeichen nicht entfernt.

Beispiel

Verwendung eines typisierten Zeichenliterals in einer CDS-View-Entität.

Mit dem Programm DEMO_CDS_CHAR_TYPED_LIT wird auf die View zugegriffen und folgendes demonstriert:

  • Schließende Leerzeichen werden in der Typlänge des Textfeldes und der Textstringliterale mitgezählt.
  • Schließende Leerzeichen werden aus typisierten Literalen vom Typ CHAR und SSTRING entfernt, aber nicht aus typisierten Literalen vom Typ STRING.

Typisierte Byteliterale

Die folgende Tabelle beschreibt die typisierten Byteliterale:

Syntax Name Mögliche Zeichen
abap.raw'...' Bytefeldliteral Folge der Zeichen 0-9 und A-F. Andere Zeichen sind nicht erlaubt. Die Anzahl der Zeichen muss gerade sein. Es müssen mindesten zwei Zeichen angegeben werden. Ein leeres Literal abap.raw'...' ist nicht erlaubt.
abap.rawstring'...'\lbr $| abap.rstr'...' Bytestringliteral Folge der Zeichen 0-9 und A-F. Andere Zeichen sind nicht erlaubt. Die Anzahl der Zeichen muss gerade sein. Das leere Bytestringliteral abap.rawstring'' repräsentiert einen leeren Bytestring.

Hinweise

  • Die angegebenen Zeichen dienen der hexadezimalen Darstellung von Bytewerten.
  • Die Buchstaben A-F müssen groß geschrieben werden.

Beispiel

Verwendung eines typisierten Bytefeldliterals in einer CDS-View-Entität.



Typisierte Literals für zeichenartige Typen mit spezieller Semantik

Die folgende Tabelle beschreibt die typisierten Literalen für zeichenartige Typen mit spezieller Semantik:

Syntax Name Mögliche Zeichen
abap.numc'...' Numerisches Textliteral Zeichenfolge, die aus den Ziffern 0 bis 9 besteht. Ein numerisches Textfeldliteral ist mindestens ein und maximal 255 Zeichen lang. Leere numerische Textliterale abap.numc'‘ oder Leerzeichen innerhalb von numerischen Textliteralen sind nicht erlaubt. Negative Werte sind nicht erlaubt.
abap.clnt'...' Mandantenliteral String alphanumerischer Zeichen mit einer Länge von genau 3 Zeichen. Leerzeichen sind nicht erlaubt. Ein leeres Literal abap.clnt'' ist nicht erlaubt.
abap.lang'...' Sprachenschlüsselliteral Ein Sprachenschlüsselliteral kann beliebige alphanumerische Zeichen enthalten und besteht aus genau einem Zeichen. Ein leeres Literal abap.lang'' ist nicht erlaubt. Ein Leerzeichen ist erlaubt.

Beispiel

Verwendung eines typisierten numerischen Textliterals in einer WHERE-Bedingung.

Typisierte Datums- und Zeitliterale

Die folgende Tabelle beschreibt die typisierten Datums- und Zeitliterale:

Syntax Name Mögliche Zeichen
abap.dats'..'\lbrabap.datn'...' Datumsliteral Zeichenfolge, die ein Datum im Format YYYYMMDD darstellt. Sie muss ein nach den Regeln für gültige Daten gültiges Datum enthalten, die für Zeitstempelliterale beschrieben sind. Ein leerer String '‘ ist nicht erlaubt.
abap.tims'...'\lbrabap.timn'...' Zeitliteral Zeichenfolge, die eine Zeit im Format YYYYMMDD darstellt. Sie muss eine nach den Regeln für gültige Zeiten gültige Zeit enthalten, die für Zeitstempelliterale beschrieben sind. Ein leeres Literal '' ist nicht erlaubt.
abap.utclong'...'\lbr $| abap.utcl'...' Zeitstempelliteral Zeichenfolge, die einen auf 100 Nanosekunden genauen Zeitstempel im Format YYYY-MM-DD HH:MM:SS,SSSSSSS darstellt. YYYY-MM-DD besteht aus acht durch Bindestriche getrennte Ziffern. Sie müssen nach den Kalenderregeln gültige Daten darstellen: YYYY (Jahr): 0001 bis 9999, mm (Monat): 01 bis 12, DD (Tag): 01 bis 31. Ausgenommen sind "1582-10-05" bis "1582-10-14" (Umstellung vom Julianischen auf den Gregorianischen Kalender). HH:MM:SS,SSSSSSS besteht aus durch Doppelpunkte und einem Punkt getrennte Ziffern, die eine Zeit im 24-Stunden-Bereich im Format HHMMSS darstellen müssen: 00 bis 23 für HH (Stunden), 00 bis 59 für MM (Minuten) und 00 bis 59 für SS,SSSSSSS (Sekunden mit genau 7 Nachkommastellen). Andere Zeichen sind nicht erlaubt. Ein leeres Literal abap.utcl'' ist nicht erlaubt.

Hinweis

In den Zeitangaben ist keine Angabe von 60 als Minute oder Sekunde erlaubt. Dadurch können insbesondere auch keine Schaltsekunden angegeben werden.

Beispiel

Verwendung von typisierten Literalen als Operanden in einer CDS-View-Entität.

Typisierte Währungs- und Mengenliterale

Die folgende Tabelle beschreibt die typisierten Währungs- und Mengenliterale:

Syntax Name Mögliche Zeichen
abap.curr'...' Währungsfeldliteral Ununterbrochene Folge von Ziffern, vor der optional ein Vorzeichen + oder - stehen kann. Darf nicht mehr als einen Dezimalpunkt enthalten (.). Es muss mindestens eine und es können maximal 31 Ziffern angegeben sein. Es müssen genau zwei Nachkommastellen angegeben werden.
abap.cuky'...' Währungsschlüsselliteral String alphanumerischer Zeichen mit maximal 5 Zeichen. Ein leeres Literal abap.cuky' ist erlaubt und kennzeichnet fünf Leerzeichen.
abap.quan'...' Mengenfeldliteral Ununterbrochene Folge von Ziffern, vor der optional ein Vorzeichen + oder - stehen kann. Darf nicht mehr als einen Dezimalpunkt enthalten (.). Es muss mindestens eine und es können maximal 31 Ziffern angegeben sein. Die maximale Zahl von Nachkommastellen beträgt 14.
abap.unit'...' Einheitsschlüsselliteral String alphanumerischer Zeichen mit maximal 3 Zeichen. Ein leeres Literal UNIT`` ist erlaubt und kennzeichnet zwei Leerzeichen.

Wenn ein Währungs- oder Mengenfeld in der SELECT-Liste mit einem typisierten CDS-Literal angegeben wird, ist eine Referenz auf einen Währungsschlüssel oder eine Einheit des Referenzschlüssels obligatorisch. Das wird mit der folgenden Annotation festgelegt:

  • Währungsschlüssel: Semantics.amount.currencyCode
  • Einheitenschlüssel: Semantics.quantity.unitOfMeasure

Beispiel

CDS-View-Entität mit Währungs- und Mengenliteralen.






Fill RESBD Structure from EBP Component Structure   TXBHW - Original Tax Base Amount in Local Currency  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 23872 Date: 20240523 Time: 161433     sap01-206 ( 260 ms )