07-04-2006 6:35 AM
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.
07-04-2006 6:51 AM
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
07-04-2006 7:08 AM
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
07-04-2006 7:25 AM