配置接收方
第一步WE31创建段(SEGMENT):ZLM_SMT01(field字段跟发送端一致)
第二步WE30创建IDOC基本类型 :ZLM_IDOC_TYPE1
第三步WE81创建IDOC消息类型 :ZLM_IDOC_MSG1
第四步WE82关联基本类型和消息类型
第五步WE37创建接受函数 :ZLM_IDOC_RECIVER01
输入输出参数是固定的,从任意一个接收函数copy下就行
第六步BD51注册函数
第七步WE57关联函数和基本类型消息类型
第八步WE42创建inbound press code:ZLM_IDOC_PROCESS1
第九步BD54创建逻辑系统 :ZLM_DEV21
第八步WE20配置发送方信息:
接收端FM:
FUNCTION ZLM_IDOC_RECIVER01
.
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD OPTIONAL
*" VALUE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC OPTIONAL
*" EXPORTING
*" VALUE(WORKFLOW_RESULT) LIKE BDWF_PARAM-RESULT
*" VALUE(APPLICATION_VARIABLE) LIKE BDWF_PARAM-APPL_VAR
*" VALUE(IN_UPDATE_TASK) LIKE BDWFAP_PAR-UPDATETASK
*" VALUE(CALL_TRANSACTION_DONE) LIKE BDWFAP_PAR-CALLTRANS
*" TABLES
*" IDOC_CONTRL STRUCTURE EDIDC OPTIONAL
*" IDOC_DATA STRUCTURE EDIDD OPTIONAL
*" IDOC_STATUS STRUCTURE BDIDOCSTAT OPTIONAL
*" RETURN_VARIABLES STRUCTURE BDWFRETVAR OPTIONAL
*" SERIALIZATION_INFO STRUCTURE BDI_SER OPTIONAL
*"----------------------------------------------------------------------
DATA :
l_wa_idoc_data like edidd .
DATA :
l_data LIKE ZLM_SMT01 . "WE31配置的那个机构
LOOP AT IDOC_CONTRL .
LOOP AT IDOC_DATA into l_wa_idoc_data WHERE docnum = IDOC_CONTRL -docnum .
"虽然l_wa_idoc_data-SDATA是没结构的,这样赋值后就成有结构的数据了
*"----------------------------------------------------------------------
*"*"Local interface:
*" IMPORTING
*" VALUE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD OPTIONAL
*" VALUE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC OPTIONAL
*" EXPORTING
*" VALUE(WORKFLOW_RESULT) LIKE BDWF_PARAM-RESULT
*" VALUE(APPLICATION_VARIABLE) LIKE BDWF_PARAM-APPL_VAR
*" VALUE(IN_UPDATE_TASK) LIKE BDWFAP_PAR-UPDATETASK
*" VALUE(CALL_TRANSACTION_DONE) LIKE BDWFAP_PAR-CALLTRANS
*" TABLES
*" IDOC_CONTRL STRUCTURE EDIDC OPTIONAL
*" IDOC_DATA STRUCTURE EDIDD OPTIONAL
*" IDOC_STATUS STRUCTURE BDIDOCSTAT OPTIONAL
*" RETURN_VARIABLES STRUCTURE BDWFRETVAR OPTIONAL
*" SERIALIZATION_INFO STRUCTURE BDI_SER OPTIONAL
*"----------------------------------------------------------------------
DATA :
l_wa_idoc_data like edidd .
DATA :
l_data LIKE ZLM_SMT01 . "WE31配置的那个机构
LOOP AT IDOC_CONTRL .
LOOP AT IDOC_DATA into l_wa_idoc_data WHERE docnum = IDOC_CONTRL -docnum .
"虽然l_wa_idoc_data-SDATA是没结构的,这样赋值后就成有结构的数据了
l_data
= l_wa_idoc_data
-SDATA
.
ENDLOOP .
ENDLOOP .
COMMIT WORK .
CLEAR IDOC_STATUS .
IDOC_STATUS -docnum = IDOC_CONTRL -docnum .
IDOC_STATUS -status = '53' .
IDOC_STATUS -msgty = 'S' .
IDOC_STATUS -msgid = '00' .
IDOC_STATUS -msgno = '398' .
IDOC_STATUS -msgv1 = 'idoc' .
IDOC_STATUS -msgv2 = 'successfully processed' .
APPEND IDOC_STATUS .
ENDFUNCTION .
ENDLOOP .
ENDLOOP .
COMMIT WORK .
CLEAR IDOC_STATUS .
IDOC_STATUS -docnum = IDOC_CONTRL -docnum .
IDOC_STATUS -status = '53' .
IDOC_STATUS -msgty = 'S' .
IDOC_STATUS -msgid = '00' .
IDOC_STATUS -msgno = '398' .
IDOC_STATUS -msgv1 = 'idoc' .
IDOC_STATUS -msgv2 = 'successfully processed' .
APPEND IDOC_STATUS .
ENDFUNCTION .
可以在这里打外部断点,然后在执行发送程序