<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: update data using table contol in bdc in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/update-data-using-table-contol-in-bdc/m-p/2656954#M612712</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How to deal with table control / step loop in BDC? &lt;/P&gt;&lt;P&gt;Steploop and table contol is inevitable in certain transactions. When we run BDC for such transactions, we will face the situation: how many visible lines of steploop/tablecontrol are on the screen? Although we can always find certain method to deal with it, such as function code 'NP', 'POPO', considering some extreme situation: there is only one line visible one the screen, &lt;/P&gt;&lt;P&gt;our BDC program should display an error message. (See transaction 'ME21', we you resize your screen to let only one row visible, you can not enter mutiple lines on this screen even you use 'NP') &lt;/P&gt;&lt;P&gt;Now, I find a method with which we can determine the number of visible lines on Transaction Screen from our Calling BDC program. Maybe it is useless to you, but I think it will give your some idea. &lt;/P&gt;&lt;P&gt;Demo ABAP code has two purposes: &lt;/P&gt;&lt;P&gt;1. how to determine number of visible lines and how to calculte page number; (the 'calpage' routine has been modify to meet general purpose usage) &lt;/P&gt;&lt;P&gt;2. using field symbol in BDC program, please pay special attention to the difference in Static &lt;/P&gt;&lt;P&gt;ASSIGN and Dynamic ASSIGN. &lt;/P&gt;&lt;P&gt;Now I begin to describe the step to implement my method: &lt;/P&gt;&lt;P&gt;(I use transaction 'ME21', screen 121 for sample, the method using is Call Transation Using..) &lt;/P&gt;&lt;P&gt;Step1: go to screen painter to display the screen 121, then we can count the fixed line on this screen, there is 7 lines above the steploop and 2 lines below the steploop, so there are total 9 fixed lines on this screen. This means except these 9 lines, all the other line is for step loop. &lt;/P&gt;&lt;P&gt;Then have a look at steploop itselp, one entry of it will occupy two lines. &lt;/P&gt;&lt;P&gt;(Be careful, for table control, the head and the bottom scroll bar will possess another two fixed lines, and there is a maximum number for table line) &lt;/P&gt;&lt;P&gt;Now we have : FixedLine = 9 &lt;/P&gt;&lt;P&gt;              LoopLine  = 2(for table control, LoopLine is always equal to 1) &lt;/P&gt;&lt;P&gt;Step2: go to transaction itself(ME21) to see how it roll page, in ME21, the first line of new page is always occupied by the last line of last page, so it begin with index '02', but in some other case, fisrt line is empty and ready for input. &lt;/P&gt;&lt;P&gt;Now we have: FirstLine = 0 &lt;/P&gt;&lt;P&gt;          or FirstLine = 1 ( in our case, FirstLine is 1 because the first line of new page is fulfilled) &lt;/P&gt;&lt;P&gt;Step3: write a subroutine calcalculating number of pages &lt;/P&gt;&lt;P&gt;(here, the name of actual parameter is the same as formal parameter) &lt;/P&gt;&lt;P&gt;global data:    FixedLine type i, " number of fixed line on a certain screen &lt;/P&gt;&lt;P&gt;                LoopLine  type i, " the number of lines occupied by one steploop item &lt;/P&gt;&lt;P&gt;                FirstLine type i, " possbile value 0 or 1, 0 stand for the first line of new &lt;/P&gt;&lt;P&gt;                                                         " scrolling screen is empty, otherwise is 1 &lt;/P&gt;&lt;P&gt;                Dataline  type i, " number of items you will use in BDC, using DESCRIBE to get &lt;/P&gt;&lt;P&gt;                pageno    type i, " you need to scroll screen how many times. &lt;/P&gt;&lt;P&gt;                line      type i, " number of lines appears on the screen. &lt;/P&gt;&lt;P&gt;                index(2)  type N, " the screen index for certain item &lt;/P&gt;&lt;P&gt;                begin     type i, " from parameter of loop &lt;/P&gt;&lt;P&gt;                end       type i. " to parameter of loop &lt;/P&gt;&lt;P&gt;*in code sample, the DataTable-linindex stands for the table index number of this line &lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt;form calpage using FixedLine type i (see step 1) &lt;/P&gt;&lt;P&gt;                   LoopLine  type i (see step 1) &lt;/P&gt;&lt;P&gt;                   FirstLine type i (see step 2) &lt;/P&gt;&lt;P&gt;                   DataLine  type i ( this is the item number you will enter in transaction) &lt;/P&gt;&lt;P&gt;          changing pageno    type i (return the number of page, depends on run-time visible  line in table control/ Step Loop) &lt;/P&gt;&lt;P&gt;          changing line      type i.(visible lines one the screen) &lt;/P&gt;&lt;P&gt;data: midd type i, &lt;/P&gt;&lt;P&gt;      vline type i, "visible lines &lt;/P&gt;&lt;P&gt;if DataLine eq 0. &lt;/P&gt;&lt;P&gt;   Message eXXX. &lt;/P&gt;&lt;P&gt;endif. &lt;/P&gt;&lt;P&gt;vline = ( sy-srows - FixedLine ) div LoopLine. &lt;/P&gt;&lt;P&gt;*for table control, you should compare vline with maximum line of &lt;/P&gt;&lt;P&gt;*table control, then take the small one that is min(vline, maximum) &lt;/P&gt;&lt;P&gt;*here only illustrate step loop &lt;/P&gt;&lt;P&gt;if FirstLine eq 0. &lt;/P&gt;&lt;P&gt;        pageno = DataLine div vline. &lt;/P&gt;&lt;P&gt;        if pageno eq 0. &lt;/P&gt;&lt;P&gt;           pageno = pageno + 1. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;elseif FirstLine eq 1. &lt;/P&gt;&lt;P&gt;        pageno = ( DataLine - 1 ) div ( vline - 1 ) + 1. &lt;/P&gt;&lt;P&gt;        midd = ( DataLine - 1 ) mod ( vline - 1). &lt;/P&gt;&lt;P&gt;        if midd = 0 and DataLine gt 1. &lt;/P&gt;&lt;P&gt;                pageno = pageno - 1. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;endif. &lt;/P&gt;&lt;P&gt;line = vline. &lt;/P&gt;&lt;P&gt;endform. &lt;/P&gt;&lt;P&gt;Step4 write a subroutine to calculate the line index for each item. &lt;/P&gt;&lt;P&gt;form calindex using Line type i (visible lines on the screen) &lt;/P&gt;&lt;P&gt;                    FirstLine type i(see step 2) &lt;/P&gt;&lt;P&gt;                    LineIndex type i(item index) &lt;/P&gt;&lt;P&gt;          changing  Index type n.    (index on the screen) &lt;/P&gt;&lt;P&gt;  if  FirstLine = 0. &lt;/P&gt;&lt;P&gt;        index = LineIndex mod Line. &lt;/P&gt;&lt;P&gt;        if index = '00'. &lt;/P&gt;&lt;P&gt;                index = Line. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;  elseif FirstLine = 1. &lt;/P&gt;&lt;P&gt;        index = LineIndex mod ( Line - 1 ). &lt;/P&gt;&lt;P&gt;        if ( index between 1 and 0 ) and LineIndex gt 1. &lt;/P&gt;&lt;P&gt;                index = index + Line - 1. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;        if Line = 2. &lt;/P&gt;&lt;P&gt;                index = index + Line - 1. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt; endif. &lt;/P&gt;&lt;P&gt;endform. &lt;/P&gt;&lt;P&gt;Step5 write a subroutine to calculate the loop range. &lt;/P&gt;&lt;P&gt;form calrange using Line type i ( visible lines on the screen) &lt;/P&gt;&lt;P&gt;                    DataLine type i &lt;/P&gt;&lt;P&gt;                    FirstLine type i &lt;/P&gt;&lt;P&gt;                    loopindex like sy-index &lt;/P&gt;&lt;P&gt;        changing    begin type i &lt;/P&gt;&lt;P&gt;                    end type i. &lt;/P&gt;&lt;P&gt;If FirstLine = 0. &lt;/P&gt;&lt;P&gt;   if loopindex = 1. &lt;/P&gt;&lt;P&gt;        begin = 1. &lt;/P&gt;&lt;P&gt;        if DataLine &amp;lt;= Line. &lt;/P&gt;&lt;P&gt;                end = DataLine. &lt;/P&gt;&lt;P&gt;        else. &lt;/P&gt;&lt;P&gt;                end = Line. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;   elseif loopindex gt 1. &lt;/P&gt;&lt;P&gt;        begin = Line * ( loopindex - 1 ) + 1. &lt;/P&gt;&lt;P&gt;        end   = Line * loopindex. &lt;/P&gt;&lt;P&gt;        if end gt DataLine. &lt;/P&gt;&lt;P&gt;           end = DataLine. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;   endif. &lt;/P&gt;&lt;P&gt;elseif FirstLine = 1. &lt;/P&gt;&lt;P&gt;  if loopindex = 1. &lt;/P&gt;&lt;P&gt;        begin = 1. &lt;/P&gt;&lt;P&gt;        if DataLine &amp;lt;= Line. &lt;/P&gt;&lt;P&gt;                end = DataLine. &lt;/P&gt;&lt;P&gt;        else. &lt;/P&gt;&lt;P&gt;                end = Line. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;  elseif loop index gt 1. &lt;/P&gt;&lt;P&gt;        begin = ( Line - 1 ) * ( loopindex - 1 ) + 2. &lt;/P&gt;&lt;P&gt;        end =   ( Line - 1 ) * ( loopindex - 1 ) + Line. &lt;/P&gt;&lt;P&gt;        if end gt DataLine. &lt;/P&gt;&lt;P&gt;                end = DataLine. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;  endif. &lt;/P&gt;&lt;P&gt;endif. &lt;/P&gt;&lt;P&gt;endform. &lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt;Step6 using field sysbol in your BDC, for example: in ME21, but you should calculate each item will correponding to which index &lt;/P&gt;&lt;P&gt;form creat_bdc. &lt;/P&gt;&lt;P&gt;field-symbols: &amp;lt;material&amp;gt;, &amp;lt;quan&amp;gt;, &amp;lt;indicator&amp;gt;. &lt;/P&gt;&lt;P&gt;data: name1(14) value 'EKPO-EMATN(XX)', &lt;/P&gt;&lt;P&gt;      name2(14) value 'EKPO-MENGE(XX)', &lt;/P&gt;&lt;P&gt;      name3(15) value 'RM06E-SELKZ(XX)'. &lt;/P&gt;&lt;P&gt;assign:         name1 to &amp;lt;material&amp;gt;, &lt;/P&gt;&lt;P&gt;                name2 to &amp;lt;quan&amp;gt;, &lt;/P&gt;&lt;P&gt;                name3 to &amp;lt;indicator&amp;gt;. &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;do pageno times. &lt;/P&gt;&lt;P&gt;if sy-index gt 1 &lt;/P&gt;&lt;P&gt;*insert scroll page ok_code" &lt;/P&gt;&lt;P&gt;endif. &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;        perform calrange using Line DataLine FirstLine sy-index &lt;/P&gt;&lt;P&gt;                         changing begin end. &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;loop at DataTable from begin to end. &lt;/P&gt;&lt;P&gt;        perform calindex using Line FirstLine DataTable-LineIndex changing Index. &lt;/P&gt;&lt;P&gt;        name1+11(2) = Index. &lt;/P&gt;&lt;P&gt;        name2+11(2) = Index. &lt;/P&gt;&lt;P&gt;        name3+12(2) = Index. &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;        perform bdcfield using &amp;lt;material&amp;gt; DataTable-matnr. &lt;/P&gt;&lt;P&gt;        perform bdcfield using &amp;lt;quan&amp;gt;     DataTable-menge. &lt;/P&gt;&lt;P&gt;        perform bdcfield using &amp;lt;indicator&amp;gt; DataTable-indicator. &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;endloop. &lt;/P&gt;&lt;P&gt;enddo.&lt;/P&gt;&lt;P&gt;Sample code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Following is a sample code of handling table control in BDC. &lt;/P&gt;&lt;P&gt;REPORT Y730_BDC5 .&lt;/P&gt;&lt;P&gt;*HANDLING TABLE CONTROL IN BDC&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF IT_DUMMY OCCURS 0,&lt;/P&gt;&lt;P&gt;       DUMMY(100) TYPE C,&lt;/P&gt;&lt;P&gt;       END OF IT_DUMMY.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF IT_XK01 OCCURS 0,&lt;/P&gt;&lt;P&gt;       LIFNR(10) TYPE C,&lt;/P&gt;&lt;P&gt;       BUKRS(4)  TYPE C,&lt;/P&gt;&lt;P&gt;       EKORG(4)  TYPE C,&lt;/P&gt;&lt;P&gt;       KTOKK(4)  TYPE C,&lt;/P&gt;&lt;P&gt;       NAME1(30) TYPE C,&lt;/P&gt;&lt;P&gt;       SORTL(10) TYPE C,&lt;/P&gt;&lt;P&gt;       LAND1(3)  TYPE C,&lt;/P&gt;&lt;P&gt;       SPRAS(2)  TYPE C,&lt;/P&gt;&lt;P&gt;       AKONT(6)  TYPE C,&lt;/P&gt;&lt;P&gt;       FDGRV(2)  TYPE C,&lt;/P&gt;&lt;P&gt;       WAERS(3)  TYPE C,&lt;/P&gt;&lt;P&gt;       END OF IT_XK01,&lt;/P&gt;&lt;P&gt;       BEGIN OF IT_BANK OCCURS 0,&lt;/P&gt;&lt;P&gt;       BANKS(3)  TYPE C,&lt;/P&gt;&lt;P&gt;       BANKL(10) TYPE C,&lt;/P&gt;&lt;P&gt;       BANKN(10) TYPE C,&lt;/P&gt;&lt;P&gt;       KOINH(30) TYPE C,&lt;/P&gt;&lt;P&gt;       LIFNR(10) TYPE C,&lt;/P&gt;&lt;P&gt;       END OF IT_BANK.&lt;/P&gt;&lt;P&gt;DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WS_UPLOAD'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;P&gt;   FILENAME                      = 'C:\VENDOR.TXT'&lt;/P&gt;&lt;P&gt;   FILETYPE                      = 'ASC'&lt;/P&gt;&lt;P&gt; TABLES&lt;/P&gt;&lt;P&gt;   DATA_TAB                      = IT_DUMMY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_DUMMY.&lt;/P&gt;&lt;P&gt;  IF IT_DUMMY-DUMMY+0(2) = '11'.&lt;/P&gt;&lt;P&gt;    IT_XK01-LIFNR = IT_DUMMY-DUMMY+2(10).&lt;/P&gt;&lt;P&gt;    IT_XK01-BUKRS = IT_DUMMY-DUMMY+12(4).&lt;/P&gt;&lt;P&gt;    IT_XK01-EKORG = IT_DUMMY-DUMMY+16(4).&lt;/P&gt;&lt;P&gt;    IT_XK01-KTOKK = IT_DUMMY-DUMMY+20(4).&lt;/P&gt;&lt;P&gt;    IT_XK01-NAME1 = IT_DUMMY-DUMMY+24(30).&lt;/P&gt;&lt;P&gt;    IT_XK01-SORTL = IT_DUMMY-DUMMY+54(10).&lt;/P&gt;&lt;P&gt;    IT_XK01-LAND1 = IT_DUMMY-DUMMY+64(3).&lt;/P&gt;&lt;P&gt;    IT_XK01-SPRAS = IT_DUMMY-DUMMY+67(2).&lt;/P&gt;&lt;P&gt;    IT_XK01-AKONT = IT_DUMMY-DUMMY+69(6).&lt;/P&gt;&lt;P&gt;    IT_XK01-FDGRV = IT_DUMMY-DUMMY+75(2).&lt;/P&gt;&lt;P&gt;    IT_XK01-WAERS = IT_DUMMY-DUMMY+77(3).&lt;/P&gt;&lt;P&gt;    APPEND IT_XK01.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IT_BANK-BANKS = IT_DUMMY-DUMMY+2(3).&lt;/P&gt;&lt;P&gt;    IT_BANK-BANKL = IT_DUMMY-DUMMY+5(10).&lt;/P&gt;&lt;P&gt;    IT_BANK-BANKN = IT_DUMMY-DUMMY+15(10).&lt;/P&gt;&lt;P&gt;    IT_BANK-KOINH = IT_DUMMY-DUMMY+25(30).&lt;/P&gt;&lt;P&gt;    IT_BANK-LIFNR = IT_DUMMY-DUMMY+55(10).&lt;/P&gt;&lt;P&gt;    APPEND IT_BANK.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_XK01.&lt;/P&gt;&lt;P&gt;REFRESH IT_BDCDATA.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0100'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'RF02K-REF_LIFNR'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-LIFNR'&lt;/P&gt;&lt;P&gt;                              IT_XK01-LIFNR.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-BUKRS'&lt;/P&gt;&lt;P&gt;                              IT_XK01-BUKRS.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-EKORG'&lt;/P&gt;&lt;P&gt;                              IT_XK01-EKORG.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-KTOKK'&lt;/P&gt;&lt;P&gt;                              IT_XK01-KTOKK.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0110'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFA1-TELX1'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-NAME1'&lt;/P&gt;&lt;P&gt;                              IT_XK01-NAME1.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-SORTL'&lt;/P&gt;&lt;P&gt;                              IT_XK01-SORTL.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-LAND1'&lt;/P&gt;&lt;P&gt;                              IT_XK01-LAND1.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-SPRAS'&lt;/P&gt;&lt;P&gt;                              IT_XK01-SPRAS.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0120'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFA1-KUNNR'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0130'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFBK-KOINH(02)'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=ENTR'.&lt;/P&gt;&lt;P&gt;DATA : FNAM(20) TYPE C,&lt;/P&gt;&lt;P&gt;       IDX      TYPE C.&lt;/P&gt;&lt;P&gt;  MOVE 1 TO IDX.&lt;/P&gt;&lt;P&gt;LOOP AT IT_BANK WHERE LIFNR = IT_XK01-LIFNR.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'LFBK-BANKS(' IDX ')' INTO FNAM.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using FNAM&lt;/P&gt;&lt;P&gt;                                IT_BANK-BANKS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE 'LFBK-BANKL(' IDX ')' INTO FNAM.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using FNAM&lt;/P&gt;&lt;P&gt;                                IT_BANK-BANKL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE 'LFBK-BANKN(' IDX ')' INTO FNAM.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using FNAM&lt;/P&gt;&lt;P&gt;                                IT_BANK-BANKN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE 'LFBK-KOINH(' IDX ')' INTO FNAM.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using FNAM&lt;/P&gt;&lt;P&gt;                                IT_BANK-KOINH.&lt;/P&gt;&lt;P&gt;  IDX = IDX + 1.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0130'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFBK-BANKS(01)'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=ENTR'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0210'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFB1-FDGRV'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFB1-AKONT'&lt;/P&gt;&lt;P&gt;                              IT_XK01-AKONT.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFB1-FDGRV'&lt;/P&gt;&lt;P&gt;                              IT_XK01-FDGRV.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0215'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFB1-ZTERM'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0220'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFB5-MAHNA'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0310'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFM1-WAERS'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFM1-WAERS'&lt;/P&gt;&lt;P&gt;                              IT_XK01-WAERS.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0320'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'WYT3-PARVW(01)'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=ENTR'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPLSPO1' '0300'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=YES'.&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'XK01' USING IT_BDCDATA&lt;/P&gt;&lt;P&gt;                        MODE  'A'&lt;/P&gt;&lt;P&gt;                       UPDATE 'S'&lt;/P&gt;&lt;P&gt;                     MESSAGES INTO IT_BDCMSGCOLL.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_DYNPRO USING PROG SCR.&lt;/P&gt;&lt;P&gt;  CLEAR IT_BDCDATA.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-PROGRAM = PROG.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-DYNPRO  = SCR.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND IT_BDCDATA.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_FIELD USING FNAM FVAL.&lt;/P&gt;&lt;P&gt;  CLEAR IT_BDCDATA.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-FNAM = FNAM.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-FVAL  = FVAL.&lt;/P&gt;&lt;P&gt;  APPEND IT_BDCDATA.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;srinivas&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;*&lt;STRONG&gt;reward for useful answers&lt;/STRONG&gt;*&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 28 Aug 2007 12:22:50 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-08-28T12:22:50Z</dc:date>
    <item>
      <title>update data using table contol in bdc</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/update-data-using-table-contol-in-bdc/m-p/2656951#M612709</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;please anyone can help me in this code  i.e how to update the database yusing table control please make changes in my code if required&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this is my code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report ZTEST_XK01&lt;/P&gt;&lt;P&gt;       no standard page heading line-size 255.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*include bdcrecx1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***************&lt;STRONG&gt;PARAMETERS DECLERATIONS&lt;/STRONG&gt;*********&lt;/P&gt;&lt;P&gt;PARAMETERS  : P_file type rlgrap-filename, P_FILE1 TYPE RLGRAP-FILENAME&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**************&lt;STRONG&gt;internal table decleration&lt;/STRONG&gt;*******&lt;/P&gt;&lt;P&gt;data : bdcdata type standard table of bdcdata with header line.&lt;/P&gt;&lt;P&gt;data : begin of t_lfa1 occurs 0,&lt;/P&gt;&lt;P&gt;        lifnr like RF02K-LIFNR,&lt;/P&gt;&lt;P&gt;        BUKRS LIKE RF02K-BUKRS,&lt;/P&gt;&lt;P&gt;        EKORG LIKE RF02K-EKORG,&lt;/P&gt;&lt;P&gt;        KTOKK LIKE RF02K-KTOKK,&lt;/P&gt;&lt;P&gt;        ANRED LIKE LFA1-ANRED,&lt;/P&gt;&lt;P&gt;        NAME1 LIKE LFA1-NAME1,&lt;/P&gt;&lt;P&gt;        SORTL LIKE LFA1-SORTL,&lt;/P&gt;&lt;P&gt;        LAND1 LIKE LFA1-LAND1,&lt;/P&gt;&lt;P&gt;        AKONT LIKE LFB1-AKONT,&lt;/P&gt;&lt;P&gt;        ZTERM LIKE LFB1-ZTERM,&lt;/P&gt;&lt;P&gt;       END OF T_LFA1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; DATA : BEGIN OF T_LFBK OCCURS 0,&lt;/P&gt;&lt;P&gt;         BANKS LIKE LFBK-BANKS,&lt;/P&gt;&lt;P&gt;         BANKL LIKE LFBK-BANKL,&lt;/P&gt;&lt;P&gt;        END OF T_LFBK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;P&gt;   PROGRAM_NAME        = SYST-CPROG&lt;/P&gt;&lt;P&gt;   DYNPRO_NUMBER       = SYST-DYNNR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; FIELD_NAME          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; IMPORTING&lt;/P&gt;&lt;P&gt;   FILE_NAME           = p_FILE&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'F4_FILENAME'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;P&gt;   PROGRAM_NAME        = SYST-CPROG&lt;/P&gt;&lt;P&gt;   DYNPRO_NUMBER       = SYST-DYNNR&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FIELD_NAME          = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; IMPORTING&lt;/P&gt;&lt;P&gt;   FILE_NAME           = P_FILE1&lt;/P&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;data : v_file type string.&lt;/P&gt;&lt;P&gt;move p_file to v_file.&lt;/P&gt;&lt;P&gt;data : e_file type string.&lt;/P&gt;&lt;P&gt;move p_file1 to e_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;    FILENAME                      = v_file&lt;/P&gt;&lt;P&gt;   FILETYPE                      = 'ASC'&lt;/P&gt;&lt;P&gt;   HAS_FIELD_SEPARATOR           = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_LENGTH                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  READ_BY_LINE                  = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DAT_MODE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CODEPAGE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IGNORE_CERR                   = ABAP_TRUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REPLACEMENT                   = '#'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CHECK_BOM                     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  VIRUS_SCAN_PROFILE            =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILELENGTH                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;    DATA_TAB                      = T_LFA1&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_OPEN_ERROR               = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_READ_ERROR               = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_BATCH                      = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GUI_REFUSE_FILETRANSFER       = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INVALID_TYPE                  = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_AUTHORITY                  = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  UNKNOWN_ERROR                 = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  BAD_DATA_FORMAT               = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_NOT_ALLOWED            = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SEPARATOR_NOT_ALLOWED         = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_TOO_LONG               = 11&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  UNKNOWN_DP_ERROR              = 12&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ACCESS_DENIED                 = 13&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_OUT_OF_MEMORY              = 14&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DISK_FULL                     = 15&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_TIMEOUT                    = 16&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                        = 17&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;    FILENAME                      = E_FILE&lt;/P&gt;&lt;P&gt;   FILETYPE                      = 'ASC'&lt;/P&gt;&lt;P&gt;   HAS_FIELD_SEPARATOR           = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_LENGTH                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  READ_BY_LINE                  = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DAT_MODE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CODEPAGE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IGNORE_CERR                   = ABAP_TRUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REPLACEMENT                   = '#'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CHECK_BOM                     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  VIRUS_SCAN_PROFILE            =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILELENGTH                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;    DATA_TAB                      = T_LFBK&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_OPEN_ERROR               = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_READ_ERROR               = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_BATCH                      = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GUI_REFUSE_FILETRANSFER       = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INVALID_TYPE                  = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_AUTHORITY                  = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  UNKNOWN_ERROR                 = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  BAD_DATA_FORMAT               = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_NOT_ALLOWED            = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SEPARATOR_NOT_ALLOWED         = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_TOO_LONG               = 11&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  UNKNOWN_DP_ERROR              = 12&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ACCESS_DENIED                 = 13&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_OUT_OF_MEMORY              = 14&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DISK_FULL                     = 15&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_TIMEOUT                    = 16&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                        = 17&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at t_lfa1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0100'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'RF02K-KTOKK'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-LIFNR'&lt;/P&gt;&lt;P&gt;                              t_lfa1-lifnr.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-BUKRS'&lt;/P&gt;&lt;P&gt;                              t_lfa1-bukrs.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-EKORG'&lt;/P&gt;&lt;P&gt;                              t_lfa1-ekorg.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-KTOKK'&lt;/P&gt;&lt;P&gt;                              t_lfa1-ktokk.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0110'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFA1-SORTL'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-ANRED'&lt;/P&gt;&lt;P&gt;                            t_lfa1-anred.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-NAME1'&lt;/P&gt;&lt;P&gt;                             t_lfa1-name1.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-SORTL'&lt;/P&gt;&lt;P&gt;                             t_lfa1-sortl.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-LAND1'&lt;/P&gt;&lt;P&gt;                             t_lfa1-land1.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0120'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFA1-KUNNR'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;loop at t_lfbk .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : val(2) type c.&lt;/P&gt;&lt;P&gt;data :v_fil type c.&lt;/P&gt;&lt;P&gt;concatenate 'lfbk-banks(' val  ')' into v_fil.&lt;/P&gt;&lt;P&gt;perform bdc_field using v_fil&lt;/P&gt;&lt;P&gt;t_lfbk-BANKS.&lt;/P&gt;&lt;P&gt;concatenate 'lfbk-bankl(' val  ')' into v_fil.&lt;/P&gt;&lt;P&gt;perform bdc_field using v_fil&lt;/P&gt;&lt;P&gt;t_lfbk-BANKl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;val = 01.&lt;/P&gt;&lt;P&gt;val = val + 1.&lt;/P&gt;&lt;P&gt;if val &amp;gt; 5.&lt;/P&gt;&lt;P&gt;val = 5.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0130'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFBK-BANKL(val)'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              'ENTR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFBK-BANKL(val)'&lt;/P&gt;&lt;P&gt;                              v_fil.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFBK-BANKS(val)'&lt;/P&gt;&lt;P&gt;                              v_fil.&lt;/P&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKS(02)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             'IN'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKS(03)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             'in'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKS(04)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             'in'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKS(05)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             'in'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKL(02)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             '00000142'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKL(03)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             'sunny'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKL(04)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             'sunny'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKL(05)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             'sunny'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*perform bdc_dynpro      using 'SAPMF02K' '0130'.&lt;/P&gt;&lt;P&gt;*perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             'LFBK-BANKS(01)'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                               '=ENTR'.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0210'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFB1-AKONT'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFB1-AKONT'&lt;/P&gt;&lt;P&gt;                              '160000'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0215'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFB1-ZTERM'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFB1-ZTERM'&lt;/P&gt;&lt;P&gt;                              '0001'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0220'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFB5-MAHNA'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0310'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFM1-WAERS'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0320'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'RF02K-LIFNR'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=ENTR'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPLSPO1' '0300'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Aug 2007 05:38:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/update-data-using-table-contol-in-bdc/m-p/2656951#M612709</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-08-28T05:38:39Z</dc:date>
    </item>
    <item>
      <title>Re: update data using table contol in bdc</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/update-data-using-table-contol-in-bdc/m-p/2656952#M612710</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;check this example&lt;/P&gt;&lt;P&gt;*demo on recording for handling btable control fieldds in bdc&lt;/P&gt;&lt;P&gt;*for recording first got to shdb tcode and record there.and the n go to program option&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;report ZBDC_XK01&lt;/P&gt;&lt;P&gt;       no standard page heading line-size 255.&lt;/P&gt;&lt;P&gt;TABLES : rf02k,lfa1,lfbk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF it_ven OCCURS 0,&lt;/P&gt;&lt;P&gt;      lifnr LIKE rf02k-lifnr,&lt;/P&gt;&lt;P&gt;      ktokk LIKE rf02k-ktokk,&lt;/P&gt;&lt;P&gt;      name1 LIKE lfa1-name1,&lt;/P&gt;&lt;P&gt;      sortl LIKE lfa1-sortl,&lt;/P&gt;&lt;P&gt;      land1 LIKE lfa1-land1,&lt;/P&gt;&lt;P&gt;      spras LIKE lfa1-spras,&lt;/P&gt;&lt;P&gt;      banks(6) TYPE c,&lt;/P&gt;&lt;P&gt;      bankl(17) TYPE c,&lt;/P&gt;&lt;P&gt;      bankn(19) TYPE c,&lt;/P&gt;&lt;P&gt;      END OF it_ven.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF banks OCCURS 0,&lt;/P&gt;&lt;P&gt;       banks LIKE lfbk-banks,&lt;/P&gt;&lt;P&gt;       END OF banks,&lt;/P&gt;&lt;P&gt;       BEGIN OF bankl OCCURS 0,&lt;/P&gt;&lt;P&gt;       bankl LIKE lfbk-bankl,&lt;/P&gt;&lt;P&gt;       END OF bankl,&lt;/P&gt;&lt;P&gt;       BEGIN OF bankn OCCURS 0,&lt;/P&gt;&lt;P&gt;       bankn LIKE lfbk-bankn,&lt;/P&gt;&lt;P&gt;       END OF bankn.&lt;/P&gt;&lt;P&gt;DATA : fld(20) TYPE c,&lt;/P&gt;&lt;P&gt;       cnt(2) TYPE n.&lt;/P&gt;&lt;P&gt;data : bdctab like bdcdata occurs 0 with header line.&lt;/P&gt;&lt;P&gt;include bdcrecx1.&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;  EXPORTING&lt;/P&gt;&lt;P&gt;    filename                      = 'Z:\sr.TXT'&lt;/P&gt;&lt;P&gt;   FILETYPE                      = 'ASC'&lt;/P&gt;&lt;P&gt;   HAS_FIELD_SEPARATOR           = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_LENGTH                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  READ_BY_LINE                  = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DAT_MODE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CODEPAGE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IGNORE_CERR                   = ABAP_TRUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  REPLACEMENT                   = '#'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CHECK_BOM                     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILELENGTH                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  tables&lt;/P&gt;&lt;P&gt;    data_tab                      = IT_VEN&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_OPEN_ERROR               = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_READ_ERROR               = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_BATCH                      = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GUI_REFUSE_FILETRANSFER       = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INVALID_TYPE                  = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_AUTHORITY                  = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  UNKNOWN_ERROR                 = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  BAD_DATA_FORMAT               = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_NOT_ALLOWED            = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SEPARATOR_NOT_ALLOWED         = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADER_TOO_LONG               = 11&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  UNKNOWN_DP_ERROR              = 12&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  ACCESS_DENIED                 = 13&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_OUT_OF_MEMORY              = 14&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DISK_FULL                     = 15&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DP_TIMEOUT                    = 16&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                        = 17&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          .&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform open_group.&lt;/P&gt;&lt;P&gt;LOOP AT it_ven.&lt;/P&gt;&lt;P&gt;    REFRESH bdcdata.&lt;/P&gt;&lt;P&gt;    REFRESH : banks,bankl,bankn..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SPLIT it_ven-BANKS AT ',' INTO TABLE banks.&lt;/P&gt;&lt;P&gt;    SPLIT it_ven-BANKL AT ',' INTO TABLE bankl.&lt;/P&gt;&lt;P&gt;    SPLIT it_ven-BANKN AT ',' INTO TABLE bankn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0100'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'RF02K-KTOKK'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-LIFNR'&lt;/P&gt;&lt;P&gt;                              IT_VEN-LIFNR.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-KTOKK'&lt;/P&gt;&lt;P&gt;                              IT_VEN-KTOKK.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0110'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFA1-SPRAS'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-NAME1'&lt;/P&gt;&lt;P&gt;                              IT_VEN-NAME1.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-SORTL'&lt;/P&gt;&lt;P&gt;                              IT_VEN-SORTL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-LAND1'&lt;/P&gt;&lt;P&gt;                              IT_VEN-LAND1.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-SPRAS'&lt;/P&gt;&lt;P&gt;                              IT_VEN-SPRAS.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0120'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFA1-KUNNR'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0130'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFBK-BANKN(02)'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=ENTR'.&lt;/P&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKS(01)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             'DE'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKS(02)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             'DE'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKL(01)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             '10020030'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKL(02)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             '67270003'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKN(01)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             '12345'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*perform bdc_field       using 'LFBK-BANKN(02)'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                             '66666'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;MOVE 1 TO cnt.&lt;/P&gt;&lt;P&gt;    LOOP AT BANKS.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'LFBK-BANKS(' cnt ') ' INTO fld.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING fld BANKS-BANKS.&lt;/P&gt;&lt;P&gt;      cnt = cnt + 1.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    MOVE 1 TO cnt.&lt;/P&gt;&lt;P&gt;    LOOP AT BANKL.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'LFBK-BANKL(' cnt ') ' INTO fld.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING fld bankl-bankl.&lt;/P&gt;&lt;P&gt;      cnt = cnt + 1.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;    MOVE 1 TO cnt.&lt;/P&gt;&lt;P&gt;    LOOP AT BANKN.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'LFBK-BANKN(' cnt ') ' INTO fld.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field USING fld BANKN-BANKN.&lt;/P&gt;&lt;P&gt;      cnt = cnt + 1.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0130'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFBK-BANKS(01)'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=ENTR'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPLSPO1' '0300'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=YES'.&lt;/P&gt;&lt;P&gt;perform bdc_transaction using 'XK01'.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;perform close_group.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Aug 2007 06:50:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/update-data-using-table-contol-in-bdc/m-p/2656952#M612710</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-08-28T06:50:04Z</dc:date>
    </item>
    <item>
      <title>Re: update data using table contol in bdc</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/update-data-using-table-contol-in-bdc/m-p/2656953#M612711</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;you can check the following piece of code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Batchinputdata of single transaction&lt;/P&gt;&lt;P&gt;DATA :   tbl_bdcdata LIKE bdcdata   OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Input records&lt;/P&gt;&lt;P&gt;DATA : BEGIN  OF tbl_input OCCURS 0,&lt;/P&gt;&lt;P&gt;       lifnr	LIKE	lfa1-lifnr,   "Account number of vendor or&lt;/P&gt;&lt;P&gt;       banks	LIKE	lfbk-banks,   "Bank country key&lt;/P&gt;&lt;P&gt;       bankl	LIKE	lfbk-bankl,   "Bank key&lt;/P&gt;&lt;P&gt;       bankn	LIKE	lfbk-bankn,   "Bank account number&lt;/P&gt;&lt;P&gt;       koinh LIKE    lfbk-koinh,   "Account holder name&lt;/P&gt;&lt;P&gt;       bvtyp	LIKE	lfbk-bvtyp,   "Partner bank type&lt;/P&gt;&lt;P&gt;       banka	LIKE	bnka-banka,   "Name of bank&lt;/P&gt;&lt;P&gt;       stcd3	LIKE	lfa1-stcd3,   "Tax number 3&lt;/P&gt;&lt;P&gt;       scacd	LIKE	lfa1-scacd,   "Standard carrier access code&lt;/P&gt;&lt;P&gt;       zwels	LIKE	lfb1-zwels,   "List of the Payment Methods to be&lt;/P&gt;&lt;P&gt;                                   "Considered&lt;/P&gt;&lt;P&gt;       lnrzb	LIKE	lfb1-lnrzb,   "Alternate payee&lt;/P&gt;&lt;P&gt;       iban	LIKE	tiban-iban,   "IBAN (International Bank Account&lt;/P&gt;&lt;P&gt;                                   "      Number)&lt;/P&gt;&lt;P&gt;       valid_from(10) TYPE c,      "Start of IBAN validity&lt;/P&gt;&lt;P&gt;       swift	LIKE	bnka-swift,   "SWIFT Code for International&lt;/P&gt;&lt;P&gt;                                   "Payments&lt;/P&gt;&lt;P&gt;       bukrs  LIKE zgroup_code_xref-bukrs,&lt;/P&gt;&lt;P&gt;                                   "Company code&lt;/P&gt;&lt;P&gt;       land1  LIKE t001-land1,     "Country&lt;/P&gt;&lt;P&gt;       END   OF tbl_input.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Constants&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*CONSTANTS&lt;/P&gt;&lt;P&gt;CONSTANTS: c_tcode TYPE tstc-tcode VALUE 'XK02',   "For holding&lt;/P&gt;&lt;P&gt;                                                   "the TCODE&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;           c_keep(1) TYPE c VALUE 'X',                "To hold X&lt;/P&gt;&lt;P&gt;           c_tabctrl    TYPE i VALUE '6',             "For holding&lt;/P&gt;&lt;P&gt;           c_and        TYPE c VALUE '&amp;amp;',&lt;/P&gt;&lt;P&gt;           c_tab TYPE x VALUE '09'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         START-OF-SELECTION                                         *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF p_appser NE 'X' .&lt;/P&gt;&lt;P&gt;*Download from presentation server&lt;/P&gt;&lt;P&gt;    PERFORM pres_file_download .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;*Download from application server&lt;/P&gt;&lt;P&gt;    PERFORM appl_file_download.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE tbl_input LINES w_rec.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Banking details upload&lt;/P&gt;&lt;P&gt;  IF  p_bank = 'X'.&lt;/P&gt;&lt;P&gt;    IF NOT tbl_input[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      PERFORM data_fetching.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      WRITE : text-017.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM data_validation.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM final_data_prep.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF p_test NE 'X'.&lt;/P&gt;&lt;P&gt;    &amp;lt;b&amp;gt;  PERFORM bdc_data_load&amp;lt;/b&amp;gt;.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Linking alternate payee&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT tbl_input[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      PERFORM data_fetching_zalt.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM data_validation_zalt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM final_data_prep_zalt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM zalt_data_load.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      &amp;lt;b&amp;gt;Form  bdc_data_load&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_data_load.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM open_group.&lt;/P&gt;&lt;P&gt;  DATA : l_cnt(2) TYPE n.                                   "TIR-70118&lt;/P&gt;&lt;P&gt;  SORT tbl_final BY lifnr bukrs.&lt;/P&gt;&lt;P&gt;  SORT tbl_lfbk BY lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT tbl_final.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT NEW bukrs.&lt;/P&gt;&lt;P&gt;      PERFORM 1_screen.&lt;/P&gt;&lt;P&gt;      PERFORM cursor_location.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM table_control.&lt;/P&gt;&lt;P&gt;    l_cnt = l_cnt + 1.                                      "TIR-70118&lt;/P&gt;&lt;P&gt;    AT END OF bukrs.&lt;/P&gt;&lt;P&gt;*Begin of addition for TIR-70118&lt;/P&gt;&lt;P&gt;      MOVE l_cnt TO tbl_lfbk-cnt.&lt;/P&gt;&lt;P&gt;      tbl_lfbk-lifnr = tbl_final-lifnr.&lt;/P&gt;&lt;P&gt;      COLLECT tbl_lfbk.&lt;/P&gt;&lt;P&gt;      SORT tbl_lfbk BY lifnr.&lt;/P&gt;&lt;P&gt;      CLEAR l_cnt.&lt;/P&gt;&lt;P&gt;*End of addition for TIR-70118&lt;/P&gt;&lt;P&gt;      PERFORM last_screen.&lt;/P&gt;&lt;P&gt;      PERFORM insert_bdc.&lt;/P&gt;&lt;P&gt;      REFRESH tbl_bdcdata.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM close_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_data_load&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;    &amp;lt;b&amp;gt;  Form  1_screen&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM 1_screen.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPMF02K' '0101'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field   USING : 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'RF02K-D0215',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                '/00',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                'RF02K-LIFNR'&lt;/P&gt;&lt;P&gt;                                tbl_final-lifnr,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                'RF02K-BUKRS'&lt;/P&gt;&lt;P&gt;                                 tbl_final-bukrs,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                'RF02K-D0110'&lt;/P&gt;&lt;P&gt;                                '',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                'RF02K-D0120'&lt;/P&gt;&lt;P&gt;                                'X',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                               'RF02K-D0130'&lt;/P&gt;&lt;P&gt;                                'X',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                               'RF02K-D0215'&lt;/P&gt;&lt;P&gt;                                'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro  USING 'SAPMF02K' '0120'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field   USING :   'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                'LFA1-TXJCD',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                '/00'.&lt;/P&gt;&lt;P&gt;*Begin of changes for TIR-70118&lt;/P&gt;&lt;P&gt;  IF NOT tbl_final-stcd3 IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field   USING :   'LFA1-STCD3'&lt;/P&gt;&lt;P&gt;                                  tbl_final-stcd3.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  IF NOT tbl_final-scacd IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field   USING :   'LFA1-SCACD'&lt;/P&gt;&lt;P&gt;                                  tbl_final-scacd.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*End of changes for TIR-70118&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                                                    " 1_screen&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;     &amp;lt;b&amp;gt; Form  cursor_location&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM cursor_location.&lt;/P&gt;&lt;P&gt;  DATA : l_times TYPE i.&lt;/P&gt;&lt;P&gt;  CLEAR tbl_lfbk.                                           "TIR-70118&lt;/P&gt;&lt;P&gt;  READ TABLE tbl_lfbk WITH KEY lifnr = tbl_final-lifnr&lt;/P&gt;&lt;P&gt;                                             BINARY SEARCH.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    l_times = tbl_lfbk-cnt DIV 5.&lt;/P&gt;&lt;P&gt;    w_count = ( tbl_lfbk-cnt MOD 5 ) + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DO l_times TIMES.&lt;/P&gt;&lt;P&gt;      PERFORM page_down.&lt;/P&gt;&lt;P&gt;    ENDDO.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    w_count = 1.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  CLEAR l_times.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " cursor_location&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;   &amp;lt;b&amp;gt;   Form  table_control&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM table_control.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE 'LFBK-BANKS(' w_count ')'&lt;/P&gt;&lt;P&gt;                                   INTO w_fld1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                               w_fld1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR w_fld1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT ( tbl_final-banks IS INITIAL ).                    "TIR-70118&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                  '=ENTR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONCATENATE 'LFBK-BANKS(' w_count ')'&lt;/P&gt;&lt;P&gt;                                     INTO w_fld1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING w_fld1&lt;/P&gt;&lt;P&gt;                                    tbl_final-banks.&lt;/P&gt;&lt;P&gt;    CLEAR w_fld1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONCATENATE 'LFBK-BANKL(' w_count ')'&lt;/P&gt;&lt;P&gt;                                     INTO w_fld1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING w_fld1&lt;/P&gt;&lt;P&gt;                                    tbl_final-bankl.&lt;/P&gt;&lt;P&gt;    CLEAR w_fld1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONCATENATE 'LFBK-BANKN(' w_count ')'&lt;/P&gt;&lt;P&gt;                                     INTO w_fld1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING  w_fld1&lt;/P&gt;&lt;P&gt;                                   tbl_final-bankn.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONCATENATE 'LFBK-KOINH(' w_count ')'&lt;/P&gt;&lt;P&gt;                                     INTO w_fld1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING w_fld1&lt;/P&gt;&lt;P&gt;                                     tbl_final-koinh.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONCATENATE 'LFBK-BKONT(' w_count ')'&lt;/P&gt;&lt;P&gt;                                     INTO w_fld1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING w_fld1&lt;/P&gt;&lt;P&gt;                                    tbl_final-bkont.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONCATENATE 'LFBK-BVTYP(' w_count ')'&lt;/P&gt;&lt;P&gt;                                     INTO w_fld1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING w_fld1&lt;/P&gt;&lt;P&gt;                                    tbl_final-bvtyp.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CONCATENATE 'LFBK-BKREF(' w_count ')'&lt;/P&gt;&lt;P&gt;                                     INTO w_fld1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING w_fld1&lt;/P&gt;&lt;P&gt;                                   tbl_final-bkref.&lt;/P&gt;&lt;P&gt;    CLEAR w_fld1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT tbl_final-swift IS INITIAL.&lt;/P&gt;&lt;P&gt;      PERFORM swift_screen.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT tbl_final-iban IS INITIAL.&lt;/P&gt;&lt;P&gt;      PERFORM iban_screen.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_dynpro      USING 'SAPMF02K' '0130'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;    w_count = w_count + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF w_count EQ c_tabctrl.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      w_count = 1.&lt;/P&gt;&lt;P&gt;      PERFORM page_down&amp;lt;/b&amp;gt;.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.                                                    &lt;/P&gt;&lt;P&gt;ENDFORM.                    " table_control&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;  &amp;lt;b&amp;gt;    Form  page_down&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM page_down.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field   USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                            '=P+'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                          'LFBK-BANKS(01)'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro  USING 'SAPMF02K'&lt;/P&gt;&lt;P&gt;                            '0130'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field   USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                            '/00'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " page_down&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  &amp;lt;b&amp;gt;Insert_BDC&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      This form takes the transaction code and populates the data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM submit_bdc .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**Function module that takes the TCODE and populate the data&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            tcode            = c_tcode&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            dynprotab        = tbl_bdcdata&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;            internal_error   = 1&lt;/P&gt;&lt;P&gt;            not_open         = 2&lt;/P&gt;&lt;P&gt;            queue_error      = 3&lt;/P&gt;&lt;P&gt;            tcode_invalid    = 4&lt;/P&gt;&lt;P&gt;            printing_invalid = 5&lt;/P&gt;&lt;P&gt;            posting_invalid  = 6&lt;/P&gt;&lt;P&gt;            OTHERS           = 7.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Incase of error while populatin data&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                      "End of Submit_bdc&lt;/P&gt;&lt;P&gt;**********************************************************************************************&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think this code can help for you, let me know if any doubts.&lt;/P&gt;&lt;P&gt;Reward with points, if it helpful for u.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Vijay&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Aug 2007 09:52:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/update-data-using-table-contol-in-bdc/m-p/2656953#M612711</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-08-28T09:52:26Z</dc:date>
    </item>
    <item>
      <title>Re: update data using table contol in bdc</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/update-data-using-table-contol-in-bdc/m-p/2656954#M612712</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;How to deal with table control / step loop in BDC? &lt;/P&gt;&lt;P&gt;Steploop and table contol is inevitable in certain transactions. When we run BDC for such transactions, we will face the situation: how many visible lines of steploop/tablecontrol are on the screen? Although we can always find certain method to deal with it, such as function code 'NP', 'POPO', considering some extreme situation: there is only one line visible one the screen, &lt;/P&gt;&lt;P&gt;our BDC program should display an error message. (See transaction 'ME21', we you resize your screen to let only one row visible, you can not enter mutiple lines on this screen even you use 'NP') &lt;/P&gt;&lt;P&gt;Now, I find a method with which we can determine the number of visible lines on Transaction Screen from our Calling BDC program. Maybe it is useless to you, but I think it will give your some idea. &lt;/P&gt;&lt;P&gt;Demo ABAP code has two purposes: &lt;/P&gt;&lt;P&gt;1. how to determine number of visible lines and how to calculte page number; (the 'calpage' routine has been modify to meet general purpose usage) &lt;/P&gt;&lt;P&gt;2. using field symbol in BDC program, please pay special attention to the difference in Static &lt;/P&gt;&lt;P&gt;ASSIGN and Dynamic ASSIGN. &lt;/P&gt;&lt;P&gt;Now I begin to describe the step to implement my method: &lt;/P&gt;&lt;P&gt;(I use transaction 'ME21', screen 121 for sample, the method using is Call Transation Using..) &lt;/P&gt;&lt;P&gt;Step1: go to screen painter to display the screen 121, then we can count the fixed line on this screen, there is 7 lines above the steploop and 2 lines below the steploop, so there are total 9 fixed lines on this screen. This means except these 9 lines, all the other line is for step loop. &lt;/P&gt;&lt;P&gt;Then have a look at steploop itselp, one entry of it will occupy two lines. &lt;/P&gt;&lt;P&gt;(Be careful, for table control, the head and the bottom scroll bar will possess another two fixed lines, and there is a maximum number for table line) &lt;/P&gt;&lt;P&gt;Now we have : FixedLine = 9 &lt;/P&gt;&lt;P&gt;              LoopLine  = 2(for table control, LoopLine is always equal to 1) &lt;/P&gt;&lt;P&gt;Step2: go to transaction itself(ME21) to see how it roll page, in ME21, the first line of new page is always occupied by the last line of last page, so it begin with index '02', but in some other case, fisrt line is empty and ready for input. &lt;/P&gt;&lt;P&gt;Now we have: FirstLine = 0 &lt;/P&gt;&lt;P&gt;          or FirstLine = 1 ( in our case, FirstLine is 1 because the first line of new page is fulfilled) &lt;/P&gt;&lt;P&gt;Step3: write a subroutine calcalculating number of pages &lt;/P&gt;&lt;P&gt;(here, the name of actual parameter is the same as formal parameter) &lt;/P&gt;&lt;P&gt;global data:    FixedLine type i, " number of fixed line on a certain screen &lt;/P&gt;&lt;P&gt;                LoopLine  type i, " the number of lines occupied by one steploop item &lt;/P&gt;&lt;P&gt;                FirstLine type i, " possbile value 0 or 1, 0 stand for the first line of new &lt;/P&gt;&lt;P&gt;                                                         " scrolling screen is empty, otherwise is 1 &lt;/P&gt;&lt;P&gt;                Dataline  type i, " number of items you will use in BDC, using DESCRIBE to get &lt;/P&gt;&lt;P&gt;                pageno    type i, " you need to scroll screen how many times. &lt;/P&gt;&lt;P&gt;                line      type i, " number of lines appears on the screen. &lt;/P&gt;&lt;P&gt;                index(2)  type N, " the screen index for certain item &lt;/P&gt;&lt;P&gt;                begin     type i, " from parameter of loop &lt;/P&gt;&lt;P&gt;                end       type i. " to parameter of loop &lt;/P&gt;&lt;P&gt;*in code sample, the DataTable-linindex stands for the table index number of this line &lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt;form calpage using FixedLine type i (see step 1) &lt;/P&gt;&lt;P&gt;                   LoopLine  type i (see step 1) &lt;/P&gt;&lt;P&gt;                   FirstLine type i (see step 2) &lt;/P&gt;&lt;P&gt;                   DataLine  type i ( this is the item number you will enter in transaction) &lt;/P&gt;&lt;P&gt;          changing pageno    type i (return the number of page, depends on run-time visible  line in table control/ Step Loop) &lt;/P&gt;&lt;P&gt;          changing line      type i.(visible lines one the screen) &lt;/P&gt;&lt;P&gt;data: midd type i, &lt;/P&gt;&lt;P&gt;      vline type i, "visible lines &lt;/P&gt;&lt;P&gt;if DataLine eq 0. &lt;/P&gt;&lt;P&gt;   Message eXXX. &lt;/P&gt;&lt;P&gt;endif. &lt;/P&gt;&lt;P&gt;vline = ( sy-srows - FixedLine ) div LoopLine. &lt;/P&gt;&lt;P&gt;*for table control, you should compare vline with maximum line of &lt;/P&gt;&lt;P&gt;*table control, then take the small one that is min(vline, maximum) &lt;/P&gt;&lt;P&gt;*here only illustrate step loop &lt;/P&gt;&lt;P&gt;if FirstLine eq 0. &lt;/P&gt;&lt;P&gt;        pageno = DataLine div vline. &lt;/P&gt;&lt;P&gt;        if pageno eq 0. &lt;/P&gt;&lt;P&gt;           pageno = pageno + 1. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;elseif FirstLine eq 1. &lt;/P&gt;&lt;P&gt;        pageno = ( DataLine - 1 ) div ( vline - 1 ) + 1. &lt;/P&gt;&lt;P&gt;        midd = ( DataLine - 1 ) mod ( vline - 1). &lt;/P&gt;&lt;P&gt;        if midd = 0 and DataLine gt 1. &lt;/P&gt;&lt;P&gt;                pageno = pageno - 1. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;endif. &lt;/P&gt;&lt;P&gt;line = vline. &lt;/P&gt;&lt;P&gt;endform. &lt;/P&gt;&lt;P&gt;Step4 write a subroutine to calculate the line index for each item. &lt;/P&gt;&lt;P&gt;form calindex using Line type i (visible lines on the screen) &lt;/P&gt;&lt;P&gt;                    FirstLine type i(see step 2) &lt;/P&gt;&lt;P&gt;                    LineIndex type i(item index) &lt;/P&gt;&lt;P&gt;          changing  Index type n.    (index on the screen) &lt;/P&gt;&lt;P&gt;  if  FirstLine = 0. &lt;/P&gt;&lt;P&gt;        index = LineIndex mod Line. &lt;/P&gt;&lt;P&gt;        if index = '00'. &lt;/P&gt;&lt;P&gt;                index = Line. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;  elseif FirstLine = 1. &lt;/P&gt;&lt;P&gt;        index = LineIndex mod ( Line - 1 ). &lt;/P&gt;&lt;P&gt;        if ( index between 1 and 0 ) and LineIndex gt 1. &lt;/P&gt;&lt;P&gt;                index = index + Line - 1. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;        if Line = 2. &lt;/P&gt;&lt;P&gt;                index = index + Line - 1. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt; endif. &lt;/P&gt;&lt;P&gt;endform. &lt;/P&gt;&lt;P&gt;Step5 write a subroutine to calculate the loop range. &lt;/P&gt;&lt;P&gt;form calrange using Line type i ( visible lines on the screen) &lt;/P&gt;&lt;P&gt;                    DataLine type i &lt;/P&gt;&lt;P&gt;                    FirstLine type i &lt;/P&gt;&lt;P&gt;                    loopindex like sy-index &lt;/P&gt;&lt;P&gt;        changing    begin type i &lt;/P&gt;&lt;P&gt;                    end type i. &lt;/P&gt;&lt;P&gt;If FirstLine = 0. &lt;/P&gt;&lt;P&gt;   if loopindex = 1. &lt;/P&gt;&lt;P&gt;        begin = 1. &lt;/P&gt;&lt;P&gt;        if DataLine &amp;lt;= Line. &lt;/P&gt;&lt;P&gt;                end = DataLine. &lt;/P&gt;&lt;P&gt;        else. &lt;/P&gt;&lt;P&gt;                end = Line. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;   elseif loopindex gt 1. &lt;/P&gt;&lt;P&gt;        begin = Line * ( loopindex - 1 ) + 1. &lt;/P&gt;&lt;P&gt;        end   = Line * loopindex. &lt;/P&gt;&lt;P&gt;        if end gt DataLine. &lt;/P&gt;&lt;P&gt;           end = DataLine. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;   endif. &lt;/P&gt;&lt;P&gt;elseif FirstLine = 1. &lt;/P&gt;&lt;P&gt;  if loopindex = 1. &lt;/P&gt;&lt;P&gt;        begin = 1. &lt;/P&gt;&lt;P&gt;        if DataLine &amp;lt;= Line. &lt;/P&gt;&lt;P&gt;                end = DataLine. &lt;/P&gt;&lt;P&gt;        else. &lt;/P&gt;&lt;P&gt;                end = Line. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;  elseif loop index gt 1. &lt;/P&gt;&lt;P&gt;        begin = ( Line - 1 ) * ( loopindex - 1 ) + 2. &lt;/P&gt;&lt;P&gt;        end =   ( Line - 1 ) * ( loopindex - 1 ) + Line. &lt;/P&gt;&lt;P&gt;        if end gt DataLine. &lt;/P&gt;&lt;P&gt;                end = DataLine. &lt;/P&gt;&lt;P&gt;        endif. &lt;/P&gt;&lt;P&gt;  endif. &lt;/P&gt;&lt;P&gt;endif. &lt;/P&gt;&lt;P&gt;endform. &lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt;Step6 using field sysbol in your BDC, for example: in ME21, but you should calculate each item will correponding to which index &lt;/P&gt;&lt;P&gt;form creat_bdc. &lt;/P&gt;&lt;P&gt;field-symbols: &amp;lt;material&amp;gt;, &amp;lt;quan&amp;gt;, &amp;lt;indicator&amp;gt;. &lt;/P&gt;&lt;P&gt;data: name1(14) value 'EKPO-EMATN(XX)', &lt;/P&gt;&lt;P&gt;      name2(14) value 'EKPO-MENGE(XX)', &lt;/P&gt;&lt;P&gt;      name3(15) value 'RM06E-SELKZ(XX)'. &lt;/P&gt;&lt;P&gt;assign:         name1 to &amp;lt;material&amp;gt;, &lt;/P&gt;&lt;P&gt;                name2 to &amp;lt;quan&amp;gt;, &lt;/P&gt;&lt;P&gt;                name3 to &amp;lt;indicator&amp;gt;. &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;do pageno times. &lt;/P&gt;&lt;P&gt;if sy-index gt 1 &lt;/P&gt;&lt;P&gt;*insert scroll page ok_code" &lt;/P&gt;&lt;P&gt;endif. &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;        perform calrange using Line DataLine FirstLine sy-index &lt;/P&gt;&lt;P&gt;                         changing begin end. &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;loop at DataTable from begin to end. &lt;/P&gt;&lt;P&gt;        perform calindex using Line FirstLine DataTable-LineIndex changing Index. &lt;/P&gt;&lt;P&gt;        name1+11(2) = Index. &lt;/P&gt;&lt;P&gt;        name2+11(2) = Index. &lt;/P&gt;&lt;P&gt;        name3+12(2) = Index. &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;        perform bdcfield using &amp;lt;material&amp;gt; DataTable-matnr. &lt;/P&gt;&lt;P&gt;        perform bdcfield using &amp;lt;quan&amp;gt;     DataTable-menge. &lt;/P&gt;&lt;P&gt;        perform bdcfield using &amp;lt;indicator&amp;gt; DataTable-indicator. &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;              . &lt;/P&gt;&lt;P&gt;endloop. &lt;/P&gt;&lt;P&gt;enddo.&lt;/P&gt;&lt;P&gt;Sample code&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Following is a sample code of handling table control in BDC. &lt;/P&gt;&lt;P&gt;REPORT Y730_BDC5 .&lt;/P&gt;&lt;P&gt;*HANDLING TABLE CONTROL IN BDC&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF IT_DUMMY OCCURS 0,&lt;/P&gt;&lt;P&gt;       DUMMY(100) TYPE C,&lt;/P&gt;&lt;P&gt;       END OF IT_DUMMY.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF IT_XK01 OCCURS 0,&lt;/P&gt;&lt;P&gt;       LIFNR(10) TYPE C,&lt;/P&gt;&lt;P&gt;       BUKRS(4)  TYPE C,&lt;/P&gt;&lt;P&gt;       EKORG(4)  TYPE C,&lt;/P&gt;&lt;P&gt;       KTOKK(4)  TYPE C,&lt;/P&gt;&lt;P&gt;       NAME1(30) TYPE C,&lt;/P&gt;&lt;P&gt;       SORTL(10) TYPE C,&lt;/P&gt;&lt;P&gt;       LAND1(3)  TYPE C,&lt;/P&gt;&lt;P&gt;       SPRAS(2)  TYPE C,&lt;/P&gt;&lt;P&gt;       AKONT(6)  TYPE C,&lt;/P&gt;&lt;P&gt;       FDGRV(2)  TYPE C,&lt;/P&gt;&lt;P&gt;       WAERS(3)  TYPE C,&lt;/P&gt;&lt;P&gt;       END OF IT_XK01,&lt;/P&gt;&lt;P&gt;       BEGIN OF IT_BANK OCCURS 0,&lt;/P&gt;&lt;P&gt;       BANKS(3)  TYPE C,&lt;/P&gt;&lt;P&gt;       BANKL(10) TYPE C,&lt;/P&gt;&lt;P&gt;       BANKN(10) TYPE C,&lt;/P&gt;&lt;P&gt;       KOINH(30) TYPE C,&lt;/P&gt;&lt;P&gt;       LIFNR(10) TYPE C,&lt;/P&gt;&lt;P&gt;       END OF IT_BANK.&lt;/P&gt;&lt;P&gt;DATA : IT_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       IT_BDCMSGCOLL LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WS_UPLOAD'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;P&gt;   FILENAME                      = 'C:\VENDOR.TXT'&lt;/P&gt;&lt;P&gt;   FILETYPE                      = 'ASC'&lt;/P&gt;&lt;P&gt; TABLES&lt;/P&gt;&lt;P&gt;   DATA_TAB                      = IT_DUMMY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_DUMMY.&lt;/P&gt;&lt;P&gt;  IF IT_DUMMY-DUMMY+0(2) = '11'.&lt;/P&gt;&lt;P&gt;    IT_XK01-LIFNR = IT_DUMMY-DUMMY+2(10).&lt;/P&gt;&lt;P&gt;    IT_XK01-BUKRS = IT_DUMMY-DUMMY+12(4).&lt;/P&gt;&lt;P&gt;    IT_XK01-EKORG = IT_DUMMY-DUMMY+16(4).&lt;/P&gt;&lt;P&gt;    IT_XK01-KTOKK = IT_DUMMY-DUMMY+20(4).&lt;/P&gt;&lt;P&gt;    IT_XK01-NAME1 = IT_DUMMY-DUMMY+24(30).&lt;/P&gt;&lt;P&gt;    IT_XK01-SORTL = IT_DUMMY-DUMMY+54(10).&lt;/P&gt;&lt;P&gt;    IT_XK01-LAND1 = IT_DUMMY-DUMMY+64(3).&lt;/P&gt;&lt;P&gt;    IT_XK01-SPRAS = IT_DUMMY-DUMMY+67(2).&lt;/P&gt;&lt;P&gt;    IT_XK01-AKONT = IT_DUMMY-DUMMY+69(6).&lt;/P&gt;&lt;P&gt;    IT_XK01-FDGRV = IT_DUMMY-DUMMY+75(2).&lt;/P&gt;&lt;P&gt;    IT_XK01-WAERS = IT_DUMMY-DUMMY+77(3).&lt;/P&gt;&lt;P&gt;    APPEND IT_XK01.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IT_BANK-BANKS = IT_DUMMY-DUMMY+2(3).&lt;/P&gt;&lt;P&gt;    IT_BANK-BANKL = IT_DUMMY-DUMMY+5(10).&lt;/P&gt;&lt;P&gt;    IT_BANK-BANKN = IT_DUMMY-DUMMY+15(10).&lt;/P&gt;&lt;P&gt;    IT_BANK-KOINH = IT_DUMMY-DUMMY+25(30).&lt;/P&gt;&lt;P&gt;    IT_BANK-LIFNR = IT_DUMMY-DUMMY+55(10).&lt;/P&gt;&lt;P&gt;    APPEND IT_BANK.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT IT_XK01.&lt;/P&gt;&lt;P&gt;REFRESH IT_BDCDATA.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0100'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'RF02K-REF_LIFNR'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-LIFNR'&lt;/P&gt;&lt;P&gt;                              IT_XK01-LIFNR.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-BUKRS'&lt;/P&gt;&lt;P&gt;                              IT_XK01-BUKRS.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-EKORG'&lt;/P&gt;&lt;P&gt;                              IT_XK01-EKORG.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'RF02K-KTOKK'&lt;/P&gt;&lt;P&gt;                              IT_XK01-KTOKK.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0110'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFA1-TELX1'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-NAME1'&lt;/P&gt;&lt;P&gt;                              IT_XK01-NAME1.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-SORTL'&lt;/P&gt;&lt;P&gt;                              IT_XK01-SORTL.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-LAND1'&lt;/P&gt;&lt;P&gt;                              IT_XK01-LAND1.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFA1-SPRAS'&lt;/P&gt;&lt;P&gt;                              IT_XK01-SPRAS.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0120'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFA1-KUNNR'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0130'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFBK-KOINH(02)'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=ENTR'.&lt;/P&gt;&lt;P&gt;DATA : FNAM(20) TYPE C,&lt;/P&gt;&lt;P&gt;       IDX      TYPE C.&lt;/P&gt;&lt;P&gt;  MOVE 1 TO IDX.&lt;/P&gt;&lt;P&gt;LOOP AT IT_BANK WHERE LIFNR = IT_XK01-LIFNR.&lt;/P&gt;&lt;P&gt;  CONCATENATE 'LFBK-BANKS(' IDX ')' INTO FNAM.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using FNAM&lt;/P&gt;&lt;P&gt;                                IT_BANK-BANKS.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE 'LFBK-BANKL(' IDX ')' INTO FNAM.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using FNAM&lt;/P&gt;&lt;P&gt;                                IT_BANK-BANKL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE 'LFBK-BANKN(' IDX ')' INTO FNAM.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using FNAM&lt;/P&gt;&lt;P&gt;                                IT_BANK-BANKN.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE 'LFBK-KOINH(' IDX ')' INTO FNAM.&lt;/P&gt;&lt;P&gt;  perform bdc_field       using FNAM&lt;/P&gt;&lt;P&gt;                                IT_BANK-KOINH.&lt;/P&gt;&lt;P&gt;  IDX = IDX + 1.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0130'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFBK-BANKS(01)'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=ENTR'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0210'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFB1-FDGRV'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFB1-AKONT'&lt;/P&gt;&lt;P&gt;                              IT_XK01-AKONT.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFB1-FDGRV'&lt;/P&gt;&lt;P&gt;                              IT_XK01-FDGRV.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0215'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFB1-ZTERM'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0220'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFB5-MAHNA'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0310'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'LFM1-WAERS'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '/00'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'LFM1-WAERS'&lt;/P&gt;&lt;P&gt;                              IT_XK01-WAERS.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPMF02K' '0320'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                              'WYT3-PARVW(01)'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=ENTR'.&lt;/P&gt;&lt;P&gt;perform bdc_dynpro      using 'SAPLSPO1' '0300'.&lt;/P&gt;&lt;P&gt;perform bdc_field       using 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                              '=YES'.&lt;/P&gt;&lt;P&gt;CALL TRANSACTION 'XK01' USING IT_BDCDATA&lt;/P&gt;&lt;P&gt;                        MODE  'A'&lt;/P&gt;&lt;P&gt;                       UPDATE 'S'&lt;/P&gt;&lt;P&gt;                     MESSAGES INTO IT_BDCMSGCOLL.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_DYNPRO USING PROG SCR.&lt;/P&gt;&lt;P&gt;  CLEAR IT_BDCDATA.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-PROGRAM = PROG.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-DYNPRO  = SCR.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND IT_BDCDATA.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM BDC_FIELD USING FNAM FVAL.&lt;/P&gt;&lt;P&gt;  CLEAR IT_BDCDATA.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-FNAM = FNAM.&lt;/P&gt;&lt;P&gt;  IT_BDCDATA-FVAL  = FVAL.&lt;/P&gt;&lt;P&gt;  APPEND IT_BDCDATA.&lt;/P&gt;&lt;P&gt;ENDFORM.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;srinivas&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;*&lt;STRONG&gt;reward for useful answers&lt;/STRONG&gt;*&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 28 Aug 2007 12:22:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/update-data-using-table-contol-in-bdc/m-p/2656954#M612712</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-08-28T12:22:50Z</dc:date>
    </item>
  </channel>
</rss>

