zuerst wollte ich ein Rätsel daraus machen. Aber dann dachte ich mir, dass ihr das wahrscheinlich alle schon kennt. Dennoch hier ein Tipp von mir. Vielleicht hilft er ja dem ein oder anderen.
Ganz oft hat man in Programmen Status-Flags mit unterschiedlichen Ausprägungen 'X' für an und ' ' für aus oder 'N'/'Y' oder 0/1 oder auch mehrere Ausprägungen z.B. eine Status-Reihenfolge.
Dementsprechend findet man in Programmen oft If- oder Case-Konstrukte, die dann die Flags neu besetzen. Z.B.: "If flag = 'X'. flag = space. else. flag = 'X'. endif."
Dieses Umschalten von Flags geht aber mit TRANSLATE viel einfacher: TRANSLATE flag USING 'X X'.
Ganz interessant ist auch ein Umschalten in einer bestimmten Reihenfolge, z.B.:
TRANSLATE flag USING 'ABBCCDDA'. Das entspricht folgendem Case:
Case flag.
when 'A'. flag = 'B'.
when 'B'. flag = 'C'.
when 'C'. flag = 'D'.
when 'D'. flag = 'A'.
endcase.
Das geht.
Die Variante mit SPLIT wurde damals von Stefan aka black_adept im Forum von abap-fans.de veröffentlicht.
Aber falls noch jemand selbst drauf kommen will, verrate ich die Lösung lieber noch nicht.
Hmm - ne Woche vergangen - da kann ich ja mal posten wie es noch geht.
Die Lösung ist aber rein akademisch. Nachvollziehbarer (und kürzer) ist das Translate allemal...