Code: Alles auswählen.
FIELD-SYMBOLS: <fs> TYPE e1edl24. " Beispiel-Segment
LOOP AT idoc_data ASSIGNING FIELD-SYMBOL(<idoc>).
IF <idoc>-segnam = 'E1EDL24'.
ASSIGN <idoc>-sdata TO <fs> CASTING.
IF sy-subrc = 0.
<fs>-bsart = 'XXX'.
ENDIF.
ENDIF.
ENDLOOP.
Danke für deine Hilfe, mit deinem Code hat die Änderung geklappt.qyurryus hat geschrieben: ↑07.10.2021 13:57Hallo Jan,
du müsstest dann ja wissen, in welchem genauen Segement du das ändern willst. Du kannst z.B. mit einem typisierten Feldsymbol die Daten auslesen/manipulieren. Beispiel:
Code: Alles auswählen.
FIELD-SYMBOLS: <fs> TYPE e1edl24. " Beispiel-Segment LOOP AT idoc_data ASSIGNING FIELD-SYMBOL(<idoc>). IF <idoc>-segnam = 'E1EDL24'. ASSIGN <idoc>-sdata TO <fs> CASTING. IF sy-subrc = 0. <fs>-bsart = 'XXX'. ENDIF. ENDIF. ENDLOOP.
Code: Alles auswählen.
CALL FUNCTION 'EDI_DOCUMENT_OPEN_FOR_EDIT'
EXPORTING
document_number = idoc_docnum
TABLES
idoc_data = idoc_data.
FIELD-SYMBOLS: <fs> TYPE e1fikpf.
LOOP AT idoc_data ASSIGNING FIELD-SYMBOL(<idoc>).
IF <idoc>-segnam = 'E1FIKPF'.
ASSIGN <idoc>-sdata TO <fs> CASTING.
IF sy-subrc = 0.
IF <fs>-bukrs = '0103' OR <fs>-bukrs = '0307'.
<fs>-blart = 'SZ'.
ELSE.
<fs>-bukrs = 'SY'.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
CALL FUNCTION 'EDI_CHANGE_DATA_SEGMENTS'
TABLES
idoc_changed_data_range = idoc_data.
CALL FUNCTION 'EDI_DOCUMENT_CLOSE_EDIT'
EXPORTING
DOCUMENT_NUMBER = idoc_docnum
DO_COMMIT = 'X'
DO_UPDATE = 'X'
WRITE_ALL_STATUS = 'X'.