向sap发送message_IDOC练习:发送端配置

淩亂°似流年 2023-01-03 01:46 244阅读 0赞

e5c9675417440741e380faa565c9b8fc.gif 第一步WE31创建段(SEGMENT):ZLM_SMT01 d5e488e0805b607c1e00cad7a7866e81.png 第二步WE30创建IDOC基本类型 :ZLM_IDOC_TYPE1 448a8c269c6403ad0bf38e1ac3635e06.png ec482cc11057e3b32c48b65d0e968569.png bb9332ab09bc4f29eea1f2bcdeaf652c.png 第三步WE81创建IDOC消息类型 :ZLM_IDOC_MSG1 ad88eed241d2cfab5ab290b6d0f389d2.png 第四步WE82关联基本类型和消息类型 e677c7d579d3f77ed4aab23a99dade0a.png 第五步SM59创建远程连接 :19TO21 e4c1eae36c18f4a3a19930b8df9c9024.png 第六步WE21创建端口 :ZLM_PORT01(own port name) A000000059(generate port name) 412513ba9c7b7c3efe5b4730453a3a43.png fc0b00eee722372c068188cb15c5fc52.png 两种都行,第一种自动生成端口号,第二种自己命明,此处我懂第二种,填写端口号和远程连接地址 0e9eba612c3ca8a4832b24caad16f2a9.png 第七步BD54创建逻辑系统 :ZLM_DEV19 f671d4d951d86f2c24167803b6bfb687.png 第八步WE20配置接收方信息: 这一步才是关键: bd48cea9007c76a831859f23035a13e7.png 656515757b64e181c88d1c8e7b402175.png 添加outbound partners后,回车会进入如下: d3c7dce7f4f1d3817908aac7e396dd2c.png 到此发送端配置完成,进行接收系统去配置接收端 发送端程序: REPORT ZLM_IDOC_01. *&——————————————————————————————————-* *&IDOC控制变量和数据变量定义 *&——————————————————————————————————-* DATA: g_idoc_ctl LIKE edidc, gi_ret_ctl LIKE edidc OCCURS 0 WITH HEADER LINE, gi_idoc_data LIKE edidd OCCURS 0 WITH HEADER LINE, control_record_in TYPE edidc. DATA: idoc_status TYPE string. DATA: l_data TYPE ZLM_SMT01. *&——————————————————————————————————-* *&控制数据 *&——————————————————————————————————-* g_idoc_ctl-idoctp = ‘ZLM_IDOC_TYPE1’. “IDOC TYPE g_idoc_ctl-mestyp = ‘ZLM_IDOC_MSG1’. “MESSAGE TYPE g_idoc_ctl-outmod = ‘2’. “传输模式 “接收端配置 g_idoc_ctl-rcvprn = ‘ZLM_DEV19’. “接收方的合作伙伴编号 g_idoc_ctl-rcvprt = ‘LS’. “接收方伙伴类型 g_idoc_ctl-rcvpor = ‘ZLM_PORT01’. “接收者端口(SAP 系统,EDI 子系统) “发送端配置 g_idoc_ctl-sndprt = ‘LS’. “发送方伙伴类型 g_idoc_ctl-sndprn = ‘ZLM_DEV21’. “发送方合作伙伴 *维护数据 gi_idoc_data-segnam = ‘ZLM_SMT01’. gi_idoc_data-dtint2 = 0. l_data-CARRID = ‘11’. l_data-CONNID = ‘12’. l_data-COUNTRYFR = ‘13’. MOVE l_data TO gi_idoc_data-sdata. APPEND gi_idoc_data. *&——————————————————————————————————-* *&分发程序 *&——————————————————————————————————-* CALL FUNCTION ‘MASTER_IDOC_DISTRIBUTE’ EXPORTING master_idoc_control = g_idoc_ctl TABLES communication_idoc_control = gi_ret_ctl master_idoc_data = gi_idoc_data 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 ‘IDOC distribute error’ TYPE ‘I’. ELSE. READ TABLE gi_ret_ctl INDEX 1. IF sy-subrc = 0. CONCATENATE ‘STATUS’ gi_ret_ctl-status INTO idoc_status. “发送成功状态是30 MESSAGE idoc_status TYPE ‘I’. COMMIT WORK. CALL FUNCTION ‘DEQUEUE_ALL’. ENDIF. ENDIF.

3e1ebf4b82b2bf83d2e64c0a9c8cfeff.gif

ea8421418d8827aec1c6ed1412633521.png

你“在看”我吗?

59ad41a89060914992fe38ba57a64168.png

发表评论

表情:
评论列表 (有 0 条评论,244人围观)

还没有评论,来说两句吧...

相关阅读