Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

How to populate data to IDOC from Zprogram

former_member190536
Participant
0 Kudos

Hi all,

Can a zprogram populate the data to IDOC With in R/3

only. If it can do this how to do this?

Suppose for example I have data in internal table in the zprogram I want to transfer that itab data to MATMAS01. Can this possible?

regards,

Khaja.

3 REPLIES 3

Former Member
0 Kudos

Hi,

See the below code I have used in my report program.

  • Data Record

TYPES: ty_data LIKE edidd.

DATA : lit_data type table of ty_data,

wa_data LIKE LINE OF lit_data,

DATA : ls_E1MARAM LIKE E1MARAM.

ls_E1MARAM-MSGFN = lv_msgfn.

ls_E1MARAM-MATNR = lv_matnr.

ls_E1MARAM-ERSDA = lv_ersda.

ls_E1MARAM-ERNAM = lv_ernam.

ls_E1MARAM-LAEDA = lv_laeda.

ls_E1MARAM-AENAM = lV-aenam.

.

.

  • Segment Name

wa_data-segnam = 'E1MARAM'.

wa_data-sdata = ls_E1MARAM.

APPEND wa_data TO lit_data.

CLEAR wa_data.

Repeat this for all segments.

And for multiple occurence of segments do it in loop.

For control data use <b>edidc</b> and assign the values to the fields in it.

Rgds,

Prakash

<b>Dont forget to reward the points if helpful</b>

Message was edited by: Prakashsingh Mehra

sridharreddy_kondam
Active Contributor
0 Kudos

Hi Khaja,

This Report populates idoc HRMD_A05, use respective idoc for u r scenario

*&----


REPORT Zxyz.

DATA:idoc_cntrl_rec_40 type EDI_DC40 occurs 0,

idoc_data_rec_40 type EDI_DD40 occurs 0,

idoc_eiplogi type E1PLOGI,

idoc_e1pityp type E1PITYP,

idoc_eip0006 type E1P0006,

idoc_cntrl_rec_40_row type EDI_DC40,

idoc_data_rec_40_row type EDI_DD40,

idoc_master_contrl type EDIDC,

idoc_master_contrl_tab type EDIDC occurs 0,

idoc_data_rec_comm_row type EDIDD,

idoc_data_rec_comm type EDIDD occurs 0.

idoc_cntrl_rec_40_row-TABNAM = 'EDI_DC40'.

idoc_cntrl_rec_40_row-MANDT = '800' .

*idoc_cntrl_rec_40_row-DOCNUM =

idoc_cntrl_rec_40_row-DOCREL = '620'.

*idoc_cntrl_rec_40_row-STATUS = ''

idoc_cntrl_rec_40_row-DIRECT = '2'.

*idoc_cntrl_rec_40_row-OUTMOD = ''

*idoc_cntrl_rec_40_row-EXPRSS =

*idoc_cntrl_rec_40_row-TEST =

idoc_cntrl_rec_40_row-IDOCTYP = 'HRMD_A06' .

*idoc_cntrl_rec_40_row-CIMTYP =

idoc_cntrl_rec_40_row-MESTYP = 'HRMD_A'.

idoc_cntrl_rec_40_row-SNDPOR = 'SIDPORT'.

idoc_cntrl_rec_40_row-SNDPRT = 'LS'.

*idoc_cntrl_rec_40_row-SNDPFC =

idoc_cntrl_rec_40_row-SNDPRN = 'SIDLOG'.

idoc_cntrl_rec_40_row-CREDAT = sy-datum.

idoc_cntrl_rec_40_row-CRETIM = sy-uzeit .

append idoc_cntrl_rec_40_row to idoc_cntrl_rec_40.

clear idoc_cntrl_rec_40_row.

idoc_eiplogi-PLVAR = '01'.

idoc_eiplogi-OTYPE = 'P'.

idoc_eiplogi-OBJID = '00000003'.

idoc_eiplogi-OPERA = 'U'.

idoc_data_rec_40_row-SEGNAM = 'E1PLOGI'.

idoc_data_rec_40_row-MANDT = '800'.

idoc_data_rec_40_row-SEGNUM = '000001'.

idoc_data_rec_40_row-SDATA = idoc_eiplogi .

append idoc_data_rec_40_row to idoc_data_rec_40 .

clear idoc_data_rec_40_row.

****************data rec for master idoc***********************

idoc_data_rec_comm_row-SEGNAM = 'E1PLOGI'.

idoc_data_rec_comm_row-MANDT = '800'.

idoc_data_rec_comm_row-SEGNUM = '000001'.

idoc_data_rec_comm_row-SDATA = idoc_eiplogi.

append idoc_data_rec_comm_row to idoc_data_rec_comm.

clear idoc_data_rec_comm_row.

*****************************************

idoc_e1pityp-PLVAR = '01'.

idoc_e1pityp-OTYPE = 'P'.

idoc_e1pityp-OBJID = '00000003'.

idoc_e1pityp-INFTY = '0006'.

idoc_e1pityp-SUBTY = '1'.

idoc_e1pityp-BEGDA = '20051218'.

idoc_e1pityp-ENDDA = '99991231'.

idoc_data_rec_40_row-SEGNAM = 'E1PITYP'.

idoc_data_rec_40_row-MANDT = '800'.

idoc_data_rec_40_row-SEGNUM = '000002'.

idoc_data_rec_40_row-SDATA = idoc_e1pityp .

append idoc_data_rec_40_row to idoc_data_rec_40 .

clear idoc_data_rec_40_row.

****************data rec for master idoc***********************

idoc_data_rec_comm_row-SEGNAM = 'E1PITYP'.

idoc_data_rec_comm_row-MANDT = '800'.

idoc_data_rec_comm_row-SEGNUM = '000002'.

idoc_data_rec_comm_row-SDATA = idoc_e1pityp.

append idoc_data_rec_comm_row to idoc_data_rec_comm.

clear idoc_data_rec_comm_row.

*****************************************************

idoc_eip0006-PERNR = '00000003'.

idoc_eip0006-INFTY = '0006'.

idoc_eip0006-SUBTY = '1'.

idoc_eip0006-ENDDA = '99991231'.

idoc_eip0006-BEGDA = '20051218'.

idoc_eip0006-SEQNR = '000'.

idoc_eip0006-AEDTM = sy-datum.

idoc_eip0006-UNAME = sy-uname.

idoc_eip0006-ANSSA = '1'.

idoc_eip0006-STRAS = '125699'.

idoc_eip0006-ORT02 = 'Nooida'.

idoc_eip0006-PSTLZ = '124567'.

idoc_eip0006-LAND1 = 'GB'.

idoc_eip0006-ENTKM = '0'.

idoc_eip0006-LOCAT = 'US'.

idoc_eip0006-STATE = 'BO'.

idoc_eip0006-HSNMR = '000000'.

idoc_eip0006-ENTK2 = '0'.

idoc_eip0006-RAILW = '0'.

idoc_eip0006-STRAS_40 = '125699'.

idoc_eip0006-ORT02_40 = 'GHZB'.

idoc_eip0006-LOCAT_40 = 'US'.

idoc_data_rec_40_row-SEGNAM = 'E1P0006'.

idoc_data_rec_40_row-MANDT = '800'.

idoc_data_rec_40_row-SEGNUM = '000003'.

idoc_data_rec_40_row-SDATA = idoc_eip0006 .

append idoc_data_rec_40_row to idoc_data_rec_40 .

clear idoc_data_rec_40_row.

****************data rec for master idoc***********************

idoc_data_rec_comm_row-SEGNAM = 'E1P0006'.

idoc_data_rec_comm_row-MANDT = '800'.

idoc_data_rec_comm_row-SEGNUM = '000003'.

idoc_data_rec_comm_row-SDATA = idoc_eip0006.

append idoc_data_rec_comm_row to idoc_data_rec_comm.

clear idoc_data_rec_comm_row.

*****************************************

CALL FUNCTION 'IDOC_INBOUND_ASYNCHRONOUS' DESTINATION 'SIDLOG'

TABLES

IDOC_CONTROL_REC_40 = idoc_cntrl_rec_40

IDOC_DATA_REC_40 = idoc_data_rec_40

.

if sy-subrc = 0 .

****Control record for master Idoc******************************

idoc_master_contrl-DOCTYP = 'HRMD_A05'.

idoc_master_contrl-MESTYP = 'HRMD_A'.

idoc_master_contrl-SNDPOR = 'SAPIDS'.

idoc_master_contrl-SNDPRT = 'LS'.

idoc_master_contrl-SNDPRN = 'IDSCLNT800'.

idoc_master_contrl-RCVPOR = 'ERPHTTP'.

idoc_master_contrl-RCVPRT = 'LS'.

idoc_master_contrl-RCVPRN = 'ERP2004'.

idoc_cntrl_rec_40_row-DIRECT = '1'.

append idoc_master_contrl to idoc_master_contrl_tab.

****Data record for master Idoc******************************

**********************Distribute Master IDOC********************

CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE'

EXPORTING

MASTER_IDOC_CONTROL = idoc_master_contrl

  • OBJ_TYPE = ''

  • CHNUM = ''

TABLES

COMMUNICATION_IDOC_CONTROL = idoc_master_contrl_tab

MASTER_IDOC_DATA = idoc_data_rec_comm

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

ENDIF.

**********************************************************write: 'DOC POsted'.

endif.

Regards,

Sridhar

laxmanakumar_appana
Active Contributor
0 Kudos

Hi ,

Check this post :

Laxman