Abap 7.02 new features - neue stringfunktionen

18
ABAP 7.02 New Features Neue Stringfunktionen Johann Fößleitner, Cadaxo GmbH

description

Der Foliensatz liefert einen Überblick über neue Stringfunktionen welcher seit ABAP 7.02 vorhanden sind. Alle wichtigen Funktionen werden mit Beispielen erklärt.

Transcript of Abap 7.02 new features - neue stringfunktionen

Page 1: Abap 7.02   new features - neue stringfunktionen

ABAP 7.02 New Features

Neue Stringfunktionen

Johann Fößleitner,

Cadaxo GmbH

Page 2: Abap 7.02   new features - neue stringfunktionen

Inhaltsverzeichnis

➤ cmax/cmin - Zeichenartige Extremwertfunktion

➤ condense - Verdichtungsfunktion

➤ concate_lines_of - Verkettungsfunktion

➤ escape - Fluchtsymbolfunktion

➤ insert - Einfügefunktion

➤ match - Abgleichfunktion

➤ repeat - Wiederholfunktion

➤ replace - Ersetzungsfunktion

➤ reverse - Umdrehfunktion

➤ shift_left/shift_right - Verschiebefunktion

➤ substring - Teilfeldfunktion

➤ to_upper/to_lower/… - Groß-/Kleinschreibefunktion

➤ translate - Umsetzfunktion

➤ distance - Ähnlichkeitsfunktion

Page 3: Abap 7.02   new features - neue stringfunktionen

cmax/cmin – Zeichenartige Extremwertfunktion

• Vergleich von bis zu 9 zeichenartigen Argumenten

• Ergebnis ist das kleinste (cmin) oder größte (cmax)

übergebene Zeichen

• Vergleich auf Basis der verwendeten Codepage

Page 4: Abap 7.02   new features - neue stringfunktionen

cmax/cmin – Zeichenartige Extremwertfunktion

l_result = cmax( val1 = 'AAAC' val2 = 'AAAB' val3 = 'AAAD' ).

Ergebnis: AAAD l_result = cmax( val1 = 'AAAC' val2 = 'AZAB' val3 = 'AAAD' ).

Ergebnis: AZAB l_result = cmin( val1 = 'AAAC' val2 = 'AAAB' val3 = 'AAAD' ).

Ergebnis: AAAB l_result = cmin( val1 = 'AAAC' val2 = '0AAC' val3 = 'AAAD' ).

Ergebnis: 0AAC

Page 5: Abap 7.02   new features - neue stringfunktionen

condense – Verdichtungsfunktion

• Verdichtet den Inhalt einer Zeichenkette

• Bietet mehr Möglichkeiten als das ABAP Kommando

Condense

• Entfernen von führenden oder endenden Zeichen

l_string = condense( val = ‘XXXabcXXXdefXXX‘ del = ‘X‘ from = ‘X‘ to = ‘X‘ ).

Ergebnis: abcXdef

Page 6: Abap 7.02   new features - neue stringfunktionen

concat_lines_of – Verkettungsfunktion

• Verkettet Zeilen einer internen Tabelle in eine Zeichenkette

• Zusatz sep ermöglicht die Trennung durch einen Separator

L_string = concate_lines_of( table = tab sep = ‘;‘ ).

Page 7: Abap 7.02   new features - neue stringfunktionen

escape – Fluchtsymbolfunktion

• Ermöglicht das regelbasierte Ersetzen eines Strings durch

Fluchtsymbole

• Verwendbare Regeln sind als Konstanten in

CL_ABAP_FORMAT definiert

Page 8: Abap 7.02   new features - neue stringfunktionen

escape – Fluchtsymbolfunktion

DATA l_string0 TYPE string.

DATA l_string1 TYPE string.

l_string0 = 'http://www.cadaxo.com'.

l_string1 = escape( val = l_string0 format = cl_abap_format=>e_url_full ).

WRITE: / l_string0, / l_string1.

Ergebnis:

http://www.cadaxo.com

http%3A%2F%2Fwww.cadaxo.com

Page 9: Abap 7.02   new features - neue stringfunktionen

insert – Einfügefunktion

• Einfügen einer Zeichenkette an beliebiger Stelle einer

anderen Zeichenkette

L_string = ‘NewsABAP‘.

L_result = insert( val = l_string sub = ‘ in ‘ off = 5 ).

Write: l_string.

Ergebnis:

News in ABAP

Page 10: Abap 7.02   new features - neue stringfunktionen

match – Abgleichfunktion

• Durchsucht einen Text nach einer bestimmten Regex-

Übereinstimmung

• Weitere Informationen zu Regex sind der SAP Online

Dokumentation zu entnehmen

Page 11: Abap 7.02   new features - neue stringfunktionen

repeat – Wiederholfunktion

• Erzeugt eine Zeichenkette durch Wiederholung einer

anderen Zeichenkette

l_string = repeat( val = ‘ABC‘ occ = 5 ).

write: l_string.

Ergebnis:

ABCABCABCABCABC

Page 12: Abap 7.02   new features - neue stringfunktionen

replace – Ersetzungsfunktion

• Ersetzt einen Teilbereich einer Zeichenkette

• Teilbereich kann über Offset-/Längen oder Regex festgelegt

werden.

l_result = replace( val = 'ABAP xx GOOD' off = 6 len = 0 with = 'IS' ).

Ergebnis: ‘ABAP xISx GOOD‘

l_result = replace( val = 'ABAP xx GOOD' off = 4 len = 4 with = 'IS' ).

Ergebnis: ‘ABAPISGOOD‘

Page 13: Abap 7.02   new features - neue stringfunktionen

reverse – Umdrehfunktion

• Umdrehen einer kompletten Zeichenkette

L_string = ‘PABA‘.

L_string = reverse( l_string ).

Ergebnis: ABAP

PS: Wenn jemand eine sinnvolle Verwendung für diese Funktion findet, bitte um Info!

Page 14: Abap 7.02   new features - neue stringfunktionen

substring, substring_... – Teilfeldfunktion

• Ermittlung eines Teilfeldes aus einer gegebenen

Zeichenmenge

l_result = substring( val = 'ABCDEFGH' off = 3 len = 4 ).

Ergebnis: ‘DEFG‘ l_result = substring_from( val = 'ABCDEFGH' sub = 'DEF' ).

Ergebnis: ‘DEFGH‘ l_result = substring_after( val = 'ABCDEFGH' sub = 'DEF' ).

Ergebnis: ‘GH‘ l_result = substring_before( val = 'ABCDEFGH' sub = 'DEF' ).

Ergebnis: ‘ABC‘ l_result = substring_to( val = 'ABCDEFGH' sub = 'DEF' ).

Ergebnis: ‘ABCDEF‘

Page 15: Abap 7.02   new features - neue stringfunktionen

to_upper, to_lower, to_mixed, from_mixed

Groß-/Kleinschreibungsfunktionen

• to_upper/to_lower entspricht dem Kommando TRANSLATE

TO UPPER/LOWER CASE

• to_mixed setzt alle Buchstaben ab der 2. Stelle auf

Kleinbuchstaben um

• from_mixed fügt von links nach rechts ab der 2. Position

das erste im Zusatz sep angegebene Zeichen ein

• Weitere Zusätze sind case und min

Page 16: Abap 7.02   new features - neue stringfunktionen

to_upper, to_lower, to_mixed, from_mixed

Groß-/Kleinschreibungsfunktionen

l_result = to_mixed( val = 'CADAXO GMBH' ).

Ergebnis: ‘Cadaxo gmbh‘

Page 17: Abap 7.02   new features - neue stringfunktionen

distance - Ähnlichkeitsfunktion

• Ermittelt den Editierabstand (Levenshtein-Distanz) zweier

Zeichenketten • Minimale Anzahl von Einfüge-, Lösch- oder Ersetzungsvorgängen um

von Zeichenkette 1 auf Zeichenkette 2 zu kommen.

l_int = distance( val1 = 'CADAXO GMBH' val2 = 'ADAXOGMBH' ).

Ergebnis: 2 (Ein „C“ und ein Leerzeichen müssen eingefügt werden)

l_int = distance( val1 = 'ABCD' val2 = 'EFGH' ).

Ergebnis: 4 (Alle Zeichen müssen ausgetauscht werden)

http://de.wikipedia.org/wiki/Levenshtein-Distanz

Page 18: Abap 7.02   new features - neue stringfunktionen

Die Vervielfältigung bzw. Übersetzung dieses Dokumentes

oder Teilen daraus ist ohne ausdrückliche Genehmigung

durch die Cadaxo GmbH nicht zulässig.

SAP®, ABAP™, R/3®, SAP NetWeaver® sind Marken oder

eingetragene Marken der SAP AG.

Alle anderen Produkte sind Marken oder eingetragene

Marken der jeweiligen Firmen.

© 2013 Cadaxo GesmbH. Alle Rechte vorbehalten.