IQ01出口中发送idoc源代码

本文介绍了一个ABAP程序中如何通过不同的活动类型维护IDOC控制记录并分发IDOC。根据活动类型设置不同的消息类型和IDOC类型,并将设备相关信息填充到IDOC段结构中。最后调用'MASTER_IDOC_DISTRIBUTE'函数分发IDOC。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

*----------------------------------------------------------------------*
*   INCLUDE ZXEQMU02                                                   *
*----------------------------------------------------------------------*
DATA: s_ctrl_rec  TYPE edidc,
      s_comm_idoc TYPE edidc,
      t_comm_idoc TYPE TABLE OF edidc,
      s_edidd TYPE edidd,
      t_edidd TYPE TABLE OF edidd.
* idoc segment structure
DATA: s_e1bp_head TYPE E1EQUIPMENT_CREATE,
      s_e1bp_itob TYPE E1BP_ITOB,
      s_e1bp_only TYPE E1BP_ITOB_EQ_ONLY,
      s_e1bp_install TYPE E1BP_ITOB_EQ_INSTALL.
* maintain master idoc control record
s_ctrl_rec-rcvpor = 'A000000003'.
CASE activity_type.
WHEN '1'.
  s_ctrl_rec-mestyp = 'EQUIPMENT_CREATE'.
  s_ctrl_rec-idoctp = 'EQUIPMENT_CREATE01'.
WHEN '2'.
  s_ctrl_rec-mestyp = 'EQUIPMENT_CHANGE'.
  s_ctrl_rec-idoctp = 'EQUIPMENT_CHANGE01'.
ENDCASE.
s_ctrl_rec-rcvprt = 'LS'.
s_ctrl_rec-rcvprn = 'PRDCLT300'.
s_ctrl_rec-sndprt = 'LS'.
s_ctrl_rec-sndprn = 'PRDCLT100'.

* maintain idoc segment data
*s_e1bp_head-external_number = data_equi-equnr.
s_edidd-segnam = 'E1EQUIPMENT_CREATE'.
s_edidd-sdata = s_e1bp_head.
APPEND s_edidd TO t_edidd.
s_e1bp_itob-manfacture = data_equi-herst.
s_e1bp_itob-manmodel   = data_equi-typbz.
s_e1bp_itob-inventory  = data_equi-invnr.
s_e1bp_itob-manserno   = data_equi-serge.
s_e1bp_itob-manparno   = data_equz-mapar.
s_edidd-segnam = 'E1BP_ITOB'.
s_edidd-sdata = s_e1bp_itob.
APPEND s_edidd TO t_edidd.
s_e1bp_only-material   = data_equi-matnr.
s_e1bp_only-serialno   = data_equi-sernr.
s_e1bp_only-equicatgry = data_equi-eqtyp.
s_edidd-segnam = 'E1BP_ITOB_EQ_ONLY'.
s_edidd-sdata  = s_e1bp_only.
APPEND s_edidd TO t_edidd.
s_edidd-segnam = 'E1BP_ITOB_EQ_INSTALL'.
s_edidd-sdata  = s_e1bp_install.
APPEND s_edidd TO t_edidd.
*distribute idoc
CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
  EXPORTING
    MASTER_IDOC_CONTROL                  = s_ctrl_rec
  TABLES
    COMMUNICATION_IDOC_CONTROL           = t_comm_idoc
    MASTER_IDOC_DATA                     = t_edidd
  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.

ENDIF.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值