Application Development 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: 

bdc

Former Member
0 Kudos

what is table control ? if i have 10 records which can be allocated in table control after allocating again i want to insert more 5 records how can i increase the size of table control in bdc

3 REPLIES 3

Former Member
0 Kudos

TABLE CONTROL provides the option to enter mulitple entries at the same time..

It is like a Grid in VB..Or kind of excel sheet..

http://www.geekinterview.com/Interview-Questions/SAP-R-3

http://help.sap.com/saphelp_nw04/helpdata/en/9f/dbaa4735c111d1829f0000e829fbfe/content.htm

http://www.sapgenie.com/abap/example_code.htm

PROCESS BEFORE OUTPUT.

MODULE STATUS_9000.

LOOP AT IT_STR WITH CONTROL TC.

MODULE FILL_MODULE_9OOO.

MODULE ICON_9000.

ENDLOOP.

PROCESS AFTER INPUT.

MODULE CANCEL AT EXIT-COMMAND.

LOOP AT IT_STR.

CHAIN.

FIELD IT_STR-MNO.

FIELD IT_STR-QTY.

MODULE FILL_TABLE_9000 ON CHAIN-REQUEST.

ENDCHAIN.

ENDLOOP.

****************************************************

MODULE FILL_TABLE_9000 ON CHAIN-REQUEST.

DATA : V_LINECOUNT TYPE I, "TO FIND NO OF LINES IN INTERNAL TABLE

V_PAGECOUNT TYPE I, "TO ADD LINES WHEN SCROLLING

V_ABS_LINE TYPE I. "FOR CURRENT LINE

IF SY-DATAR = 'X'. "CLICK IS ON MESSAGE OR IN SCROLL.

DESCRIBE TABLE IT_STR LINES V_LINECOUNT. "TO GET THE NO OF LINES

IF SY-SUBRC = 0.

V_ABS_LINE = TC-TOP_LINE + SY-STEPL - 1. "GETTING THE CURRENT LINE

IF V_ABS_LINE LE V_LINECOUNT. "CHECKING WHEATHER CURRENT LINE IS GT LINECOUNT

MODIFY IT_STR INDEX V_ABS_LINE. "SY-STEPL.

ELSE.

IT_STR-ZINO = V_ABS_LINE.

APPEND IT_STR.

ENDIF.

ENDIF.

*tc-lines = sy-tfill + 1.

V_PAGECOUNT = SY-STEPL DIV SY-LOOPC. "CHECKING WHEATHER TO ADD LINES OR NOT

IF V_PAGECOUNT > 0.

TC-LINES = V_LINECOUNT + SY-LOOPC.

ENDIF.

ENDMODULE.

ENDIF.

<b>Reward Useful points</b>

Siva

Former Member
0 Kudos

<b>See the table control consist of no of line items to the single Header items ..

so here is the example program for CUstomer master ... wher the single customer will have multiple bank accounts .</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

Former Member
0 Kudos

Hi Srivas,

TABLE CONTROL:

Table control is intermediate to move flat files data to original database,

We can upload more than one record, before that we should do one thing, when ever we recording at that time we should record more than the actual size of that fields,

This is BDC for ME41 screen it will help you,

REPORT ZUDAY_BDC_ME41 NO STANDARD PAGE HEADING LINE-SIZE 255.

INCLUDE BDCRECX1.

TABLES:EKPO.

DATA: BEGIN OF ITAB OCCURS 0,

NUMBER(3) TYPE C,

EMATN LIKE EKPO-EMATN,

TXZ01 LIKE EKPO-TXZ01,

ANMNG(13) TYPE C,

MEINS LIKE EKPO-MEINS,

EEIND LIKE RM06E-EEIND,

MATKL LIKE EKPO-MATKL,

END OF ITAB.

DATA: TEMP(30),

COUNT TYPE C VALUE 0,

ZERO TYPE C VALUE 0,

LVALUE TYPE I,

CTRL(10) TYPE C,

PAGE(5) TYPE C .

START-OF-SELECTION.

PERFORM START.

PERFORM OPEN_GROUP.

LOOP AT ITAB.

IF ITAB-NUMBER <> LVALUE.

ctrl = 0.

PAGE = 10.

PERFORM BDC_DYNPRO USING 'SAPMM06E' '0300'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'EKKO-EKGRP'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'RM06E-ASART'

'AN'.

PERFORM BDC_FIELD USING 'EKKO-SPRAS'

'EN'.

PERFORM BDC_FIELD USING 'RM06E-ANFDT'

'20.07.2007'.

PERFORM BDC_FIELD USING 'EKKO-ANGDT'

'21.07.2007'.

PERFORM BDC_FIELD USING 'EKKO-EKORG'

'4500'.

PERFORM BDC_FIELD USING 'EKKO-EKGRP'

'017'.

PERFORM BDC_FIELD USING 'RM06E-LPEIN'

'T'.

PERFORM BDC_DYNPRO USING 'SAPMM06E' '0301'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'EKKO-SUBMI'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'EKKO-EKGRP'

'017'.

PERFORM BDC_FIELD USING 'EKKO-PINCR'

'10'.

PERFORM BDC_FIELD USING 'EKKO-SUBMI'

'3'.

PERFORM BDC_FIELD USING 'EKKO-SPRAS'

'EN'.

PERFORM BDC_FIELD USING 'EKKO-UPINC'

'1'.

PERFORM BDC_FIELD USING 'EKKO-ANGDT'

'21.07.2007'.

PERFORM BDC_DYNPRO USING 'SAPMM06E' '0320'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'RM06E-EEIND(01)'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

LOOP AT ITAB WHERE NUMBER = ITAB-NUMBER.

CTRL = CTRL + 1.

IF CTRL > 19.

PAGE = PAGE + 10.

ctrl = '19'.

ENDIF.

IF CTRL > 9.

ZERO = ''.

ENDIF.

PERFORM BDC_FIELD USING 'RM06E-EBELP'

PAGE.

CONCATENATE 'EKPO-EMATN(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING TEMP ITAB-EMATN.

CONCATENATE 'EKPO-TXZ01(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING TEMP ITAB-TXZ01.

CONCATENATE 'RM06E-ANMNG(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING TEMP ITAB-ANMNG.

CONCATENATE 'EKPO-MEINS(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING TEMP ITAB-MEINS.

CONCATENATE 'RM06E-EEIND(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING TEMP ITAB-EEIND.

CONCATENATE 'EKPO-MATKL(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING TEMP ITAB-MATKL.

PERFORM BDC_DYNPRO USING 'SAPMM06E' '0320'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'EKKO-ANGDT'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=LS'.

PERFORM BDC_FIELD USING 'EKKO-ANGDT'

'21.07.2007'.

CONCATENATE 'EKPO-EMATN(' ZERO CTRL ')' INTO TEMP.

CONDENSE TEMP NO-GAPS.

PERFORM BDC_FIELD USING 'BDC_CURSOR' TEMP.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

ENDLOOP.

lvalue = itab-number.

PERFORM BDC_DYNPRO USING 'SAPMM06E' '0140'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'EKKO-LIFNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'/00'.

PERFORM BDC_FIELD USING 'EKKO-LIFNR'

'70000'.

PERFORM BDC_DYNPRO USING 'SAPMM06E' '0140'.

PERFORM BDC_FIELD USING 'BDC_CURSOR'

'EKKO-LIFNR'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=BU'.

PERFORM BDC_FIELD USING 'EKKO-LIFNR'

'70000'.

PERFORM BDC_FIELD USING 'SZA1_D0100-TITLE_MEDI'

'Company'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-NAME1'

'IBM Store'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-SORT1'

'IBM'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-STREET'

'2526 Yonge Street'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-POST_CODE1'

'M4P 2H7'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-CITY1'

'Toronto'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-COUNTRY'

'CA'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-REGION'

'ON'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-TIME_ZONE'

'CST'.

PERFORM BDC_FIELD USING 'ADDR1_DATA-LANGU'

'EN'.

PERFORM BDC_FIELD USING 'SZA1_D0100-TEL_NUMBER'

'416-486-3006'.

PERFORM BDC_DYNPRO USING 'SAPLSPO1' '0300'.

PERFORM BDC_FIELD USING 'BDC_OKCODE'

'=YES'.

PERFORM BDC_TRANSACTION USING 'ME41'.

REFRESH BDCDATA.

ENDIF.

ENDLOOP.

PERFORM CLOSE_GROUP.

&----


*& Form START

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM START.

CALL FUNCTION 'UPLOAD'

EXPORTING

FILENAME = ' '

FILETYPE = ' '

TABLES

DATA_TAB = ITAB

EXCEPTIONS

CONVERSION_ERROR = 1

INVALID_TABLE_WIDTH = 2

INVALID_TYPE = 3

NO_BATCH = 4

UNKNOWN_ERROR = 5

GUI_REFUSE_FILETRANSFER = 6

OTHERS = 7.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " START

IF HELPFULL REWARD