This is a test message to test the length of the message box.
Login
Modernes ABAP String Templates
Erstellt von Software-Heroes

ABAP - String Templates (Teil 1)

Die Verarbeitung und Erstellung von Zeichenketten wurde noch einmal durch SAP angepasst. Der neue Aufbau der Zeichenketten geht nun einfacher und bietet viele Vorteile.

Werbung

Bei dem Thema Zeichenkettenverarbeitung hat sich noch einmal etwas getan. Die Darstellung und Erzeugung eines verknüpften Textes geht nun etwas intuitiver, wie man es aus anderen Programmiersprache kennt. Die Codierung der Strings sieht etwas anders aus, aber hier wird man sich schnell umgewöhnen können.

 

Aktuell Darstellung

Im Moment wird der String mit dem "Accent grave" abgebildet, dies kann leicht zu Problemen führen bei der Erkennung der Zeichenkette, da dies mit einem einfachen Hochkomma verwechselt werden kann. Mit dem String werden schließende Leerzeichen berücksichtigt und nicht wie beim Char-Feld abgeschnitten.

Dazu ein kleines Beispiel mit einer Zuweisung und Leerzeichen am Ende des String. Hierbei handelt es sich um eine einfache Zuweisung. Im zweiten Beispiel wird eine Verknüpfung mehrerer Strings dargestellt, die mit einem Leerzeichen in der Mitte zusammengesetz werden.


DATA:
  ld_value TYPE string.

"Erzeugung eines String
ld_value = `Dies ist ein String, Leerzeichen werden nicht abgeschnitten ...   `.

" mit Verknüpfung
ld_value = `Teil 1` && ` ` && `Teil 2`.

 

Neue Darstellung

Beim neuen Weg werden nun "Pipes" verwendet, die den Anfang und das Ende definieren. Zusätzlich kann noch mit geschweiften Klammern der Inhalt von Variablen übernommen werden. Wichtig zu erwähnen ist noch, dass jedes Leerzeichen zwischen den Pipes, auch ein Leerzeichen am Ende im String ist.


DATA:
  ld_value TYPE string.

"Erzeugung eines String
ld_value = |Dies ist ein String, Leerzeichen werden nicht abgeschnitten ...   |.

" mit Verknüpfung
ld_value = |Teil 1| && | | && |Teil 2|.

 

Bei der Verwendung der geschweiften Klammern muss auf die Leerzeichen zwischen Klammern und Variable geachtet werden, so wie bei Klammern mit logischen Ausdrücken bzw. Rechenoperationen. Es können beliebig viele Variablen in den string eingesetzt werden.


DATA:
  ld_text TYPE char25 VALUE ''.

" Inhalt übernehmen
DATA(ld_string) = |Hier kommt der Text: { ld_text }|.

 

Formatierung

Bei den bisher gezeigten Beispielen wurden nur die Steuerkennzeichen geändert und es ist noch kein großer Vorteil zu den herkömmlichen Strings zu erkennen. Der Vorteil der neuen Variante ist die Formatierungsmöglichkeit der Variablen beim Einfügen in den String.

Es stehen vorschiedene Möglichkeiten zur Verfügung die Variableninhalte für die Ausgabe aufzubereiten, was vorher vielleicht mit zusätzlichen Zwischenvariablen umgesetzt wurde oder wofür weitere Funktionsbausteine verwendet werden mussten.

Zur Formatierung der Inhalte muss hinter der Variable noch ein Zusatz aufgeführt werden, dieser bestimmt die durchzuführende Aktion.

 

Datum

Für die einfache Ausgabe des Datums in verschiedenen Formaten steht die DATE Funktion zur Verfügung. Die einfachste Form dafür ist die Ausgabe im USER Format, in den meisten Fällen bereits das richtige Format.


" Datumskonvertierung
DATA(ld_date_out) = |{ sy-datum DATE = USER }|.

 

Alpha

Die Alpha Konvertierung ist die Standard Ein- und Ausgabeform, die man für alle möglichen Dinge der Ausgabe und Aufbereitung von zahlen oder Belegnummern benötigt. Damit können führenden Nullen ergänzt oder entfernt werden.


DATA:
  ld_char TYPE CHAR10 VALUE '123'.

" Ausgabeformat
DATA(ld_belnr) = |{ ld_char ALPHA = IN }|.

 

Width & Align

Legt die Länge eines Feldes fest für die Ausgabe bzw. für die Länge des Strings der erzeugt wird. Es kann immer nur ein String verlängert werden, nicht verkürzt. Mit der Formatierungsoption Align, kann der Text innerhalb des vergrößerten Bereichs noch eingerückt werden. In dem folgenden Beispiel wird der Text am Ende des Strings positioniert und davor mit Leerzeichen aufgefüllt.


" Konvertierung der Ausgabe
DATA(ld_width) = |{ 'Four' WIDTH = 10 ALIGN = RIGHT }|.

 

Mehr

Es gibt noch viele weitere Möglichkeiten zur Ausgabenkonvertierung, diese findest du unter dem Link im unteren Bereich zuden Formatierungsoperationen.

 

Fazit

Die neuen String Templates bieten viele neue Möglichkeiten bei der Aufbereitung von Meldungen, Texten und Ausgaben. Die integrierte Formatierung spart Zwischenvariablen und macht das Coding um einiges übersichtlicher. Im nächsten Teil werden wir uns mit den neuen Inline-Funktionen zum Thema Zeichenkettenverarbeitung beschäftigen.

 

Quelle:
SAP Dokumentation String Templates
SAP Dokumentation Formatierungsoptionen


Enthaltene Themen:
Modernes ABAPString Template|{ }|
Kommentare (0)

ABAP Deep Dive - Tabellenzugriff (intern)

Kategorie - ABAP

Schauen wir uns in diesem Artikel einmal den Tabellenzugriff auf interne Tabellen an und wie sie den READ TABLE ablösen.

03.02.2023

ABAP - FINAL

Kategorie - ABAP

In diesem Artikel schauen wir uns einmal das neue FINAL Sprachkonstrukt an, wie es funktioniert und was du damit anstellen kannst.

23.12.2022

ABAP Deep Dive - VALUE

Kategorie - ABAP

In diesem Artikel wollen wir uns noch einmal das Value Statement in allen Ausprägungen anschauen und wie du es in deiner täglichen Arbeit nutzen kannst.

11.11.2022

ABAP - Common Table Expression (CTE)

Kategorie - ABAP

In diesem Artikel wollen wir uns einmal den allgemeinen Tabellenausdruck WITH anschauen und wie du ihn im Alltag nutzen kannst.

28.10.2022

ABAP Deep Dive - CORRESPONDING

Kategorie - ABAP

In diesem Artikel einmal etwas mehr über das neue Corresponding Statement und wie man es im Detail einsetzen kann. Dabei schauen wir einmal auf die zusätzlichen Features.

16.09.2022