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)

1643

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)



Und weiter ...

Bist du zufrieden mit dem Inhalt des Artikels? Wir posten jeden Freitag neuen Content im Bereich ABAP und unregelmäßig in allen anderen Bereichen. Schaue bei unseren Tools und Apps vorbei, diese stellen wir kostenlos zur Verfügung.


ABAP - XCO Excel

Kategorie - ABAP

Was kann eigentlich die XCO Bibliothek für Excel in ABAP? Hier schauen wir uns den aktuellen Stand der API an.

29.11.2024

ABAP - XCO Strings

Kategorie - ABAP

In diesem Artikel schauen wir uns die XCO Klasse zur Erzeugung und Verarbeitung von Strings für ABAP Cloud an und vergleichen sie mit den klassischen Statements.

22.11.2024

ABAP - XCO Bibliotheken

Kategorie - ABAP

Was kannst du mit der Bibliothek in ABAP und ABAP Cloud machen und wie nutzt du die Objekte am besten? Hier erfährst du mehr.

12.11.2024

ABAP - Type Casting

Kategorie - ABAP

Wie kommst du eigentlich an den ursprünglichen Typ einer Klasse bzw. Instanz, wenn diese in einer generischen Tabelle übergeben wird? In diesem Artikel prüfen wir die Möglichkeiten.

16.04.2024

ABAP - RETURN value

Kategorie - ABAP

Nach all den Jahren ist nun endlich der "echte" Return in ABAP angekommen, in diesem Artikel zeigen wir dir, wie der funktioniert und was er kann.

13.02.2024