Program To Generate IDoc
*&---------------------------------------------------------------------* *& Report ZZ_Program_To_Create_Idoc *&---------------------------------------------------------------------* report zz_program_to_create_idoc . tables: ekko,ekpo. selection-screen skip 3. selection-screen begin of block b1 with frame title titl. selection-screen skip. select-options s_ebeln for ekko-ebeln. selection-screen skip. selection-screen end of block b1. data: header_segment_name like edidd-segnam value 'Z1EKKO', item_segment_name like edidd-segnam value 'Z1EKPO', idoc_name like edidc-idoctp value 'Z19838IDOC1'. data: header_segment_data like z1ekko, item_segment_data like z1ekpo. data: control_record like edidc. data: messagetyp like edmsg-msgtyp value 'ZZ9838MESG1'. data: i_communication like edidc occurs 0 with header line, i_data like edidd occurs 0 with header line. data: begin of i_ekko occurs 0, ebeln like ekko-ebeln, aedat like ekko-aedat, bukrs like ekko-bukrs, bsart like ekko-bsart, lifnr like ekko-lifnr, end of i_ekko. data: begin of i_ekpo occurs 0, ebelp like ekpo-ebelp, matnr like ekpo-matnr, menge like ekpo-menge, meins like ekpo-meins, netpr like ekpo-netpr, end of i_ekpo. start-of-selection. select ebeln aedat bukrs bsart lifnr from ekko into table i_ekko where ebeln in s_ebeln. select ebelp matnr menge meins netpr from ekpo into table i_ekpo where ebeln in s_ebeln. control_record-mestyp = messagetyp. control_record-rcvprt = 'LS'. control_record-idoctp = idoc_name. control_record-rcvprn = '0MART800'. loop at i_ekko. header_segment_data-ebeln = i_ekko-ebeln. header_segment_data-aedat = i_ekko-aedat. header_segment_data-bukrs = i_ekko-bukrs. header_segment_data-bsart = i_ekko-bsart. header_segment_data-lifnr = i_ekko-lifnr. i_data-segnam = header_segment_name. i_data-sdata = header_segment_data. append i_data. select ebelp matnr menge meins netpr from ekpo into table i_ekpo where ebeln = i_ekko-ebeln. loop at i_ekpo. item_segment_data-ebelp = i_ekpo-ebelp. item_segment_data-matnr = i_ekpo-matnr. item_segment_data-menge = i_ekpo-menge. item_segment_data-meins = i_ekpo-meins. item_segment_data-netpr = i_ekpo-netpr. i_data-segnam = item_segment_name. i_data-sdata = item_segment_data. append i_data. endloop. clear i_ekpo. refresh i_ekpo. endloop. call function 'MASTER_IDOC_DISTRIBUTE' exporting master_idoc_control = control_record * OBJ_TYPE = '' * CHNUM = '' tables communication_idoc_control = i_communication master_idoc_data = i_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 id sy-msgid type sy-msgty number sy-msgno with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. else. loop at i_communication. write: 'IDOC GENERATED', i_communication-docnum. endloop. commit work. endif. initialization. titl = 'ENTER THE PURCHASE ORDER NUMBER'.Tips by : Ravi Santani ( ravvysan@yahoo.com )
Get help for your ABAP problems
ABAP Functions Tips
ABAP Tips
Best regards,
All the site contents are Copyright © www.erpgreat.com
and the content authors. All rights reserved.
|