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)
Werbung

ABAP - Performance für den SELECT

Kategorie - ABAP

In diesem Artikel schauen wir uns noch ein paar Spezialfälle mit dem SELECT an und beleuchten die Performance dieser Konstrukte. Wir zeigen dir die aktuellen Alternativen dafür und geben kleinere Tipps beim Lesen.

02.04.2021

ABAP - Objekte prüfen (Instanzen)

Kategorie - ABAP

In diesem Artikel zeigen wir dir, wie du Instanzen analysieren und auf diese korrekt reagieren kannst, wenn du diese zum Beispiel bei einer Verarbeitung übergibst und individuell reagieren möchtest.

19.03.2021

ABAP - Schleifen

Kategorie - ABAP

Mit dem modernen ABAP wurden auch neue Schleifen und Möglichkeiten zur Einschränkung von Tabelleninhalten geschaffen. Diese neuen Befehle schauen wir uns in diesem Artikel näher an.

19.02.2021

ABAP - Vergleiche

Kategorie - ABAP

Heute betrachten wir uns das Thema Vergleiche und Vergleichsoperatoren im Hinblick auf die neuen Befehle und die aktuelle Verwendung. Was hat sich bisher alles geändert und was sollte man noch tun.

12.02.2021

ABAP - String Funktionen (Teil 3)

Kategorie - ABAP

In diesem Artikel geht es um weitere neue String Funktionen und einen Ersatz für CONDENSE. Hierbei möchten wir dir noch zeigen, wieso du die neuen Funktionen verwenden solltest.

22.01.2021

Wir verwenden Cookies für unsere Dienste und Funktionen. Mehr Informationen