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

program for table control in bdc

Former Member
0 Likes
740

Hi All,

Can Anybody provide me program on table control that used in BDC.

Please provide me program also.

thanks

rahul.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
673

Hi,

Check this sample code:

report zcustomer_change_bict

no standard page heading line-size 255.

include bdcrecx1.

data: begin of it_record occurs 0,

kunnr like rf02d-kunnr,

d0360 like rf02d-d0360,

anred(30) type c,

name1(35) type c,

namev(35) type c,

telf1(35) type c,

abtnr(10) type c,

end of it_record.

data: begin of it_knvk1 occurs 0,

anred like knvk-anred,

end of it_knvk1.

data: begin of it_knvk2 occurs 0,

name1 like knvk-name1,

end of it_knvk2.

data: begin of it_knvk3 occurs 0,

namev like knvk-namev,

end of it_knvk3.

data: begin of it_knvk4 occurs 0,

telf1 like knvk-telf1,

end of it_knvk4.

data: begin of it_knvk5 occurs 0,

abtnr like knvk-abtnr,

end of it_knvk5.

data : fld(20) type c,

cnt(2) type n.

start-of-selection.

call function 'GUI_UPLOAD'

exporting

filename = 'C:\CUSTCH.TXT'

filetype = 'ASC'

has_field_separator = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • VIRUS_SCAN_PROFILE = VIRUS_SCAN_PROFILE

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH = FILELENGTH

  • HEADER = HEADER

tables

data_tab = it_record

exceptions

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

others = 17

.

if sy-subrc <> 0.

message id sy-msgid type sy-msgty number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.

perform open_group.

loop at it_record.

refresh bdcdata.

refresh: it_knvk1,it_knvk2,it_knvk3,it_knvk4,it_knvk5.

split it_record-anred at ',' into table it_knvk1.

split it_record-name1 at ',' into table it_knvk2.

split it_record-namev at ',' into table it_knvk3.

split it_record-telf1 at ',' into table it_knvk4.

split it_record-abtnr at ',' into table it_knvk5.

screen 101

perform bdc_dynpro using 'SAPMF02D' '0101'.

perform bdc_field using 'BDC_CURSOR'

'RF02D-D0360'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RF02D-KUNNR'

it_record-kunnr.

perform bdc_field using 'RF02D-D0360'

it_record-d0360.

screen 360

perform bdc_dynpro using 'SAPMF02D' '0360'.

perform bdc_field using 'BDC_CURSOR'

'KNVK-ABTNR(01)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

*perform bdc_field using 'KNVK-ANRED(01)'

  • record-ANRED_01_003.

*perform bdc_field using 'KNVK-NAMEV(01)'

  • record-NAMEV_01_004.

*perform bdc_field using 'KNVK-NAME1(01)'

  • record-NAME1_01_005.

*perform bdc_field using 'KNVK-TELF1(01)'

  • record-TELF1_01_006.

*perform bdc_field using 'KNVK-ABTNR(01)'

  • record-ABTNR_01_007.

move 1 to cnt.

loop at it_knvk1 .

concatenate 'knvk-anred( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk1-anred.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk2 .

concatenate 'knvk-name1( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk2-name1.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk3 .

concatenate 'knvk-namev( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk3-namev.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk4 .

concatenate 'knvk-telf1( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk4-telf1.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk5 .

concatenate 'knvk-abtnr( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk5-abtnr.

cnt = cnt + 1.

endloop.

screen 360

perform bdc_dynpro using 'SAPMF02D' '0360'.

perform bdc_field using 'BDC_CURSOR'

'KNVK-NAMEV(01)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_transaction using 'XD02'.

endloop.

perform close_group.

5 REPLIES 5
Read only

gopi_narendra
Active Contributor
0 Likes
673
Read only

Former Member
0 Likes
673

Hi,

Check this sample code:

report zcustomer_change_bict

no standard page heading line-size 255.

include bdcrecx1.

data: begin of it_record occurs 0,

kunnr like rf02d-kunnr,

d0360 like rf02d-d0360,

anred(30) type c,

name1(35) type c,

namev(35) type c,

telf1(35) type c,

abtnr(10) type c,

end of it_record.

data: begin of it_knvk1 occurs 0,

anred like knvk-anred,

end of it_knvk1.

data: begin of it_knvk2 occurs 0,

name1 like knvk-name1,

end of it_knvk2.

data: begin of it_knvk3 occurs 0,

namev like knvk-namev,

end of it_knvk3.

data: begin of it_knvk4 occurs 0,

telf1 like knvk-telf1,

end of it_knvk4.

data: begin of it_knvk5 occurs 0,

abtnr like knvk-abtnr,

end of it_knvk5.

data : fld(20) type c,

cnt(2) type n.

start-of-selection.

call function 'GUI_UPLOAD'

exporting

filename = 'C:\CUSTCH.TXT'

filetype = 'ASC'

has_field_separator = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • VIRUS_SCAN_PROFILE = VIRUS_SCAN_PROFILE

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH = FILELENGTH

  • HEADER = HEADER

tables

data_tab = it_record

exceptions

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

others = 17

.

if sy-subrc <> 0.

message id sy-msgid type sy-msgty number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.

perform open_group.

loop at it_record.

refresh bdcdata.

refresh: it_knvk1,it_knvk2,it_knvk3,it_knvk4,it_knvk5.

split it_record-anred at ',' into table it_knvk1.

split it_record-name1 at ',' into table it_knvk2.

split it_record-namev at ',' into table it_knvk3.

split it_record-telf1 at ',' into table it_knvk4.

split it_record-abtnr at ',' into table it_knvk5.

screen 101

perform bdc_dynpro using 'SAPMF02D' '0101'.

perform bdc_field using 'BDC_CURSOR'

'RF02D-D0360'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RF02D-KUNNR'

it_record-kunnr.

perform bdc_field using 'RF02D-D0360'

it_record-d0360.

screen 360

perform bdc_dynpro using 'SAPMF02D' '0360'.

perform bdc_field using 'BDC_CURSOR'

'KNVK-ABTNR(01)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

*perform bdc_field using 'KNVK-ANRED(01)'

  • record-ANRED_01_003.

*perform bdc_field using 'KNVK-NAMEV(01)'

  • record-NAMEV_01_004.

*perform bdc_field using 'KNVK-NAME1(01)'

  • record-NAME1_01_005.

*perform bdc_field using 'KNVK-TELF1(01)'

  • record-TELF1_01_006.

*perform bdc_field using 'KNVK-ABTNR(01)'

  • record-ABTNR_01_007.

move 1 to cnt.

loop at it_knvk1 .

concatenate 'knvk-anred( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk1-anred.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk2 .

concatenate 'knvk-name1( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk2-name1.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk3 .

concatenate 'knvk-namev( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk3-namev.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk4 .

concatenate 'knvk-telf1( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk4-telf1.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk5 .

concatenate 'knvk-abtnr( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk5-abtnr.

cnt = cnt + 1.

endloop.

screen 360

perform bdc_dynpro using 'SAPMF02D' '0360'.

perform bdc_field using 'BDC_CURSOR'

'KNVK-NAMEV(01)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_transaction using 'XD02'.

endloop.

perform close_group.

Read only

Former Member
0 Likes
673

<b>A sample code of handling table control in BDC for XK01 Transcation code</b>.

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.

Reward points if it is usefull....

gIRISH

Read only

Former Member
0 Likes
673

Hi,

Table controls are used to Update multiple Item records for a Single record. Both in case of Pur order and Sales order we use the table controls.

For example one entry of EKKO table if there are 20 entries(items) in EKPO table then they have to be updated using the Table control.

This is example to upload the Bank details of the Vendor which has the TC.

REPORT ZPadmam

NO STANDARD PAGE HEADING LINE-SIZE 255.

DATA : BEGIN OF itab OCCURS 0,

i1 TYPE i,

lifnr LIKE rf02k-lifnr,

bukrs LIKE rf02k-bukrs,

ekorg LIKE rf02k-ekorg,

ktokk LIKE rf02k-ktokk,

anred LIKE lfa1-anred,

name1 LIKE lfa1-name1,

sortl LIKE lfa1-sortl,

land1 LIKE lfa1-land1,

akont LIKE lfb1-akont,

fdgrv LIKE lfb1-fdgrv,

waers LIKE lfm1-waers,

END OF itab.

DATA : BEGIN OF jtab OCCURS 0,

j1 TYPE i,

banks LIKE lfbk-banks,

bankl LIKE lfbk-bankl,

bankn LIKE lfbk-bankn,

END OF jtab.

DATA : cnt(4) TYPE n.

DATA : fdt(20) TYPE c.

DATA : c TYPE i.

INCLUDE bdcrecx1.

START-OF-SELECTION.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

filename = 'C:\first1.txt'

filetype = 'DAT'

TABLES

data_tab = itab.

CALL FUNCTION 'WS_UPLOAD'

EXPORTING

filename = 'C:\second.txt'

filetype = 'DAT'

TABLES

data_tab = jtab.

LOOP AT itab.

PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RF02K-KTOKK'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'RF02K-LIFNR'

itab-lifnr.

PERFORM bdc_field USING 'RF02K-BUKRS'

itab-bukrs.

PERFORM bdc_field USING 'RF02K-EKORG'

itab-ekorg.

PERFORM bdc_field USING 'RF02K-KTOKK'

itab-ktokk.

PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFA1-LAND1'.

PERFORM bdc_field USING 'BDC_OKCODE'

'/00'.

PERFORM bdc_field USING 'LFA1-ANRED'

itab-anred.

PERFORM bdc_field USING 'LFA1-NAME1'

itab-name1.

PERFORM bdc_field USING 'LFA1-SORTL'

itab-sortl.

PERFORM bdc_field USING 'LFA1-LAND1'

itab-land1.

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-BANKN(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

cnt = 0.

LOOP AT jtab WHERE j1 = itab-i1.

cnt = cnt + 1.

CONCATENATE 'LFBK-BANKS(' cnt ')' INTO fdt.

PERFORM bdc_field USING fdt jtab-banks.

CONCATENATE 'LFBK-BANKL(' cnt ')' INTO fdt.

PERFORM bdc_field USING fdt jtab-bankl.

CONCATENATE 'LFBK-BANKN(' cnt ')' INTO fdt.

PERFORM bdc_field USING fdt jtab-bankn.

IF cnt = 5.

cnt = 0.

PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFBK-BANKS(01)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=P+'.

PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.

PERFORM bdc_field USING 'BDC_CURSOR'

'LFBK-BANKN(02)'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

ENDIF.

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'

itab-akont.

PERFORM bdc_field USING 'LFB1-FDGRV'

itab-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'

itab-waers.

PERFORM bdc_dynpro USING 'SAPMF02K' '0320'.

PERFORM bdc_field USING 'BDC_CURSOR'

'RF02K-LIFNR'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=ENTR'.

PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.

PERFORM bdc_field USING 'BDC_OKCODE'

'=YES'.

PERFORM bdc_transaction USING 'XK01'.

ENDLOOP.

PERFORM close_group.

Table control in BDC

http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm

<b>

Reward points if useful</b>

Regards

Ashu

Read only

Former Member
0 Likes
674

Hi,

Check this sample code:

report zcustomer_change_bict

no standard page heading line-size 255.

include bdcrecx1.

data: begin of it_record occurs 0,

kunnr like rf02d-kunnr,

d0360 like rf02d-d0360,

anred(30) type c,

name1(35) type c,

namev(35) type c,

telf1(35) type c,

abtnr(10) type c,

end of it_record.

data: begin of it_knvk1 occurs 0,

anred like knvk-anred,

end of it_knvk1.

data: begin of it_knvk2 occurs 0,

name1 like knvk-name1,

end of it_knvk2.

data: begin of it_knvk3 occurs 0,

namev like knvk-namev,

end of it_knvk3.

data: begin of it_knvk4 occurs 0,

telf1 like knvk-telf1,

end of it_knvk4.

data: begin of it_knvk5 occurs 0,

abtnr like knvk-abtnr,

end of it_knvk5.

data : fld(20) type c,

cnt(2) type n.

start-of-selection.

call function 'GUI_UPLOAD'

exporting

filename = 'C:\CUSTCH.TXT'

filetype = 'ASC'

has_field_separator = 'X'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • VIRUS_SCAN_PROFILE = VIRUS_SCAN_PROFILE

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH = FILELENGTH

  • HEADER = HEADER

tables

data_tab = it_record

exceptions

file_open_error = 1

file_read_error = 2

no_batch = 3

gui_refuse_filetransfer = 4

invalid_type = 5

no_authority = 6

unknown_error = 7

bad_data_format = 8

header_not_allowed = 9

separator_not_allowed = 10

header_too_long = 11

unknown_dp_error = 12

access_denied = 13

dp_out_of_memory = 14

disk_full = 15

dp_timeout = 16

others = 17

.

if sy-subrc <> 0.

message id sy-msgid type sy-msgty number sy-msgno

with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.

perform open_group.

loop at it_record.

refresh bdcdata.

refresh: it_knvk1,it_knvk2,it_knvk3,it_knvk4,it_knvk5.

split it_record-anred at ',' into table it_knvk1.

split it_record-name1 at ',' into table it_knvk2.

split it_record-namev at ',' into table it_knvk3.

split it_record-telf1 at ',' into table it_knvk4.

split it_record-abtnr at ',' into table it_knvk5.

screen 101

perform bdc_dynpro using 'SAPMF02D' '0101'.

perform bdc_field using 'BDC_CURSOR'

'RF02D-D0360'.

perform bdc_field using 'BDC_OKCODE'

'/00'.

perform bdc_field using 'RF02D-KUNNR'

it_record-kunnr.

perform bdc_field using 'RF02D-D0360'

it_record-d0360.

screen 360

perform bdc_dynpro using 'SAPMF02D' '0360'.

perform bdc_field using 'BDC_CURSOR'

'KNVK-ABTNR(01)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

*perform bdc_field using 'KNVK-ANRED(01)'

  • record-ANRED_01_003.

*perform bdc_field using 'KNVK-NAMEV(01)'

  • record-NAMEV_01_004.

*perform bdc_field using 'KNVK-NAME1(01)'

  • record-NAME1_01_005.

*perform bdc_field using 'KNVK-TELF1(01)'

  • record-TELF1_01_006.

*perform bdc_field using 'KNVK-ABTNR(01)'

  • record-ABTNR_01_007.

move 1 to cnt.

loop at it_knvk1 .

concatenate 'knvk-anred( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk1-anred.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk2 .

concatenate 'knvk-name1( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk2-name1.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk3 .

concatenate 'knvk-namev( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk3-namev.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk4 .

concatenate 'knvk-telf1( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk4-telf1.

cnt = cnt + 1.

endloop.

move 1 to cnt.

loop at it_knvk5 .

concatenate 'knvk-abtnr( ' cnt ' ) ' into fld.

perform bdc_field using fld it_knvk5-abtnr.

cnt = cnt + 1.

endloop.

screen 360

perform bdc_dynpro using 'SAPMF02D' '0360'.

perform bdc_field using 'BDC_CURSOR'

'KNVK-NAMEV(01)'.

perform bdc_field using 'BDC_OKCODE'

'=ENTR'.

perform bdc_transaction using 'XD02'.

endloop.

perform close_group.