2020-09-04 11:40发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
你好专家:
我需要使用IDOC发送物料移动(文档)信息。 我发现MBGMCR02是合适的,但是过程代码是入站的。
我读了一些线程,它说可以创建一个新的出站过程代码。 但是我不知道该怎么做。
谁能分享一些建议?
非常感谢。
丹尼斯
丹尼斯,你好
要解决此问题,请使用以下方法创建出站处理代码:
转到txn WE41:创建一个新的出站流程代码ZMMGRO,并为此指定消息类型MBGMCR。
还要维护一个FM说ZMBGMCR_IDOC_OUPUT,它在出站侧处理IDOC。
FM签名通常应如下所示:
""本地接口:
*"导入
*"价值(对象)类似NAST的结构
*" VALUE(CONTROL_RECORD_IN)像EDIDC结构EDIDC
*"导出
*" VALUE(OBJECT_TYPE)类似于WFAS1-ASGTP
*" VALUE(CONTROL_RECORD_OUT)像EDIDC结构EDIDC
*"表格
*" INT_EDIDD结构EDDID
*"例外情况
*" ERROR_MESSAGE_RECEIVED
*" DATA_NOT_RELEVANT_FOR_SENDING
*" ----
表格:MKPF,MSEG。
数据wa_mkpf类型为MKPF。
数据it_mseg类型为TABLE OF MSEG。
数据wa_mseg类似于LINE OF it_mseg。
数据wa_E1BP2017_GM_HEAD_01类型E1BP2017_GM_HEAD_01。
数据wa_E1MBGMCR类型为E1MBGMCR。
数据wa_E1BP2017_GM_ITEM_CREATE类型E1BP2017_GM_ITEM_CREATE。
数据wa_E1BP2017_GM_CODE类型E1BP2017_GM_CODE。
数据wa_E1BP2017_GM_ITEM_CREATE1类型E1BP2017_GM_ITEM_CREATE1。
数据wa_E1BP2017_GM_SERIALNUMBER类型E1BP2017_GM_SERIALNUMBER。
数据wa_edidd类型edidd。
**********************************************
创建控制记录**********
将CONTROL_RECORD_IN移至CONTROL_RECORD_OUT。
control_record_out-direct ='1'。
control_record_out-serial = sy-datum。
control_record_out-serial + 8 = sy-uzeit。
************************************************
从MKPF和MSEG中填充段数据******
清除wa_edidd。
清除wa_E1MBGMCR。
将wa_E1MBGMCR移至wa_edidd-sdata。
wa_edidd-segnam ='E1MBGMCR'。
将wa_edidd附加到int_edidd。
从MKPF中选择单个*到wa_mkpf,其中
mblnr eq OBJECT-OBJKY + 0(10)
和mjahr eq OBJECT-OBJKY + 10(4)。
清除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。
将wa_E1BP2017_GM_HEAD_01移至wa_edidd-sdata。
wa_edidd-segnam ='E1BP2017_GM_HEAD_01'。
SELECT * from mseg INTO TABLE it_mseg其中
在it_mseg处循环进入wa_mseg。
清除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。
将wa_E1BP2017_GM_ITEM_CREATE移至wa_edidd-sdata。
wa_edidd-segnam ='E1BP2017_GM_ITEM_CREATE'。
endloop。
*************************************************** *****
ENDFUNCTION。
请记住要在WE20中维护消息控件,在该控件中应根据输出类型维护此出站代码。
希望这会有所帮助!
这正是我所需要的。
谢谢
最多设置5个标签!
丹尼斯,你好
要解决此问题,请使用以下方法创建出站处理代码:
转到txn WE41:创建一个新的出站流程代码ZMMGRO,并为此指定消息类型MBGMCR。
还要维护一个FM说ZMBGMCR_IDOC_OUPUT,它在出站侧处理IDOC。
FM签名通常应如下所示:
""本地接口:
*"导入
*"价值(对象)类似NAST的结构
*" VALUE(CONTROL_RECORD_IN)像EDIDC结构EDIDC
*"导出
*" VALUE(OBJECT_TYPE)类似于WFAS1-ASGTP
*" VALUE(CONTROL_RECORD_OUT)像EDIDC结构EDIDC
*"表格
*" INT_EDIDD结构EDDID
*"例外情况
*" ERROR_MESSAGE_RECEIVED
*" DATA_NOT_RELEVANT_FOR_SENDING
*" ----
表格:MKPF,MSEG。
数据wa_mkpf类型为MKPF。
数据it_mseg类型为TABLE OF MSEG。
数据wa_mseg类似于LINE OF it_mseg。
数据wa_E1BP2017_GM_HEAD_01类型E1BP2017_GM_HEAD_01。
数据wa_E1MBGMCR类型为E1MBGMCR。
数据wa_E1BP2017_GM_ITEM_CREATE类型E1BP2017_GM_ITEM_CREATE。
数据wa_E1BP2017_GM_CODE类型E1BP2017_GM_CODE。
数据wa_E1BP2017_GM_ITEM_CREATE1类型E1BP2017_GM_ITEM_CREATE1。
数据wa_E1BP2017_GM_SERIALNUMBER类型E1BP2017_GM_SERIALNUMBER。
数据wa_edidd类型edidd。
**********************************************
创建控制记录**********
将CONTROL_RECORD_IN移至CONTROL_RECORD_OUT。
control_record_out-direct ='1'。
control_record_out-serial = sy-datum。
control_record_out-serial + 8 = sy-uzeit。
************************************************
从MKPF和MSEG中填充段数据******
清除wa_edidd。
清除wa_E1MBGMCR。
将wa_E1MBGMCR移至wa_edidd-sdata。
wa_edidd-segnam ='E1MBGMCR'。
将wa_edidd附加到int_edidd。
从MKPF中选择单个*到wa_mkpf,其中
mblnr eq OBJECT-OBJKY + 0(10)
和mjahr eq OBJECT-OBJKY + 10(4)。
清除wa_edidd。
清除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。
将wa_E1BP2017_GM_HEAD_01移至wa_edidd-sdata。
wa_edidd-segnam ='E1BP2017_GM_HEAD_01'。
将wa_edidd附加到int_edidd。
SELECT * from mseg INTO TABLE it_mseg其中
mblnr eq OBJECT-OBJKY + 0(10)
和mjahr eq OBJECT-OBJKY + 10(4)。
在it_mseg处循环进入wa_mseg。
清除wa_edidd。
清除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。
将wa_E1BP2017_GM_ITEM_CREATE移至wa_edidd-sdata。
wa_edidd-segnam ='E1BP2017_GM_ITEM_CREATE'。
将wa_edidd附加到int_edidd。
endloop。
*************************************************** *****
ENDFUNCTION。
请记住要在WE20中维护消息控件,在该控件中应根据输出类型维护此出站代码。
希望这会有所帮助!
这正是我所需要的。
谢谢
一周热门 更多>