Code: Alles auswählen.
zielstruc = CORRESPONDING #( quellstruc MAPPING field1 = switch #( quellstruc-field1
when 'B' then 'B'
else 'P' ) ).
Code: Alles auswählen.
zielstruc = corresponding #( quellstruc mapping field1 = 'X' ).
Code: Alles auswählen.
zielstruc = VALUE #( BASE CORRESPONDING #( quellstruc )
field1 = switch #( quellstruc-field1 when 'B' then 'B'
else 'P' )
).
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
ralf.wenzel
Na über die Quellstruktur! Das ist doch der klassische Weg, wenn man etwas "zu Fuß" macht, weil die Automatisierungsfunktionalitäten von ABAP nicht genug hergeben. Das sähe dann so aus:Ralf hat geschrieben:Ein LOOP? Worüber?
Code: Alles auswählen.
REFRESH zielstruc.
LOOP AT quellstruc ASSIGNING FIELD-SYMBOL(<q>).
INSERT SWITCH #( quellstruc-field1 WHEN 'B' THEN CORRESPONDING #( <q> MAPPING field1 = B )
ELSE CORRESPONDING #( <q> MAPPING field1 = P ) ) INTO TABLE zielstruc.
ENDLOOP.
Code: Alles auswählen.
zielstruc = VALUE #( FOR <q> IN quellstruc ( SWITCH #( quellstruc-field1 WHEN 'B' THEN CORRESPONDING #( <q> MAPPING field1 = B )
ELSE CORRESPONDING #( <q> MAPPING field1 = P ) ) ) ).
Code: Alles auswählen.
zielstruc = SWITCH #( quellstruc-field1 WHEN 'B' THEN CORRESPONDING #( quellstruc MAPPING field1 = B )
ELSE CORRESPONDING #( quellstruc MAPPING field1 = P ) ).
Damit fasst du das Problem in zwei Worten zusammen 😂
Code: Alles auswählen.
zielstruc = CORRESPONDING #( quellstruc ).
IF zielstruc-field1 <> 'B'.
zielstruc-field1= 'P'.
ENDIF.
Code: Alles auswählen.
zielstruc = CORRESPONDING #( quellstruc ).
REPLACE REGEX '[^B]' IN zielstruc-field1 WITH 'P'.
Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
tar
Nein, ich habe gezeigt, dass ich mit corresponding Probleme habe. 😉 Das ist nicht das erste Mal, aber hoffentlich das letzte Mal.black_adept hat geschrieben: ↑Gestern 00:47@Ralf: Rein aus Interesse. Du hast mit deiner Frage gezeigt, dass es selbst für langjährig ABAP Erfahrene manchmal kompliziert ist einen komplexeren Ausdruck korrekt zu implementieren.