Tuesday, June 28, 2011

IDOC Step-by-Step. INBOUND process

Continue from outbound process...


In Client 812 Steps:

Function Module Creation:

Create a Function Module to update the table from the IDOC segments

Go to SE37

Specify a name and click on create.


Specify the Import parameters in Import tab

Specify the Export parameters in Export tab

Specify the Table parameters in Tables tab

Specify the Exceptions in Exception tab

Click on Source code Tab.

====================================================
 FUNCTION ZIDOC_ZDEMO_MATEIAL.
*"---------------------------------------------------------------------- *"*"Local Interface: Details for importing, exporting, tables, exceptions
*" IMPORTING
*" REFERENCE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD
*" REFERENCE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC
*" EXPORTING
*" REFERENCE(WORKFLOW_RESULT) LIKE BDWF_PARAM-RESULT
*" REFERENCE(APPLICATION_VARIABLE) LIKE BDWF_PARAM-APPL_VAR
*" REFERENCE(IN_UPDATE_TASK) LIKE BDWFAP_PAR-UPDATETASK
*" REFERENCE(CALL_TRANSACTION_DONE) LIKE BDWFAP_PAR-CALLTRANS
*" TABLES
*" IDOC_CONTRL STRUCTURE EDIDC
*" IDOC_DATA STRUCTURE EDIDD
*" IDOC_STATUS STRUCTURE BDIDOCSTAT
*" RETURN_VARIABLES STRUCTURE BDWFRETVAR
*" SERIALIZATION_INFO STRUCTURE BDI_SER
*" EXCEPTIONS
*" WRONG_FUNCTION_CALLED
*"----------------------------------------------------------------------

* Include File containing ALE constants
INCLUDE MBDCONWF.

TABLES : zdemo_material.

DATA : W_ZSEGMENT LIKE ZSEGMENT.

DATA : T_zdemo_material LIKE zdemo_material OCCURS 0 WITH HEADER LINE.
WORKFLOW_RESULT = C_WF_RESULT_OK.

LOOP AT IDOC_CONTRL.
IF IDOC_CONTRL-MESTYP NE 'ZCLIENTMSG'.
RAISE WRONG_FUNCTION_CALLED.
ENDIF.

* Before reading a new entry, clear application buffer
LOOP AT IDOC_DATA WHERE DOCNUM EQ IDOC_CONTRL-DOCNUM.
W_ZSEGMENT = IDOC_DATA-SDATA.
MOVE-CORRESPONDING W_ZSEGMENT TO T_zdemo_material.
INSERT INTO zdemo_material VALUES T_zdemo_material.
ENDLOOP.

UPDATE zdemo_material FROM T_zdemo_material.

IF SY-SUBRC EQ 0.
IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
IDOC_STATUS-STATUS = '53'.
IDOC_STATUS-MSGTY = 'I'.
IDOC_STATUS-MSGID = 'YM'.
IDOC_STATUS-MSGNO = '004'.
IDOC_STATUS-MSGV1 = T_zdemo_material-MANDT.
APPEND IDOC_STATUS.
CLEAR IDOC_STATUS.
ELSE.
IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
IDOC_STATUS-STATUS = '51'.
IDOC_STATUS-MSGTY = 'E'.
IDOC_STATUS-MSGID = 'YM'.
IDOC_STATUS-MSGNO = '005'.
IDOC_STATUS-MSGV1 = T_zdemo_material-MANDT.
APPEND IDOC_STATUS.
CLEAR IDOC_STATUS.

WORKFLOW_RESULT = C_WF_RESULT_ERROR.
RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
APPEND RETURN_VARIABLES.
CLEAR RETURN_VARIABLES.
ENDIF.
ENDLOOP.
ENDFUNCTION.
====================================================

Assign FM to Logical Message:

Go to TCODE WE57

Click on Display / Change button.

Click on New Entries

Define Input Method for Inbound Function Module:

Go to TCODE BD51

Click on Display / Change button

Click on New Entries

Creating Process Code:

Go to TCODE WE42

Click on Display / Change Button

Click on New Entries

It will take to you previous screen. Double Click on Logical Message in left side tree.

Click on Display / Change button

Click on New Entries button

Generating the Partner Profile:

Go to TCODE BD64.

Select the Model View which you distributed in client 812.

Click on Environment Menu -> Generate Partner Profile .Execute.

check the partner profile details.

Go to TCODE WE20. Select the partner system name.

Transferring the IDOC control records from Client 800 to 812:

In source system, go to TCODE SE38. (In client 800)

Execute the Report program which you created.

Check in Destination System: (Here client 800)

Go to TCODE WE02


Check in Destination System: (Here client 812)

Go to TCODE WE02



Check in ZDEMO_MATERIAL table in SE11.


Done!..

====================================================

Took Reference from the link given below:

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.