Download - Abap 7.02 new features - neue stringfunktionen

Transcript
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.