Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- REPORT zdemo_idoc.
- TABLES: ztbl_idoc1.
- DATA : s_ctrl_rec LIKE edidc, "Idoc Control Record
- s_zsegment LIKE zdm_sgmt. "CUSTOMER Header Data
- DATA : t_tbl_idoc1 LIKE ztbl_idoc1 OCCURS 0 WITH HEADER LINE.
- DATA : t_edidd LIKE edidd OCCURS 0 WITH HEADER LINE. "Data Records
- DATA : lt_comm_idoc LIKE edidc OCCURS 0 WITH HEADER LINE. "Generated Communication IDOc
- CONSTANTS: c_idoctp LIKE edidc-idoctp VALUE 'ZBASIC_IT'. "
- CONSTANTS :c_segnam LIKE edidd-segnam VALUE 'ZDM_SGMT'. "
- SELECT-OPTIONS: s_pernr FOR ztbl_idoc1-pernr OBLIGATORY.
- PARAMETERS: c_mestyp LIKE edidc-mestyp DEFAULT 'ZDEMO_MESSTYPE', "Message type
- c_rcvprt LIKE edidc-rcvprt DEFAULT 'LS', "System type
- c_logsys LIKE edidc-rcvprn DEFAULT 'ERPCLNT810'. "Reciever
- START-OF-SELECTION.
- PERFORM generate_data_records.
- PERFORM generate_control_record.
- PERFORM send_idoc.
- FORM generate_data_records .
- SELECT * FROM ztbl_idoc1
- INTO TABLE t_tbl_idoc1
- WHERE pernr IN s_pernr.
- IF sy-subrc <> 0.
- ENDIF.
- PERFORM arrange_data_records.
- ENDFORM.
- FORM generate_control_record .
- s_ctrl_rec-mestyp = c_mestyp. "Message type
- s_ctrl_rec-idoctp = c_idoctp. "Basic IDOC type
- s_ctrl_rec-rcvprt = c_rcvprt. "Partner type of receiver
- s_ctrl_rec-rcvprn = c_logsys. "Partner number of receiver
- ENDFORM.
- FORM send_idoc .
- CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'
- EXPORTING
- master_idoc_control = s_ctrl_rec
- * OBJ_TYPE = ''
- * CHNUM = ''
- TABLES
- communication_idoc_control = lt_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.
- MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
- WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
- ELSE.
- COMMIT WORK.
- LOOP AT lt_comm_idoc.
- WRITE:/ 'IDoc Number - ', lt_comm_idoc-docnum.
- ENDLOOP.
- ENDIF.
- ENDFORM.
- FORM arrange_data_records .
- SORT t_tbl_idoc1 BY pernr.
- LOOP AT t_tbl_idoc1.
- s_zsegment-pernr = t_tbl_idoc1-pernr.
- s_zsegment-begda = t_tbl_idoc1-begda.
- s_zsegment-endda = t_tbl_idoc1-endda.
- s_zsegment-zfield1 = t_tbl_idoc1-zfield1.
- s_zsegment-zfield2 = t_tbl_idoc1-zfield2.
- s_zsegment-zfield3 = t_tbl_idoc1-zfield3.
- t_edidd-segnam = c_segnam.
- t_edidd-sdata = s_zsegment.
- APPEND t_edidd.
- CLEAR t_edidd.
- ENDLOOP.
- ENDFORM.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement