Zeichenketten-Templates

Aus SAP-Wiki
Wechseln zu:Navigation, Suche

Siehe Neues ABAP (ab Release 7.40).

Eine Alternative zum Schlüsselbefehl Concatenate oder die Verknüpfung über && 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 Variablen. Man kann auch mit den Verkettungsoperatoren "&" oder "&&" arbeiten. Dann wird jeder Verkettungsteil mit "|" umschlossen. Das ist auch meine Empfehlung.

Beispiele

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

Funktionalität Zeichenketten-Templates

Ausgabe Literale

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

Ausgabe Variable

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

Ausgabe Kombination Literal und Variable

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

Übersetzungsrelevanter Text

lv_ziel = |{ text-001 }|.

Nutzung Funktionen

  • Sehr elegant ist, dass man in Zeichenketten-Templates auch Funktionen direkt nutzen kann ohne Hilfsvariablen zu definieren.
  • Etwas konzentrieren muss man sich hier bei der Setzung der Klammern, die korrekt zu setzen.
lv_ziel = |{ strlen( lv_variable )}|.

Ausgabe formatiertes Währungsfeld

lv_ziel = |{ lv_wert CURRENCY = lv_waerk }|.

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 }|.

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 (C18).
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 }|.

Vor- und Nachteile Zeichenketten-Templates

  • Zeichenketten-Templates sind innerhalb des zu bildenden Templates sehr flexibel und man spart sich oft die Definition von Hilfsvariablen.
  • Es ist jedoch abzuwägen, aber das Template noch verständlich ist und in kurzer Zeit nachvollziehbar. Es würde keinen Sinn machen wenige Hilfsvariablen durchs Template zu sparen, wenn gleichzeitig dieses Coding für andere SAP-Entwickler nicht mehr nachvollziehbar ist.

Empfehlung Kombination && und Zeichenketten-Templates

  • Wenn einige Operanten in einer Zeile stehen, wird die Zeile oft schwer lesbar. Es ist besser hier die verschiedenen Operanten zu verbinden mit
lv_zielvariable = |..|
               && |..|
               && |..|.
  • Damit verbindet man die Flexibilität der Zeichenketten-Templates mit der Übersichtlichkeit vom Verkettungsbefehl "&&", um so jeden Operant auf einer Zeile zu sehen.

Web-Links