Ansicht
Dokumentation
ABENCDS_TYPED_LITERAL_V2 - CDS TYPED LITERAL V2
PERFORM Short Reference Fill RESBD Structure from EBP Component StructureDiese Dokumentation steht unter dem Copyright der SAP AG.
- 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.
- Ein Literal, dem ein Vorzeichen vorangestellt ist, wird nie als arithmetischer Ausdruck interpretiert.
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 )