*----------------------------------------------------------------------*
* 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.