Alles was du über String Templates in ABAP wissen willst erfährst du hier

Wer ABAP schon etwas länger kennt, weiß: Strings waren nie so richtig glamourös. Früher war die String-Bearbeitung in ABAP ein mühsames Unterfangen – vergleichbar mit dem Zusammensetzen eines IKEA-Möbelstücks ohne Anleitung. CONCATENATE fühlte sich an wie das Aneinanderkleben von Schnipseln mit Uhu, SYMBOLS waren oft ein Rätsel für sich, und WRITE TO war nicht gerade ein Musterbeispiel für Eleganz. Doch die gute Nachricht: Mit String Templates gehört dieses Chaos der Vergangenheit an!

Früher vs. Heute – Ein Vergleich

Von der Steinzeit der CONCATENATE-Syntax über die Workarounds der 90er mit WRITE TO sind wir nun endlich in der modernen ABAP-Welt angekommen. Heute bietet uns die Sprache mit String Templates eine elegante und intuitive Möglichkeit, Texte zusammenzusetzen. Lassen wir also die Vergangenheit hinter uns und schauen uns an, wie es früher war – und wie es heute viel besser geht!

CloudDNA Bücher

Der steinzeitliche Ansatz: CONCATENATE

Stellen wir uns vor, wir wollen eine einfache Nachricht zusammenbauen:

DATA: lv_text TYPE string.
CONCATENATE 'Hallo' ', ' sy-uname '!' INTO lv_text.
WRITE: lv_text.

Na ja, funktioniert. Aber elegant? Eher nicht. Viel Tipparbeit, kaum Lesbarkeit.

Der 90er-Jahre Ansatz: WRITE TO

Etwas charmanter, aber trotzdem mit Stolperfallen:

DATA: lv_text TYPE string.
WRITE: 'Hallo, ' TO lv_text.
WRITE: sy-uname TO lv_text.
WRITE: '!' TO lv_text.
WRITE: lv_text.

Hier braucht man fast so viele Zeilen wie für ein kleines Gedicht. Willkommen in der Welt der Workarounds!

Der moderne ABAP-Ansatz: String Templates!

Seit ABAP 7.40 ist endlich Schluss mit der Bastelstube:

DATA(lv_text) = |Hallo, { sy-uname }!|.
WRITE: lv_text.

Sauber. Elegant. Direkt. Fast so, als hätte ABAP Kaffee und Yoga für sich entdeckt.

Was sind String Templates?

String Templates werden mit |-Zeichen definiert und erlauben es, Texte und Variablen einfach und übersichtlich zu kombinieren. Die Syntax ist nicht nur kürzer, sondern auch viel lesbarer.

Hier ein weiteres Beispiel:

DATA: lv_name TYPE string VALUE 'Anna',
      lv_age TYPE i VALUE 28.

DATA(lv_output) = |{ lv_name } ist { lv_age } Jahre alt.|.
WRITE: lv_output.

Verglichen mit CONCATENATE, ist das wie der Sprung von einem klapprigen Nokia 3310 zu einem modernen Smartphone.

Formatierungsmöglichkeiten

String Templates können noch mehr! Sie bieten Formatoptionen, um Werte direkt zu formatieren:

DATA: lv_price TYPE p DECIMALS 2 VALUE '199.99'.
DATA(lv_output) = |Der Preis beträgt { lv_price CURRENCY 'EUR' }.|.
WRITE: lv_output.

Das ist besonders nützlich für Zahlen, Währungen und Datumswerte. Schluss mit WRITE TO-Klimmzügen!

Mehrzeilige Strings – Kein Problem!

Auch für mehrzeilige Texte sind String Templates eine Offenbarung. Früher mussten wir uns mit umständlichen Methoden behelfen, etwa durch CONCATENATE mit expliziten Zeilenumbrüchen oder durch CL_ABAP_CHAR_UTILITIES=>NEWLINE. Diese Methoden waren nicht nur mühsam zu lesen, sondern auch fehleranfällig. Heute hingegen lassen sich mehrzeilige Strings mit einer klaren und intuitiven Syntax definieren, die nicht nur Zeit spart, sondern auch den Code erheblich aufräumt.

DATA(lv_text) = |
Hallo { sy-uname },
Willkommen in der Welt der String Templates!
|.
WRITE: lv_text.

So einfach und schön! Kein CONCATENATE, keine Zeilenumbrüche mit CL_ABAP_CHAR_UTILITIES=>NEWLINE!

Zusammenfassung

String Templates in ABAP sind eine Revolution für die String-Bearbeitung. Sie machen Code kürzer, lesbarer und eleganter – und das mit weniger Fehleranfälligkeit. Wer sich noch mit CONCATENATE oder WRITE TO herumschlägt, sollte dringend aufrüsten.

ABAP-Strings haben endlich ihre Schönheit entdeckt. Oder anders gesagt:

DATA(lv_message) = |Goodbye, CONCATENATE! Hello, String Templates!|.
WRITE: lv_message.

Unsere Expertise bei CloudDNA

Wenn du tiefer in moderne ABAP-Entwicklung einsteigen oder Unterstützung bei der Migration zu aktuellen Best Practices suchst, ist die CloudDNA GmbH dein zuverlässiger Partner. Wir helfen dir, deine SAP-Systeme auf den neuesten Stand zu bringen – effizient, skalierbar und mit der passenden Strategie für dein Unternehmen. Sprich uns an!