Application Development and Automation 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: 
Read only

Batch data conversion (from text file to SAP)

Former Member
0 Likes
776

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
628

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.

2 REPLIES 2
Read only

Former Member
0 Likes
628

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>

Read only

Former Member
0 Likes
629

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.