IDOC step by step
2013-05-31 14:21
330 查看
Outbound in sourcing system
1. WE31, Create Segment type
Release Segment
2. WE30, Create IDOC type
光标放在ZERO_IDOC上, 按create.
光标放在ZEROHEAD上, 按create
这里可以选择增加segment作为同一level segment, 或作为子level的segment
Set release IDOC
3. WE81, Create Message Type.
4. WE82, Mapping Message Type and IDOC type
5. SM59, Create RFC connection
在Target Host输入IP
点Conncetion Test可以测试连通情况(相当于ping), 点Remote Logon可以直接连到目标系统.
6. WE21, Create Port
这里可以选择自动生成port name或都自己命名port name.
7. SALE, Define Logical Sytem
8. WE20, Create partner profile
挂上message type
9. Outbound代码
Inbound in the destination system
1. 创建和sourcing system相同的segment type, idoc type, message type.
2. Create tables, 用来存储从sourcing system传过来的idoc数据.
3. Create inbound FM
4. BD51
这个步骤完成了后, 步骤5的下拉框才可以选择FM: Z_IDOC_PO_PROCESS
5. WE42, Create Process Code
6. WE57
7. SALE, Define Logical System
8. WE20, Define Partner Profile, and Set Inbound Message
1. WE31, Create Segment type
Release Segment
2. WE30, Create IDOC type
光标放在ZERO_IDOC上, 按create.
光标放在ZEROHEAD上, 按create
这里可以选择增加segment作为同一level segment, 或作为子level的segment
Set release IDOC
3. WE81, Create Message Type.
4. WE82, Mapping Message Type and IDOC type
5. SM59, Create RFC connection
在Target Host输入IP
点Conncetion Test可以测试连通情况(相当于ping), 点Remote Logon可以直接连到目标系统.
6. WE21, Create Port
这里可以选择自动生成port name或都自己命名port name.
7. SALE, Define Logical Sytem
8. WE20, Create partner profile
挂上message type
9. Outbound代码
DATA: ls_pohead TYPE zerohead, ls_poitem TYPE zeroitem, ls_edidc TYPE edidc, lt_edidc TYPE TABLE OF edidc, lt_edidd TYPE TABLE OF edidd WITH HEADER LINE. CLEAR ls_edidc. *系统根据下面4行即可与WE20设置关联起来 ls_edidc-mestyp = 'Z_ZERO_MSG'. "Message Type ls_edidc-idoctp = 'ZERO_IDOC'. "IDOC Type ls_edidc-rcvprn = 'ZEROEC6'. "Partner Number of Recipient接收方 ls_edidc-rcvprt = 'LS'. "Partner Type of Receiver *添加IDOC结点 CLEAR lt_edidd. lt_edidd-segnam = 'ZEROHEAD'."结点名称 lt_edidd-dtint2 = 0. CLEAR ls_pohead. ls_pohead-ebeln = '4001122335'. ls_pohead-bukrs = '0400'. ls_pohead-bstyp = 'EC'. lt_edidd-sdata = ls_pohead. "结点内容 APPEND lt_edidd. CLEAR lt_edidd. lt_edidd-segnam = 'ZEROITEM'. lt_edidd-dtint2 = 0. CLEAR ls_poitem. ls_poitem-ebeln = '4001122335'. ls_poitem-ebelp = '0001'. ls_poitem-loekz = 'X'. lt_edidd-sdata = ls_poitem. APPEND lt_edidd. CLEAR lt_edidd. lt_edidd-segnam = 'ZEROITEM'. lt_edidd-dtint2 = 0. CLEAR ls_poitem. ls_poitem-ebeln = '4001122335'. ls_poitem-ebelp = '0002'. ls_poitem-loekz = ''. lt_edidd-sdata = ls_poitem. APPEND lt_edidd. CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' EXPORTING master_idoc_control = ls_edidc "Export TABLES communication_idoc_control = lt_edidc "Import master_idoc_data = lt_edidd "Export 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. CALL FUNCTION 'DB_COMMIT' . CALL FUNCTION 'DEQUEUE_ALL' * EXPORTING * _SYNCHRON = ' ' . COMMIT WORK.
Inbound in the destination system
1. 创建和sourcing system相同的segment type, idoc type, message type.
2. Create tables, 用来存储从sourcing system传过来的idoc数据.
3. Create inbound FM
FUNCTION z_idoc_po_process. *"---------------------------------------------------------------------- *"*"Local Interface: *" IMPORTING *" REFERENCE(INPUT_METHOD) LIKE BDWFAP_PAR-INPUTMETHD *" REFERENCE(MASS_PROCESSING) LIKE BDWFAP_PAR-MASS_PROC *" EXPORTING *" REFERENCE(WORKFLOW_RESULT) LIKE BDWFAP_PAR-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 *"---------------------------------------------------------------------- DATA: lv_subrc TYPE sy-subrc, lw_chead TYPE zerohead, lw_citem TYPE zeroitem, lw_pohead TYPE zeropohead, lt_poitem TYPE TABLE OF zeropoitem WITH HEADER LINE. CLEAR idoc_contrl. READ TABLE idoc_contrl INDEX 1. IF idoc_contrl-mestyp <> 'Z_ZERO_MSG'. RAISE wrong_function_called. ENDIF. CLEAR: lw_pohead, lt_poitem[]. LOOP AT idoc_data. CASE idoc_data-segnam. WHEN 'ZEROHEAD'. CLEAR: lw_chead, lw_pohead. lw_chead = idoc_data-sdata. MOVE-CORRESPONDING lw_chead TO lw_pohead. WHEN 'ZEROITEM'. CLEAR: lw_citem, lt_poitem. lw_citem = idoc_data-sdata. MOVE-CORRESPONDING lw_citem TO lt_poitem. APPEND lt_poitem. WHEN OTHERS. ENDCASE. ENDLOOP. lv_subrc = 0. INSERT zeropohead FROM lw_pohead. IF sy-subrc = 0. INSERT zeropoitem FROM TABLE lt_poitem. lv_subrc = sy-subrc. ELSE. "订单号已经存在 lv_subrc = sy-subrc. ENDIF. IF lv_subrc = 0. COMMIT WORK. CLEAR idoc_status. idoc_status-docnum = idoc_contrl-docnum. idoc_status-status = '53'. "IDOC处理成功 APPEND idoc_status. ELSE. ROLLBACK WORK. CLEAR idoc_status. idoc_status-docnum = idoc_contrl-docnum. idoc_status-status = '51'. "IDOC不成功 idoc_status-msgty = 'E'. "错误信息 idoc_status-msgid = 'YMSG'. idoc_status-msgno = '001'. APPEND idoc_status. ENDIF. ENDFUNCTION.
4. BD51
这个步骤完成了后, 步骤5的下拉框才可以选择FM: Z_IDOC_PO_PROCESS
5. WE42, Create Process Code
6. WE57
7. SALE, Define Logical System
8. WE20, Define Partner Profile, and Set Inbound Message
相关文章推荐
- Step by Step for configuration of sending customize IDOC/自定义IDOC发送配置
- IDoc step by step
- Step-by-step guide on File-to-IDoc using SAP PI 7.0
- IDoc step by step (转)
- IDoc step by step
- Step By Step创建你自己的游戏服务器(一)基本设计
- 书讯 -- Microsoft Windows Workflow Foundation Step by Step
- 深入浅出C#2008从入门到提高Step By Step(五)Windows应用程序常用控件类(1)-Form
- Linux驱动编程 step-by-step (二)
- 深入浅出C#2008从入门到提高Step By Step(五)Windows应用程序常用控件类(6)-ListControl
- 深入浅出C#2008从入门到提高Step By Step(六)Windows应用程序实例(1)
- openstack 开发step-by-step
- Linux驱动编程 step-by-step (八)
- 深入浅出C#2008从入门到提高Step By Step(七)数据访问(2)-DataSet
- Linux驱动编程 step-by-step (四)
- Command 模式 Step by Step
- 《Microsoft SQL Server 2008 MDX Step by Step》学习笔记十:Time进阶
- NHibernate Step by Step
- Toaster Step-by-step 一步一步带你构造MD-SAL烤面包机 第一部分:定义烤面包机
- 【转】Enable ARC in a Cocos2D Project: The Step-by-Step-How-To-Guide Woof-Woof!