2010 Apr 07 4:15 PM
Hello Experts:
I need to send out material movement (document) information using IDOC. I found MBGMCR02 is a suitable one but the process code is inbound.
I read some thread, it said you can create a new outbound process code. But I don't know exactly how to do it.
Can anyone share some advice?
Thanks a lot.
Dennis
2010 Apr 07 7:29 PM
Hi Dennis,
To solve this problem create the outbound process code using the following method:
Goto txn WE41 : Create a new outbound process code say ZMMGRO and assign your message type MBGMCR to this.
Also maintain a FM say ZMBGMCR_IDOC_OUPUT which process the IDOC in the outbound side.
The FM signature should typically look like this:
""Local Interface:
*" IMPORTING
*" VALUE(OBJECT) LIKE NAST STRUCTURE NAST
*" VALUE(CONTROL_RECORD_IN) LIKE EDIDC STRUCTURE EDIDC
*" EXPORTING
*" VALUE(OBJECT_TYPE) LIKE WFAS1-ASGTP
*" VALUE(CONTROL_RECORD_OUT) LIKE EDIDC STRUCTURE EDIDC
*" TABLES
*" INT_EDIDD STRUCTURE EDIDD
*" EXCEPTIONS
*" ERROR_MESSAGE_RECEIVED
*" DATA_NOT_RELEVANT_FOR_SENDING
*"----
TABLES: MKPF, MSEG.
data wa_mkpf type MKPF.
data it_mseg type TABLE OF MSEG.
data wa_mseg like LINE OF it_mseg.
data wa_E1BP2017_GM_HEAD_01 type E1BP2017_GM_HEAD_01.
data wa_E1MBGMCR type E1MBGMCR .
data wa_E1BP2017_GM_ITEM_CREATE type E1BP2017_GM_ITEM_CREATE.
data wa_E1BP2017_GM_CODE type E1BP2017_GM_CODE.
data wa_E1BP2017_GM_ITEM_CREATE1 type E1BP2017_GM_ITEM_CREATE1.
data wa_E1BP2017_GM_SERIALNUMBER type E1BP2017_GM_SERIALNUMBER.
data wa_edidd type edidd.
******************************************
Create Control Record **********
move CONTROL_RECORD_IN to CONTROL_RECORD_OUT.
control_record_out-direct = '1'.
control_record_out-serial = sy-datum.
control_record_out-serial+8 = sy-uzeit.
*******************************************
Fill Segment data from MKPF & MSEG ******
clear wa_edidd.
clear wa_E1MBGMCR.
move wa_E1MBGMCR to wa_edidd-sdata.
wa_edidd-segnam = 'E1MBGMCR'.
append wa_edidd to int_edidd.
Select single * from MKPF into wa_mkpf where
mblnr eq OBJECT-OBJKY+0(10)
and mjahr eq OBJECT-OBJKY+10(4).
clear wa_edidd.
clear wa_E1BP2017_GM_HEAD_01.
wa_E1BP2017_GM_HEAD_01-PSTNG_DATE = wa_mkpf-BUDAT.
wa_E1BP2017_GM_HEAD_01-DOC_DATE = wa_mkpf-BLDAT.
wa_E1BP2017_GM_HEAD_01-BILL_OF_LADING = wa_mkpf-FRBNR.
wa_E1BP2017_GM_HEAD_01-PR_UNAME = wa_mkpf-USNAM.
wa_E1BP2017_GM_HEAD_01-HEADER_TXT = wa_mkpf-BKTXT.
move wa_E1BP2017_GM_HEAD_01 to wa_edidd-sdata.
wa_edidd-segnam = 'E1BP2017_GM_HEAD_01'.
append wa_edidd to int_edidd.
SELECT * from mseg INTO TABLE it_mseg where
mblnr eq OBJECT-OBJKY+0(10)
and mjahr eq OBJECT-OBJKY+10(4).
loop at it_mseg into wa_mseg.
CLEAR wa_edidd.
CLEAR wa_E1BP2017_GM_ITEM_CREATE.
wa_E1BP2017_GM_ITEM_CREATE-MATERIAL = wa_mseg-MATNR.
wa_E1BP2017_GM_ITEM_CREATE-PLANT = wa_mseg-WERKS.
wa_E1BP2017_GM_ITEM_CREATE-STGE_LOC = wa_mseg-LGORT.
wa_E1BP2017_GM_ITEM_CREATE-BATCH = wa_mseg-CHARG.
wa_E1BP2017_GM_ITEM_CREATE-MOVE_TYPE = wa_mseg-BWART.
wa_E1BP2017_GM_ITEM_CREATE-STCK_TYPE = wa_mseg-INSMK.
wa_E1BP2017_GM_ITEM_CREATE-SPEC_STOCK = wa_mseg-SOBKZ.
wa_E1BP2017_GM_ITEM_CREATE-VENDOR = wa_mseg-LIFNR.
wa_E1BP2017_GM_ITEM_CREATE-ENTRY_QNT = wa_mseg-MENGE.
wa_E1BP2017_GM_ITEM_CREATE-ENTRY_UOM = wa_mseg-ERFME.
wa_E1BP2017_GM_ITEM_CREATE-PO_NUMBER = wa_mseg-EBELN.
wa_E1BP2017_GM_ITEM_CREATE-PO_ITEM = wa_mseg-EBELP.
move wa_E1BP2017_GM_ITEM_CREATE to wa_edidd-sdata.
wa_edidd-segnam = 'E1BP2017_GM_ITEM_CREATE'.
append wa_edidd to int_edidd.
endloop.
****************************************************
ENDFUNCTION.
Do remember to maintain the message control in WE20 where you maintain this outbound code against your output type.
Hope this helps!
Hi Dennis,
To solve this problem create the outbound process code using the following method:
Goto txn WE41 : Create a new outbound process code say ZMMGRO and assign your message type MBGMCR to this.
Also maintain a FM say ZMBGMCR_IDOC_OUPUT which process the IDOC in the outbound side.
The FM signature should typically look like this:
""Local Interface:
*" IMPORTING
*" VALUE(OBJECT) LIKE NAST STRUCTURE NAST
*" VALUE(CONTROL_RECORD_IN) LIKE EDIDC STRUCTURE EDIDC
*" EXPORTING
*" VALUE(OBJECT_TYPE) LIKE WFAS1-ASGTP
*" VALUE(CONTROL_RECORD_OUT) LIKE EDIDC STRUCTURE EDIDC
*" TABLES
*" INT_EDIDD STRUCTURE EDIDD
*" EXCEPTIONS
*" ERROR_MESSAGE_RECEIVED
*" DATA_NOT_RELEVANT_FOR_SENDING
*"----
TABLES: MKPF, MSEG.
data wa_mkpf type MKPF.
data it_mseg type TABLE OF MSEG.
data wa_mseg like LINE OF it_mseg.
data wa_E1BP2017_GM_HEAD_01 type E1BP2017_GM_HEAD_01.
data wa_E1MBGMCR type E1MBGMCR .
data wa_E1BP2017_GM_ITEM_CREATE type E1BP2017_GM_ITEM_CREATE.
data wa_E1BP2017_GM_CODE type E1BP2017_GM_CODE.
data wa_E1BP2017_GM_ITEM_CREATE1 type E1BP2017_GM_ITEM_CREATE1.
data wa_E1BP2017_GM_SERIALNUMBER type E1BP2017_GM_SERIALNUMBER.
data wa_edidd type edidd.
******************************************
Create Control Record **********
move CONTROL_RECORD_IN to CONTROL_RECORD_OUT.
control_record_out-direct = '1'.
control_record_out-serial = sy-datum.
control_record_out-serial+8 = sy-uzeit.
*******************************************
Fill Segment data from MKPF & MSEG ******
clear wa_edidd.
clear wa_E1MBGMCR.
move wa_E1MBGMCR to wa_edidd-sdata.
wa_edidd-segnam = 'E1MBGMCR'.
append wa_edidd to int_edidd.
Select single * from MKPF into wa_mkpf where
mblnr eq OBJECT-OBJKY+0(10)
and mjahr eq OBJECT-OBJKY+10(4).
clear wa_edidd.
clear wa_E1BP2017_GM_HEAD_01.
wa_E1BP2017_GM_HEAD_01-PSTNG_DATE = wa_mkpf-BUDAT.
wa_E1BP2017_GM_HEAD_01-DOC_DATE = wa_mkpf-BLDAT.
wa_E1BP2017_GM_HEAD_01-BILL_OF_LADING = wa_mkpf-FRBNR.
wa_E1BP2017_GM_HEAD_01-PR_UNAME = wa_mkpf-USNAM.
wa_E1BP2017_GM_HEAD_01-HEADER_TXT = wa_mkpf-BKTXT.
move wa_E1BP2017_GM_HEAD_01 to wa_edidd-sdata.
wa_edidd-segnam = 'E1BP2017_GM_HEAD_01'.
append wa_edidd to int_edidd.
SELECT * from mseg INTO TABLE it_mseg where
mblnr eq OBJECT-OBJKY+0(10)
and mjahr eq OBJECT-OBJKY+10(4).
loop at it_mseg into wa_mseg.
CLEAR wa_edidd.
CLEAR wa_E1BP2017_GM_ITEM_CREATE.
wa_E1BP2017_GM_ITEM_CREATE-MATERIAL = wa_mseg-MATNR.
wa_E1BP2017_GM_ITEM_CREATE-PLANT = wa_mseg-WERKS.
wa_E1BP2017_GM_ITEM_CREATE-STGE_LOC = wa_mseg-LGORT.
wa_E1BP2017_GM_ITEM_CREATE-BATCH = wa_mseg-CHARG.
wa_E1BP2017_GM_ITEM_CREATE-MOVE_TYPE = wa_mseg-BWART.
wa_E1BP2017_GM_ITEM_CREATE-STCK_TYPE = wa_mseg-INSMK.
wa_E1BP2017_GM_ITEM_CREATE-SPEC_STOCK = wa_mseg-SOBKZ.
wa_E1BP2017_GM_ITEM_CREATE-VENDOR = wa_mseg-LIFNR.
wa_E1BP2017_GM_ITEM_CREATE-ENTRY_QNT = wa_mseg-MENGE.
wa_E1BP2017_GM_ITEM_CREATE-ENTRY_UOM = wa_mseg-ERFME.
wa_E1BP2017_GM_ITEM_CREATE-PO_NUMBER = wa_mseg-EBELN.
wa_E1BP2017_GM_ITEM_CREATE-PO_ITEM = wa_mseg-EBELP.
move wa_E1BP2017_GM_ITEM_CREATE to wa_edidd-sdata.
wa_edidd-segnam = 'E1BP2017_GM_ITEM_CREATE'.
append wa_edidd to int_edidd.
endloop.
****************************************************
ENDFUNCTION.
Do remember to maintain the message control in WE20 where you maintain this outbound code against your output type.
Hope this helps!
2010 Apr 07 7:29 PM
Hi Dennis,
To solve this problem create the outbound process code using the following method:
Goto txn WE41 : Create a new outbound process code say ZMMGRO and assign your message type MBGMCR to this.
Also maintain a FM say ZMBGMCR_IDOC_OUPUT which process the IDOC in the outbound side.
The FM signature should typically look like this:
""Local Interface:
*" IMPORTING
*" VALUE(OBJECT) LIKE NAST STRUCTURE NAST
*" VALUE(CONTROL_RECORD_IN) LIKE EDIDC STRUCTURE EDIDC
*" EXPORTING
*" VALUE(OBJECT_TYPE) LIKE WFAS1-ASGTP
*" VALUE(CONTROL_RECORD_OUT) LIKE EDIDC STRUCTURE EDIDC
*" TABLES
*" INT_EDIDD STRUCTURE EDIDD
*" EXCEPTIONS
*" ERROR_MESSAGE_RECEIVED
*" DATA_NOT_RELEVANT_FOR_SENDING
*"----
TABLES: MKPF, MSEG.
data wa_mkpf type MKPF.
data it_mseg type TABLE OF MSEG.
data wa_mseg like LINE OF it_mseg.
data wa_E1BP2017_GM_HEAD_01 type E1BP2017_GM_HEAD_01.
data wa_E1MBGMCR type E1MBGMCR .
data wa_E1BP2017_GM_ITEM_CREATE type E1BP2017_GM_ITEM_CREATE.
data wa_E1BP2017_GM_CODE type E1BP2017_GM_CODE.
data wa_E1BP2017_GM_ITEM_CREATE1 type E1BP2017_GM_ITEM_CREATE1.
data wa_E1BP2017_GM_SERIALNUMBER type E1BP2017_GM_SERIALNUMBER.
data wa_edidd type edidd.
******************************************
Create Control Record **********
move CONTROL_RECORD_IN to CONTROL_RECORD_OUT.
control_record_out-direct = '1'.
control_record_out-serial = sy-datum.
control_record_out-serial+8 = sy-uzeit.
*******************************************
Fill Segment data from MKPF & MSEG ******
clear wa_edidd.
clear wa_E1MBGMCR.
move wa_E1MBGMCR to wa_edidd-sdata.
wa_edidd-segnam = 'E1MBGMCR'.
append wa_edidd to int_edidd.
Select single * from MKPF into wa_mkpf where
mblnr eq OBJECT-OBJKY+0(10)
and mjahr eq OBJECT-OBJKY+10(4).
clear wa_edidd.
clear wa_E1BP2017_GM_HEAD_01.
wa_E1BP2017_GM_HEAD_01-PSTNG_DATE = wa_mkpf-BUDAT.
wa_E1BP2017_GM_HEAD_01-DOC_DATE = wa_mkpf-BLDAT.
wa_E1BP2017_GM_HEAD_01-BILL_OF_LADING = wa_mkpf-FRBNR.
wa_E1BP2017_GM_HEAD_01-PR_UNAME = wa_mkpf-USNAM.
wa_E1BP2017_GM_HEAD_01-HEADER_TXT = wa_mkpf-BKTXT.
move wa_E1BP2017_GM_HEAD_01 to wa_edidd-sdata.
wa_edidd-segnam = 'E1BP2017_GM_HEAD_01'.
append wa_edidd to int_edidd.
SELECT * from mseg INTO TABLE it_mseg where
mblnr eq OBJECT-OBJKY+0(10)
and mjahr eq OBJECT-OBJKY+10(4).
loop at it_mseg into wa_mseg.
CLEAR wa_edidd.
CLEAR wa_E1BP2017_GM_ITEM_CREATE.
wa_E1BP2017_GM_ITEM_CREATE-MATERIAL = wa_mseg-MATNR.
wa_E1BP2017_GM_ITEM_CREATE-PLANT = wa_mseg-WERKS.
wa_E1BP2017_GM_ITEM_CREATE-STGE_LOC = wa_mseg-LGORT.
wa_E1BP2017_GM_ITEM_CREATE-BATCH = wa_mseg-CHARG.
wa_E1BP2017_GM_ITEM_CREATE-MOVE_TYPE = wa_mseg-BWART.
wa_E1BP2017_GM_ITEM_CREATE-STCK_TYPE = wa_mseg-INSMK.
wa_E1BP2017_GM_ITEM_CREATE-SPEC_STOCK = wa_mseg-SOBKZ.
wa_E1BP2017_GM_ITEM_CREATE-VENDOR = wa_mseg-LIFNR.
wa_E1BP2017_GM_ITEM_CREATE-ENTRY_QNT = wa_mseg-MENGE.
wa_E1BP2017_GM_ITEM_CREATE-ENTRY_UOM = wa_mseg-ERFME.
wa_E1BP2017_GM_ITEM_CREATE-PO_NUMBER = wa_mseg-EBELN.
wa_E1BP2017_GM_ITEM_CREATE-PO_ITEM = wa_mseg-EBELP.
move wa_E1BP2017_GM_ITEM_CREATE to wa_edidd-sdata.
wa_edidd-segnam = 'E1BP2017_GM_ITEM_CREATE'.
append wa_edidd to int_edidd.
endloop.
****************************************************
ENDFUNCTION.
Do remember to maintain the message control in WE20 where you maintain this outbound code against your output type.
Hope this helps!
2019 Aug 07 5:18 PM
| User | Count |
|---|---|
| 6 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |