Belegart von IDOC in UserExit EXIT_SAPLF050_006 ändern

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Belegart von IDOC in UserExit EXIT_SAPLF050_006 ändern

Beitrag von JanR (ForumUser / 63 / 15 / 2 ) »
Hallo zusammen,

ich will aus dem UserExit EXIT_SAPLF050_006 gerne die Belegart der verarbeiteten IDOC´s überprüfen und ggf. ändern. Ich habe schon diverse FuBa´s ausprobiert aber hatte noch kein Erfolg. Ich hab Zugriff auf die einzelnen Segmente der IDOC´s, aber die Belegart versteckt sich im Feld sdata und ist dort ziemlich unhandlich hinterlegt. Kann ich irgendwie geschickt auf die sdata zugreifen um die Belegart zu ändern?

Vielen Dank im Voraus
Jan

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Belegart von IDOC in UserExit EXIT_SAPLF050_006 ändern

Beitrag von qyurryus (Specialist / 112 / 84 / 45 ) »
Hallo 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.

Folgende Benutzer bedankten sich beim Autor qyurryus für den Beitrag:
JanR


Re: Belegart von IDOC in UserExit EXIT_SAPLF050_006 ändern

Beitrag von JanR (ForumUser / 63 / 15 / 2 ) »
qyurryus hat geschrieben:
07.10.2021 13:57
Hallo 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.

Danke für deine Hilfe, mit deinem Code hat die Änderung geklappt.
Damit die Änderung aber nach der Verarbeitung des IDOC´s gespeichert bleibt, musste ich folgende FuBa´s zusätzliche benutzen:

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'.

Seite 1 von 1

Vergleichbare Themen

3
Antw.
1889
Views
Userexit für IDOC für Bestellung
von cuncon » 13.12.2019 09:11 • Verfasst in ABAP® Core
3
Antw.
3191
Views
Userexit für EDI IDOC für Faktura
von cuncon » 19.12.2019 17:33 • Verfasst in ABAP® Core
0
Antw.
1252
Views
Position hinzufügen - UserExit oder IDOC manipulieren?
von Otscho » 23.06.2008 17:13 • Verfasst in ABAP® Core
0
Antw.
1392
Views
User Exit ALE/IDOC
von Tuete001 » 11.07.2005 17:44 • Verfasst in Basis
1
Antw.
1291
Views
user-exit vorm Einspielen eines IDOC's
von dimes » 20.02.2007 09:45 • Verfasst in ABAP® Core

Über diesen Beitrag



Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.