1 |
lv_char = |Das ist eine Zeichenkette|. |
Eigenschaften von String Expressions
- eingebaute Funktionen
- Beschreibungsfunktionen
- Verarbeitungsfunktionen
- Verkettung von Strings mit && (statt CONCATENATE)
- verschiedene Formatoperatoren verfügbar, die es z.B. erlaube stellenweise auf CONVERSION_EXITS zu verzichten.
eingebaute Funktionen
Längenfunktionen – charlen, dbmaxlen, numofchar, strlen
https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-DE/abendescriptive_functions.htm
Längenfunktion – char_off
https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-DE/abenlength_functions_args.htm
Suchfunktionen – find, find_…
https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-DE/abensearch_functions.htm
Suchfunktionen – count, count_…
https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-DE/abencount_functions.htm
Ähnlichkeitsfunktion – distance
https://help.sap.com/doc/abapdocu_752_index_htm/7.52/de-DE/abendistance_functions.htm
zeichenartige Extremwertfunktionen – cmax, cmin
Verdichtungsfunktion – condense
Verkettungsfunktion – concat_lines_of
Fluchtsymbolfunktion – escape
Einfügefunktion – insert
Abgleichfunktion -match
Wiederholfunktion – repeat
Ersetzungsfunktion – replace
Umdrehfunktion – reverse
Segmentfunktion – segment
Verschiebefunktionen – shift_left, shift_right
Teilfeldfunktionen – substring, substring_…
Groß-/Kleinschreibungsfunktionen – to_upper, to_lower, to_mixed, from_mixed
Umsetzfunktion – translate
Formatoptionen
internere Darstellung
1 2 |
DATA lv_matnr TYPE matnr. lv_matnr = |{ lv_matnr ALPHA = IN }|. |
1 2 3 4 5 6 7 |
DATA lv_matnr TYPE matnr. CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' EXPORTING input = lv_matnr IMPORTING output = lv_matnr. |
Demoprogramm
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
*&---------------------------------------------------------------------* *& Report Z_TEST_STRING_EXPR *& *&---------------------------------------------------------------------* *& *& Zeichenkettentemplates und Formatoptionen (ab ABAP 700) *&---------------------------------------------------------------------* REPORT z_test_string_expr. DATA: lv_matnr TYPE matnr, lv_text1 TYPE char10, lv_text2 TYPE char10, lv_text3 TYPE char30, lv_date TYPE d, lv_number_1 TYPE menge_d, lv_number_2 TYPE menge_d. " Zeichenketten lv_text1 = |Hallo|. lv_text2 = |Welt|. CONCATENATE lv_text1 lv_text2 INTO lv_text3 SEPARATED BY space. WRITE: /(30) |Verketten Standard|, 35 lv_text3. lv_text3 = lv_text1 && lv_text2. WRITE: /(30) |Verketten mit &&|, 35 lv_text3. SKIP 1. WRITE: /(30) |Komplexes Literal|, 35 |Characters \|, \{, and \} have to be escaped by \\ in literal text.|. lv_text3 = lv_text1 && | | && lv_text2. WRITE: /(30) |&& und \| \| |, 35 lv_text3. lv_text3 = |'| && lv_text1 && | | && lv_text2 && |'|. WRITE: /(30) |&& und \|'\| |, "' 35 lv_text3. SKIP 1. lv_matnr = '12345'. WRITE: /(30) |Zeichenkette Standard|, 35 lv_matnr. WRITE: /(30) |ALPHA IN|, 35 |{ lv_matnr ALPHA = IN }|. WRITE: /(30) |ALPHA OUT|, 35 |{ lv_matnr ALPHA = OUT }|. WRITE: /(30) |ALIGN LEFT|, 35 |{ lv_matnr ALIGN = LEFT WIDTH = 18 }|. WRITE: /(30) |ALIGN RIGHT|, 35 |{ lv_matnr ALIGN = RIGHT WIDTH = 18 }|. WRITE: /(30) |ALIGN CENTER|, 35 |{ lv_matnr ALIGN = CENTER WIDTH = 18 }|. WRITE: /(30) |PAD|, 35 |{ lv_matnr ALIGN = RIGHT WIDTH = 18 PAD = '9' }|. WRITE: /(30) |ALIGN CENTER PAD|, 35 |{ lv_matnr ALIGN = CENTER WIDTH = 18 PAD = '9' }|. SKIP 1. " Zahlen lv_number_1 = '1234.456'. lv_number_2 = '-1234.456'. WRITE: /(30) |Nummer Standard|, 35 lv_number_1, 70 lv_number_2. WRITE: /(30) |SIGN LEFT|, 35 |{ lv_number_1 SIGN = LEFT }|, 70 |{ lv_number_2 SIGN = LEFT }|. WRITE: /(30) |SIGN LEFTPLUS|, 35 |{ lv_number_1 SIGN = LEFTPLUS }|, 70 |{ lv_number_2 SIGN = LEFTPLUS }|. WRITE: /(30) |SIGN LEFTSPACE|, 35 |{ lv_number_1 SIGN = LEFTSPACE }|, 70 |{ lv_number_2 SIGN = LEFTSPACE }|. WRITE: /(30) |DECIMALS|, 35 |{ lv_number_1 DECIMALS = 2 }|, 70 |{ lv_number_2 DECIMALS = 2 }|. WRITE: /(30) |CURRENCY|, 35 |{ lv_number_1 CURRENCY = 'EUR' }|, 70 |{ lv_number_2 CURRENCY = 'EUR' }|. WRITE: /(30) |NUMBER RAW|, 35 |{ lv_number_1 NUMBER = RAW }|, 70 |{ lv_number_2 NUMBER = RAW }|. WRITE: /(30) |NUMBER USER|, 35 |{ lv_number_1 NUMBER = USER }|, 70 |{ lv_number_2 NUMBER = USER }|. WRITE: /(30) |NUMBER ENVIRONMENT|, 35 |{ lv_number_1 NUMBER = ENVIRONMENT }|, 70 |{ lv_number_2 NUMBER = ENVIRONMENT }|. SKIP 1. " Datum lv_date = '20150305'. WRITE: /(30) |Datum Standard|, 35 lv_date. WRITE: /(30) |DATE ISO|, 35 |{ lv_date DATE = ISO }|. WRITE: /(30) |DATE USER|, 35 |{ lv_date DATE = USER }|. |
externe Links
https://weberpatrick.de/abap-zeichenketten-templates-string-expressions/
http://www.cadaxo.com/high-class-development/abap-7-02-new-features-neue-stringfunktionen/