<?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: using bdc to upload the data in internal table in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/using-bdc-to-upload-the-data-in-internal-table/m-p/2477388#M557798</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It  has the   following  3  function  modules  with  detailed   parameter passed to it  .&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;&lt;/P&gt;&lt;P&gt;1.bdc_open_group&lt;/P&gt;&lt;P&gt;2.bdc_insert&lt;/P&gt;&lt;P&gt;3.bdc_close_group&amp;lt;/b&amp;gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;***INCLUDE ZBDCRECX1. 
*  When you generate the program using SHDB, you can replace it 
*  with this if you want to execute it immediately without having 
*  to process it using SM35. 
* 
*  During testing you can used the original include. 
* 
*  For example, 
*  include zbdcrecx1.   "After test 
*  include bdcrecx.     "Before test 
*  ------------------------------------- 
*  Declare your internal table as RECORD 
*  ------------------------------------- 
*  for programs doing a data transfer by creating a batch-input session 
*  and 
*  for programs doing a data transfer by CALL TRANSACTION USING 

*SELECTION-SCREEN BEGIN OF LINE. 
*  PARAMETERS SESSION RADIOBUTTON GROUP CTU.  "create session 
*  SELECTION-SCREEN COMMENT 3(20) TEXT-S07 FOR FIELD SESSION. 
*  selection-screen position 45. 
*  PARAMETERS CTU RADIOBUTTON GROUP CTU DEFAULT 'X'. "call transaction 
*  SELECTION-SCREEN COMMENT 48(20) TEXT-S08 FOR FIELD CTU. 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: SESSION NO-DISPLAY, 
            CTU     NO-DISPLAY DEFAULT 'X'. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 3(20) TEXT-S01 FOR FIELD GROUP. 
*  selection-screen position 25. 
*  PARAMETERS GROUP(12).                      "group name of session 
*  SELECTION-SCREEN COMMENT 48(20) TEXT-S05 FOR FIELD CTUMODE. 
*  selection-screen position 70. 
*  PARAMETERS CTUMODE LIKE CTU_PARAMS-DISMODE DEFAULT 'N'. 
*                                      "A: show all dynpros 
*                                      "E: show dynpro on error only 
*                                      "N: do not display dynpro 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: GROUP(12) NO-DISPLAY, 
            CTUMODE   NO-DISPLAY DEFAULT 'N'. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 3(20) TEXT-S02 FOR FIELD USER. 
*  selection-screen position 25. 
*  PARAMETERS: USER(12) DEFAULT SY-UNAME.    "user for session in batch 
*  SELECTION-SCREEN COMMENT 48(20) TEXT-S06 FOR FIELD CUPDATE. 
*  selection-screen position 70. 
*  PARAMETERS CUPDATE LIKE CTU_PARAMS-UPDMODE DEFAULT 'L'. 
*                                      "S: synchronously 
*                                      "A: asynchronously 
*                                      "L: local 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: USER(12) NO-DISPLAY DEFAULT SY-UNAME, 
            CUPDATE LIKE CTU_PARAMS-UPDMODE DEFAULT 'L' NO-DISPLAY. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 3(20) TEXT-S03 FOR FIELD KEEP. 
*  selection-screen position 25. 
*  PARAMETERS: KEEP AS CHECKBOX.       "' ' = delete session if finished 
*                                      "'X' = keep   session if finished 
*  SELECTION-SCREEN COMMENT 48(20) TEXT-S09 FOR FIELD E_GROUP. 
*  selection-screen position 70. 
*  parameters E_GROUP(12).             "group name of error-session 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: KEEP        NO-DISPLAY, 
            E_GROUP(12) NO-DISPLAY. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 3(20) TEXT-S04 FOR FIELD HOLDDATE. 
*  selection-screen position 25. 
*  PARAMETERS: HOLDDATE LIKE SY-DATUM. 
*  SELECTION-SCREEN COMMENT 51(17) TEXT-S02 FOR FIELD E_USER. 
*  selection-screen position 70. 
*  PARAMETERS: E_USER(12) DEFAULT SY-UNAME.    "user for error-session 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: HOLDDATE LIKE SY-DATUM NO-DISPLAY, 
           E_USER(12) DEFAULT SY-UNAME NO-DISPLAY. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 51(17) TEXT-S03 FOR FIELD E_KEEP. 
*  selection-screen position 70. 
*  PARAMETERS: E_KEEP AS CHECKBOX.     "' ' = delete session if finished 
*                                      "'X' = keep   session if finished 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: E_KEEP NO-DISPLAY. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 51(17) TEXT-S04 FOR FIELD E_HDATE. 
*  selection-screen position 70. 
*  PARAMETERS: E_HDATE LIKE SY-DATUM. 
*SELECTION-SCREEN END OF LINE. 
* 
*SELECTION-SCREEN SKIP. 
PARAMETERS: E_HDATE LIKE SY-DATUM NO-DISPLAY. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 1(33) TEXT-S10 FOR FIELD NODATA. 
*  PARAMETERS: NODATA DEFAULT '/' LOWER CASE.          "nodata 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: NODATA DEFAULT '/' LOWER CASE NO-DISPLAY. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 1(33) FOR FIELD SMALLLOG. 
*  PARAMETERS: SMALLLOG as checkbox.  "' ' = log all transactions 
*                                     "'X' = no transaction logging 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: SMALLLOG NO-DISPLAY. 

*----------------------------------------------------------------------* 
*   data definition 
*----------------------------------------------------------------------* 
*       Batchinputdata of single transaction 
DATA:   BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE. 
*       messages of call transaction 
DATA:   MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. 
*       error session opened (' ' or 'X') 
DATA:   E_GROUP_OPENED. 
*       message texts 
TABLES: T100. 
  

*----------------------------------------------------------------------* 
*   at selection screen                                                * 
*----------------------------------------------------------------------* 
AT SELECTION-SCREEN. 
* group and user must be filled for create session 
  IF SESSION = 'X' AND 
     GROUP = SPACE OR USER = SPACE. 
    MESSAGE E613(MS). 
  ENDIF. 

*----------------------------------------------------------------------* 
*   open dataset                                                       * 
*----------------------------------------------------------------------* 
FORM OPEN_DATASET USING P_DATASET. 
  OPEN DATASET P_DATASET IN TEXT MODE. 
  IF SY-SUBRC &amp;lt;&amp;gt; 0. 
    WRITE: / TEXT-E00, SY-SUBRC. 
    STOP. 
  ENDIF. 
ENDFORM. 

*----------------------------------------------------------------------* 
*   close dataset                                                      * 
*----------------------------------------------------------------------* 
FORM CLOSE_DATASET USING P_DATASET. 
  CLOSE DATASET P_DATASET. 
ENDFORM. 

*----------------------------------------------------------------------* 
*   create batchinput session                                          * 
*   (not for call transaction using...)                                * 
*----------------------------------------------------------------------* 
FORM OPEN_GROUP. 
  IF SESSION = 'X'. 
    SKIP. 
    WRITE: /(20) 'Create group'(I01), GROUP. 
    SKIP. 
*   open batchinput group 
    CALL FUNCTION 'BDC_OPEN_GROUP' 
         EXPORTING  CLIENT   = SY-MANDT 
                    GROUP    = GROUP 
                    USER     = USER 
                    KEEP     = KEEP 
                    HOLDDATE = HOLDDATE. 
    WRITE: /(30) 'BDC_OPEN_GROUP'(I02), 
            (12) 'returncode:'(I05), 
                 SY-SUBRC. 
  ENDIF. 
ENDFORM. 

*----------------------------------------------------------------------* 
*   end batchinput session                                             * 
*   (call transaction using...: error session)                         * 
*----------------------------------------------------------------------* 
FORM CLOSE_GROUP. 
  IF SESSION = 'X'. 
*   close batchinput group 
    CALL FUNCTION 'BDC_CLOSE_GROUP'. 
    WRITE: /(30) 'BDC_CLOSE_GROUP'(I04), 
            (12) 'returncode:'(I05), 
                 SY-SUBRC. 
  ELSE. 
    IF E_GROUP_OPENED = 'X'. 
      CALL FUNCTION 'BDC_CLOSE_GROUP'. 
      WRITE: /. 
      WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06). 
    ENDIF. 
  ENDIF. 
ENDFORM. 

*----------------------------------------------------------------------* 
*        Start new transaction according to parameters                 * 
*----------------------------------------------------------------------* 
FORM BDC_TRANSACTION USING TCODE. 
  DATA: L_MSTRING(480). 
  DATA: L_SUBRC LIKE SY-SUBRC. 
* batch input session 
  IF SESSION = 'X'. 
    CALL FUNCTION 'BDC_INSERT' 
         EXPORTING TCODE     = TCODE 
         TABLES    DYNPROTAB = BDCDATA. 
    IF SMALLLOG &amp;lt;&amp;gt; 'X'. 
      WRITE: / 'BDC_INSERT'(I03), 
               TCODE, 
               'returncode:'(I05), 
               SY-SUBRC, 
               'RECORD:', 
               SY-INDEX. 
    ENDIF. 
* call transaction using 
  ELSE. 
    REFRESH MESSTAB. 
    CALL TRANSACTION TCODE USING BDCDATA 
                     MODE   CTUMODE 
                     UPDATE CUPDATE 
                     MESSAGES INTO MESSTAB. 
    L_SUBRC = SY-SUBRC. 
    IF SMALLLOG &amp;lt;&amp;gt; 'X'. 
*      WRITE: / 'CALL_TRANSACTION', 
*               TCODE, 
*               'returncode:'(I05), 
*               L_SUBRC, 
*               'RECORD:', 
*               SY-INDEX. 
      IF SY-SUBRC = 0. 
         FORMAT COLOR OFF. 
         WRITE:/ 'Successfully Process ', MESSTAB, RECORD. 
      ELSE. 
         FORMAT COLOR COL_NEGATIVE. 
         WRITE:/ 'Failed Process ', MESSTAB, RECORD. 
      ENDIF. 
      LOOP AT MESSTAB. 
        SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA 
                                  AND   ARBGB = MESSTAB-MSGID 
                                  AND   MSGNR = MESSTAB-MSGNR. 
        IF SY-SUBRC = 0. 
          L_MSTRING = T100-TEXT. 
          IF L_MSTRING CS '&amp;amp;1'. 
            REPLACE '&amp;amp;1' WITH MESSTAB-MSGV1 INTO L_MSTRING. 
            REPLACE '&amp;amp;2' WITH MESSTAB-MSGV2 INTO L_MSTRING. 
            REPLACE '&amp;amp;3' WITH MESSTAB-MSGV3 INTO L_MSTRING. 
            REPLACE '&amp;amp;4' WITH MESSTAB-MSGV4 INTO L_MSTRING. 
          ELSE. 
            REPLACE '&amp;amp;' WITH MESSTAB-MSGV1 INTO L_MSTRING. 
            REPLACE '&amp;amp;' WITH MESSTAB-MSGV2 INTO L_MSTRING. 
            REPLACE '&amp;amp;' WITH MESSTAB-MSGV3 INTO L_MSTRING. 
            REPLACE '&amp;amp;' WITH MESSTAB-MSGV4 INTO L_MSTRING. 
          ENDIF. 
          CONDENSE L_MSTRING. 
          WRITE: / MESSTAB-MSGTYP, L_MSTRING(250). 
        ELSE. 
          WRITE: / MESSTAB. 
        ENDIF. 
      ENDLOOP. 
      SKIP. 
    ENDIF. 
** Erzeugen fehlermappe ************************************************ 
    IF L_SUBRC &amp;lt;&amp;gt; 0 AND E_GROUP &amp;lt;&amp;gt; SPACE. 
      IF E_GROUP_OPENED = ' '. 
        CALL FUNCTION 'BDC_OPEN_GROUP' 
             EXPORTING  CLIENT   = SY-MANDT 
                        GROUP    = E_GROUP 
                        USER     = E_USER 
                        KEEP     = E_KEEP 
                        HOLDDATE = E_HDATE. 
         E_GROUP_OPENED = 'X'. 
      ENDIF. 
      CALL FUNCTION 'BDC_INSERT' 
           EXPORTING TCODE     = TCODE 
           TABLES    DYNPROTAB = BDCDATA. 
    ENDIF. 
  ENDIF. 
  REFRESH BDCDATA. 
ENDFORM. 

*----------------------------------------------------------------------* 
*        Start new screen                                              * 
*----------------------------------------------------------------------* 
FORM BDC_DYNPRO USING PROGRAM DYNPRO. 
  CLEAR BDCDATA. 
  BDCDATA-PROGRAM  = PROGRAM. 
  BDCDATA-DYNPRO   = DYNPRO. 
  BDCDATA-DYNBEGIN = 'X'. 
  APPEND BDCDATA. 
ENDFORM. 

*----------------------------------------------------------------------* 
*        Insert field                                                  * 
*----------------------------------------------------------------------* 
FORM BDC_FIELD USING FNAM FVAL. 
  IF FVAL &amp;lt;&amp;gt; NODATA. 
    CLEAR BDCDATA. 
    BDCDATA-FNAM = FNAM. 
    BDCDATA-FVAL = FVAL. 
    APPEND BDCDATA. 
  ENDIF. 
ENDFORM.  
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward  points  if it is usefull .....&lt;/P&gt;&lt;P&gt;Girish&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 29 Jun 2007 05:43:55 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-29T05:43:55Z</dc:date>
    <item>
      <title>using bdc to upload the data in internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/using-bdc-to-upload-the-data-in-internal-table/m-p/2477385#M557795</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi&lt;/P&gt;&lt;P&gt;       using bdc to upload the data in internal table using these commands&lt;/P&gt;&lt;P&gt;1.bdc_open_group&lt;/P&gt;&lt;P&gt;2.bdc_insert&lt;/P&gt;&lt;P&gt;3.bdc_close_group&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Jun 2007 05:36:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/using-bdc-to-upload-the-data-in-internal-table/m-p/2477385#M557795</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-29T05:36:54Z</dc:date>
    </item>
    <item>
      <title>Re: using bdc to upload the data in internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/using-bdc-to-upload-the-data-in-internal-table/m-p/2477386#M557796</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Senthi,&lt;/P&gt;&lt;P&gt;Check out this link:&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/ab001.htm" target="test_blank"&gt;http://www.sap-img.com/ab001.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Reward if useful!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Jun 2007 05:38:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/using-bdc-to-upload-the-data-in-internal-table/m-p/2477386#M557796</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-29T05:38:06Z</dc:date>
    </item>
    <item>
      <title>Re: using bdc to upload the data in internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/using-bdc-to-upload-the-data-in-internal-table/m-p/2477387#M557797</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check this code it may help u.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT z_nvk_bdc_tbl 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;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;   DO NOT CHANGE - the generated data section - DO NOT CHANGE    ***&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  If it is nessesary to change the data section use the rules:&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  1.) Each definition of a field exists of two lines&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  2.) The first line shows exactly the comment&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      '* data element: ' followed with the data element&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      which describes the field.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      If you don't have a data element use the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      comment without a data element name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  3.) The second line shows the fieldname of the&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      structure, the fieldname must consist of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      a fieldname and optional the character '_' and&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      three numbers and the field length in brackets&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  4.) Each field must be type C.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;Generated data section with specific formatting - DO NOT CHANGE  ***&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF record OCCURS 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: LIF16&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        lifnr_001(016),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: BUKRS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        bukrs_002(004),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: KTOKK&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ktokk_003(004),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: ANRED&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        anred_004(015),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: NAME1_GP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        name1_005(035),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: SORTL&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        sortl_006(010),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: LAND1_GP&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        land1_007(003),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: KUNNR&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        kunnr_008(010),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: BANKS&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        banks_01_009(003),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: BANKK&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        bankl_01_010(015),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: BANKN&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        bankn_01_011(018),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: AKONT&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        akont_012(010),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;data element: FDGRV&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        fdgrv_013(010),&lt;/P&gt;&lt;P&gt;      END OF record.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA: IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA: V_BANKS(14), V_BANKL(14), V_BANKN(14), V_NUMC(2) TYPE N,&lt;/P&gt;&lt;P&gt;V_TABIX LIKE SY-TABIX.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="3" type="ul"&gt;&lt;P&gt;End generated data section ***&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;/UL&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;  perform upload_data.&lt;/P&gt;&lt;P&gt;  PERFORM open_group.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  SORT RECORD BY LIFNR_001.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LOOP AT RECORD.&lt;/P&gt;&lt;P&gt;    V_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;    AT NEW KUNNR_008.&lt;/P&gt;&lt;P&gt;    REFRESH IT_BDC.&lt;/P&gt;&lt;P&gt;    CLEAR V_NUMC.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    PERFORM bdc_dynpro      USING 'SAPMF02K' '0105'.&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;                                  record-lifnr_001.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'RF02K-BUKRS'&lt;/P&gt;&lt;P&gt;                                  record-bukrs_002.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'RF02K-KTOKK'&lt;/P&gt;&lt;P&gt;                                  record-ktokk_003.&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-LAND1'.&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;                                  record-anred_004.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'LFA1-NAME1'&lt;/P&gt;&lt;P&gt;                                  record-name1_005.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'LFA1-SORTL'&lt;/P&gt;&lt;P&gt;                                  record-sortl_006.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'LFA1-LAND1'&lt;/P&gt;&lt;P&gt;                                  record-land1_007.&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_field       USING 'LFA1-KUNNR'&lt;/P&gt;&lt;P&gt;                                  record-kunnr_008.&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(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;    ENDAT.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    V_NUMC = V_NUMC + 1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    CONCATENATE 'LFBK-BANKS(' V_NUMC ')' INTO V_BANKS.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'LFBK-BANKL(' V_NUMC ')' INTO V_BANKL.&lt;/P&gt;&lt;P&gt;    CONCATENATE 'LFBK-BANKN(' V_NUMC ')' INTO V_BANKN.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING V_BANKS&lt;/P&gt;&lt;P&gt;                                  record-banks_01_009.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING V_BANKL&lt;/P&gt;&lt;P&gt;                                  record-bankl_01_010.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING V_BANKN&lt;/P&gt;&lt;P&gt;                                  record-bankn_01_011.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;   AT END OF KUNNR_008.&lt;/P&gt;&lt;P&gt;    READ TABLE RECORD INDEX V_TABIX.&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;                                  '=UPDA'.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'LFB1-AKONT'&lt;/P&gt;&lt;P&gt;                                  record-akont_012.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'LFB1-FDGRV'&lt;/P&gt;&lt;P&gt;                                  record-fdgrv_013.&lt;/P&gt;&lt;P&gt;    PERFORM bdc_transaction USING 'FK01'.&lt;/P&gt;&lt;P&gt;   ENDAT.&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;&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 new screen                                              *&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 BDC_DYNPRO USING PROGRAM DYNPRO.&lt;/P&gt;&lt;P&gt;  CLEAR IT_BDC.&lt;/P&gt;&lt;P&gt;  IT_BDC-PROGRAM  = PROGRAM.&lt;/P&gt;&lt;P&gt;  IT_BDC-DYNPRO   = DYNPRO.&lt;/P&gt;&lt;P&gt;  IT_BDC-DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND IT_BDC.&lt;/P&gt;&lt;P&gt;ENDFORM.&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;       Insert field                                                  *&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 BDC_FIELD USING FNAM FVAL.&lt;/P&gt;&lt;P&gt;  IF FVAL &amp;lt;&amp;gt; ' '.&lt;/P&gt;&lt;P&gt;    CLEAR IT_BDC.&lt;/P&gt;&lt;P&gt;    IT_BDC-FNAM = FNAM.&lt;/P&gt;&lt;P&gt;    IT_BDC-FVAL = FVAL.&lt;/P&gt;&lt;P&gt;    APPEND IT_BDC.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.&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  upload_data&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 upload_data .&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WS_UPLOAD'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CODEPAGE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   FILENAME                      = 'c:\bank.txt'&lt;/P&gt;&lt;P&gt;   FILETYPE                      = 'ASC'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HEADLEN                       = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  LINE_EXIT                     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TRUNCLEN                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  USER_FORM                     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  USER_PROG                     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DAT_D_FORMAT                  = ' '&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;/UL&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;    data_tab                      = record&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;  CONVERSION_ERROR              = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_OPEN_ERROR               = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  FILE_READ_ERROR               = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INVALID_TYPE                  = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_BATCH                      = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  UNKNOWN_ERROR                 = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  INVALID_TABLE_WIDTH           = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  GUI_REFUSE_FILETRANSFER       = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CUSTOMER_ERROR                = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NO_AUTHORITY                  = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                        = 11&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;endform.                    " upload_data&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  open_group&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 open_group .&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;P&gt;   CLIENT                    = SY-MANDT&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  DEST                      = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   GROUP                     = 'Z_NVK_TBL'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  HOLDDATE                  = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   KEEP                      = 'X'&lt;/P&gt;&lt;P&gt;   USER                      = SY-UNAME&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  RECORD                    = FILLER1&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   PROG                      = SY-CPROG&lt;/P&gt;&lt;UL&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;  QID                       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   CLIENT_INVALID            = 1&lt;/P&gt;&lt;P&gt;   DESTINATION_INVALID       = 2&lt;/P&gt;&lt;P&gt;   GROUP_INVALID             = 3&lt;/P&gt;&lt;P&gt;   GROUP_IS_LOCKED           = 4&lt;/P&gt;&lt;P&gt;   HOLDDATE_INVALID          = 5&lt;/P&gt;&lt;P&gt;   INTERNAL_ERROR            = 6&lt;/P&gt;&lt;P&gt;   QUEUE_ERROR               = 7&lt;/P&gt;&lt;P&gt;   RUNNING                   = 8&lt;/P&gt;&lt;P&gt;   SYSTEM_LOCK_ERROR         = 9&lt;/P&gt;&lt;P&gt;   USER_INVALID              = 10&lt;/P&gt;&lt;P&gt;   OTHERS                    = 11&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;endform.                    " open_group&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  close_group&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 close_group .&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;P&gt;   NOT_OPEN          = 1&lt;/P&gt;&lt;P&gt;   QUEUE_ERROR       = 2&lt;/P&gt;&lt;P&gt;   OTHERS            = 3&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;endform.                    " close_group&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  bdc_transaction&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;      text&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_0209   text&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 bdc_transaction  using  T_CODE.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;P&gt;   TCODE                  = T_CODE&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POST_LOCAL             = NOVBLOCAL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PRINTING               = NOPRINT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  SIMUBATCH              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  CTUPARAMS              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  TABLES&lt;/P&gt;&lt;P&gt;    dynprotab              = IT_BDC&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;  INTERNAL_ERROR         = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  NOT_OPEN               = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  QUEUE_ERROR            = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  TCODE_INVALID          = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  PRINTING_INVALID       = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  POSTING_INVALID        = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  OTHERS                 = 7&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;endform.                 &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Jun 2007 05:41:22 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/using-bdc-to-upload-the-data-in-internal-table/m-p/2477387#M557797</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-29T05:41:22Z</dc:date>
    </item>
    <item>
      <title>Re: using bdc to upload the data in internal table</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/using-bdc-to-upload-the-data-in-internal-table/m-p/2477388#M557798</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;It  has the   following  3  function  modules  with  detailed   parameter passed to it  .&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;&lt;/P&gt;&lt;P&gt;1.bdc_open_group&lt;/P&gt;&lt;P&gt;2.bdc_insert&lt;/P&gt;&lt;P&gt;3.bdc_close_group&amp;lt;/b&amp;gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;***INCLUDE ZBDCRECX1. 
*  When you generate the program using SHDB, you can replace it 
*  with this if you want to execute it immediately without having 
*  to process it using SM35. 
* 
*  During testing you can used the original include. 
* 
*  For example, 
*  include zbdcrecx1.   "After test 
*  include bdcrecx.     "Before test 
*  ------------------------------------- 
*  Declare your internal table as RECORD 
*  ------------------------------------- 
*  for programs doing a data transfer by creating a batch-input session 
*  and 
*  for programs doing a data transfer by CALL TRANSACTION USING 

*SELECTION-SCREEN BEGIN OF LINE. 
*  PARAMETERS SESSION RADIOBUTTON GROUP CTU.  "create session 
*  SELECTION-SCREEN COMMENT 3(20) TEXT-S07 FOR FIELD SESSION. 
*  selection-screen position 45. 
*  PARAMETERS CTU RADIOBUTTON GROUP CTU DEFAULT 'X'. "call transaction 
*  SELECTION-SCREEN COMMENT 48(20) TEXT-S08 FOR FIELD CTU. 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: SESSION NO-DISPLAY, 
            CTU     NO-DISPLAY DEFAULT 'X'. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 3(20) TEXT-S01 FOR FIELD GROUP. 
*  selection-screen position 25. 
*  PARAMETERS GROUP(12).                      "group name of session 
*  SELECTION-SCREEN COMMENT 48(20) TEXT-S05 FOR FIELD CTUMODE. 
*  selection-screen position 70. 
*  PARAMETERS CTUMODE LIKE CTU_PARAMS-DISMODE DEFAULT 'N'. 
*                                      "A: show all dynpros 
*                                      "E: show dynpro on error only 
*                                      "N: do not display dynpro 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: GROUP(12) NO-DISPLAY, 
            CTUMODE   NO-DISPLAY DEFAULT 'N'. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 3(20) TEXT-S02 FOR FIELD USER. 
*  selection-screen position 25. 
*  PARAMETERS: USER(12) DEFAULT SY-UNAME.    "user for session in batch 
*  SELECTION-SCREEN COMMENT 48(20) TEXT-S06 FOR FIELD CUPDATE. 
*  selection-screen position 70. 
*  PARAMETERS CUPDATE LIKE CTU_PARAMS-UPDMODE DEFAULT 'L'. 
*                                      "S: synchronously 
*                                      "A: asynchronously 
*                                      "L: local 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: USER(12) NO-DISPLAY DEFAULT SY-UNAME, 
            CUPDATE LIKE CTU_PARAMS-UPDMODE DEFAULT 'L' NO-DISPLAY. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 3(20) TEXT-S03 FOR FIELD KEEP. 
*  selection-screen position 25. 
*  PARAMETERS: KEEP AS CHECKBOX.       "' ' = delete session if finished 
*                                      "'X' = keep   session if finished 
*  SELECTION-SCREEN COMMENT 48(20) TEXT-S09 FOR FIELD E_GROUP. 
*  selection-screen position 70. 
*  parameters E_GROUP(12).             "group name of error-session 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: KEEP        NO-DISPLAY, 
            E_GROUP(12) NO-DISPLAY. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 3(20) TEXT-S04 FOR FIELD HOLDDATE. 
*  selection-screen position 25. 
*  PARAMETERS: HOLDDATE LIKE SY-DATUM. 
*  SELECTION-SCREEN COMMENT 51(17) TEXT-S02 FOR FIELD E_USER. 
*  selection-screen position 70. 
*  PARAMETERS: E_USER(12) DEFAULT SY-UNAME.    "user for error-session 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: HOLDDATE LIKE SY-DATUM NO-DISPLAY, 
           E_USER(12) DEFAULT SY-UNAME NO-DISPLAY. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 51(17) TEXT-S03 FOR FIELD E_KEEP. 
*  selection-screen position 70. 
*  PARAMETERS: E_KEEP AS CHECKBOX.     "' ' = delete session if finished 
*                                      "'X' = keep   session if finished 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: E_KEEP NO-DISPLAY. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 51(17) TEXT-S04 FOR FIELD E_HDATE. 
*  selection-screen position 70. 
*  PARAMETERS: E_HDATE LIKE SY-DATUM. 
*SELECTION-SCREEN END OF LINE. 
* 
*SELECTION-SCREEN SKIP. 
PARAMETERS: E_HDATE LIKE SY-DATUM NO-DISPLAY. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 1(33) TEXT-S10 FOR FIELD NODATA. 
*  PARAMETERS: NODATA DEFAULT '/' LOWER CASE.          "nodata 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: NODATA DEFAULT '/' LOWER CASE NO-DISPLAY. 

*SELECTION-SCREEN BEGIN OF LINE. 
*  SELECTION-SCREEN COMMENT 1(33) FOR FIELD SMALLLOG. 
*  PARAMETERS: SMALLLOG as checkbox.  "' ' = log all transactions 
*                                     "'X' = no transaction logging 
*SELECTION-SCREEN END OF LINE. 
PARAMETERS: SMALLLOG NO-DISPLAY. 

*----------------------------------------------------------------------* 
*   data definition 
*----------------------------------------------------------------------* 
*       Batchinputdata of single transaction 
DATA:   BDCDATA LIKE BDCDATA    OCCURS 0 WITH HEADER LINE. 
*       messages of call transaction 
DATA:   MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. 
*       error session opened (' ' or 'X') 
DATA:   E_GROUP_OPENED. 
*       message texts 
TABLES: T100. 
  

*----------------------------------------------------------------------* 
*   at selection screen                                                * 
*----------------------------------------------------------------------* 
AT SELECTION-SCREEN. 
* group and user must be filled for create session 
  IF SESSION = 'X' AND 
     GROUP = SPACE OR USER = SPACE. 
    MESSAGE E613(MS). 
  ENDIF. 

*----------------------------------------------------------------------* 
*   open dataset                                                       * 
*----------------------------------------------------------------------* 
FORM OPEN_DATASET USING P_DATASET. 
  OPEN DATASET P_DATASET IN TEXT MODE. 
  IF SY-SUBRC &amp;lt;&amp;gt; 0. 
    WRITE: / TEXT-E00, SY-SUBRC. 
    STOP. 
  ENDIF. 
ENDFORM. 

*----------------------------------------------------------------------* 
*   close dataset                                                      * 
*----------------------------------------------------------------------* 
FORM CLOSE_DATASET USING P_DATASET. 
  CLOSE DATASET P_DATASET. 
ENDFORM. 

*----------------------------------------------------------------------* 
*   create batchinput session                                          * 
*   (not for call transaction using...)                                * 
*----------------------------------------------------------------------* 
FORM OPEN_GROUP. 
  IF SESSION = 'X'. 
    SKIP. 
    WRITE: /(20) 'Create group'(I01), GROUP. 
    SKIP. 
*   open batchinput group 
    CALL FUNCTION 'BDC_OPEN_GROUP' 
         EXPORTING  CLIENT   = SY-MANDT 
                    GROUP    = GROUP 
                    USER     = USER 
                    KEEP     = KEEP 
                    HOLDDATE = HOLDDATE. 
    WRITE: /(30) 'BDC_OPEN_GROUP'(I02), 
            (12) 'returncode:'(I05), 
                 SY-SUBRC. 
  ENDIF. 
ENDFORM. 

*----------------------------------------------------------------------* 
*   end batchinput session                                             * 
*   (call transaction using...: error session)                         * 
*----------------------------------------------------------------------* 
FORM CLOSE_GROUP. 
  IF SESSION = 'X'. 
*   close batchinput group 
    CALL FUNCTION 'BDC_CLOSE_GROUP'. 
    WRITE: /(30) 'BDC_CLOSE_GROUP'(I04), 
            (12) 'returncode:'(I05), 
                 SY-SUBRC. 
  ELSE. 
    IF E_GROUP_OPENED = 'X'. 
      CALL FUNCTION 'BDC_CLOSE_GROUP'. 
      WRITE: /. 
      WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06). 
    ENDIF. 
  ENDIF. 
ENDFORM. 

*----------------------------------------------------------------------* 
*        Start new transaction according to parameters                 * 
*----------------------------------------------------------------------* 
FORM BDC_TRANSACTION USING TCODE. 
  DATA: L_MSTRING(480). 
  DATA: L_SUBRC LIKE SY-SUBRC. 
* batch input session 
  IF SESSION = 'X'. 
    CALL FUNCTION 'BDC_INSERT' 
         EXPORTING TCODE     = TCODE 
         TABLES    DYNPROTAB = BDCDATA. 
    IF SMALLLOG &amp;lt;&amp;gt; 'X'. 
      WRITE: / 'BDC_INSERT'(I03), 
               TCODE, 
               'returncode:'(I05), 
               SY-SUBRC, 
               'RECORD:', 
               SY-INDEX. 
    ENDIF. 
* call transaction using 
  ELSE. 
    REFRESH MESSTAB. 
    CALL TRANSACTION TCODE USING BDCDATA 
                     MODE   CTUMODE 
                     UPDATE CUPDATE 
                     MESSAGES INTO MESSTAB. 
    L_SUBRC = SY-SUBRC. 
    IF SMALLLOG &amp;lt;&amp;gt; 'X'. 
*      WRITE: / 'CALL_TRANSACTION', 
*               TCODE, 
*               'returncode:'(I05), 
*               L_SUBRC, 
*               'RECORD:', 
*               SY-INDEX. 
      IF SY-SUBRC = 0. 
         FORMAT COLOR OFF. 
         WRITE:/ 'Successfully Process ', MESSTAB, RECORD. 
      ELSE. 
         FORMAT COLOR COL_NEGATIVE. 
         WRITE:/ 'Failed Process ', MESSTAB, RECORD. 
      ENDIF. 
      LOOP AT MESSTAB. 
        SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA 
                                  AND   ARBGB = MESSTAB-MSGID 
                                  AND   MSGNR = MESSTAB-MSGNR. 
        IF SY-SUBRC = 0. 
          L_MSTRING = T100-TEXT. 
          IF L_MSTRING CS '&amp;amp;1'. 
            REPLACE '&amp;amp;1' WITH MESSTAB-MSGV1 INTO L_MSTRING. 
            REPLACE '&amp;amp;2' WITH MESSTAB-MSGV2 INTO L_MSTRING. 
            REPLACE '&amp;amp;3' WITH MESSTAB-MSGV3 INTO L_MSTRING. 
            REPLACE '&amp;amp;4' WITH MESSTAB-MSGV4 INTO L_MSTRING. 
          ELSE. 
            REPLACE '&amp;amp;' WITH MESSTAB-MSGV1 INTO L_MSTRING. 
            REPLACE '&amp;amp;' WITH MESSTAB-MSGV2 INTO L_MSTRING. 
            REPLACE '&amp;amp;' WITH MESSTAB-MSGV3 INTO L_MSTRING. 
            REPLACE '&amp;amp;' WITH MESSTAB-MSGV4 INTO L_MSTRING. 
          ENDIF. 
          CONDENSE L_MSTRING. 
          WRITE: / MESSTAB-MSGTYP, L_MSTRING(250). 
        ELSE. 
          WRITE: / MESSTAB. 
        ENDIF. 
      ENDLOOP. 
      SKIP. 
    ENDIF. 
** Erzeugen fehlermappe ************************************************ 
    IF L_SUBRC &amp;lt;&amp;gt; 0 AND E_GROUP &amp;lt;&amp;gt; SPACE. 
      IF E_GROUP_OPENED = ' '. 
        CALL FUNCTION 'BDC_OPEN_GROUP' 
             EXPORTING  CLIENT   = SY-MANDT 
                        GROUP    = E_GROUP 
                        USER     = E_USER 
                        KEEP     = E_KEEP 
                        HOLDDATE = E_HDATE. 
         E_GROUP_OPENED = 'X'. 
      ENDIF. 
      CALL FUNCTION 'BDC_INSERT' 
           EXPORTING TCODE     = TCODE 
           TABLES    DYNPROTAB = BDCDATA. 
    ENDIF. 
  ENDIF. 
  REFRESH BDCDATA. 
ENDFORM. 

*----------------------------------------------------------------------* 
*        Start new screen                                              * 
*----------------------------------------------------------------------* 
FORM BDC_DYNPRO USING PROGRAM DYNPRO. 
  CLEAR BDCDATA. 
  BDCDATA-PROGRAM  = PROGRAM. 
  BDCDATA-DYNPRO   = DYNPRO. 
  BDCDATA-DYNBEGIN = 'X'. 
  APPEND BDCDATA. 
ENDFORM. 

*----------------------------------------------------------------------* 
*        Insert field                                                  * 
*----------------------------------------------------------------------* 
FORM BDC_FIELD USING FNAM FVAL. 
  IF FVAL &amp;lt;&amp;gt; NODATA. 
    CLEAR BDCDATA. 
    BDCDATA-FNAM = FNAM. 
    BDCDATA-FVAL = FVAL. 
    APPEND BDCDATA. 
  ENDIF. 
ENDFORM.  
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward  points  if it is usefull .....&lt;/P&gt;&lt;P&gt;Girish&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Jun 2007 05:43:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/using-bdc-to-upload-the-data-in-internal-table/m-p/2477388#M557798</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-29T05:43:55Z</dc:date>
    </item>
  </channel>
</rss>

