‎2007 Jun 06 10:15 AM
Hi all,
Can anyone show me simple program for batch data conversion (from text file or excel to SAP) . I would like to get data from text file and make entry the data into SAP with ABAP Program, And please give me any suggestion about batch data conversion.
Thanks in advance..
Will reward if useful.
Nathan
‎2007 Jun 06 11:12 AM
Hello Nathan Myat ,
In Batch Data Communication we have
1.Direct Method
2.Batch Input Method.
a. Session Method.
b.Call transation Method.
-
Session Method. Flow.
-
1. Flat File ---> (Notepad or EXcel )
2. Internal table --> ( Transfer the contents from flat file to internal table using upload
function module
UPLOAD
Export
FILE name = 'Path'.
File Type = dat or bin or asc'
3. BDC_OPEN_GROUP -
> TO open the session.
parameters under it is..
GROUP --- > Session name
KEEP -
X(indicates keep in memmory) Or Blank
USER -- > user name
HOLDDATE -- > give previous date, so that allows u to process at any time.
4.loop at itab.
5.Perform sub( Define subroutine to pass single record from itab to bdctab ( it is table which refers to structure bdcdata and can hold only one record at time).
6.BDC_INSERT -- > To insert contents from internal table to session.
Export.
Tcode --> Transaction Code.
Tables
Itab.
7.Refresh bdctab.
8.clear itab
9.endloop.
10.BDC_CLOSE_GROUP
-
CALL TRANSACTION.
-
1. Flat File ---> (Notepad or EXcel )
2. Internal table --> ( Transfer the contents from flat file to internal table using upload
function module
UPLOAD
Export
FILE name = 'Path'.
File Type = dat or bin or asc'
4.loop at itab.
5.Perform sub( Define subroutine to pass single record from itab to bdctab ( it is table which refers to structure bdcdata and can hold only one record at time).
6.Call Transaction 'Tcode' using BDCTAB mode 'A./E/N' update 'S/A' messages into Msgtab.
A ---> All Screens ( Fore ground)
E ---> Error Screens
N ---> No Screens ( Back ground ).
S---> Synchronous updation.
A --> ASynchronous updation.
7.Refresh bdctab.
8.clear itab
9.endloop.
‎2007 Jun 06 10:21 AM
Hi Nathan,
To know about bdc check this wiki...
https://wiki.sdn.sap.com/wiki/display/ABAP/BDC
<u><b>SAMPLE PROGRAM</b></u>
REPORT Y730_BDC5 .
*HANDLING TABLE CONTROL IN BDC
DATA : BEGIN OF IT_DUMMY OCCURS 0,
DUMMY(100) TYPE C,
END OF IT_DUMMY.
DATA : BEGIN OF IT_XK01 OCCURS 0,
LIFNR(10) TYPE C,
BUKRS(4) TYPE C,
EKORG(4) TYPE C,
KTOKK(4) TYPE C,
NAME1(30) TYPE C,
SORTL(10) TYPE C,
LAND1(3) TYPE C,
SPRAS(2) TYPE C,
AKONT(6) TYPE C,
FDGRV(2) TYPE C,
WAERS(3) TYPE C,
END OF IT_XK01,
BEGIN OF IT_BANK OCCURS 0,
BANKS(3) TYPE C,
BANKL(10) TYPE C,
BANKN(10) TYPE C,
KOINH(30) TYPE C,
LIFNR(10) TYPE C,
END OF IT_BANK.
DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
FILENAME = 'C:\VENDOR.TXT'
FILETYPE = 'ASC'
TABLES
DATA_TAB = IT_DUMMY.
LOOP AT IT_DUMMY.
IF IT_DUMMY-DUMMY+0(2) = '11'.
IT_XK01-LIFNR = IT_DUMMY-DUMMY+2(10).
IT_XK01-BUKRS = IT_DUMMY-DUMMY+12(4).
IT_XK01-EKORG = IT_DUMMY-DUMMY+16(4).
IT_XK01-KTOKK = IT_DUMMY-DUMMY+20(4).
IT_XK01-NAME1 = IT_DUMMY-DUMMY+24(30).
IT_XK01-SORTL = IT_DUMMY-DUMMY+54(10).
IT_XK01-LAND1 = IT_DUMMY-DUMMY+64(3).
IT_XK01-SPRAS = IT_DUMMY-DUMMY+67(2).
IT_XK01-AKONT = IT_DUMMY-DUMMY+69(6).
IT_XK01-FDGRV = IT_DUMMY-DUMMY+75(2).
IT_XK01-WAERS = IT_DUMMY-DUMMY+77(3).
APPEND IT_XK01.
ELSE.
IT_BANK-BANKS = IT_DUMMY-DUMMY+2(3).
IT_BANK-BANKL = IT_DUMMY-DUMMY+5(10).
IT_BANK-BANKN = IT_DUMMY-DUMMY+15(10).
IT_BANK-KOINH = IT_DUMMY-DUMMY+25(30).
IT_BANK-LIFNR = IT_DUMMY-DUMMY+55(10).
APPEND IT_BANK.
ENDIF.
ENDLOOP.
LOOP AT IT_XK01.
REFRESH IT_BDCDATA.
perform bdc_dynpro using 'SAPMF02K' '0100'.
perform bdc_field using 'BDC_CURSOR'
'RF02K-REF_LIFNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RF02K-LIFNR'
IT_XK01-LIFNR.
perform bdc_field using 'RF02K-BUKRS'
IT_XK01-BUKRS.
perform bdc_field using 'RF02K-EKORG'
IT_XK01-EKORG.
perform bdc_field using 'RF02K-KTOKK'
IT_XK01-KTOKK.
perform bdc_dynpro using 'SAPMF02K' '0110'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-TELX1'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFA1-NAME1'
IT_XK01-NAME1.
perform bdc_field using 'LFA1-SORTL'
IT_XK01-SORTL.
perform bdc_field using 'LFA1-LAND1'
IT_XK01-LAND1.
perform bdc_field using 'LFA1-SPRAS'
IT_XK01-SPRAS.
perform bdc_dynpro using 'SAPMF02K' '0120'.
perform bdc_field using 'BDC_CURSOR'
'LFA1-KUNNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-KOINH(02)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
DATA : FNAM(20) TYPE C,
IDX TYPE C.
MOVE 1 TO IDX.
LOOP AT IT_BANK WHERE LIFNR = IT_XK01-LIFNR.
CONCATENATE 'LFBK-BANKS(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-BANKS.
CONCATENATE 'LFBK-BANKL(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-BANKL.
CONCATENATE 'LFBK-BANKN(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-BANKN.
CONCATENATE 'LFBK-KOINH(' IDX ')' INTO FNAM.
perform bdc_field using FNAM
IT_BANK-KOINH.
IDX = IDX + 1.
ENDLOOP.
perform bdc_dynpro using 'SAPMF02K' '0130'.
perform bdc_field using 'BDC_CURSOR'
'LFBK-BANKS(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPMF02K' '0210'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-FDGRV'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFB1-AKONT'
IT_XK01-AKONT.
perform bdc_field using 'LFB1-FDGRV'
IT_XK01-FDGRV.
perform bdc_dynpro using 'SAPMF02K' '0215'.
perform bdc_field using 'BDC_CURSOR'
'LFB1-ZTERM'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0220'.
perform bdc_field using 'BDC_CURSOR'
'LFB5-MAHNA'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_dynpro using 'SAPMF02K' '0310'.
perform bdc_field using 'BDC_CURSOR'
'LFM1-WAERS'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'LFM1-WAERS'
IT_XK01-WAERS.
perform bdc_dynpro using 'SAPMF02K' '0320'.
perform bdc_field using 'BDC_CURSOR'
'WYT3-PARVW(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_dynpro using 'SAPLSPO1' '0300'.
perform bdc_field using 'BDC_OKCODE'
'=YES'.
CALL TRANSACTION 'XK01' USING IT_BDCDATA
MODE 'A'
UPDATE 'S'
MESSAGES INTO IT_BDCMSGCOLL.
ENDLOOP.
FORM BDC_DYNPRO USING PROG SCR.
CLEAR IT_BDCDATA.
IT_BDCDATA-PROGRAM = PROG.
IT_BDCDATA-DYNPRO = SCR.
IT_BDCDATA-DYNBEGIN = 'X'.
APPEND IT_BDCDATA.
ENDFORM.
FORM BDC_FIELD USING FNAM FVAL.
CLEAR IT_BDCDATA.
IT_BDCDATA-FNAM = FNAM.
IT_BDCDATA-FVAL = FVAL.
APPEND IT_BDCDATA.
ENDFORM.
Regards,
Younus
<b>Reward Helpful Answers:-)</b>
‎2007 Jun 06 11:12 AM
Hello Nathan Myat ,
In Batch Data Communication we have
1.Direct Method
2.Batch Input Method.
a. Session Method.
b.Call transation Method.
-
Session Method. Flow.
-
1. Flat File ---> (Notepad or EXcel )
2. Internal table --> ( Transfer the contents from flat file to internal table using upload
function module
UPLOAD
Export
FILE name = 'Path'.
File Type = dat or bin or asc'
3. BDC_OPEN_GROUP -
> TO open the session.
parameters under it is..
GROUP --- > Session name
KEEP -
X(indicates keep in memmory) Or Blank
USER -- > user name
HOLDDATE -- > give previous date, so that allows u to process at any time.
4.loop at itab.
5.Perform sub( Define subroutine to pass single record from itab to bdctab ( it is table which refers to structure bdcdata and can hold only one record at time).
6.BDC_INSERT -- > To insert contents from internal table to session.
Export.
Tcode --> Transaction Code.
Tables
Itab.
7.Refresh bdctab.
8.clear itab
9.endloop.
10.BDC_CLOSE_GROUP
-
CALL TRANSACTION.
-
1. Flat File ---> (Notepad or EXcel )
2. Internal table --> ( Transfer the contents from flat file to internal table using upload
function module
UPLOAD
Export
FILE name = 'Path'.
File Type = dat or bin or asc'
4.loop at itab.
5.Perform sub( Define subroutine to pass single record from itab to bdctab ( it is table which refers to structure bdcdata and can hold only one record at time).
6.Call Transaction 'Tcode' using BDCTAB mode 'A./E/N' update 'S/A' messages into Msgtab.
A ---> All Screens ( Fore ground)
E ---> Error Screens
N ---> No Screens ( Back ground ).
S---> Synchronous updation.
A --> ASynchronous updation.
7.Refresh bdctab.
8.clear itab
9.endloop.