2017-06-09


第一步WE31创建段(SEGMENT):ZLM_SMT01

IDOC练习:发送端配置_数据

第二步WE30创建IDOC基本类型 :ZLM_IDOC_TYPE1

IDOC练习:发送端配置_数据_02

IDOC练习:发送端配置_数据_03

IDOC练习:发送端配置_数据_04

第三步WE81创建IDOC消息类型 :ZLM_IDOC_MSG1

IDOC练习:发送端配置_接收端_05

第四步WE82关联基本类型和消息类型

IDOC练习:发送端配置_数据_06

第五步SM59创建远程连接     :19TO21

IDOC练习:发送端配置_端口号_07

第六步WE21创建端口         :ZLM_PORT01(own port name)   A000000059(generate port name)

IDOC练习:发送端配置_端口号_08

IDOC练习:发送端配置_端口号_09

两种都行,第一种自动生成端口号,第二种自己命名,此处我懂第二种,填写端口号和远程连接地址

IDOC练习:发送端配置_接收端_10

第七步BD54创建逻辑系统     :ZLM_DEV19

IDOC练习:发送端配置_数据_11

第八步WE20配置接收方信息:

这一步才是关键:

IDOC练习:发送端配置_接收端_12

IDOC练习:发送端配置_数据_13

添加outbound partners后,回车会进入如下:

IDOC练习:发送端配置_接收端_14

到此发送端配置完成,进行接收系统去配置接收端



发送端程序:


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.






IDOC练习:发送端配置_接收端_15

IDOC练习:发送端配置_数据_16