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

table control

Former Member
0 Likes
420

hi guru's,

what is the use of table control in BDC. explaine me with example.

thanks in advance.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
399

Hello,

This is the bdc to update the XK01 transaction code (Vendor Creation).

Here we will use table controls for bankings. Here Iam sending the coding and text files.


REPORT zprataptable2
       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.

Initial Screen file

1	63190 	0001	0001	0001	mr	bal188	b	in	31000	a1	inr
2	63191 	0001	0001	0001	mr	bal189	b	in	31000	a1	inr

Table control File

1	in	sb	11000
1	in	sb	12000
1	in	sb	13000
1	in	sb	14000
1	in	sb	15000
1	in	sb	16000
1	in	sb	17000
1	in	sb	18000
1	in	sb	19000
1	in	sb	20000
1	in	sb	21000
1	in	sb	22000
2	in	sb	21000
2	in	sb	22000





Regards,

Vasanth

3 REPLIES 3
Read only

Former Member
0 Likes
400

Hello,

This is the bdc to update the XK01 transaction code (Vendor Creation).

Here we will use table controls for bankings. Here Iam sending the coding and text files.


REPORT zprataptable2
       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.

Initial Screen file

1	63190 	0001	0001	0001	mr	bal188	b	in	31000	a1	inr
2	63191 	0001	0001	0001	mr	bal189	b	in	31000	a1	inr

Table control File

1	in	sb	11000
1	in	sb	12000
1	in	sb	13000
1	in	sb	14000
1	in	sb	15000
1	in	sb	16000
1	in	sb	17000
1	in	sb	18000
1	in	sb	19000
1	in	sb	20000
1	in	sb	21000
1	in	sb	22000
2	in	sb	21000
2	in	sb	22000





Regards,

Vasanth

Read only

Former Member
0 Likes
399

Hi Surendra,

Generally table control is used to input more than one row doing BDC.

Check these links for table control in BDC.

http://www.sap-basis-abap.com/abap/handling-table-control-in-bdc.htm

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

Thanks,

Vinay

Read only

Former Member
0 Likes
399

Hi Surendra,

For example when you are creating Vendor using XK01 transaction.

If you want to specify vendor Bank detials you have multiple rows to enter

details here we need table control and also if you have header and item details to

be created you need Table control to enter item details.

Hope this is the answer you are looking for. Please write more specifically.

Thanks&Regards,

Siri.