Anwendungsgebiet: Konvertierungsfunktionen
Mit der Funktion TRANSLATE( ) lassen sich beliebigen Eingangswerten beliebige Ergebniswerte zuordnen. Es dürfen bis zu zehn Umsetzungen angegeben werden, wobei WHEN- und THEN-Klauseln paarig auftreten müssen.
Ablauf: Die in den WHEN-Klauseln angegebenen Vergleichsstrings werden nacheinander auf Gleichheit mit dem Eingangsstring geprüft. Bei Gleichheit wird als Ergebnis der in der zugehörigen THEN-Klausel angegebene Ergebnisstring geliefert. Stimmt keiner der in den WHEN-Klauseln genannten Vergleichsstrings mit dem Eingangsstring überein, wird der im ELSE-Zweig angegebene String als Ergebnis geliefert.
Format
TRANSLATE( ) |
STRING = string_ausdruck0 ,WHEN1 = *NONE / string_ausdruck1, THEN1 = *NONE / *SAME / string_ausdruck11 ,WHEN2 = *NONE / string_ausdruck2, THEN2 = *NONE / *SAME / string_ausdruck12 ,WHEN3 = *NONE / string_ausdruck3, THEN3 = *NONE / *SAME / string_ausdruck13 ,WHEN4 = *NONE / string_ausdruck4, THEN4 = *NONE / *SAME / string_ausdruck14 ,WHEN5 = *NONE / string_ausdruck5, THEN5 = *NONE / *SAME / string_ausdruck15 ,WHEN6 = *NONE / string_ausdruck6, THEN6 = *NONE / *SAME / string_ausdruck16 ,WHEN7 = *NONE / string_ausdruck7, THEN7 = *NONE / *SAME / string_ausdruck17 ,WHEN8 = *NONE / string_ausdruck8, THEN8 = *NONE / *SAME / string_ausdruck18 ,WHEN9 = *NONE / string_ausdruck9, THEN9 = *NONE / *SAME / string_ausdruck19 ,WHEN10 = *NONE / string_ausdruck10, THEN10 = *NONE / *SAME / string_ausdruck20 ,ELSE = *NONE / *SAME / string_ausdruck21 |
Ergebnistyp
STRING
Eingabeparameter
STRING = string_ausdruck0
Bezeichnet den Eingabestring, mit dem die Vergleichsstrings in den WHEN-Klauseln verglichen werden.
WHENi = *NONE
1 <=
i <=
10; bezeichnet den Leerstring.
WHENi = string_ausdrucki
1 <=
i <=
10; bezeichnet die Vergleichsstrings und bestimmt die Umsetzungsbedingungen: Wenn ein „string_ausdrucki“ mit dem Eingabestring übereinstimmt, wird der entsprechende THENi-Zweig ausgeführt, das heißt, der dort bezeichnete Ergebnisstring geliefert.
THENi = *NONE
1 <=
i <=
10; bezeichnet den Leerstring.
THENi = *SAME
1 <=
i <=
10; bestimmt, dass bei Gleichheit von Eingabestring und Vergleichsstring als Ergebnis der Eingabestring ausgegeben wird.
THENi = string_ausdruckj
1 <=
i <=
10; 11 <=
j <=
20; bezeichnet den Ergebnisstring, der bei Gleichheit von Eingabestring (STRING = ) und Vergleichsstring (WHENi = ) als Ergebnis ausgegeben wird.
ELSE = *NONE
Wenn keiner der Vergleichsstrings in den WHENi-Klauseln mit dem Eingabestring übereinstimmt, wird als Ergebnis der Leerstring ausgegeben.
ELSE = *SAME
Wenn keiner der Vergleichsstrings in den WHENi-Klauseln mit dem Eingabestring übereinstimmt, wird als Ergebnis der Eingabestring ausgegeben.
ELSE = string_ausdruck21
Bezeichnet den Ergebnisstring, der ausgegeben wird, wenn keiner der Vergleichsstrings in den WHENi-Klauseln mit dem Eingabestring übereinstimmt.
Ergebnis
Ergebnisstring aus THENi oder ELSE-Klausel
Fehlermeldung
SDP0410 INKONSISTENZ ZWISCHEN 'WHEN' UND 'THEN' PARAMETERN
Beispiel
/A = 'ABC' /C = TRANSLATE(STRING = A - /,WHEN1 = 'AB', THEN1 = '12'- /,WHEN2 = 'BC', THEN2 = '23'- /,WHEN3 = 'ABC', THEN3 = '123'- /,ELSE = 'NIX_PASST') /SHOW-VARIABLE C C = 123 / B = 'grasgruen' / D = TRANSLATE(STRING = B - /,WHEN1 = 'gruen', THEN1 = 'green'- /,WHEN2 = 'rot', THEN2 = 'red'- /,WHEN3 = 'blau', THEN3 = 'blue'- /,ELSE = 'NIX_PASST') /SHOW-VARIABLE D D = NIX_PASST