<?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 BDC loop processing problem in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-loop-processing-problem/m-p/2883723#M677357</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Friends!&lt;/P&gt;&lt;P&gt;        How are you. I have developed one BDC program, I am trying to post the line items for the given purchase order. my problem is everyhting goes fine with the program but when one line item processed it update the data base... and then rest are not processed...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;like &lt;/P&gt;&lt;P&gt;po number : item no&lt;/P&gt;&lt;P&gt;111               1  &amp;lt;--- it update the first record.&lt;/P&gt;&lt;P&gt;111               2  &amp;lt;---- } this two items are not procesed.&lt;/P&gt;&lt;P&gt;111               3  &amp;lt;-----}&lt;/P&gt;&lt;P&gt;112               1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;my code is :&lt;/P&gt;&lt;P&gt;    LOOP AT int_record1 WHERE po_number = int_record-po_number AND&lt;/P&gt;&lt;P&gt;                              exnum = int_record-exnum AND&lt;/P&gt;&lt;P&gt;                              exdat = int_record-exdat AND&lt;/P&gt;&lt;P&gt;                              detail_zeile = int_record-detail_zeile.&lt;/P&gt;&lt;P&gt;      l_index = l_index + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro      USING 'SAPLMIGO' '1000'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field          USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                              '=OK_SP_CH'.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'GOSPLIT-ERFMG(' l_index ')' INTO l_field.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                           l_field.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING l_field&lt;/P&gt;&lt;P&gt;                                           int_record1-erfmg1.&lt;/P&gt;&lt;P&gt;      CLEAR l_field.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'GOSPLIT-LGOBE(' l_index ') ' INTO l_field.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                           l_field.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING l_field&lt;/P&gt;&lt;P&gt;                                           int_record1-lgobe1.&lt;/P&gt;&lt;P&gt;      CLEAR l_field.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'GOSPLIT-CHARG(' l_index ') ' INTO l_field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                           l_field.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING  l_field&lt;/P&gt;&lt;P&gt;                                           int_record1-charg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro   USING 'SAPLMIGO' '1000'.&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;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMIGO' '1000'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field          USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                          '=OK_GOON'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_dynpro      USING 'SAPLMIGO' '0001'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field          USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                            '=OK_GO'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field         USING 'J_1IEXHEAD-EXNUM'&lt;/P&gt;&lt;P&gt;                                           int_record-exnum.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field         USING 'J_1IEXHEAD-EXDAT'&lt;/P&gt;&lt;P&gt;                                           int_record-exdat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_dynpro     USING 'SAPLMIGO' '0001'. &amp;lt;--- this should process after all the line item processesd.... &lt;/P&gt;&lt;P&gt;    PERFORM bdc_field         USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                           '=OK_POST1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_transaction USING 'MIGO'.&lt;/P&gt;&lt;P&gt;    CLEAR l_index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;please help me rectify this problem&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help will be appreciated.&lt;/P&gt;&lt;P&gt;Rgads&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 29 Sep 2007 09:52:29 GMT</pubDate>
    <dc:creator>naimkhans_babi</dc:creator>
    <dc:date>2007-09-29T09:52:29Z</dc:date>
    <item>
      <title>BDC loop processing problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-loop-processing-problem/m-p/2883723#M677357</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dear Friends!&lt;/P&gt;&lt;P&gt;        How are you. I have developed one BDC program, I am trying to post the line items for the given purchase order. my problem is everyhting goes fine with the program but when one line item processed it update the data base... and then rest are not processed...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;like &lt;/P&gt;&lt;P&gt;po number : item no&lt;/P&gt;&lt;P&gt;111               1  &amp;lt;--- it update the first record.&lt;/P&gt;&lt;P&gt;111               2  &amp;lt;---- } this two items are not procesed.&lt;/P&gt;&lt;P&gt;111               3  &amp;lt;-----}&lt;/P&gt;&lt;P&gt;112               1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;my code is :&lt;/P&gt;&lt;P&gt;    LOOP AT int_record1 WHERE po_number = int_record-po_number AND&lt;/P&gt;&lt;P&gt;                              exnum = int_record-exnum AND&lt;/P&gt;&lt;P&gt;                              exdat = int_record-exdat AND&lt;/P&gt;&lt;P&gt;                              detail_zeile = int_record-detail_zeile.&lt;/P&gt;&lt;P&gt;      l_index = l_index + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro      USING 'SAPLMIGO' '1000'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field          USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                              '=OK_SP_CH'.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'GOSPLIT-ERFMG(' l_index ')' INTO l_field.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                           l_field.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING l_field&lt;/P&gt;&lt;P&gt;                                           int_record1-erfmg1.&lt;/P&gt;&lt;P&gt;      CLEAR l_field.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'GOSPLIT-LGOBE(' l_index ') ' INTO l_field.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                           l_field.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING l_field&lt;/P&gt;&lt;P&gt;                                           int_record1-lgobe1.&lt;/P&gt;&lt;P&gt;      CLEAR l_field.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'GOSPLIT-CHARG(' l_index ') ' INTO l_field.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                           l_field.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING  l_field&lt;/P&gt;&lt;P&gt;                                           int_record1-charg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro   USING 'SAPLMIGO' '1000'.&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;&lt;/P&gt;&lt;P&gt;  PERFORM bdc_dynpro      USING 'SAPLMIGO' '1000'.&lt;/P&gt;&lt;P&gt;  PERFORM bdc_field          USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                          '=OK_GOON'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_dynpro      USING 'SAPLMIGO' '0001'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field          USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                            '=OK_GO'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field         USING 'J_1IEXHEAD-EXNUM'&lt;/P&gt;&lt;P&gt;                                           int_record-exnum.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field         USING 'J_1IEXHEAD-EXDAT'&lt;/P&gt;&lt;P&gt;                                           int_record-exdat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_dynpro     USING 'SAPLMIGO' '0001'. &amp;lt;--- this should process after all the line item processesd.... &lt;/P&gt;&lt;P&gt;    PERFORM bdc_field         USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                           '=OK_POST1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_transaction USING 'MIGO'.&lt;/P&gt;&lt;P&gt;    CLEAR l_index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;please help me rectify this problem&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Any help will be appreciated.&lt;/P&gt;&lt;P&gt;Rgads&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 29 Sep 2007 09:52:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-loop-processing-problem/m-p/2883723#M677357</guid>
      <dc:creator>naimkhans_babi</dc:creator>
      <dc:date>2007-09-29T09:52:29Z</dc:date>
    </item>
    <item>
      <title>Re: BDC loop processing problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-loop-processing-problem/m-p/2883724#M677358</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 HAVE TO TAKE TWO INTERNAL TABLES&lt;/P&gt;&lt;P&gt;HEADER INTO ONE itab AND OTHER item DATA INTO OTHER itab1.&lt;/P&gt;&lt;P&gt;loop at header itab.&lt;/P&gt;&lt;P&gt;  loop at item itab where ...f1 = itab-f2...&lt;/P&gt;&lt;P&gt;.......process all items&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endloop. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;see the sample code for PR bdc&lt;/P&gt;&lt;P&gt;REPORT zmm_pr_upload_mat&lt;/P&gt;&lt;P&gt;       NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;       LINE-SIZE 255.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Standard Include for Selection Screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INCLUDE bdcrecx1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for Upload Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF i_pr OCCURS 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Header Screen&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        sno(3),               " SNo&lt;/P&gt;&lt;P&gt;        bsart(004),           " PR Type&lt;/P&gt;&lt;P&gt;        epstp(001),           " Item Category&lt;/P&gt;&lt;P&gt;        knttp(001),           " Account Assignment&lt;/P&gt;&lt;P&gt;        eeind(010),           " Delivery Date&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       lpein(001),          " Category of Del Date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        werks(004),           " Plant&lt;/P&gt;&lt;P&gt;        lgort(004),           " Storage Location&lt;/P&gt;&lt;P&gt;        ekgrp(003),           " Purchasing Group&lt;/P&gt;&lt;P&gt;        matkl(009),           " Material Group&lt;/P&gt;&lt;P&gt;        bednr(010),           " Tracking No&lt;/P&gt;&lt;P&gt;        afnam(012),            " Requisitioner&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Item Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        matnr(018),           " Material No&lt;/P&gt;&lt;P&gt;        menge(017),           " Quantity&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       badat(010),&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       frgdt(010),&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        preis(014),           " Valuation Price&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       waers(005),           " Currency&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       peinh(005),&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       wepos(001),&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       repos(001),&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        sakto(010),           " GL Account&lt;/P&gt;&lt;P&gt;        kostl(010),           " Cost Center&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       bnfpo(005),&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      END OF i_pr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for header Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF it_header OCCURS 0,&lt;/P&gt;&lt;P&gt;        sno(3),               " SNo&lt;/P&gt;&lt;P&gt;        bsart(004),           " PR Type&lt;/P&gt;&lt;P&gt;        epstp(001),           " Item Category&lt;/P&gt;&lt;P&gt;        knttp(001),           " Account Assignment&lt;/P&gt;&lt;P&gt;        eeind(010),           " Delivery Date&lt;/P&gt;&lt;P&gt;        werks(004),           " Plant&lt;/P&gt;&lt;P&gt;        lgort(004),           " Storage Location&lt;/P&gt;&lt;P&gt;        ekgrp(003),           " Purchasing Group&lt;/P&gt;&lt;P&gt;        matkl(009),           " Material Group&lt;/P&gt;&lt;P&gt;        bednr(010),           " Tracking No&lt;/P&gt;&lt;P&gt;        afnam(012),            " Requisitioner&lt;/P&gt;&lt;P&gt;      END OF it_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal Table for Item Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF it_item OCCURS 0,&lt;/P&gt;&lt;P&gt;        sno(3),               " SNo&lt;/P&gt;&lt;P&gt;        matnr(018),           " Material No&lt;/P&gt;&lt;P&gt;        menge(017),           " Quantity&lt;/P&gt;&lt;P&gt;        preis(014),           " Valuation Price&lt;/P&gt;&lt;P&gt;        sakto(010),           " GL Account&lt;/P&gt;&lt;P&gt;        kostl(010),           " Cost Center&lt;/P&gt;&lt;P&gt;      END OF it_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data Variables &amp;amp; Constants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CONSTANTS : c_x             VALUE 'X'.  " Flag&lt;/P&gt;&lt;P&gt;DATA : v_l(2),                          " Counter&lt;/P&gt;&lt;P&gt;       v_rowno(5),                      " Row No&lt;/P&gt;&lt;P&gt;       v_2(2),                          " Counter&lt;/P&gt;&lt;P&gt;       v_rows LIKE sy-srows,            " Rows in TC&lt;/P&gt;&lt;P&gt;       v_field(45).                     " String&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Parameters&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;PARAMETERS: p_file LIKE ibipparms-path.  " Filename&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;At selection-screen on Value Request for file Name&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get the F4 Values for the File&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      file_name     = p_file.&lt;/P&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;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open the BDC Session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM open_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Upload the File into internal Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                = p_file&lt;/P&gt;&lt;P&gt;      filetype                = 'DAT'&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab                = i_pr&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      conversion_error        = 1&lt;/P&gt;&lt;P&gt;      invalid_table_width     = 2&lt;/P&gt;&lt;P&gt;      invalid_type            = 3&lt;/P&gt;&lt;P&gt;      no_batch                = 4&lt;/P&gt;&lt;P&gt;      unknown_error           = 5&lt;/P&gt;&lt;P&gt;      gui_refuse_filetransfer = 6&lt;/P&gt;&lt;P&gt;      OTHERS                  = 7.&lt;/P&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;  SORT i_pr BY sno.&lt;/P&gt;&lt;P&gt;  LOOP AT i_pr.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING i_pr TO it_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND it_item.&lt;/P&gt;&lt;P&gt;    CLEAR it_item.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT END OF sno.&lt;/P&gt;&lt;P&gt;      READ TABLE i_pr INDEX sy-tabix.&lt;/P&gt;&lt;P&gt;      MOVE-CORRESPONDING i_pr TO it_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND it_header.&lt;/P&gt;&lt;P&gt;      CLEAR it_header.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT it_header BY sno.&lt;/P&gt;&lt;P&gt;  SORT it_item BY sno.&lt;/P&gt;&lt;P&gt;  v_rows = sy-srows - 6.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Upload the Data from Internal Table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT it_header.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Header Data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM bdc_dynpro      USING 'SAPMM06B' '0100'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                  'EBAN-BEDNR'.&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 'EBAN-BSART'&lt;/P&gt;&lt;P&gt;                                  it_header-bsart.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'RM06B-EPSTP'&lt;/P&gt;&lt;P&gt;                                  it_header-epstp.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'EBAN-KNTTP'&lt;/P&gt;&lt;P&gt;                                  it_header-knttp.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'RM06B-EEIND'&lt;/P&gt;&lt;P&gt;                                  it_header-eeind.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field       USING 'RM06B-LPEIN'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                                 it_header-lpein.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM bdc_field       USING 'EBAN-WERKS'&lt;/P&gt;&lt;P&gt;                                  it_header-werks.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'EBAN-LGORT'&lt;/P&gt;&lt;P&gt;                                  it_header-lgort.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'EBAN-EKGRP'&lt;/P&gt;&lt;P&gt;                                  it_header-ekgrp.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'EBAN-MATKL'&lt;/P&gt;&lt;P&gt;                                  it_header-matkl.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'EBAN-BEDNR'&lt;/P&gt;&lt;P&gt;                                  it_header-bednr.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'EBAN-AFNAM'&lt;/P&gt;&lt;P&gt;                                  it_header-afnam.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Item Details&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    v_l = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To add no. of rows&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    v_2 = 0 .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;As the screen is showing 13 rows defaulted to 130&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    v_rowno = 130 .&lt;/P&gt;&lt;P&gt;    LOOP AT it_item WHERE sno = it_header-sno.&lt;/P&gt;&lt;P&gt;      v_l = v_l + 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF v_l = 14 .&lt;/P&gt;&lt;P&gt;        IF v_2 = 12 .&lt;/P&gt;&lt;P&gt;          v_2 = 12 .&lt;/P&gt;&lt;P&gt;          v_l = 2 .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;From second time onwards it is displaying 12 rows only&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          v_rowno = v_rowno + 120 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          PERFORM bdc_dynpro      USING 'SAPMM06B' '0106'.&lt;/P&gt;&lt;P&gt;          PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                        'RM06B-BNFPO'.&lt;/P&gt;&lt;P&gt;          PERFORM bdc_field       USING 'RM06B-BNFPO'&lt;/P&gt;&lt;P&gt;                                        v_rowno.&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 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                            '/00'.&lt;/P&gt;&lt;P&gt;        ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;V_2 initialized to 12 for second screen purpose&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          v_2 = 12 .&lt;/P&gt;&lt;P&gt;          v_l = 2 .&lt;/P&gt;&lt;P&gt;          PERFORM bdc_dynpro      USING 'SAPMM06B' '0106'.&lt;/P&gt;&lt;P&gt;          PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                        'RM06B-BNFPO'.&lt;/P&gt;&lt;P&gt;          PERFORM bdc_field       USING 'RM06B-BNFPO'&lt;/P&gt;&lt;P&gt;                                        v_rowno .&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 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                            '/00'.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro      USING 'SAPMM06B' '0106'.&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;      CLEAR v_field.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'EBAN-MATNR(' v_l ')' INTO v_field.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field   USING v_field it_item-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR v_field.&lt;/P&gt;&lt;P&gt;      CONCATENATE 'EBAN-MENGE(' v_l ')' INTO v_field.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field   USING v_field it_item-menge.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro      USING 'SAPMM06B' '0102'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                    'EBAN-PREIS'.&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 'EBAN-PREIS'&lt;/P&gt;&lt;P&gt;                                  it_item-preis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM bdc_dynpro      USING 'SAPMM06B' '0505'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                    'EBKN-SAKTO'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                    '=ENTE'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'EBKN-SAKTO'&lt;/P&gt;&lt;P&gt;                                  it_item-sakto.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Cost Center&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      PERFORM bdc_dynpro      USING 'SAPLKACB' '0002'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                    'COBL-KOSTL'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                    '=ENTE'.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'COBL-KOSTL'&lt;/P&gt;&lt;P&gt;                                    it_item-kostl.&lt;/P&gt;&lt;P&gt;      PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                    '=ENTE'.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    PERFORM bdc_dynpro      USING 'SAPMM06B' '0106'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                  'RM06B-BNFPO'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_OKCODE'&lt;/P&gt;&lt;P&gt;                                  '=BU'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Call The Transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM bdc_transaction USING 'ME51'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Close the BDC Session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM close_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See the doc&lt;/P&gt;&lt;P&gt;How to deal with table control / step loop in BDC&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&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, 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 with the help of Poonam on sapfans.com developement forum, 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;&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;&lt;/P&gt;&lt;P&gt;(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 ASSIGN and Dynamic ASSIGN.&lt;/P&gt;&lt;P&gt;&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,&lt;/P&gt;&lt;P&gt;the method using is Call Transation Using..)&lt;/P&gt;&lt;P&gt;&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. 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;&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;&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;&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 " 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;&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;&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;&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;&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;&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;&lt;/P&gt;&lt;P&gt;line = vline.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step4 write a subroutine to calculate the line index for each item.&lt;/P&gt;&lt;P&gt;&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;&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;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step5 write a subroutine to calculate the loop range.&lt;/P&gt;&lt;P&gt;&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;&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;&lt;/P&gt;&lt;P&gt;elseif FirstLine = 1.&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&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;Step6 using field sysbol in your BDC, for example: in ME21, but you should calculate each item will correponding to which index in steploop/Table Control&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form creat_bdc.&lt;/P&gt;&lt;P&gt;&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;&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;&lt;/P&gt;&lt;P&gt;if sy-index gt 1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*insert scroll page ok_code"&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;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;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;enddo.&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;Anji&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 29 Sep 2007 10:09:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-loop-processing-problem/m-p/2883724#M677358</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-29T10:09:13Z</dc:date>
    </item>
  </channel>
</rss>

