ABAP 7.02 New Features Neue Stringfunktionen - · PDF fileInhaltsverzeichnis cmax/cmin -...
Embed Size (px)
Transcript of ABAP 7.02 New Features Neue Stringfunktionen - · PDF fileInhaltsverzeichnis cmax/cmin -...

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

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

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

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

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

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 = ‘;‘ ).

escape – Fluchtsymbolfunktion
• Ermöglicht das regelbasierte Ersetzen eines Strings durch
Fluchtsymbole
• Verwendbare Regeln sind als Konstanten in
CL_ABAP_FORMAT definiert

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

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

match – Abgleichfunktion
• Durchsucht einen Text nach einer bestimmten Regex-
Übereinstimmung
• Weitere Informationen zu Regex sind der SAP Online
Dokumentation zu entnehmen

repeat – Wiederholfunktion
• Erzeugt eine Zeichenkette durch Wiederholung einer
anderen Zeichenkette
l_string = repeat( val = ‘ABC‘ occ = 5 ).
write: l_string.
Ergebnis:
ABCABCABCABCABC

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‘

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!

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‘

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

to_upper, to_lower, to_mixed, from_mixed
Groß-/Kleinschreibungsfunktionen
l_result = to_mixed( val = 'CADAXO GMBH' ).
Ergebnis: ‘Cadaxo gmbh‘

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

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.