尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

SAP IDoc出站与入站配置

SAP IDoc出站与入站配置 一、发送端配置出站IDoc1、WE31 创建段类型此处我用标准段类型 E1P0000 演示2、WE30 创建IDoc类型此处我用标准IDoc类型 HRMD_A09 演示3、WE81 创建消息类型4、WE82 关联消息类型与IDoc类型5、WE21 创建接收端的端口其中RFC目标为SM59创建的到接收系统的ABAP连接6、WE20 创建合作伙伴参数文件合作伙伴编号SALE定义的接收端逻辑系统名称伙伴类型LSTy.US代理人发送端的用户IDoc中出现问题会向此用户发送邮件出站参数消息类型步骤3 WE81创建的消息类型接收方端口步骤5 WE21创建的接收端端口基本类型步骤2 WE30创建的IDoc类型7、编写测试程序并执行测试程序REPORT ytest_lcl. PARAMETERS: p_pernr TYPE p0000-pernr OBLIGATORY. START-OF-SELECTION. DATA: ls_head TYPE e1plogi, ls_item TYPE E1PITYP, ls_p0000 TYPE e1p0000, IDoc数据段头 ls_p0001 TYPE e1p0001, IDoc数据段Item ls_edidc TYPE edidc, IDoc的控制记录 lt_edidc TYPE TABLE OF edidc, lt_edidd TYPE TABLE OF edidd WITH HEADER LINE. IDoc的数据记录 CLEAR ls_edidc. *系统根据下面4行即可与WE20(合作和伴配置文件)设置关联起来 ls_edidc-mestyp YTEST_MSG_TYP. Message Type ls_edidc-idoctp HRMD_A09. IDOC Type ls_edidc-rcvprn ESDCLNT150. partner Number of Recipient接收方合作伙伴 ls_edidc-rcvprt LS. partner Type of Receiver接收方类型为逻辑系统 *添加IDOC节点 CLEAR lt_edidd. lt_edidd-segnam E1PLOGI.头节点 lt_edidd-dtint2 0. lt_edidd-sdata ls_head. 节点内容ls_pohead结构中的数据最后被拼接成字符串再赋值给lt_edidd-sdata最大长度不能超过1000 APPEND lt_edidd. CLEAR lt_edidd. lt_edidd-segnam E1PITYP.头节点 lt_edidd-dtint2 0. lt_edidd-sdata ls_item. 节点内容ls_pohead结构中的数据最后被拼接成字符串再赋值给lt_edidd-sdata最大长度不能超过1000 APPEND lt_edidd. CLEAR lt_edidd. lt_edidd-segnam E1P0000.Item节点 lt_edidd-dtint2 0. CLEAR ls_p0000. SELECT SINGLE * FROM pa0000 INTO CORRESPONDING FIELDS OF ls_p0000 WHERE pernr p_pernr AND endda 99991231. lt_edidd-sdata ls_p0000. 节点内容ls_pohead结构中的数据最后被拼接成字符串再赋值给lt_edidd-sdata最大长度不能超过1000 APPEND lt_edidd. CLEAR lt_edidd. lt_edidd-segnam E1P0001.Item节点 lt_edidd-dtint2 0. CLEAR ls_p0001. SELECT SINGLE * FROM pa0001 INTO CORRESPONDING FIELDS OF ls_p0001 WHERE pernr p_pernr AND endda 99991231. lt_edidd-sdata ls_p0001. APPEND lt_edidd. CALL FUNCTION MASTER_IDOC_DISTRIBUTE 发送IDoc EXPORTING master_idoc_control ls_edidc IDoc控制记录 TABLES communication_idoc_control lt_edidc 接收用来接收IDoc发送情况 master_idoc_data lt_edidd IDoc数据记录 EXCEPTIONS error_in_idoc_control 1 error_writing_idoc_status 2 error_in_idoc_data 3 sending_logical_system_unknown 4 OTHERS 5. IF sy-subrc 0. MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ELSE. COMMIT WORK. WRITE: Idoc sent:. LOOP AT lt_edidc INTO ls_edidc. NEW-LINE. WRITE: Idoc number is, ls_edidc-docnum, ; receiver partner is, ls_edidc-rcvprn, ; sender partner,ls_edidc-sndprn. ENDLOOP. ENDIF.8、BD87 查看IDoc处理结果出现错误可重处理二、接收端配置入站IDoc1、WE31 创建段类型同发送端2、WE30 创建IDoc类型同发送端3、WE81 创建消息类型同发送端4、WE82 关联消息类型与IDoc类型同发送端5、WE21 创建发送端的端口其中RFC目标为SM59创建的到发送系统的ABAP连接6、创建入站处理函数可参考函数IDOC_INPUT_*入参出参固定FUNCTION ytest_input_lcl. *---------------------------------------------------------------------- **本地接口 * IMPORTING * VALUE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD * VALUE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC * 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 * IDOC_DATA STRUCTURE EDIDD * IDOC_STATUS STRUCTURE BDIDOCSTAT * RETURN_VARIABLES STRUCTURE BDWFRETVAR * SERIALIZATION_INFO STRUCTURE BDI_SER * EXCEPTIONS * WRONG_FUNCTION_CALLED *---------------------------------------------------------------------- CLEAR idoc_contrl. READ TABLE idoc_contrl INDEX 1. IF idoc_contrl-mestyp YTEST_MSG_TYP. RAISE wrong_function_called. ENDIF. LOOP AT idoc_contrl. LOOP AT idoc_data WHERE docnum idoc_contrl-docnum. CASE idoc_data-segnam. WHEN E1PLOGI. 直接将字符赋值给结构贬值过程中会按照结构中的字段长度来划分各字段 idoc_data-sdata. WHEN E1PITYP. idoc_data-sdata. WHEN OTHERS. ENDCASE. ENDLOOP. 根据数据处理情况设置当前IDoc处理的状态 IF 1 1. CLEAR idoc_status. idoc_status-docnum idoc_contrl-docnum.当前正处理的IDoc idoc_status-status 53. IDOC处理成功 APPEND idoc_status. ELSE. CLEAR idoc_status. idoc_status-docnum idoc_contrl-docnum. idoc_status-status 51. IDOC不成功 idoc_status-msgty E. 错误信息 idoc_status-msgid B1. idoc_status-msgno 527. APPEND idoc_status. ENDIF. ENDLOOP. ENDFUNCTION.7、WE51 注册入站处理函数8、WE57 关联入站处理函数与IDoc类型和消息类型9、WE42 创建进站处理代码选择由函数模块处理标识为入站处理函数名10、WE20 创建合作伙伴参数文件合作伙伴编号SALE定义的发送端逻辑系统名称伙伴类型LSTy.US代理人接收端的用户入站参数消息类型步骤3 WE81创建的消息类型处理代码步骤9 WE42创建的进站处理代码11、BD87 查看IDoc处理结果出现错误可重处理
返回列表