IDOC练习(一、发送端配置)

第一步WE31创建段(SEGMENT):ZLM_SMT01
IDOC练习(一、发送端配置)

第二步WE30创建IDOC基本类型 :ZLM_IDOC_TYPE1
IDOC练习(一、发送端配置)

IDOC练习(一、发送端配置)

IDOC练习(一、发送端配置)

第三步WE81创建IDOC消息类型 :ZLM_IDOC_MSG1
IDOC练习(一、发送端配置)

第四步WE82关联基本类型和消息类型
IDOC练习(一、发送端配置)

第五步SM59创建远程连接     :19TO21
IDOC练习(一、发送端配置)

第六步WE21创建端口         :ZLM_PORT01(own port name)   A000000059(generate port name)
IDOC练习(一、发送端配置)

IDOC练习(一、发送端配置)
两种都行,第一种自动生成端口号,第二种自己命明,此处我懂第二种,填写端口号和远程连接地址
IDOC练习(一、发送端配置)


第七步BD54创建逻辑系统     :ZLM_DEV19  
IDOC练习(一、发送端配置)

第八步WE20配置接收方信息:
这一步才是关键:
IDOC练习(一、发送端配置)

IDOC练习(一、发送端配置)

添加outbound partners后,回车会进入如下:
IDOC练习(一、发送端配置)

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


发送端程序:

REPORT  ZLM_IDOC_01.

*&---------------------------------------------------------------------*
*&IDOC控制变量和数据变量定义
*&---------------------------------------------------------------------*
DATAg_idoc_ctl            LIKE edidc,
      gi_ret_ctl            LIKE edidc OCCURS WITH HEADER LINE,
      gi_idoc_data          LIKE edidd OCCURS 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.
posted @ 2014-01-22 09:20  胡来  阅读(493)  评论(0编辑  收藏  举报