ABAP - Schlüsselwortdokumentation →  ABAP - Referenz →  Interne Daten verarbeiten →  Zeichen- und Bytekettenverarbeitung →  Ausdrücke und Funktionen für die Zeichenkettenverarbeitung →  string_exp - Zeichenkettenausdrücke →  string_exp - Zeichenketten-Templates →  Zeichenketten-Templates - embedded_expressions → 

Eingebettete Ausdrücke - format_options

Syntax

... [WIDTH     = len]
    [ALIGN     = LEFT|RIGHT|CENTER|(dobj)|expr]
    [PAD       = c]
    [CASE      = RAW|UPPER|LOWER|(dobj)|expr]
    [SIGN      = LEFT|LEFTPLUS|LEFTSPACE|RIGHT|RIGHTPLUS|RIGHTSPACE|(dobj)|expr]
    [EXPONENT  = exp]
    [DECIMALS  = dec]
    [ZERO      = YES|NO|(dobj)|expr]
    [XSD       = YES|NO|(dobj)|expr]
    [STYLE     =  SIMPLE|SIGN_AS_POSTFIX|SCALE_PRESERVING
                 |SCIENTIFIC|SCIENTIFIC_WITH_LEADING_ZERO
                 |SCALE_PRESERVING_SCIENTIFIC|ENGINEERING
                 |(dobj)|expr]
    [CURRENCY  = cur]
    [NUMBER    = RAW|USER|ENVIRONMENT|(dobj)|expr]
    [ALPHA     = IN|OUT|RAW|(dobj)|expr]
    [DATE      = RAW|ISO|USER|ENVIRONMENT|(dobj)|expr]
    [TIME      = RAW|ISO|USER|ENVIRONMENT|(dobj)|expr]
    [TIMESTAMP = SPACE|ISO|USER|ENVIRONMENT|(dobj)|expr]
    [TIMEZONE  = tz]
    [COUNTRY   = cty] ...


Zusätze:

1. ... WIDTH = len ...

2. ... ALIGN = LEFT|RIGHT|CENTER|(dobj)|expr ...

3. ... PAD = c  ...

4. ... CASE = RAW|UPPER|LOWER|(dobj)|expr ...

5. ... SIGN = LEFT|LEFTPLUS|LEFTSPACE|RIGHT|RIGHTPLUS|RIGHTSPACE|(dobj)|expr ...

6. ... EXPONENT = exp ...

7. ... DECIMALS = dec ...

8. ... ZERO = YES|NO|(dobj)|expr ...

9. ... XSD = YES|NO|(dobj)|expr ...

10. ... STYLE = ...|(dobj)|expr ...

11. ... CURRENCY  = cur ...

12. ... NUMBER = RAW|USER|ENVIRONMENT|(dobj)|expr ...

13. ... ALPHA = IN|OUT|RAW|(dobj)|expr ...

14. ... DATE = RAW|ISO|USER|ENVIRONMENT|(dobj)|expr ...

15. ... TIME = RAW|ISO|USER|ENVIRONMENT|(dobj)|expr ...

16. ... TIMESTAMP = SPACE|ISO|USER|ENVIRONMENT|(dobj)|expr ...

17. ... TIMEZONE = tz ...

18. ... COUNTRY = cty ...

Wirkung

Diese Formatierungsoptionen übersteuern die vordefinierten Formate von eingebetteten Ausdrücken in Zeichenketten-Templates. Die Formatierungsoptionen werden in der Form von optionalen Schlüsselwortparametern angegeben, denen ein Aktualparameter zugewiesen wird.

Aktualparameter mit fest vorgegebenen Werten können wie folgt angegeben werden:

Die möglichen Werte von dobj bzw. expr sind in der Klasse CL_ABAP_FORMAT als Konstanten definiert.

Welche Formatierungsoptionen angegeben werden können, hängt vom Datentyp des eingebetteten Ausdrucks ab. Die Formatierungsoptionen NUMBER, DATE, TIME, TIMESTAMP und COUNTRY schließen sich gegenseitig aus.

Wenn als eingebetteter Ausdruck ein Formalparameter oder ein Feldsymbol mit generischem Datentyp angegeben ist, können nur Formatierungsoptionen angegeben werden, die bei allen möglichen konkreten Datentypen erlaubt sind.

Hinweis

Die Angaben (dobj) und expr stellen zusammengefasst eine funktionale Operandenposition dar. Im Gegensatz zu den normalen funktionalen Operandenpositionen muss hier aber das Datenobjekt dobj in Klammern gesetzt werden, um es eindeutig von einem als Schlüsselwort angegebenen Parameter unterscheiden zu können.

Zusatz 1

... WIDTH = len ...

Wirkung

Diese Formatierungsoption legt die Länge der vom eingebetteten Ausdruck dargestellten Zeichenkette auf den Wert von len fest, wobei len eine numerische Ausdrucksposition ist.

Die Option WIDTH kann für alle Datentypen des eingebetteten Ausdrucks angegeben werden. Wenn der Wert von len kleiner als die minimal benötigte Länge ist, wird die Angabe ignoriert. Die vordefinierte Länge kann also nur vergrößert aber nicht verkleinert werden. Standardmäßig wird die Zeichenkette bei einer Vergrößerung nach rechts verlängert und dort mit Leerzeichen aufgefüllt. Diese Standardeinstellung kann mit den Formatierungsoptionen ALIGN und PAD übersteuert werden.

Beispiel

Die Länge des Ergebnisses des folgenden Zeichenketten-Templates ist 20. Es besteht aus 4 Ziffern, einem Dezimaltrennzeichen und 15 schließenden Leerzeichen.

DATA(text) = |{ CONV decfloat34( 1234 / 10 ) WIDTH = 20 }|.

Ausführbares Beispiel

Zeichenketten-Templates, Längenangabe

Zusatz 2

... ALIGN = LEFT|RIGHT|CENTER|(dobj)|expr ...

Wirkung

Diese Formatierungsoption legt die Ausrichtung der vom eingebetteten Ausdruck dargestellten Zeichenkette fest. Sie hat nur eine Wirkung, wenn gleichzeitig mit WIDTH eine Länge festgelegt wird, die größer als die minimal benötigte Länge ist.

Die Werte für die Ausrichtung sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:

Schlüsselwort Wert von dobj oder expr Wirkung
LEFT CL_ABAP_FORMAT=>A_LEFT linksbündig
RIGHT CL_ABAP_FORMAT=>A_RIGHT rechtsbündig
CENTER CL_ABAP_FORMAT=>A_CENTER mittig

Die Standardeinstellung ist LEFT. Je nach Ausrichtung werden überzählige Stellen im Ergebnis rechts, links oder abwechselnd rechts und links standardmäßig mit Leerzeichen aufgefüllt. Diese Standardeinstellung kann mit der Formatierungsoption PAD übersteuert werden.

Beispiel

Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.

DATA(text) =
  |{ 1 WIDTH = 5 ALIGN = RIGHT
  }{ 2 WIDTH = 5 ALIGN = RIGHT
  }{ 3 WIDTH = 5 ALIGN = RIGHT }<-|.

    1    2    3<-

Ausführbares Beispiel

Zeichenketten-Templates, Ausrichtung und Auffüllen

Zusatz 3

... PAD = c ...

Wirkung

Diese Formatierungsoption legt das Zeichen fest, mit der überzählige Stellen im Ergebnis aufgefüllt werden. Sie hat nur eine Wirkung, wenn gleichzeitig mit WIDTH eine Länge festgelegt wird, die größer als die minimal benötigte Länge ist.

Für c kann ein Datenobjekt vom Datentyp c oder string angegeben werden, dessen erstes Zeichen zum Auffüllen verwendet wird. Wenn die Option PAD nicht angegeben ist oder für c ein leerer String angegeben wird, wird mit Leerzeichen aufgefüllt.

Beispiel

Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.

DATA(text) = |{ 'X' ALIGN = RIGHT WIDTH = 10 PAD = '_' }|.

_________X

Beispiel

Siehe Zeichenketten-Templates, Ausrichtung und Auffüllen

Zusatz 4

... CASE = RAW|UPPER|LOWER|(dobj)|expr ...

Wirkung

Diese Formatierungsoption legt die Groß-/Kleinschreibung der vom eingebetteten Ausdruck dargestellten Zeichenkette fest. Sie kann für alle Datentypen des eingebetteten Ausdrucks angegeben werden.

Die Werte für die Groß-/Kleinschreibung sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:

Schlüsselwort Wert von dobj oder expr Wirkung
RAW CL_ABAP_FORMAT=>C_RAW unverändert
UPPER CL_ABAP_FORMAT=>C_UPPER Großschreibung
LOWER CL_ABAP_FORMAT=>C_LOWER Kleinschreibung

Die Standardeinstellung ist RAW.

Hinweis

Die Formatierungsoption CASE wirkt auf die Buchstaben der Zeichenkette. Sie wirkt nicht auf ein mit PAD angegebenes Auffüllungszeichen. Bei numerischen Datentypen wird das "e" bzw. "E" eines Exponenten beeinflusst, bei byteartigen Datentypen sind es die Buchstaben der Hexadezimaldarstellung.

Beispiel

Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.

DATA(text) =
  |{ cl_abap_codepage=>convert_to( 'Hello World!' ) CASE = LOWER }| .

48656c6c6f20576f726c6421

Ausführbares Beispiel

Zeichenketten-Templates, Groß-/Kleinschreibung

Zusatz 5

... SIGN = LEFT|LEFTPLUS|LEFTSPACE|RIGHT|RIGHTPLUS|RIGHTSPACE|(dobj)|expr ...

Wirkung

Diese Formatierungsoption legt das Format des Vorzeichens fest, wenn die vom eingebetteten Ausdruck dargestellte Zeichenkette einen numerischen Wert darstellt. Sie kann nur angegeben werden, wenn der eingebettete Ausdruck einen numerischen Datentyp hat.

Die Werte für das Format des Vorzeichens sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:

Schlüsselwort Wert von dobj oder expr Wirkung
LEFT CL_ABAP_FORMAT=>S_LEFT "-" links ohne Zwischenraum, kein "+"
LEFTPLUS CL_ABAP_FORMAT=>S_LEFTPLUS "-" und "+" links ohne Zwischenraum
LEFTSPACE CL_ABAP_FORMAT=>S_LEFTSPACE "-" links ohne Zwischenraum, Leerzeichen links für "+"
RIGHT CL_ABAP_FORMAT=>S_RIGHT "-" rechts ohne Zwischenraum, kein "+"
RIGHTPLUS CL_ABAP_FORMAT=>S_RIGHTPLUS "-" und "+" rechts ohne Zwischenraum
RIGHTSPACE CL_ABAP_FORMAT=>S_RIGHTSPACE "-" links ohne Zwischenraum, Leerzeichen rechts für "+"

Die Standardeinstellung ist LEFT.

Beispiel

Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.

DATA(text) = |{ 1 SIGN = LEFTPLUS }| .

+1

Ausführbares Beispiel

Zeichenketten-Templates, Vorzeichen

Zusatz 6

... EXPONENT = exp ...

Wirkung

Diese Formatierungsoption legt den Exponenten bei der Aufbereitung von Gleitpunktzahlen auf den Wert von exp fest, wobei exp eine numerische Ausdrucksposition ist. Die Option EXPONENT kann nur angegeben werden, wenn der eingebettete Ausdruck einen numerischen Datentyp hat. Sie darf nicht zusammen mit den Optionen TIMESTAMP oder TIMEZONE angegeben werden.

Die Option EXPONENT wirkt nur auf den Datentyp f oder wenn die Option STYLE mit dem Wert scientific angegeben ist.

Für exp wird ein Datenobjekt vom Typ i erwartet, das den gewünschten Exponenten enthält.

Wenn für exp der Wert der Konstanten CL_ABAP_FORMAT=>EXP_PRESERVE angegeben wird, wird der Exponent verwendet, welcher der internen Darstellung der Gleitpunktzahl entspricht.

Beispiel

Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.

DATA(text) = |{ CONV f( 2 / 3 ) }, { CONV f( 2 / 3 ) EXPONENT = -1 }|.

0.66666666666666663, 6.6666666666666663E-01

Zusatz 7

... DECIMALS = dec ...

Wirkung

Diese Formatierungsoption legt die Anzahl der Nachkommastellen bei der Aufbereitung von numerischen Werten auf den Wert von dec fest, wobei dec eine numerische Ausdrucksposition ist. Die Option DECIMALS kann nur angegeben werden, wenn der eingebettete Ausdruck einen numerischen Datentyp hat. Sie darf nicht zusammen mit den Optionen TIMESTAMP oder TIMEZONE angegeben werden.

Für dec wird ein Datenobjekt vom Typ i erwartet, das die Anzahl der gewünschten Nachkommastellen enthält. Wenn der Inhalt von dec kleiner als 0 ist, wird er wie 0 behandelt, wobei der Inhalt von Datenobjekten der Datentypen (b, s), i, int8 oder p zuvor mit 10 hoch dec multipliziert wird. Für die einzelnen numerischen Datentypen gilt:

Wenn zusätzlich die Formatierungsoption CURRENCY angegeben ist, wird diese bei den Datentypen (b, s), i, int8 und p zuerst ausgeführt und dann die Formatierungsoption DECIMALS angewendet. Beim Datentyp f wird die Formatierungsoption CURRENCY ignoriert, wenn sie gemeinsam mit DECIMALS angegeben ist.

Hinweis

Die Formatierungsoption DECIMALS übersteuert nicht die vordefinierte Einstellung, dass keine Tausendertrennzeichen eingefügt werden.

Beispiel

Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette. Ohne Angabe des Konvertierungsoperators ist der Rechentyp des eingebetteten Ausdrucks i.

DATA(text) = |{                  - 2 / 3   DECIMALS = 3 }, {
                CONV decfloat34( - 2 / 3 ) DECIMALS = 3 }, {
                CONV          f( - 2 / 3 ) DECIMALS = 3 }|.

-1.000, -0.667, -0.667

Zusatz 8

... ZERO = YES|NO|(dobj)|expr ...

Wirkung

Diese Formatierungsoption legt das Format des numerischen Werts Null fest. Die Option ZERO kann nur angegeben werden, wenn der eingebettete Ausdruck einen numerischen Datentyp hat. Sie darf nicht zusammen mit den Optionen TIMESTAMP oder TIMEZONE angegeben werden.

Die Werte für das Format des Werts Null sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:

Schlüsselwort Wert von dobj oder expr Wirkung
YES CL_ABAP_FORMAT=>Z_YES Der Wert Null wird gemäß der aktuellen Formatierung als Zahlenwert dargestellt.
NO CL_ABAP_FORMAT=>Z_NO Der Wert Null wird als leere Zeichenkette dargestellt.

Die Standardeinstellung ist YES.

Beispiel

Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.

DATA(text) = |{ 0 ZERO = NO }, { 0 ZERO = YES }|.

, 0

Zusatz 9

... XSD = YES|NO|(dobj)|expr ...

Wirkung

Diese Formatierungsoption bereitet den Wert des eingebetteten Ausdrucks im asXML-Format auf, das seinem Datentyp zugeordnet ist. Die Option XSD kann für alle elementaren Datentypen angegeben werden. Sie kann nicht gemeinsam mit anderen Formatierungsoptionen außer WIDTH, ALIGN, PAD, CASE und ZERO angegeben werden.

Die Option XSD wirkt auf alle unter Mapping elementarer ABAP-Typen aufgeführten Datentypen wie dort angegeben.

Die Werte für asXML-Format sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:

Schlüsselwort Wert von dobj oder expr Wirkung
YES CL_ABAP_FORMAT=>X_YES Der Wert des eingebetteten Ausdrucks wird in Abhängigkeit von seinem Datentyp gemäß dem unter Mapping elementarer ABAP-Typen angegebenen asXML-Format formatiert. Wenn der Datentyp sich auf eine der unter Mapping weiterer XML-Schema-Datentypen genannten Domänen außer XSDQNAME bezieht, wird das dort angegebene Format verwendet. Das Mapping von XML-Fragmenten über die Domäne XSDANY wird nicht unterstützt.
NO CL_ABAP_FORMAT=>X_NO unverändert

Wenn der Datentyp des eingebetteten Ausdrucks vom Typ x oder xstring ist, hat eine gleichzeitig angegebene FormatierungsoptionCASE keine Wirkung, außer er bezieht sich auf die Domäne XSDUUID_RAW.

Hinweis

Die Formatierung eines eingebetteten Ausdrucks mit XSD hat im Wesentlichen gleiche Ergebnis wie eine Anwendung der vordefinierten Identitäts-Transformation ID. Im Unterschied zum Aufruf von CALL TRANSFORMATION sind Ausnahmen, die beim Mapping auftreten können, aber nicht verschalt sondern müssen direkt behandelt werden.

Beispiel

Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette. XSDBOOLEAN ist ein Datenelement, das sich auf die spezielle Domäne XSDBOOLEAN für das Mapping von Wahrheitswerten bezieht.

DATA:
  flag1 TYPE xsdboolean VALUE abap_true,
  flag2 TYPE xsdboolean VALUE abap_false.

DATA(text) = |{ flag1 XSD = YES }, { flag2 XSD = YES }|.

true, false

Ausführbares Beispiel

Zeichenketten-Templates, asXML-Format

Zusatz 10

... STYLE = ...|(dobj)|expr ...

Wirkung

Diese Formatierungsoption legt das Format von dezimalen Gleitpunktzahlen fest. Die Option STYLE kann nur angegeben werden, wenn der eingebettete Ausdruck einen numerischen Datentyp hat. Sie darf nicht zusammen mit den Optionen CURRENCY, SIGN, TIMESTAMP oder TIMEZONE angegeben werden.

Die Werte für das Format einer dezimalen Gleitpunktzahl sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:

Schlüsselwort Wert von dobj oder expr
SIMPLE CL_ABAP_FORMAT=>O_SIMPLE
SIGN_AS_POSTFIX CL_ABAP_FORMAT=>O_SIGN_AS_POSTFIX
SCALE_PRESERVING CL_ABAP_FORMAT=>O_SCALE_PRESERVING
SCIENTIFIC CL_ABAP_FORMAT=>O_SCIENTIFIC
SCIENTIFIC_WITH_LEADING_ZERO CL_ABAP_FORMAT=>O_SCIENTIFIC_WITH_LEADING_ZERO
SCALE_PRESERVING_SCIENTIFIC CL_ABAP_FORMAT=>O_SCALE_PRESERVING_SCIENTIFIC
ENGINEERING CL_ABAP_FORMAT=>O_ENGINEERING

Der numerische Wert der Zeichenkette wird in den Datentyp decfloat34 konvertiert und wie folgt behandelt:

Betreffs Tausender- und Dezimaltrennzeichen gelten die allgemeinen Regeln für eingebettete Ausdrücke. Für das Zusammenspiel mit anderen Formatierungsoptionen gilt:

Hinweise

Beispiel

Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.

DATA(text) = |{ CONV decfloat34( '123456' ) STYLE = ENGINEERING }|.

123.456E+03

Ausführbares Beispiel

Dezimale Gleitpunktzahlen, Aufbereitung mit STYLE

Zusatz 11

... CURRENCY  = cur ...

Wirkung

Diese Formatierungsoption legt die Anzahl der Nachkommastellen bei der Aufbereitung von numerischen Werten in Abhängigkeit von einer in cur über ein Währungskürzel angegebenen Währung fest. Die Option CURRENCY kann nur angegeben werden, wenn der eingebettete Ausdruck einen der numerischen Datentypen i, p oder f hat. Sie darf nicht für die numerischen Typen decfloat16 und decfloat34 und nicht zusammen mit den Optionen STYLE, TIMESTAMP oder TIMEZONE angegeben werden. Mit der Option SIGN kann dann zusätzlich die Formatierung des Vorzeichens gesteuert werden.

Die Aufbereitung der Zeichenkette bezüglich ihrer Nachkommastellen ist für die einzelnen numerischen Datentypen wie folgt:

Bei den numerischen Datentypen i, p und f wird in cur ein Währungskürzel aus der Spalte WAERS der Datenbanktabelle TCURC erwartet. Für jedes angegebene Währungskürzel werden zwei Nachkommastellen verwendet, es sei denn es ist in der Spalte CURRKEY der Datenbanktabelle TCURX enthalten. Dann wird die Anzahl der Nachkommastellen aus der Spalte CURRDEC der entsprechenden Zeile in Tabelle TCURX ermittelt.

Hinweise

Beispiel

Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.

DATA(text) = |{ 12345678 CURRENCY = 'EUR' }|.

123456.78

Zusatz 12

... NUMBER = RAW|USER|ENVIRONMENT|(dobj)|expr ...

Wirkung

Diese Formatierungsoption legt das Format der Dezimaldarstellung (Dezimaltrennzeichen und Tausendertrennzeichen) fest. Die Option NUMBER kann nur angegeben werden, wenn der eingebettete Ausdruck einen numerischen Datentyp hat. Sie darf neben oben aufgeführten Ausschlüssen auch nicht mit den Optionen TIMESTAMP oder TIMEZONE zusammen angegeben werden.

Die Werte für das Format der Dezimaldarstellung sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:

Schlüsselwort Wert von dobj oder expr Wirkung
RAW CL_ABAP_FORMAT=>N_RAW Das Dezimaltrennzeichen ist der Punkt (.) und es werden keine Tausendertrennzeichen eingefügt.
USER CL_ABAP_FORMAT=>N_USER Dezimaltrennzeichen und Tausendertrennzeichen werden dem Benutzerstammsatz entnommen.
ENVIRONMENT CL_ABAP_FORMAT=>N_ENVIRONMENT Dezimaltrennzeichen und Tausendertrennzeichen richten sich nach der aktuellen Formatierungseinstellung der Sprachumgebung, die durch SET COUNTRY gesetzt werden kann.

Die Standardeinstellung ist RAW.

Hinweis

Wenn die Formatierungseinstellung der Sprachumgebung nicht über SET COUNTRY auf ein länderspezifisches Format gesetzt wurde, ist die Verwendung von environment gleichbedeutend zur Verwendung von USER.

Ausführbares Beispiel

Zeichenketten-Templates, Formatierungseinstellungen

Beispiel

Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.

SET COUNTRY 'US'.
DATA(text) = |{ 1000000 NUMBER = ENVIRONMENT }|.

1,000,000

Zusatz 13

... ALPHA = IN|OUT|RAW|(dobj)|expr ...

Wirkung

Diese Formatierungsoption fügt Ziffernfolgen führende Nullen hinzu oder entfernt diese. Die Option ALPHA kann nur angegeben werden, wenn der eingebettete Ausdruck den Datentyp string, c oder n hat. Sie kann nicht gemeinsam mit anderen Formatierungsoptionen außer WIDTH und CASE angegeben werden.

Die Werte für das Format der Ziffernfolge sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:

Schlüsselwort Wert von dobj oder expr Wirkung
IN CL_ABAP_FORMAT=>L_IN Wenn die Zeichenkette des eingebetteten Ausdrucks außer öffnenden und schließenden Leerzeichen nichts als eine ununterbrochene Folge von Ziffern enthält, wird die Ziffernfolge rechtsbündig in eine Zeichenkette bestimmter Länge (siehe unten) gestellt und diese wird falls notwendig links mit der Ziffer "0" aufgefüllt. Ansonsten werden die Zeichen der Zeichenkette des eingebetteten Ausdrucks linksbündig in die Zeichenkette gestellt und falls notwendig rechts mit Leerzeichen aufgefüllt. Wenn die Länge nicht ausreicht, wird in beiden Fällen rechts abgeschnitten.
OUT CL_ABAP_FORMAT=>L_OUT Wenn die Zeichenkette des eingebetteten Ausdrucks außer öffnenden und schließenden Leerzeichen nichts als eine ununterbrochene Folge von Ziffern enthält, werden führende Nullen aus der Ziffernfolge entfernt und die restlichen Ziffern linksbündig in eine Zeichenkette bestimmter Länge (siehe unten) gestellt und diese wird falls notwendig rechts mit Leerzeichen aufgefüllt. Ansonsten werden alle Zeichen der Zeichenkette des eingebetteten Ausdrucks linksbündig in die Zeichenkette gestellt und falls notwendig rechts mit Leerzeichen aufgefüllt. Wenn die Länge nicht ausreicht, wird in beiden Fällen rechts abgeschnitten.
RAW CL_ABAP_FORMAT=>L_RAW Keine Formatierung.

Die Länge der resultierenden Zeichenkette wird wie folgt bestimmt:

Hinweise

Beispiel

Das folgende Zeichenketten-Template erzeugt die darunter gezeigte Zeichenkette.

DATA(text) = |{ '1234' ALPHA = IN WIDTH = 10 }|.

0000001234

Ausführbares Beispiel

Zeichenketten-Templates, Ziffernfolgen

Zusatz 14

... DATE = RAW|ISO|USER|ENVIRONMENT|(dobj)|expr ..

Wirkung

Diese Formatierungsoption legt das Format eines Datums fest. Die Option DATE kann nur angegeben werden, wenn der eingebettete Ausdruck den Datentyp d hat.

Die Werte für das Format des Datums sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:

Schlüsselwort Wert von dobj oder expr Wirkung
RAW CL_ABAP_FORMAT=>D_RAW Der Inhalt des Datumsfelds wird unformatiert übernommen.
ISO CL_ABAP_FORMAT=>D_ISO Die Aufbereitung des Datums erfolgt gemäß ISO 8601 mit Strichen (-) als Trennzeichen: "yyyy-mm-dd".
USER CL_ABAP_FORMAT=>D_USER Die Aufbereitung des Datums geschieht entsprechend der im Benutzerstammsatz definierten Maske.
ENVIRONMENT CL_ABAP_FORMAT=>D_ENVIRONMENT Die Aufbereitung des Datums richtet sich nach der aktuellen Formatierungseinstellung der Sprachumgebung, die durch SET COUNTRY gesetzt werden kann.

Die Standardeinstellung ist RAW.

Hinweis

Wenn die Formatierungseinstellung der Sprachumgebung nicht über SET COUNTRY auf ein länderspezifisches Format gesetzt wurde, ist die Verwendung von environment gleichbedeutend zur Verwendung von USER.

Ausführbares Beispiel

Zeichenketten-Templates, Formatierungseinstellungen

Beispiel

Das folgende Zeichenketten-Template erzeugt in Abhängigkeit vom aktuellen Datum die darunter gezeigte Zeichenkette.

DATA(text) = |{ sy-datlo DATE = ISO }|.

2016-09-09

Zusatz 15

... TIME = RAW|ISO|USER|ENVIRONMENT|(dobj)|expr ..

Wirkung

Diese Formatierungsoption legt das Format einer
Zeitangabe fest. Die Option TIME kann nur angegeben werden, wenn der eingebettete Ausdruck den Datentyp t hat.

Die Werte für das Format der Zeitangabe sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:

Schlüsselwort Wert von dobj oder expr Wirkung
RAW CL_ABAP_FORMAT=>T_RAW Der Inhalt des Zeitfelds wird unformatiert übernommen.
ISO CL_ABAP_FORMAT=>T_ISO Die Aufbereitung der Zeitangabe erfolgt gemäß ISO 8601 im 24-Stunden-Format mit Doppelpunkten (:) als Trennzeichen: "hh:mm:ss".
USER CL_ABAP_FORMAT=>T_USER Die Aufbereitung der Zeit geschieht entsprechend des im Benutzerstammsatz definierten Formats.
ENVIRONMENT CL_ABAP_FORMAT=>T_ENVIRONMENT Die Aufbereitung der Zeit richtet sich nach der aktuellen Formatierungseinstellung der Sprachumgebung, die durch SET COUNTRY gesetzt werden kann.

Die Standardeinstellung ist RAW.

Hinweis

Im Benutzerstammsatz oder über die Anweisung SET COUNTRY können ein 24-Stunden-Format und vier 12-Stunden-Formate eingestellt werden. Um eine Formatierung im 12-Stunden-Format zu erwirken, muss USER oder ENVIRONMENT angegeben oder alternativ mit der Formatierungsoption COUNTRY gearbeitet werden.

Hinweis

Wenn die Formatierungseinstellung der Sprachumgebung nicht über SET COUNTRY auf ein länderspezifisches Format gesetzt wurde, ist die Verwendung von environment gleichbedeutend zur Verwendung von USER.

Ausführbares Beispiel

Zeichenketten-Templates, Formatierungseinstellungen

Beispiel

Das folgende Zeichenketten-Template erzeugt in Abhängigkeit von der aktuellen Zeit die darunter gezeigte Zeichenkette, falls in der Datenbanktabelle T005X ein Land mit einem 12-Stunden-Format gefunden wird.

SELECT SINGLE land
       FROM t005x
       WHERE timefm = 1
       INTO @DATA(land).
IF sy-subrc <> 0.
  RETURN.
ENDIF.

SET COUNTRY land.
DATA(text) = |{ sy-timlo TIME = ENVIRONMENT }|.

10:55:58 AM

Zusatz 16

... TIMESTAMP = SPACE|ISO|USER|ENVIRONMENT|(dobj)|expr ...

Wirkung

Diese Formatierungsoption legt das Format eines Zeitstempels fest. Die Option TIMESTAMP kann nur angegeben werden, wenn der eingebettete Ausdruck den Datentyp p der Länge 8 ohne Nachkommastellen (TIMESTAMP aus dem ABAP Dictionary) oder den Datentyp p der Länge 11 mit sieben Nachkommastellen (TIMESTAMPL aus dem ABAP Dictionary) hat. Der Wert des eingebetteten Ausdrucks wird als Zeitstempel aufgefasst.

Die Werte für das Format des Zeitstempels sind fest vorgegeben. Die folgende Tabelle zeigt die Schlüsselwörter und die zugehörigen als dobj bzw. expr angebbaren Werte aus der Klasse CL_ABAP_FORMAT:

Schlüsselwort Wert von dobj oder expr Wirkung
SPACE CL_ABAP_FORMAT=>TS_SPACE Der Inhalt des Zeitstempels wird standardmäßig in ein Datum und eine Zeitangabe in UTC-Referenzzeit konvertiert und diese werden getrennt durch ein Leerzeichen jeweils nach ISO 8601 dargestellt: "yyyy-mm-dd hh:mm:ss.zzzzzzz". Mit der Option TIMEZONE kann eine andere Zeitzone angegeben werden.
ISO CL_ABAP_FORMAT=>TS_ISO Wie SPACE, wobei aber gemäß ISO 8601 das Zeichen "T" zwischen Datum und Zeit steht und als Dezimaltrennzeichen immer das Komma (,) verwendet wird: "yyyy-mm-ddThh:mm:ss,zzzzzzz".
USER CL_ABAP_FORMAT=>TS_USER Wie SPACE, wobei aber das Datums- und das Zeitformat dem Benutzerstammsatz entnommen werden.
ENVIRONMENT CL_ABAP_FORMAT=>TS_ENVIRONMENT Wie SPACE. Datums- und das Zeitformat richten sich hier aber nach der aktuellen Formatierungseinstellung der Sprachumgebung, die durch SET COUNTRY gesetzt werden kann.
- CL_ABAP_FORMAT=>TS_RAW Der Inhalt des Zeitstempels wird unkonvertiert als gepackte Zahl ausgegeben.

Die Standardeinstellung ist SPACE.

Hinweis

Wenn die Formatierungseinstellung der Sprachumgebung nicht über SET COUNTRY auf ein länderspezifisches Format gesetzt wurde, ist die Verwendung von environment gleichbedeutend zur Verwendung von USER.

Ausführbares Beispiel

Zeichenketten-Templates, Formatierungseinstellungen

Beispiel

Das folgende Zeichenketten-Template erzeugt in Abhängigkeit vom aktuellen Zeitstempel die darunter gezeigte Zeichenkette.

GET TIME STAMP FIELD DATA(tmstmp).
DATA(text) = |{ tmstmp TIMESTAMP = ISO }|.

2016-09-09T09:12:04

Zusatz 17

... TIMEZONE = tz ...

Wirkung

Diese Formatierungsoption konvertiert die Datums- und Zeitinformation eines Zeitstempels in das lokale Datum und die lokale Zeit der angegebenen Zeitzone. Die Aufbereitung erfolgt gemäß der Angabe für die Option TIMESTAMP.

Die Option TIMEZONE kann nur angegeben werden, wenn der eingebettete Ausdruck einen der Datentypen TIMESTAMPL oder TIMESTAMP aus dem ABAP Dictionary (entsprechend Typ p der Länge 11 mit 7 Nachkommastellen bzw. p der Länge 8 ohne Nachkommastellen) für einen Zeitstempel hat. Für andere Datentypen kommt es zu einem Syntax- bzw. Laufzeitfehler.

Für tz muss ein zeichenartiges Datenobjekt angegeben werden, das eine Zeitzone aus der Datenbanktabelle TTZZ enthält. Ist das Regelwerk für die angegebene Zeitzone nicht vollständig, kommt es zu einer unbehandelbaren Ausnahme. Ist tz initial, wird die wird die Zeitzone implizit auf "UTC" gesetzt.

Wenn bei Quellfeldern der Typen TIMESTAMPL oder TIMESTAMP aus dem Dictionary der Zusatz TIMEZONE angegeben ist, wird der Inhalt des Quellfelds als Zeitstempel behandelt. Wenn die Option TIMEZONE ohne die Option TIMESTAMP angegeben ist, wird implizit die Option TIMESTAMP mit dem Parameter SPACE ergänzt, Die Option TIMEZONE darf nicht angegeben werden, wenn für TIMESTAMP in dobj bzw. expr der Wert von CL_ABAP_FORMAT=>TS_RAW angegeben ist. Die Konvertierung erfolgt wie mit der Anweisung CONVERT TIME STAMP.

Wenn der Wert von tz nicht in der Datenbanktabelle TTZZ enthalten ist, wenn das Quellfeld keinen gültigen Zeitstempel enthält oder wenn die Konvertierung einen lokalen Zeitpunkt außerhalb des Wertebereichs für lokales Datum und Zeit ergeben würde, wird der Inhalt unabhängig vom Wert als UTC-Zeitstempel aufbereitet.

Beispiel

Das folgende Zeichenketten-Template erzeugt in Abhängigkeit vom aktuellen Zeitstempel die darunter gezeigte Zeichenkette.

GET TIME STAMP FIELD DATA(tmstmp).
DATA(text) =
  |{ tmstmp TIMESTAMP = ISO } {
     tmstmp TIMESTAMP = ISO TIMEZONE = 'CET'  }|.

2016-09-09T09:18:27 2016-09-09T11:18:27

Ausführbares Beispiel

Zeichenketten-Templates, Zeitzonen

Zusatz 18

... COUNTRY = cty ...

Wirkung

Die Formatierungsoption COUNTRY legt eine temporäre Formatierungseinstellung für den aktuellen eingebetteten Ausdruck fest. Sie kann alternativ zu allen Formatierungsoptionen angegeben werden, für die der Parameter ENVIRONMENT angegeben kann, also statt NUMBER, DATE, TIME und TIMESTAMP. Der eingebettete Ausdruck wird je nach Datentyp als Zahl, Datum, Zeit oder Zeitstempel formatiert.

Für cty muss ein Datenobjekt vom Typ LAND1 aus dem ABAP Dictionary angegeben werden, das entweder einen Wert aus der Spalte LAND der Datenbanktabelle T005X enthält oder initial ist, ansonsten kommt es zu einer Ausnahme der Klasse CX_SY_STRG_FORMAT

Wenn cty einen Wert aus der Datenbanktabelle T005X enthält, wird das dort festgelegte länderspezifische Format verwendet. Wenn cty initial ist, wird die im Benutzerstammsatz angegebene Formatierung verwendet.

Hinweise

Beispiel

Das folgende Zeichenketten-Template erzeugt in Abhängigkeit vom Inhalt der Datenbanktabelle T005X die darunter gezeigte Zeichenkette.

DATA(text) = |{ 1000000 COUNTRY = 'DE ' }|.

1.000.000

Ausführbare Beispiele