Upload
cadaxo-gmbh
View
2.504
Download
2
Embed Size (px)
DESCRIPTION
Der Foliensatz liefert einen Überblick über neue Stringfunktionen welcher seit ABAP 7.02 vorhanden sind. Alle wichtigen Funktionen werden mit Beispielen erklärt.
Citation preview
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.