Zeichenketten-Templates

Aus SAP-Wiki
Wechseln zu: Navigation, Suche

Eine Alternative zum Schlüsselbefehl Concatenate oder && ist die Verwendung von Zeichenketten-Templates. Sie können ab ABAP-Release 7.02 verwendet werden.

Der gesamte String wird durch "|" umschlossen. Jede Variable wird mit "{ <variable> }" umschlossen, mit jeweils einem Space zwischen der geschweiften Klammer und der Variable. Man kann auch mit den Verkettungsoperatoren "&" oder "&&" arbeiten. Dann wird jeder Verkettungsteil mit "|" umschlossen.

Mit Zeichenketten-Templates können auch eingebettete Funktionen genutzt werden. Mit "Concatenate" würde man vorher eine Variable definieren mit der Funktion und dann die Variable in den Concatenate-Befehl schreiben.

Beispiele

DATA: lv_ziel TYPE string,
      lv_zahl TYPE i VALUE 3,
      lv_text TYPE string VALUE 'Beispieltext'.

Einfacher Text

  • Literale werden hier nicht wie sonst gewohnt durch ein einfaches Anführungszeichen umschlossen.
lv_ziel = |Test und Beispiel|.

Variable

  • Variablen werden mit einer geschweiften Klammer umschlossen. Zwischen der Klammer und der Variablen ist ein Leerzeichen zu setzen.
lv_ziel = |{ lv_zahl }|.

Kombination Text und Variable

lv_ziel = |Return-Code: { sy-subrc }|.

Rechnen mit Variablen

  • Bei Zeichenketten-Templates kann man sich oftmals die Deklaration von Hilfsvariablen sparen.
  • Man kann innerhalb des Ausdrucks mit Variablen rechnen.
lv_ziel = |{ lv_zahl - 1 }|.

Verkettungsoperator & und &&

Identisch verhalten sich die folgenen Ausdrücke

ev_from = |{ lv_fsh_season_year - 1 }1215|.

mit

ev_from = |{ lv_fsh_season_year - 1 }| & |1215|.

und

ev_from = |{ lv_fsh_season_year - 1 }| && |1215|.

Eingebaute Funktion

  • Zwischen dem "{", bzw. "}" und der Funktion im Körper ist zwingend ein Space zu setzen.
lv_ziel = |Länge Text: { strlen( lv_text ) }|.

Alpha-Konvertierung

  • Sehr bequem ist auch die Alphakonvertierung, die man vorher z. B. mit dem Overlay-Befehl machen konnte.
  • "ALPHA = IN" fügt zu einer Variable die führenden Nullen hinzu entsprechend der Länge des Typs.
  • "ALPHA = OUT" entfernt aus einer Variable die führenden Nullen.
  • Im Folgenden ist die Variable "LV_MATNR" typisiert als MATNR (Char Länge 18).
DATA: lv_matnr TYPE matnr.

lv_matnr = '42'.

"Ausgabe: 000000000000000042
lv_matnr = |{ lv_matnr ALPHA = IN }|.

"Ausgabe: 42
lv_matnr = |{ lv_matnr ALPHA = OUT }|.


  • Zwischen dem "|" und dem Körper ist allerdings kein Space zu setzen, sofern man die Spaces nicht im Zielfeld haben möchte.
DATA: lv_matnr TYPE matnr.
lv_matnr = '542'.

"Ausgabe: "  00000000000000002", da das Zielfeld LV_MATNR nur 18 Zeichen aufnehmen kann 
"und die restlichen 2 Ziffern "42" nun weggekürzt werden.
lv_matnr = |  { lv_matnr ALPHA = IN }|.

Web-Links