Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

How to change IDOCs status from 51 to 68

Former Member
0 Kudos

How to change IDOCs status from 51 to 68?

1 ACCEPTED SOLUTION

laxmanakumar_appana
Active Contributor

Hi,

Use the program : RC1_IDOC_SET_STATUS to change the IDOC status.

Regards

Appana

4 REPLIES 4

Former Member
0 Kudos

Hi Tapan,

just try this......

*-- Perform to change the Status

PERFORM IDOC_STATUS_RECORD_WRITE IN PROGRAM SAPMSED7 USING I_IDOCNUM

I_STATUS_NUM

SPACE

SPACE

SPACE

SPACE

SPACE

SPACE.

&----


*& Form IDOC_STATUS_RECORD_WRITE

&----


FORM IDOC_STATUS_RECORD_WRITE

USING

IDOC_NUMBER_IN TYPE TIDOC_IDOC_NUMBER

IDOC_STATUS_IN LIKE EDI_DS-STATUS

MESSAGE_ID_IN LIKE EDI_DS-STAMID

MESSAGE_NO_IN LIKE EDI_DS-STAMNO

STATUS_PAR1_IN " no type provided

STATUS_PAR2_IN " no type provided

STATUS_PAR3_IN " no type provided

STATUS_PAR4_IN. " no type provided

DATA:

  • table of status values

L_T_STATUS_RECORDS LIKE EDI_DS OCCURS 0 WITH HEADER LINE.

  • create status record: fix

L_T_STATUS_RECORDS-LOGDAT = SY-DATUM.

L_T_STATUS_RECORDS-LOGTIM = SY-UZEIT.

L_T_STATUS_RECORDS-REPID = SY-REPID.

L_T_STATUS_RECORDS-UNAME = SY-UNAME.

L_T_STATUS_RECORDS-STAMQU = 'SAP'.

  • create status record: variable

L_T_STATUS_RECORDS-DOCNUM = IDOC_NUMBER_IN.

L_T_STATUS_RECORDS-STATUS = IDOC_STATUS_IN.

L_T_STATUS_RECORDS-STAMID = MESSAGE_ID_IN.

L_T_STATUS_RECORDS-STAMNO = MESSAGE_NO_IN.

L_T_STATUS_RECORDS-STAPA1 = STATUS_PAR1_IN.

L_T_STATUS_RECORDS-STAPA2 = STATUS_PAR2_IN.

L_T_STATUS_RECORDS-STAPA3 = STATUS_PAR3_IN.

L_T_STATUS_RECORDS-STAPA4 = STATUS_PAR4_IN.

APPEND L_T_STATUS_RECORDS.

  • write status record

PERFORM IDOC_STATUS_RECORDS_APPEND

TABLES L_T_STATUS_RECORDS

USING IDOC_NUMBER_IN.

ENDFORM. " IDOC_STATUS_RECORD_WRITE

FORM IDOC_STATUS_RECORDS_APPEND

TABLES T_STATUS_RECORDS_IN STRUCTURE EDI_DS

USING IDOC_NUMBER_IN LIKE EDIDC-DOCNUM.

  • open processing

CALL FUNCTION 'EDI_DOCUMENT_OPEN_FOR_PROCESS'

EXPORTING

DB_READ_OPTION = 'N'

DOCUMENT_NUMBER = IDOC_NUMBER_IN.

  • add status records

CALL FUNCTION 'EDI_STATUS_ADD_BLOCK'

EXPORTING

DOCUMENT_NUMBER = IDOC_NUMBER_IN

TABLES

IDOC_STATUS_RECORDS = T_STATUS_RECORDS_IN.

  • finsih processing idoc

CALL FUNCTION 'EDI_DOCUMENT_CLOSE_PROCESS'

EXPORTING

DOCUMENT_NUMBER = IDOC_NUMBER_IN.

ENDFORM. " IDOC_STATUS_RECORDS_APPEND

Hope this helps....

Regards,

Vidya.

laxmanakumar_appana
Active Contributor

Hi,

Use the program : RC1_IDOC_SET_STATUS to change the IDOC status.

Regards

Appana

Former Member
0 Kudos

Hi Try the FM IDOC_STATUS_CONVERT to change the status of your idoc.

Cheers

JK

PS: Mark helpful answers

Former Member
0 Kudos

This message was moderated.