<?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: bdc tutorials in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-tutorials/m-p/3517008#M845867</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;Here I am giving you sample code. You can use this for reference when you r doing ur code.&lt;/P&gt;&lt;P&gt;For detailed tutorial, you can go thru the link which is given,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  z50871mm_bdcp_assignment3 NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                                  LINE-SIZE 255.&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;                STRUCTURE DECLARATION&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;TYPES : BEGIN OF st_vendor,&lt;/P&gt;&lt;P&gt;         ktokk TYPE rf02k-ktokk,               "account group&lt;/P&gt;&lt;P&gt;         anred TYPE lfa1-anred,                "title&lt;/P&gt;&lt;P&gt;         name1 TYPE lfa1-name1,                "vendor name&lt;/P&gt;&lt;P&gt;         sortl TYPE lfa1-sortl,                "search term&lt;/P&gt;&lt;P&gt;         pstlz TYPE lfa1-pstlz,                "postal code&lt;/P&gt;&lt;P&gt;         land1 TYPE lfa1-land1,                "country&lt;/P&gt;&lt;P&gt;         banks TYPE lfbk-banks,&lt;/P&gt;&lt;P&gt;         bankl TYPE lfbk-bankl,                "bank key&lt;/P&gt;&lt;P&gt;         bankn TYPE lfbk-bankn,                "account number&lt;/P&gt;&lt;P&gt;        END OF st_vendor.&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF st_success,&lt;/P&gt;&lt;P&gt;         lifnr TYPE lfa1-lifnr,                 "vendor number&lt;/P&gt;&lt;P&gt;         name TYPE lfa1-name1,                  "vendor name&lt;/P&gt;&lt;P&gt;        END OF st_success.&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF st_error,&lt;/P&gt;&lt;P&gt;        linno TYPE i,                           "line number&lt;/P&gt;&lt;P&gt;        message TYPE string,                    "error message&lt;/P&gt;&lt;P&gt;       END OF st_error.&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;             INTERNAL TABLE DECLARATIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             WORK AREA DECLARATIONS&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;DATA : it_vendor TYPE STANDARD TABLE OF st_vendor,&lt;/P&gt;&lt;P&gt;       wa_vendor TYPE st_vendor,&lt;/P&gt;&lt;P&gt;       it_success TYPE STANDARD TABLE OF st_success,&lt;/P&gt;&lt;P&gt;       wa_success TYPE st_success,&lt;/P&gt;&lt;P&gt;       it_error TYPE STANDARD TABLE OF st_error,&lt;/P&gt;&lt;P&gt;       wa_error TYPE st_error,&lt;/P&gt;&lt;P&gt;       it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_message LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.&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;                   DATA DECLARATION&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;DATA : v_file TYPE string,&lt;/P&gt;&lt;P&gt;       v_tcode(4) VALUE 'XK01',&lt;/P&gt;&lt;P&gt;       v_index LIKE sy-tabix,&lt;/P&gt;&lt;P&gt;       v_totalrec TYPE i,&lt;/P&gt;&lt;P&gt;       v_errrec TYPE i,&lt;/P&gt;&lt;P&gt;       v_succrec TYPE i.&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;               SELECTION 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;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_file TYPE rlgrap-filename.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-010.&lt;/P&gt;&lt;P&gt;PARAMETERS p_mode LIKE ctu_params-dismode DEFAULT 'N' .&lt;/P&gt;&lt;P&gt;"A: show all dynpros&lt;/P&gt;&lt;P&gt;"E: show dynpro on error only&lt;/P&gt;&lt;P&gt;"N: do not display dynpro&lt;/P&gt;&lt;P&gt;PARAMETERS p_update LIKE ctu_params-updmode DEFAULT 'S'.&lt;/P&gt;&lt;P&gt;"S: synchronously&lt;/P&gt;&lt;P&gt;"A: asynchronously&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b2.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-011.&lt;/P&gt;&lt;P&gt;PARAMETERS : p_group(12) DEFAULT '50871'.         "group name for error session&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b3.&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;           AT  SELECTION SCREEN ON VALUE-REQUEST&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;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;P&gt;      field_name    = ' '&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      file_name     = p_file.&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;  v_file = p_file.&lt;/P&gt;&lt;P&gt;*gui upload&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;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab                = it_vendor&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      file_open_error         = 1&lt;/P&gt;&lt;P&gt;      file_read_error         = 2&lt;/P&gt;&lt;P&gt;      no_batch                = 3&lt;/P&gt;&lt;P&gt;      gui_refuse_filetransfer = 4&lt;/P&gt;&lt;P&gt;      invalid_type            = 5&lt;/P&gt;&lt;P&gt;      no_authority            = 6&lt;/P&gt;&lt;P&gt;      unknown_error           = 7&lt;/P&gt;&lt;P&gt;      bad_data_format         = 8&lt;/P&gt;&lt;P&gt;      header_not_allowed      = 9&lt;/P&gt;&lt;P&gt;      separator_not_allowed   = 10&lt;/P&gt;&lt;P&gt;      header_too_long         = 11&lt;/P&gt;&lt;P&gt;      unknown_dp_error        = 12&lt;/P&gt;&lt;P&gt;      access_denied           = 13&lt;/P&gt;&lt;P&gt;      dp_out_of_memory        = 14&lt;/P&gt;&lt;P&gt;      disk_full               = 15&lt;/P&gt;&lt;P&gt;      dp_timeout              = 16&lt;/P&gt;&lt;P&gt;      OTHERS                  = 17.&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;*loadind data into it_bdcdata&lt;/P&gt;&lt;P&gt;  LOOP AT it_vendor INTO wa_vendor.&lt;/P&gt;&lt;P&gt;    v_index = sy-tabix.&lt;/P&gt;&lt;P&gt;    PERFORM load_bdcdata.&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;              CALL TRANSACTION&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;    CALL TRANSACTION v_tcode USING it_bdcdata&lt;/P&gt;&lt;P&gt;                          MODE     p_mode&lt;/P&gt;&lt;P&gt;                          UPDATE p_update&lt;/P&gt;&lt;P&gt;                          MESSAGES INTO it_message.&lt;/P&gt;&lt;P&gt;*reading success&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      READ TABLE it_message WITH KEY msgtyp = 'S'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        wa_success-lifnr = it_message-msgv1.&lt;/P&gt;&lt;P&gt;        wa_success-name =  wa_vendor-name1.&lt;/P&gt;&lt;P&gt;        APPEND wa_success TO it_success.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;*reading errors&lt;/P&gt;&lt;P&gt;      READ TABLE  it_message WITH KEY msgtyp =  'E'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            id  = sy-msgid&lt;/P&gt;&lt;P&gt;            no  = it_message-msgnr&lt;/P&gt;&lt;P&gt;            v1  = it_message-msgv1&lt;/P&gt;&lt;P&gt;            v2  = it_message-msgv2&lt;/P&gt;&lt;P&gt;            v3  = it_message-msgv3&lt;/P&gt;&lt;P&gt;            v4  = it_message-msgv4&lt;/P&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;            msg = wa_error-message.&lt;/P&gt;&lt;P&gt;        wa_error-linno = v_index.&lt;/P&gt;&lt;P&gt;        APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;        CLEAR wa_error.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;*session opening&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;P&gt;          group    = p_group&lt;/P&gt;&lt;P&gt;          holddate = sy-datum&lt;/P&gt;&lt;P&gt;          keep     = 'X'&lt;/P&gt;&lt;P&gt;          user     = sy-uname.&lt;/P&gt;&lt;P&gt;*inserting into session&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          tcode     = 'XK01'&lt;/P&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          dynprotab = it_bdcdata.&lt;/P&gt;&lt;P&gt;*closing session&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR: it_bdcdata, it_message.&lt;/P&gt;&lt;P&gt;    REFRESH: it_bdcdata, it_message.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&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;              SUMMARY DISPLAY&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;  DESCRIBE TABLE it_vendor LINES v_totalrec.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_error LINES v_errrec.&lt;/P&gt;&lt;P&gt;  v_succrec = v_totalrec - v_errrec .&lt;/P&gt;&lt;P&gt;  WRITE : /1 text-004 COLOR 1.&lt;/P&gt;&lt;P&gt;  WRITE : /2 'Total Records Processed :', 25 v_totalrec,&lt;/P&gt;&lt;P&gt;          /2 'Error Records           :', 25 v_errrec,&lt;/P&gt;&lt;P&gt;          /2 'Successful Records      :', 25 v_succrec.&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;P&gt;  WRITE : /1 text-005 COLOR 1.&lt;/P&gt;&lt;P&gt;  LOOP AT it_error INTO wa_error.&lt;/P&gt;&lt;P&gt;    WRITE:/2 wa_error-linno,&lt;/P&gt;&lt;P&gt;          wa_error-message.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;P&gt;  WRITE : /1 text-009 COLOR 1.&lt;/P&gt;&lt;P&gt;  ULINE AT : /2(46).&lt;/P&gt;&lt;P&gt;  WRITE :/2 sy-vline ,(10) 'VENDOR NUM' , 15 sy-vline , 17 'VENDOR NAME' , 47 sy-vline.&lt;/P&gt;&lt;P&gt;  ULINE AT : /2(46).&lt;/P&gt;&lt;P&gt;  LOOP AT it_success INTO wa_success.&lt;/P&gt;&lt;P&gt;    WRITE:/2 sy-vline , wa_success-lifnr, 15 sy-vline , 17 wa_success-name , 47 sy-vline.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ULINE AT : /2(46).&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  append_bdcdata&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 append_bdcdata  USING  p_flag p_fname p_fval.&lt;/P&gt;&lt;P&gt;  CLEAR it_bdcdata.&lt;/P&gt;&lt;P&gt;  IF p_flag = 'X'.&lt;/P&gt;&lt;P&gt;    it_bdcdata-program  = p_fname.&lt;/P&gt;&lt;P&gt;    it_bdcdata-dynpro   = p_fval.&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;  ELSEIF NOT p_fval IS INITIAL.&lt;/P&gt;&lt;P&gt;    it_bdcdata-fnam = p_fname.&lt;/P&gt;&lt;P&gt;    it_bdcdata-fval = p_fval.&lt;/P&gt;&lt;P&gt;    APPEND it_bdcdata.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "append_bdcdata&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  load_bdcdata&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 load_bdcdata .&lt;/P&gt;&lt;P&gt;  PERFORM append_bdcdata  USING : 'X' 'SAPMF02K' '0100',&lt;/P&gt;&lt;P&gt;                                 ' ' 'BDC_OKCODE' '/00',&lt;/P&gt;&lt;P&gt;                                 ' ' 'RF02K-KTOKK' wa_vendor-ktokk,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                 'X' 'SAPMF02K' '0110',&lt;/P&gt;&lt;P&gt;                                 ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt;                                 ' ' 'LFA1-ANRED' wa_vendor-anred,&lt;/P&gt;&lt;P&gt;                                 ' '   'LFA1-NAME1' wa_vendor-name1,&lt;/P&gt;&lt;P&gt;                                 ' '  'LFA1-SORTL' wa_vendor-sortl,&lt;/P&gt;&lt;P&gt;                                 ' '  'LFA1-PSTLZ'  wa_vendor-pstlz,&lt;/P&gt;&lt;P&gt;                                 ' '   'LFA1-LAND1' wa_vendor-land1,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                 'X' 'SAPMF02K' '0120',&lt;/P&gt;&lt;P&gt;                                 ' ' 'BDC_OKCODE' '/00',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                 'X' 'SAPMF02K' '0130',&lt;/P&gt;&lt;P&gt;                                 ' ' 'BDC_OKCODE' '=ENTR',&lt;/P&gt;&lt;P&gt;                                 ' ' 'LFBK-BANKS(01)'  wa_vendor-banks,&lt;/P&gt;&lt;P&gt;                                 ' ' 'LFBK-BANKL(01)' wa_vendor-bankl,&lt;/P&gt;&lt;P&gt;                                 ' ' 'LFBK-BANKN(01)' wa_vendor-bankn,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                 'X' 'SAPMF02K' '0130',&lt;/P&gt;&lt;P&gt;                                 ' ' 'BDC_OKCODE' '=ENTR',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                 'X' 'SAPLSPO1' '0300',&lt;/P&gt;&lt;P&gt;                                 ' ' 'BDC_OKCODE' '=YES'.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " load_bdcdata&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Sandeep&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 02 Mar 2008 12:55:41 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-03-02T12:55:41Z</dc:date>
    <item>
      <title>bdc tutorials</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-tutorials/m-p/3517005#M845864</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i am new to bdc and i want to create a bdc for inspection plan.can anybody provide me simple and clear tutorials about it.&lt;/P&gt;&lt;P&gt;as help will be definately rewarded.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 02 Mar 2008 09:30:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-tutorials/m-p/3517005#M845864</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-02T09:30:31Z</dc:date>
    </item>
    <item>
      <title>Re: bdc tutorials</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-tutorials/m-p/3517006#M845865</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please refer to the link below:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/learning-bdc-programming.htm" target="test_blank"&gt;http://www.sap-img.com/abap/learning-bdc-programming.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Sriram Ponna.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 02 Mar 2008 11:29:42 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-tutorials/m-p/3517006#M845865</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-02T11:29:42Z</dc:date>
    </item>
    <item>
      <title>Re: bdc tutorials</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-tutorials/m-p/3517007#M845866</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check this bdc for inspection plan:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

REPORT ZQMB_QP01_INSP_PLAN
NO STANDARD PAGE HEADING LINE-SIZE 255 MESSAGE-ID ZQMB_INSP_PLAN.

----------------------------------------------------------------------

Description: Upload Program for Create Inspection Plan * 
----------------------------------------------------------------------

ABAP Name : ZQMB_QP01_INSP_PLAN * 
Autor : Vanessa Noronha * 
Type : BDC Program for QP01 Transaction. * 
Module : QM * 
Date : 17 January 2008 * 
Transport : D01K948244 -- TR-BDC for QP01 * 
----------------------------------------------------------------------

Changes (internal Version: Documentation/Info on line level) * 
----------------------------------------------------------------------

Date Name internal Transp.No. Description * 
-Version- * 
----------------------------------------------------------------------

************************************************************************


D A T A D E C L A R A T I O N * 
************************************************************************

TYPES: BEGIN OF TY_TABDATA,
MATNR TYPE RC27M-MATNR, "Material No
WERKS TYPE RC27M-WERKS, "Plant
PLNNR TYPE RC271-PLNNR, "Key for Task List Group
KTEXT TYPE PLKOD-KTEXT, "Task list description
VERWE TYPE PLKOD-VERWE, "Task list usage
STATU TYPE PLKOD-STATU, "Status
SLWBEZ TYPE PLKOD-SLWBEZ, "Identification for the Inspection Point Field Combination
QPRZIEHVER TYPE PLKOD-QPRZIEHVER, "Sample-Drawing Procedure
END OF TY_TABDATA.

TYPES: BEGIN OF TY_TBCTRL1,
MATNR TYPE RC27M-MATNR, "Material No
WERKS TYPE RC27M-WERKS, "Plant
PLNNR TYPE RC271-PLNNR, "Key for Task List Group
ARBPL TYPE PLPOD-ARBPL, "Work center
STEUS TYPE PLPOD-STEUS, "Control key
LTXA1 TYPE PLPOD-LTXA1, "Operation short text
END OF TY_TBCTRL1.

TYPES: BEGIN OF TY_TBCTRL2,
MATNR TYPE RC27M-MATNR, "Material No
WERKS TYPE RC27M-WERKS, "Plant
PLNNR TYPE RC271-PLNNR, "Key for Task List Group

ARBPL TYPE PLPOD-ARBPL, "Work center 
STEUS TYPE PLPOD-STEUS, "Control key 
VERWMERKM TYPE PLMKB-VERWMERKM, "Master Inspection Characteristics
PMETHODE TYPE PLMKB-PMETHODE, "Inspection Method

PMTVERSION TYPE PLMKB-PMTVERSION, "Version Number of the Inspection Method 
STICHPRVER TYPE PLMKB-STICHPRVER, "Sampling Procedure in Inspection Characteristic

PRUEFEINH(7)," TYPE PLMKB-PRUEFEINH, 
PROBEMGEH(3)," TYPE PLMKB-PROBEMGEH, 
STELLEN(3), "TYPE PLMKB-STELLEN, "Number of Places to the Right of a Decimal Point (Accuracy)
MASSEINHSW TYPE RQPAS-MASSEINHSW, "Measurement Unit in Which Quantitative Data Is Maintained
SOLLWERT TYPE QFLTP-SOLLWERT, "Target Value for a Quantitative Characteristic
TOLERANZUN TYPE QFLTP-TOLERANZUN, "Lower Specification Limit
TOLERANZOB TYPE QFLTP-TOLERANZOB, "Upper Specification Limit
END OF TY_TBCTRL2.

TYPES: BEGIN OF TY_CHECK,
MATNR TYPE RC27M-MATNR, "Material No
WERKS TYPE RC27M-WERKS, "Plant
PLNNR TYPE RC271-PLNNR, "Key for Task List Group
END OF TY_CHECK.

*-----------------------------------------------------------------------


Declaration of the Internal Table &amp;amp; Work Area. 
*------------------------------------------------------------------------

DATA: ITST_TABDATA TYPE SORTED TABLE OF TY_TABDATA WITH
UNIQUE KEY MATNR WERKS PLNNR,
" Internal table for Non-Table Control Records
WA_TABDATA TYPE TY_TABDATA,
ITST_TABCTRL1 TYPE TABLE OF TY_TBCTRL1 , " Internal table for the First Screen with Table Control
WA_TABCTRL1 TYPE TY_TBCTRL1,
ITST_TABCTRL2 TYPE TABLE OF TY_TBCTRL2, " Internal table for the Second Screen with Table Control
WA_TABCTRL2 TYPE TY_TBCTRL2,
ITST_CHECK TYPE TABLE OF TY_CHECK, " Internal table to check if record already exists
WA_CHECK TYPE TY_CHECK.



*---------------------------------------------------------------------


Constants 
*---------------------------------------------------------------------

CONSTANTS: C_QP01 TYPE CHAR4 VALUE 'QP01', " Transaction Name
C_A TYPE CHAR1 VALUE 'E', " Mode
C_S TYPE CHAR1 VALUE 'S'. " Status
*--------------------------------------------------------------------------

Global data Declaration 
*---------------------------------------------------------------------------

DATA: GV_YEAR(4) TYPE C, " Year part for Date
GV_MNTH(2) TYPE C, " Month part for Date
GV_DATE(2) TYPE C, " Day part for Date
GV_DATUM(10) TYPE C, " Concatenated Date in dd.mm.yyyy Format
GV_ANS TYPE C, " Answer to Continue
GV_FLAG_NEW(1) TYPE N VALUE 0. " Flag to set if Inspection Plan exists.

*-------------------------------------------------------------------------------------

Declaration of the Internal Table with Header Line comprising of the uploaded data. 
*-------------------------------------------------------------------------------------

DATA: BEGIN OF IT_FILE_UPLOAD OCCURS 0.
INCLUDE STRUCTURE ALSMEX_TABLINE. " Rows for Table with Excel Data
DATA: END OF IT_FILE_UPLOAD.

*--------------------------------------------

Batch Input Data for a single Transaction. 
Message of Call Transaction. 
*--------------------------------------------
DATA: ITST_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE, " BDC Table
ITST_MSGTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE. " BDC Messages

************************************************************************

S E L E C T I O N - S C R E E N * 
************************************************************************

SELECTION-SCREEN: BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001,
BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-004.
PARAMETERS: P_FNAME LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN: END OF BLOCK B2,
END OF BLOCK B1.

************************************************************************

E V E N T : AT S E L E C T I O N - S C R E E N * 
************************************************************************
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FNAME.
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
STATIC = 'X'
CHANGING
FILE_NAME = P_FNAME.

************************************************************************


E V E N T : S T A R T - O F - S E L E C T I O N * 
************************************************************************

START-OF-SELECTION.

*
--------------------------------------------------------------------------------
 
Upload Excel file into Internal Table. 
*
--------------------------------------------------------------------------------
 
PERFORM UPLOAD_EXCEL_FILE. " To Upload the Excel File

IF NOT IT_FILE_UPLOAD IS INITIAL.

*
--------------------------------------------------------------------------------
 
Confirm whether you want to proceed with the Upload. 
*
--------------------------------------------------------------------------------
 
PERFORM CONFIRM_UPLOAD.
IF GV_ANS EQ '1'.

*
--------------------------------------------------------------------------------
 
Organize the uploaded data into another Internal Table. 
*
--------------------------------------------------------------------------------
 
PERFORM ORGANIZE_UPLOADED_DATA.


Validate if already some Inspection Plan exists for that Material Plant 

IF ITST_TABDATA[] IS NOT INITIAL.
SELECT MATNR
WERKS
PLNNR
FROM MAPL
INTO TABLE ITST_CHECK
FOR ALL ENTRIES IN ITST_TABDATA
WHERE MATNR = ITST_TABDATA-MATNR AND WERKS = ITST_TABDATA-WERKS AND
PLNNR = ITST_TABDATA-PLNNR AND PLNTY = 'Q' AND LOEKZ 'X'.
ENDIF.

LOOP AT ITST_CHECK INTO WA_CHECK .
LOOP AT ITST_TABDATA INTO WA_TABDATA WHERE MATNR = WA_CHECK-MATNR
AND WERKS = WA_CHECK-WERKS AND PLNNR = WA_CHECK-PLNNR.
IF SY-SUBRC = 0. " If exists SET FLAG = 1.

GV_FLAG_NEW = 1. 
DELETE ITST_TABDATA WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
AND PLNNR = WA_CHECK-PLNNR.

DELETE ITST_TABCTRL1 WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
AND PLNNR = WA_CHECK-PLNNR.

DELETE ITST_TABCTRL2 WHERE MATNR = WA_CHECK-MATNR AND WERKS = WA_CHECK-WERKS
AND PLNNR = WA_CHECK-PLNNR.

ENDIF.
ENDLOOP.
ENDLOOP.

*
--------------------------------------------------------------------------------
 
Kick-start BDC Operation 
*
--------------------------------------------------------------------------------
 
PERFORM F_START_BDC. " If answer is YES, then start BDC Operations

ENDIF.
ELSE.
LEAVE PROGRAM. " If answer is NO or CANCEL then leave program
ENDIF.


&amp;amp;---------------------------------------------------------------------
*&amp;amp; Form F_START_BDC
&amp;amp;---------------------------------------------------------------------


text 
----------------------------------------------------------------------

--&amp;gt; p1 text 
&amp;lt;-- p2 text 
----------------------------------------------------------------------

FORM F_START_BDC .

DATA : LV_FNAM(20) TYPE C, " Concatenated field name
LV_IDX1(3) TYPE N VALUE 1, " Index For Table Control 1
LV_IDX2(3) TYPE N VALUE 1, " Index For Table Control 2
LV_GOTO(4) TYPE N , " Index for GoTo Line No incase of Page Down
LV_PG(3) TYPE N VALUE 1. " Index for Page No

IF ITST_TABDATA[] IS INITIAL.
MESSAGE E000. " If Inspection Plan exists for all items in file, show error message
ENDIF.

LOOP AT ITST_TABDATA INTO WA_TABDATA.

LV_IDX2 = '1'.
CLEAR ITST_BDCDATA.
REFRESH ITST_BDCDATA.

GV_YEAR = SY-DATUM+0(4).
GV_MNTH = SY-DATUM+4(2).
GV_DATE = SY-DATUM+6(2).
CONCATENATE GV_DATE '.' GV_MNTH '.' GV_YEAR INTO GV_DATUM.


PERFORM BDC_DYNPRO USING 'SAPLCPDI' '8010'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RC27M-MATNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RC27M-MATNR'
WA_TABDATA-MATNR. " 'kiz0006c'
PERFORM BDC_FIELD USING 'RC27M-WERKS'
WA_TABDATA-WERKS. " 'B001'
PERFORM BDC_FIELD USING 'RC271-PLNNR'
WA_TABDATA-PLNNR. " 60000000-99999999
PERFORM BDC_FIELD USING 'RC271-STTAG'
GV_DATUM. " '16.01.2008'



IF GV_FLAG_NEW = 1. " If Exists then diff screen for clicking NEW ENTRIES tab 
*

PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1200'. 
PERFORM BDC_FIELD USING 'BDC_CURSOR' 
'RC27X-ENTRY_ACT'. 
PERFORM BDC_FIELD USING 'BDC_OKCODE' 
'=ANLG'. 
PERFORM BDC_FIELD USING 'RC27X-ENTRY_ACT' 
'1'. 
PERFORM BDC_DYNPRO USING 'SAPLCPDA' '1200'. 
PERFORM BDC_FIELD USING 'BDC_OKCODE' 
'/00'. 
ELSE. 

PERFORM BDC_DYNPRO USING 'SAPLCPDA' '1200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.

ENDIF. 

IF WA_TABDATA-KTEXT SPACE.
PERFORM BDC_FIELD USING 'PLKOD-KTEXT'
WA_TABDATA-KTEXT. " 'ZOLMITRIPTAN STAGE C1111'
ENDIF.
PERFORM BDC_FIELD USING 'PLKOD-VERWE'
WA_TABDATA-VERWE. " '5'
PERFORM BDC_FIELD USING 'PLKOD-STATU'
WA_TABDATA-STATU. " '4'
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLKOD-QPRZIEHVER'.
PERFORM BDC_FIELD USING 'PLKOD-SLWBEZ'
WA_TABDATA-SLWBEZ. " '200'
PERFORM BDC_FIELD USING 'PLKOD-QPRZIEHVER'
WA_TABDATA-QPRZIEHVER. " 'ACTIVE'
PERFORM BDC_DYNPRO USING 'SAPLCPDA' '1200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=VOUE'.


LOOP AT ITST_TABCTRL1 INTO WA_TABCTRL1 WHERE MATNR = WA_TABDATA-MATNR
AND WERKS = WA_TABDATA-WERKS
AND PLNNR = WA_TABDATA-PLNNR.
ON CHANGE OF WA_TABCTRL1-MATNR OR WA_TABCTRL1-WERKS OR WA_TABCTRL1-PLNNR.

PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1400'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLPOD-LTXA1(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.

CONCATENATE 'PLPOD-ARBPL(' LV_IDX1 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL1-ARBPL. " 'qc01'
CONCATENATE 'PLPOD-STEUS(' LV_IDX1 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL1-STEUS. " 'qm01'
CONCATENATE 'PLPOD-LTXA1(' LV_IDX1 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL1-LTXA1. " 'opearation1'

PERFORM BDC_DYNPRO USING 'SAPLCPDI' '1400'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLPOD-VORNR(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=QMUE'.
PERFORM BDC_FIELD USING 'RC27X-ENTRY_ACT'
'1'.
PERFORM BDC_FIELD USING 'RC27X-FLG_SEL(01)'
'X'.

PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-STELLEN(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.

LOOP AT ITST_TABCTRL2 INTO WA_TABCTRL2 WHERE MATNR = WA_TABCTRL1-MATNR AND
WERKS = WA_TABCTRL1-WERKS AND
PLNNR = WA_TABCTRL1-PLNNR.


AND ARBPL = WA_TABCTRL1-ARBPL AND 
STEUS = WA_TABCTRL1-STEUS. 

LV_GOTO = LV_PG * 140. " For Page Down on Second Table Control

IF LV_IDX2 &amp;gt;= 14.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RQPAS-AB_MKNR'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
PERFORM BDC_FIELD USING 'RQPAS-AB_MKNR'
LV_GOTO .

LV_IDX2 = 2.
LV_PG = LV_PG + 1.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.

ELSE.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-STELLEN(01)'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
ENDIF.

CONCATENATE 'PLMKB-VERWMERKM(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-VERWMERKM. " 'MIC00001'/ ' MIC00050'
IF WA_TABCTRL2-PMETHODE SPACE.
CONCATENATE 'PLMKB-PMETHODE(' LV_IDX2')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-PMETHODE. " 'met00001'

CONCATENATE 'PLMKB-PMTVERSION(' LV_IDX2 ')' INTO LV_FNAM. 
PERFORM BDC_FIELD USING LV_FNAM 
WA_TABCTRL2-PMTVERSION. " '1' 
CONCATENATE 'PLMKB-STICHPRVER(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-STICHPRVER. " 'APIFX1'

CONCATENATE 'PLMKB-PRUEFEINH(' LV_IDX2 ')' INTO LV_FNAM. 
PERFORM BDC_FIELD USING LV_FNAM 
WA_TABCTRL2-PRUEFEINH. " '20' 
CONCATENATE 'PLMKB-PROBEMGEH(' LV_IDX2 ')' INTO LV_FNAM. 
PERFORM BDC_FIELD USING LV_FNAM 
WA_TABCTRL2-PROBEMGEH. " 'G' 
CONCATENATE 'PLMKB-STELLEN(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-STELLEN. " '2'
CONCATENATE 'RQPAS-MASSEINHSW(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-MASSEINHSW. " '%'
CONCATENATE 'QFLTP-SOLLWERT(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-SOLLWERT. " '10'
CONCATENATE 'QFLTP-TOLERANZUN(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-TOLERANZUN. " '5'
CONCATENATE 'QFLTP-TOLERANZOB(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-TOLERANZOB. " '15'

PERFORM BDC_DYNPRO USING 'SAPLQPAA' '1501'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENT1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-VERWMERKM'.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '1502'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENT1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-PMETHODE'.
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '1502'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENT1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-PMETHODE'.
ELSE.


CONCATENATE 'PLMKB-PMTVERSION(' LV_IDX2 ')' INTO LV_FNAM. 
PERFORM BDC_FIELD USING LV_FNAM 
WA_TABCTRL2-PMTVERSION. " '1' 
CONCATENATE 'PLMKB-STICHPRVER(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-STICHPRVER. " 'APIFX1'

CONCATENATE 'PLMKB-PRUEFEINH(' LV_IDX2 ')' INTO LV_FNAM. 
PERFORM BDC_FIELD USING LV_FNAM 
WA_TABCTRL2-PRUEFEINH. " '20' 
CONCATENATE 'PLMKB-PROBEMGEH(' LV_IDX2 ')' INTO LV_FNAM. 
PERFORM BDC_FIELD USING LV_FNAM 
WA_TABCTRL2-PROBEMGEH. " 'G' 

CONCATENATE 'PLMKB-STELLEN(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-STELLEN. " '2'
CONCATENATE 'RQPAS-MASSEINHSW(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-MASSEINHSW. " '%'
CONCATENATE 'QFLTP-SOLLWERT(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-SOLLWERT. " '10'
CONCATENATE 'QFLTP-TOLERANZUN(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-TOLERANZUN. " '5'
CONCATENATE 'QFLTP-TOLERANZOB(' LV_IDX2 ')' INTO LV_FNAM.
PERFORM BDC_FIELD USING LV_FNAM
WA_TABCTRL2-TOLERANZOB. " '15'
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '1501'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=ENT1'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'PLMKB-QMTB_WERKS'.
PERFORM BDC_FIELD USING 'PLMKB-VERWMERKM'
WA_TABCTRL2-VERWMERKM.
PERFORM BDC_FIELD USING 'PLMKB-QPMK_WERKS'
WA_TABCTRL2-WERKS.
PERFORM BDC_FIELD USING 'PLMKB-QMTB_WERKS'
''.

ENDIF.
LV_IDX2 = LV_IDX2 + 1.
ENDLOOP.

ENDON.
ENDLOOP.



PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RQPAS-ENTRY_ACT'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=QMBU'.
PERFORM BDC_FIELD USING 'RQPAS-ENTRY_ACT'
'1'.

CALL TRANSACTION C_QP01 USING ITST_BDCDATA
MODE C_A UPDATE C_S
MESSAGES INTO ITST_MSGTAB. "#EC CI_CALLTA

ENDLOOP.
ENDFORM. " F_START_BDC

&amp;amp;---------------------------------------------------------------------
*&amp;amp; Form UPLOAD_EXCEL_FILE
&amp;amp;---------------------------------------------------------------------


text 
----------------------------------------------------------------------

--&amp;gt; p1 text 
&amp;lt;-- p2 text 
----------------------------------------------------------------------

FORM UPLOAD_EXCEL_FILE .

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FNAME
I_BEGIN_COL = 1
I_BEGIN_ROW = 2
I_END_COL = 19
I_END_ROW = 9999
TABLES
INTERN = IT_FILE_UPLOAD.


ENDFORM. " UPLOAD_EXCEL_FILE

&amp;amp;---------------------------------------------------------------------
*&amp;amp; Form CONFIRM_UPLOAD
&amp;amp;---------------------------------------------------------------------


text 
----------------------------------------------------------------------

--&amp;gt; p1 text 
&amp;lt;-- p2 text 
----------------------------------------------------------------------

FORM CONFIRM_UPLOAD .


CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
TITLEBAR = TEXT-002
TEXT_QUESTION = TEXT-003
IMPORTING
ANSWER = GV_ANS
EXCEPTIONS
TEXT_NOT_FOUND = 1
OTHERS = 2.


ENDFORM. " CONFIRM_UPLOAD

&amp;amp;---------------------------------------------------------------------
*&amp;amp; Form BDC_DYNPRO
&amp;amp;---------------------------------------------------------------------


text 
----------------------------------------------------------------------

--&amp;gt;P_0589 text 
--&amp;gt;P_0590 text 
----------------------------------------------------------------------
FORM BDC_DYNPRO USING PROGRAM
DYNPRO.

CLEAR: ITST_BDCDATA.
ITST_BDCDATA-PROGRAM = PROGRAM.
ITST_BDCDATA-DYNPRO = DYNPRO.
ITST_BDCDATA-DYNBEGIN = 'X'.
APPEND ITST_BDCDATA.

ENDFORM. " BDC_DYNPRO

&amp;amp;---------------------------------------------------------------------
*&amp;amp; Form BDC_FIELD
&amp;amp;---------------------------------------------------------------------

text 
----------------------------------------------------------------------

--&amp;gt;P_0729 text 
--&amp;gt;P_0730 text 
----------------------------------------------------------------------

FORM BDC_FIELD USING FNAM
FVAL.

CLEAR: ITST_BDCDATA.
ITST_BDCDATA-FNAM = FNAM.
ITST_BDCDATA-FVAL = FVAL.
APPEND ITST_BDCDATA.

ENDFORM. " BDC_FIELD

&amp;amp;---------------------------------------------------------------------
*&amp;amp; Form ORGANIZE_UPLOADED_DATA
&amp;amp;---------------------------------------------------------------------


text 
----------------------------------------------------------------------

--&amp;gt; p1 text 
&amp;lt;-- p2 text 
----------------------------------------------------------------------

FORM ORGANIZE_UPLOADED_DATA .

DATA : LV_TOTROW TYPE I, " Total Records
LV_ROW TYPE I. " Row No

LV_TOTROW = 1.
SORT IT_FILE_UPLOAD BY ROW
COL.

LOOP AT IT_FILE_UPLOAD.
LV_TOTROW = IT_FILE_UPLOAD-ROW. " To find total rows
ENDLOOP.

LV_ROW = 1.
WHILE LV_ROW &amp;lt;= LV_TOTROW.
LOOP AT IT_FILE_UPLOAD WHERE ROW = LV_ROW.
CASE IT_FILE_UPLOAD-COL.
WHEN '0001'. " Material
TRANSLATE IT_FILE_UPLOAD-VALUE TO UPPER CASE.
WA_TABDATA-MATNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL1-MATNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-MATNR = IT_FILE_UPLOAD-VALUE.
WHEN '0002'. " Plant
TRANSLATE IT_FILE_UPLOAD-VALUE TO UPPER CASE.
WA_TABDATA-WERKS = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL1-WERKS = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-WERKS = IT_FILE_UPLOAD-VALUE.
WHEN '0003'. " Group Key
WA_TABDATA-PLNNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL1-PLNNR = IT_FILE_UPLOAD-VALUE.
WA_TABCTRL2-PLNNR = IT_FILE_UPLOAD-VALUE.
WHEN '0004'. " Group Counter Desc
WA_TABDATA-KTEXT = IT_FILE_UPLOAD-VALUE.
WHEN '0005'. " Usage
WA_TABDATA-VERWE = IT_FILE_UPLOAD-VALUE.
WHEN '0006'. " Status
WA_TABDATA-STATU = IT_FILE_UPLOAD-VALUE.
WHEN '0007'. " Inspection Point
WA_TABDATA-SLWBEZ = IT_FILE_UPLOAD-VALUE.
WHEN '0008'. " Sample Drawing Procedure
WA_TABDATA-QPRZIEHVER = IT_FILE_UPLOAD-VALUE.
WHEN '0009'. " Work Centre
WA_TABCTRL1-ARBPL = IT_FILE_UPLOAD-VALUE.

WA_TABCTRL2-ARBPL = IT_FILE_UPLOAD-VALUE. 
WHEN '0010'. " Control Key
WA_TABCTRL1-STEUS = IT_FILE_UPLOAD-VALUE.

WA_TABCTRL2-STEUS = IT_FILE_UPLOAD-VALUE. 
WHEN '0011'. " Desc
WA_TABCTRL1-LTXA1 = IT_FILE_UPLOAD-VALUE.
WHEN '0012'. " MIC
WA_TABCTRL2-VERWMERKM = IT_FILE_UPLOAD-VALUE.
WHEN '0013'. " Method
WA_TABCTRL2-PMETHODE = IT_FILE_UPLOAD-VALUE.

WHEN '0014'. 
WA_TABCTRL2-PMTVERSION = IT_FILE_UPLOAD-VALUE. 
WHEN '0014'. " Sampling
WA_TABCTRL2-STICHPRVER = IT_FILE_UPLOAD-VALUE.

WHEN '0016'. 
WA_TABCTRL2-PRUEFEINH = IT_FILE_UPLOAD-VALUE. 
WHEN '0017'. 
WA_TABCTRL2-PROBEMGEH = IT_FILE_UPLOAD-VALUE. 
WHEN '0015'. " Accuracy
WA_TABCTRL2-STELLEN = IT_FILE_UPLOAD-VALUE.
WHEN '0016'. " Unit
WA_TABCTRL2-MASSEINHSW = IT_FILE_UPLOAD-VALUE.
WHEN '0017'. " Target Value
WA_TABCTRL2-SOLLWERT = IT_FILE_UPLOAD-VALUE.
WHEN '0018'. " Lower Limit
WA_TABCTRL2-TOLERANZUN = IT_FILE_UPLOAD-VALUE.
WHEN '0019'. " Upper Limit
WA_TABCTRL2-TOLERANZOB = IT_FILE_UPLOAD-VALUE.
ENDCASE.
ENDLOOP.

LV_ROW = LV_ROW + 1.
INSERT WA_TABDATA INTO TABLE ITST_TABDATA .
APPEND WA_TABCTRL1 TO ITST_TABCTRL1.
APPEND WA_TABCTRL2 TO ITST_TABCTRL2.
CLEAR :WA_TABDATA,WA_TABCTRL1,WA_TABCTRL2.
ENDWHILE.

ENDFORM. " ORGANIZE_UPLOADED_DATA

*********************************************************************************


E N D - O F - S E L E C T I O N * 
*********************************************************************************
END-OF-SELECTION.


Free all internal tables 
FREE: ITST_TABDATA,
ITST_TABCTRL1,
ITST_TABCTRL2. &lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 02 Mar 2008 11:54:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-tutorials/m-p/3517007#M845866</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-02T11:54:15Z</dc:date>
    </item>
    <item>
      <title>Re: bdc tutorials</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-tutorials/m-p/3517008#M845867</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi &lt;/P&gt;&lt;P&gt;Here I am giving you sample code. You can use this for reference when you r doing ur code.&lt;/P&gt;&lt;P&gt;For detailed tutorial, you can go thru the link which is given,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  z50871mm_bdcp_assignment3 NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                                  LINE-SIZE 255.&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;                STRUCTURE DECLARATION&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;TYPES : BEGIN OF st_vendor,&lt;/P&gt;&lt;P&gt;         ktokk TYPE rf02k-ktokk,               "account group&lt;/P&gt;&lt;P&gt;         anred TYPE lfa1-anred,                "title&lt;/P&gt;&lt;P&gt;         name1 TYPE lfa1-name1,                "vendor name&lt;/P&gt;&lt;P&gt;         sortl TYPE lfa1-sortl,                "search term&lt;/P&gt;&lt;P&gt;         pstlz TYPE lfa1-pstlz,                "postal code&lt;/P&gt;&lt;P&gt;         land1 TYPE lfa1-land1,                "country&lt;/P&gt;&lt;P&gt;         banks TYPE lfbk-banks,&lt;/P&gt;&lt;P&gt;         bankl TYPE lfbk-bankl,                "bank key&lt;/P&gt;&lt;P&gt;         bankn TYPE lfbk-bankn,                "account number&lt;/P&gt;&lt;P&gt;        END OF st_vendor.&lt;/P&gt;&lt;P&gt;TYPES : BEGIN OF st_success,&lt;/P&gt;&lt;P&gt;         lifnr TYPE lfa1-lifnr,                 "vendor number&lt;/P&gt;&lt;P&gt;         name TYPE lfa1-name1,                  "vendor name&lt;/P&gt;&lt;P&gt;        END OF st_success.&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF st_error,&lt;/P&gt;&lt;P&gt;        linno TYPE i,                           "line number&lt;/P&gt;&lt;P&gt;        message TYPE string,                    "error message&lt;/P&gt;&lt;P&gt;       END OF st_error.&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;             INTERNAL TABLE DECLARATIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;             WORK AREA DECLARATIONS&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;DATA : it_vendor TYPE STANDARD TABLE OF st_vendor,&lt;/P&gt;&lt;P&gt;       wa_vendor TYPE st_vendor,&lt;/P&gt;&lt;P&gt;       it_success TYPE STANDARD TABLE OF st_success,&lt;/P&gt;&lt;P&gt;       wa_success TYPE st_success,&lt;/P&gt;&lt;P&gt;       it_error TYPE STANDARD TABLE OF st_error,&lt;/P&gt;&lt;P&gt;       wa_error TYPE st_error,&lt;/P&gt;&lt;P&gt;       it_bdcdata LIKE bdcdata OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_message LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.&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;                   DATA DECLARATION&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;DATA : v_file TYPE string,&lt;/P&gt;&lt;P&gt;       v_tcode(4) VALUE 'XK01',&lt;/P&gt;&lt;P&gt;       v_index LIKE sy-tabix,&lt;/P&gt;&lt;P&gt;       v_totalrec TYPE i,&lt;/P&gt;&lt;P&gt;       v_errrec TYPE i,&lt;/P&gt;&lt;P&gt;       v_succrec TYPE i.&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;               SELECTION 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;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_file TYPE rlgrap-filename.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-010.&lt;/P&gt;&lt;P&gt;PARAMETERS p_mode LIKE ctu_params-dismode DEFAULT 'N' .&lt;/P&gt;&lt;P&gt;"A: show all dynpros&lt;/P&gt;&lt;P&gt;"E: show dynpro on error only&lt;/P&gt;&lt;P&gt;"N: do not display dynpro&lt;/P&gt;&lt;P&gt;PARAMETERS p_update LIKE ctu_params-updmode DEFAULT 'S'.&lt;/P&gt;&lt;P&gt;"S: synchronously&lt;/P&gt;&lt;P&gt;"A: asynchronously&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b2.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-011.&lt;/P&gt;&lt;P&gt;PARAMETERS : p_group(12) DEFAULT '50871'.         "group name for error session&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b3.&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;           AT  SELECTION SCREEN ON VALUE-REQUEST&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;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;P&gt;      field_name    = ' '&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      file_name     = p_file.&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;  v_file = p_file.&lt;/P&gt;&lt;P&gt;*gui upload&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;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      data_tab                = it_vendor&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      file_open_error         = 1&lt;/P&gt;&lt;P&gt;      file_read_error         = 2&lt;/P&gt;&lt;P&gt;      no_batch                = 3&lt;/P&gt;&lt;P&gt;      gui_refuse_filetransfer = 4&lt;/P&gt;&lt;P&gt;      invalid_type            = 5&lt;/P&gt;&lt;P&gt;      no_authority            = 6&lt;/P&gt;&lt;P&gt;      unknown_error           = 7&lt;/P&gt;&lt;P&gt;      bad_data_format         = 8&lt;/P&gt;&lt;P&gt;      header_not_allowed      = 9&lt;/P&gt;&lt;P&gt;      separator_not_allowed   = 10&lt;/P&gt;&lt;P&gt;      header_too_long         = 11&lt;/P&gt;&lt;P&gt;      unknown_dp_error        = 12&lt;/P&gt;&lt;P&gt;      access_denied           = 13&lt;/P&gt;&lt;P&gt;      dp_out_of_memory        = 14&lt;/P&gt;&lt;P&gt;      disk_full               = 15&lt;/P&gt;&lt;P&gt;      dp_timeout              = 16&lt;/P&gt;&lt;P&gt;      OTHERS                  = 17.&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;*loadind data into it_bdcdata&lt;/P&gt;&lt;P&gt;  LOOP AT it_vendor INTO wa_vendor.&lt;/P&gt;&lt;P&gt;    v_index = sy-tabix.&lt;/P&gt;&lt;P&gt;    PERFORM load_bdcdata.&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;              CALL TRANSACTION&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;    CALL TRANSACTION v_tcode USING it_bdcdata&lt;/P&gt;&lt;P&gt;                          MODE     p_mode&lt;/P&gt;&lt;P&gt;                          UPDATE p_update&lt;/P&gt;&lt;P&gt;                          MESSAGES INTO it_message.&lt;/P&gt;&lt;P&gt;*reading success&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      READ TABLE it_message WITH KEY msgtyp = 'S'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        wa_success-lifnr = it_message-msgv1.&lt;/P&gt;&lt;P&gt;        wa_success-name =  wa_vendor-name1.&lt;/P&gt;&lt;P&gt;        APPEND wa_success TO it_success.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;*reading errors&lt;/P&gt;&lt;P&gt;      READ TABLE  it_message WITH KEY msgtyp =  'E'.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;          EXPORTING&lt;/P&gt;&lt;P&gt;            id  = sy-msgid&lt;/P&gt;&lt;P&gt;            no  = it_message-msgnr&lt;/P&gt;&lt;P&gt;            v1  = it_message-msgv1&lt;/P&gt;&lt;P&gt;            v2  = it_message-msgv2&lt;/P&gt;&lt;P&gt;            v3  = it_message-msgv3&lt;/P&gt;&lt;P&gt;            v4  = it_message-msgv4&lt;/P&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;            msg = wa_error-message.&lt;/P&gt;&lt;P&gt;        wa_error-linno = v_index.&lt;/P&gt;&lt;P&gt;        APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;        CLEAR wa_error.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;*session opening&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;P&gt;          group    = p_group&lt;/P&gt;&lt;P&gt;          holddate = sy-datum&lt;/P&gt;&lt;P&gt;          keep     = 'X'&lt;/P&gt;&lt;P&gt;          user     = sy-uname.&lt;/P&gt;&lt;P&gt;*inserting into session&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          tcode     = 'XK01'&lt;/P&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          dynprotab = it_bdcdata.&lt;/P&gt;&lt;P&gt;*closing session&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'BDC_CLOSE_GROUP'.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    CLEAR: it_bdcdata, it_message.&lt;/P&gt;&lt;P&gt;    REFRESH: it_bdcdata, it_message.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&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;              SUMMARY DISPLAY&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;  DESCRIBE TABLE it_vendor LINES v_totalrec.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE it_error LINES v_errrec.&lt;/P&gt;&lt;P&gt;  v_succrec = v_totalrec - v_errrec .&lt;/P&gt;&lt;P&gt;  WRITE : /1 text-004 COLOR 1.&lt;/P&gt;&lt;P&gt;  WRITE : /2 'Total Records Processed :', 25 v_totalrec,&lt;/P&gt;&lt;P&gt;          /2 'Error Records           :', 25 v_errrec,&lt;/P&gt;&lt;P&gt;          /2 'Successful Records      :', 25 v_succrec.&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;P&gt;  WRITE : /1 text-005 COLOR 1.&lt;/P&gt;&lt;P&gt;  LOOP AT it_error INTO wa_error.&lt;/P&gt;&lt;P&gt;    WRITE:/2 wa_error-linno,&lt;/P&gt;&lt;P&gt;          wa_error-message.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SKIP 2.&lt;/P&gt;&lt;P&gt;  WRITE : /1 text-009 COLOR 1.&lt;/P&gt;&lt;P&gt;  ULINE AT : /2(46).&lt;/P&gt;&lt;P&gt;  WRITE :/2 sy-vline ,(10) 'VENDOR NUM' , 15 sy-vline , 17 'VENDOR NAME' , 47 sy-vline.&lt;/P&gt;&lt;P&gt;  ULINE AT : /2(46).&lt;/P&gt;&lt;P&gt;  LOOP AT it_success INTO wa_success.&lt;/P&gt;&lt;P&gt;    WRITE:/2 sy-vline , wa_success-lifnr, 15 sy-vline , 17 wa_success-name , 47 sy-vline.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  ULINE AT : /2(46).&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  append_bdcdata&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 append_bdcdata  USING  p_flag p_fname p_fval.&lt;/P&gt;&lt;P&gt;  CLEAR it_bdcdata.&lt;/P&gt;&lt;P&gt;  IF p_flag = 'X'.&lt;/P&gt;&lt;P&gt;    it_bdcdata-program  = p_fname.&lt;/P&gt;&lt;P&gt;    it_bdcdata-dynpro   = p_fval.&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;  ELSEIF NOT p_fval IS INITIAL.&lt;/P&gt;&lt;P&gt;    it_bdcdata-fnam = p_fname.&lt;/P&gt;&lt;P&gt;    it_bdcdata-fval = p_fval.&lt;/P&gt;&lt;P&gt;    APPEND it_bdcdata.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "append_bdcdata&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  load_bdcdata&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 load_bdcdata .&lt;/P&gt;&lt;P&gt;  PERFORM append_bdcdata  USING : 'X' 'SAPMF02K' '0100',&lt;/P&gt;&lt;P&gt;                                 ' ' 'BDC_OKCODE' '/00',&lt;/P&gt;&lt;P&gt;                                 ' ' 'RF02K-KTOKK' wa_vendor-ktokk,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                 'X' 'SAPMF02K' '0110',&lt;/P&gt;&lt;P&gt;                                 ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt;                                 ' ' 'LFA1-ANRED' wa_vendor-anred,&lt;/P&gt;&lt;P&gt;                                 ' '   'LFA1-NAME1' wa_vendor-name1,&lt;/P&gt;&lt;P&gt;                                 ' '  'LFA1-SORTL' wa_vendor-sortl,&lt;/P&gt;&lt;P&gt;                                 ' '  'LFA1-PSTLZ'  wa_vendor-pstlz,&lt;/P&gt;&lt;P&gt;                                 ' '   'LFA1-LAND1' wa_vendor-land1,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                 'X' 'SAPMF02K' '0120',&lt;/P&gt;&lt;P&gt;                                 ' ' 'BDC_OKCODE' '/00',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                 'X' 'SAPMF02K' '0130',&lt;/P&gt;&lt;P&gt;                                 ' ' 'BDC_OKCODE' '=ENTR',&lt;/P&gt;&lt;P&gt;                                 ' ' 'LFBK-BANKS(01)'  wa_vendor-banks,&lt;/P&gt;&lt;P&gt;                                 ' ' 'LFBK-BANKL(01)' wa_vendor-bankl,&lt;/P&gt;&lt;P&gt;                                 ' ' 'LFBK-BANKN(01)' wa_vendor-bankn,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                 'X' 'SAPMF02K' '0130',&lt;/P&gt;&lt;P&gt;                                 ' ' 'BDC_OKCODE' '=ENTR',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                                 'X' 'SAPLSPO1' '0300',&lt;/P&gt;&lt;P&gt;                                 ' ' 'BDC_OKCODE' '=YES'.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " load_bdcdata&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Sandeep&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 02 Mar 2008 12:55:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-tutorials/m-p/3517008#M845867</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-02T12:55:41Z</dc:date>
    </item>
  </channel>
</rss>

