Das IDoc ist schon im process mode eröffnet

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV

Das IDoc ist schon im process mode eröffnet

Postby Flynn1993 » Tue Aug 23, 2016 4:15 pm

Hallo zusammen,

habe bei eingehenden IDoc's folgende Fehlermeldung:
E0112 EDI: Das IDoc '...' ist schon im process mode eröffnet.
Im Include LEDI1F04 finde ich den Auslöser:

FORM F04_DOCUMENT_TEST_ALREADY_OPEN USING DOCNUM LIKE EDIDC-DOCNUM.
LOOP AT DOCUMENT_IN_PROCESS WHERE DOCNUM EQ DOCNUM.
MESSAGE E112 WITH DOCNUM RAISING DOCUMENT_IS_ALREADY_OPEN.
ENDLOOP.

ENDFORM.

Aber warum eigentlich ? Warum noch im process mode ?
Bin über jeden Rat dankbar.

Gruß
Holger
Flynn1993
..
..
 
Posts: 89
Joined: Tue Sep 11, 2007 6:02 pm

Re: Das IDoc ist schon im process mode eröffnet

Postby Flynn1993 » Wed Sep 07, 2016 7:08 am

Fehler gefunden. Wer mal in die Verlegenheit kommen sollte, ein IDoc zur Laufzeit und vor der eigentlichen Verbuchung durch IDOC_INPUT_XXX zu prüfen und einen Status zu setzen, dann bitte wie folgt:

I_EDIDS-DOCNUM = IDOC_CONTRL-DOCNUM.
I_EDIDS-LOGDAT = SY-DATUM.
I_EDIDS-STATUS = 51.

CALL FUNCTION 'EDI_DOCUMENT_STATUS_SET'
EXPORTING
DOCUMENT_NUMBER = WA_IDOC_DATA-DOCNUM
IDOC_STATUS = i_edids
IMPORTING
IDOC_CONTROL = l_idoc_control
EXCEPTIONS
DOCUMENT_NUMBER_INVALID = 1
OTHER_FIELDS_INVALID = 2
STATUS_INVALID = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

CALL FUNCTION 'EDI_DOCUMENT_CLOSE_PROCESS'
EXPORTING
DOCUMENT_NUMBER = WA_IDOC_DATA-DOCNUM
* BACKGROUND = NO_BACKGROUND
* NO_DEQUEUE = ' '
* STATUS_CHECK = ' '
* QRFC_STATE = 'U'
IMPORTING
IDOC_CONTROL = edidc
EXCEPTIONS
DOCUMENT_NOT_OPEN = 1
FAILURE_IN_DB_WRITE = 2
PARAMETER_ERROR = 3
STATUS_SET_MISSING = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.


CLEAR IDOC_STATUS.
REFRESH IDOC_STATUS.

l_idoc_status_tab-status = '51'.
l_idoc_status_tab-msgty = 'E' .
l_idoc_status_tab-msgid = 'eigene Nachrichtenklasse'.
l_idoc_status_tab-MSGNO = '000'.
APPEND l_idoc_status_tab.

CALL FUNCTION 'IDOC_STATUS_WRITE_TO_DATABASE'
EXPORTING
IDOC_NUMBER = WA_IDOC_DATA-DOCNUM
IDOC_OPENED_FLAG = ' ' <-- GANZ WICHTIG !
* NO_DEQUEUE_FLAG = 'X'
IMPORTING
IDOC_CONTROL = l_idoc_control
TABLES
IDOC_STATUS = l_idoc_status_tab
EXCEPTIONS
IDOC_FOREIGN_LOCK = 1
IDOC_NOT_FOUND = 2
IDOC_STATUS_RECORDS_EMPTY = 3
IDOC_STATUS_INVALID = 4
DB_ERROR = 5
OTHERS = 6.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
Flynn1993
..
..
 
Posts: 89
Joined: Tue Sep 11, 2007 6:02 pm


Return to ABAP® Core

Who is online

Users browsing this forum: No registered users and 4 guests