<?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 PROGRAM WITH OUT USING A FM? in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-program-with-out-using-a-fm/m-p/7669158#M1574964</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;   If you are migrating employee data, I would suggest you to do it through PA40 transaction rather PA30. systematic screen validations it will go through. If you dont want to use any FM and wanted to do using recording pls find the below code which will update the employee data through PA40 with call transaction method. &lt;/P&gt;&lt;P&gt; &lt;/P&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;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE   text-001.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_plan TYPE ibipparms-path OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK b1.&lt;/P&gt;&lt;P&gt; TYPES: BEGIN OF ty_error,&lt;/P&gt;&lt;P&gt;         pernr TYPE persno,       " Personnel number&lt;/P&gt;&lt;P&gt;         rel_obj_id(12),         " Related Object ID&lt;/P&gt;&lt;P&gt;         msg(200) TYPE c,       " To store Message&lt;/P&gt;&lt;P&gt;       END   OF ty_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: i_tplan TYPE STANDARD TABLE OF alsmex_tabline WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      i_intern TYPE STANDARD TABLE OF alsmex_tabline WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      i_error    TYPE ty_error OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF w_pa000,&lt;/P&gt;&lt;P&gt;       pernr TYPE persno,&lt;/P&gt;&lt;P&gt;       begda TYPE begda,&lt;/P&gt;&lt;P&gt;      END OF w_pa000.&lt;/P&gt;&lt;P&gt;DATA: wa_plan LIKE i_plan,&lt;/P&gt;&lt;P&gt;      wa_messtab    TYPE bdcmsgcoll, " Messages&lt;/P&gt;&lt;P&gt;      wa_error      TYPE ty_error.  " Errors&lt;/P&gt;&lt;P&gt;DATA: it_pa000 LIKE STANDARD TABLE OF w_pa000 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      it_pa002 LIKE STANDARD TABLE OF w_pa000 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      it_pa001 LIKE STANDARD TABLE OF w_pa000 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA:  g_mode LIKE ctu_params-dismode VALUE 'N',&lt;/P&gt;&lt;P&gt;       g_file TYPE ibipparms-path.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV field catalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : i_fieldcat TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Batchinputdata of single transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:   i_bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      messages of call transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:   i_messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      error session opened (' ' or 'X')&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Table to hold the return messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF i_errmsg OCCURS 10.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapiret2.&lt;/P&gt;&lt;P&gt;DATA: END OF i_errmsg.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV List header table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : i_header1 TYPE slis_t_listheader.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV List header table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : i_header TYPE slis_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***ALV Events&lt;/P&gt;&lt;P&gt;DATA: is_layout TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;DATA : it_event TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;DATA : it_event1 TYPE slis_t_event.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To get the F4 help for file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_plan.&lt;/P&gt;&lt;P&gt;  PERFORM get_filename.&lt;/P&gt;&lt;P&gt;************************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;START  OF SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************************&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Initialise data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM initialise_events.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Retrieve data from Excel file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM retreive_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate final data into an internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM populate_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Process the excel file data to create a record for IT0007&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM process_data.&lt;/P&gt;&lt;P&gt;************************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;END  OF SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************************&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM final_output.&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  GET_FILENAME&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 get_filename .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Function module used for F4 help&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;    IMPORTING&lt;/P&gt;&lt;P&gt;      file_name     = p_plan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_FILENAME&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  INITIALISE_EVENTS&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 initialise_events .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  i_header-typ = 'H'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; i_header-key = 'R'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  i_header-info = 'BDC Interface for PA Infotypes 0000,0001,0002'.&lt;/P&gt;&lt;P&gt;  APPEND i_header TO i_header1.&lt;/P&gt;&lt;P&gt;  CLEAR i_header.&lt;/P&gt;&lt;P&gt;  i_header-typ = 'S'.&lt;/P&gt;&lt;P&gt;  i_header-info = 'Hiring, Org.Assignment, Personnel Data'.&lt;/P&gt;&lt;P&gt;  APPEND i_header TO i_header1.&lt;/P&gt;&lt;P&gt;  CLEAR i_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Events and form name&lt;/P&gt;&lt;P&gt;  it_event-name = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;  it_event-form = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;  APPEND it_event TO it_event1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " INITIALISE_EVENTS&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  RETREIVE_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 retreive_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM upload_data.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " RETREIVE_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  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;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FM to upload data from excel sheet to internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                = p_plan&lt;/P&gt;&lt;P&gt;      i_begin_col             = g_colbeg&lt;/P&gt;&lt;P&gt;      i_begin_row             = g_rowbeg&lt;/P&gt;&lt;P&gt;      i_end_col               = g_colend&lt;/P&gt;&lt;P&gt;      i_end_row               = g_rowend&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      intern                  = i_tplan&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      inconsistent_parameters = 1&lt;/P&gt;&lt;P&gt;      upload_ole              = 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;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " 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  POPULATE_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 populate_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;processing the internal table generated from the function module&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Passing data from Excel file to internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: g_cnt_processed,&lt;/P&gt;&lt;P&gt;         g_cnt_err_processed,&lt;/P&gt;&lt;P&gt;         i_intern,&lt;/P&gt;&lt;P&gt;         i_plan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_tplan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT NEW row.&lt;/P&gt;&lt;P&gt;      CLEAR i_plan.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CASE i_tplan-col.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Begin Date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WHEN '0001'.&lt;/P&gt;&lt;P&gt;        i_plan-pernr = i_tplan-value.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End Date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WHEN '0002'.&lt;/P&gt;&lt;P&gt;        i_plan-begda = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0003'.&lt;/P&gt;&lt;P&gt;        i_plan-massg = i_tplan-value.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sign&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WHEN '0004'.&lt;/P&gt;&lt;P&gt;        i_plan-plans = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0005'.&lt;/P&gt;&lt;P&gt;        i_plan-werks = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0006'.&lt;/P&gt;&lt;P&gt;        i_plan-persg = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0007'.&lt;/P&gt;&lt;P&gt;        i_plan-persk = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0008'.&lt;/P&gt;&lt;P&gt;        i_plan-anrex = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0009'.&lt;/P&gt;&lt;P&gt;        i_plan-nachn = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0010'.&lt;/P&gt;&lt;P&gt;        i_plan-vorna = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0011'.&lt;/P&gt;&lt;P&gt;        i_plan-gesch = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0012'.&lt;/P&gt;&lt;P&gt;        i_plan-gbdat = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0013'.&lt;/P&gt;&lt;P&gt;        i_plan-fatxt = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0014'.&lt;/P&gt;&lt;P&gt;        i_plan-famdt = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0015'.&lt;/P&gt;&lt;P&gt;        i_plan-gblnd = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0016'.&lt;/P&gt;&lt;P&gt;        i_plan-anzkd = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0017'.&lt;/P&gt;&lt;P&gt;        i_plan-natio = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0018'.&lt;/P&gt;&lt;P&gt;        i_plan-btrtl = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0019'.&lt;/P&gt;&lt;P&gt;        i_plan-gsber = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0020'.&lt;/P&gt;&lt;P&gt;        i_plan-abkrs = i_tplan-value.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Appending the internal table tb_data, tb_chng&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    AT END OF row.&lt;/P&gt;&lt;P&gt;      APPEND i_plan.&lt;/P&gt;&lt;P&gt;      IF i_plan IS INITIAL.&lt;/P&gt;&lt;P&gt;        g_cnt_err_processed = g_cnt_err_processed + 1.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To get the total number of records processed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DESCRIBE TABLE i_plan LINES g_lines.&lt;/P&gt;&lt;P&gt;  g_cnt_processed = g_cnt_err_processed + g_lines.&lt;/P&gt;&lt;P&gt;  CLEAR g_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " POPULATE_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  PROCESS_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;FORM process_data .&lt;/P&gt;&lt;P&gt;  CLEAR wa_error.&lt;/P&gt;&lt;P&gt;  REFRESH i_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if the employee numbers from the template has already been hired&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT pernr&lt;/P&gt;&lt;P&gt;         begda&lt;/P&gt;&lt;P&gt;         FROM pa0000&lt;/P&gt;&lt;P&gt;         INTO TABLE it_pa000&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN i_plan&lt;/P&gt;&lt;P&gt;         WHERE pernr = i_plan-pernr&lt;/P&gt;&lt;P&gt;           AND massn = 'ZA'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    SORT it_pa000 BY pernr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if employee has a corresponding infotype 0001 record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT pernr&lt;/P&gt;&lt;P&gt;           begda&lt;/P&gt;&lt;P&gt;           FROM pa0001&lt;/P&gt;&lt;P&gt;           INTO TABLE it_pa001&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN it_pa000&lt;/P&gt;&lt;P&gt;           WHERE pernr = it_pa000-pernr AND&lt;/P&gt;&lt;P&gt;                 begda = it_pa000-begda.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      SORT it_pa001 BY pernr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if employee has a corresponding infotype 0002 record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SELECT pernr&lt;/P&gt;&lt;P&gt;           begda&lt;/P&gt;&lt;P&gt;           FROM pa0001&lt;/P&gt;&lt;P&gt;           INTO TABLE it_pa002&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN it_pa001&lt;/P&gt;&lt;P&gt;           WHERE pernr = it_pa001-pernr AND&lt;/P&gt;&lt;P&gt;                 begda = it_pa001-begda.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        SORT it_pa002 BY pernr.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_plan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH i_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;STRONG&gt;your recording to be pasted here&lt;/STRONG&gt;***&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                  'P0006-BEGDA'.&lt;/P&gt;&lt;P&gt;    PERFORM call_transaction.&lt;/P&gt;&lt;P&gt;    APPEND wa_error TO i_error.&lt;/P&gt;&lt;P&gt;    REFRESH: i_bdcdata, i_messtab.&lt;/P&gt;&lt;P&gt;    CLEAR: wa_error, i_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " PROCESS_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  BDC_DYNPRO&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;FORM bdc_dynpro USING program dynpro.&lt;/P&gt;&lt;P&gt;  CLEAR i_bdcdata.&lt;/P&gt;&lt;P&gt;  i_bdcdata-program  = program.&lt;/P&gt;&lt;P&gt;  i_bdcdata-dynpro   = dynpro.&lt;/P&gt;&lt;P&gt;  i_bdcdata-dynbegin = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND i_bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "BDC_DYNPRO&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_FIELD&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;FORM bdc_field USING fnam fval.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF fval &amp;lt;&amp;gt; nodata.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR i_bdcdata.&lt;/P&gt;&lt;P&gt;  i_bdcdata-fnam = fnam.&lt;/P&gt;&lt;P&gt;  i_bdcdata-fval = fval.&lt;/P&gt;&lt;P&gt;  APPEND i_bdcdata.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDFORM.                    "bdc_field&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  ERROR_RECORD_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 error_record_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: g_lines,&lt;/P&gt;&lt;P&gt;       wa_messtab,&lt;/P&gt;&lt;P&gt;       g_msg.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE i_messtab LINES g_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE i_messtab INTO wa_messtab INDEX g_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CLEAR g_msg.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        id        = wa_messtab-msgid&lt;/P&gt;&lt;P&gt;        lang      = sy-langu&lt;/P&gt;&lt;P&gt;        no        = wa_messtab-msgnr&lt;/P&gt;&lt;P&gt;        v1        = wa_messtab-msgv1&lt;/P&gt;&lt;P&gt;        v2        = wa_messtab-msgv2&lt;/P&gt;&lt;P&gt;        v3        = wa_messtab-msgv3&lt;/P&gt;&lt;P&gt;        v4        = wa_messtab-msgv4&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        msg       = g_msg&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        not_found = 1&lt;/P&gt;&lt;P&gt;        OTHERS    = 2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF wa_messtab-msgtyp = 'E'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF wa_messtab-msgtyp = 'S' AND wa_messtab-msgnr = '102' AND wa_messtab-msgid = 'PG'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_error-pernr = i_plan-pernr.&lt;/P&gt;&lt;P&gt;      wa_error-rel_obj_id = 'S'.&lt;/P&gt;&lt;P&gt;      wa_error-msg = 'Personnel Number Created Successfully'.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      wa_error-pernr = i_plan-pernr.&lt;/P&gt;&lt;P&gt;      wa_error-rel_obj_id = 'E'.&lt;/P&gt;&lt;P&gt;      wa_error-msg = g_msg.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND wa_error TO i_error.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR i_error.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " ERROR_RECORD_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  FINAL_OUTPUT&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 final_output .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR g_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT i_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*************&lt;STRONG&gt;added&lt;/STRONG&gt;*********************************************&lt;/P&gt;&lt;P&gt;  loop at i_error into wa_error.&lt;/P&gt;&lt;P&gt;    if wa_error-MSG eq 'No batch input data for screen MP000600 2000'.&lt;/P&gt;&lt;P&gt;      wa_error-rel_obj_id = 'S'.&lt;/P&gt;&lt;P&gt;      wa_error-MSG = 'Record Created Successfully'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      modify i_error from wa_error.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at i_error into wa_error.&lt;/P&gt;&lt;P&gt;    if  wa_error-rel_obj_id = 'S'.&lt;/P&gt;&lt;P&gt;      g_cnt_success = g_cnt_success + 1.       " Append success count&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    elseif  wa_error-rel_obj_id = 'E'.&lt;/P&gt;&lt;P&gt;      g_cnt_failure = g_cnt_failure + 1.       " Append error count&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Field catalog&lt;/P&gt;&lt;P&gt;  PERFORM field_cat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Assigning Program name&lt;/P&gt;&lt;P&gt;  g_repid = sy-repid.&lt;/P&gt;&lt;P&gt;  SORT i_error.&lt;/P&gt;&lt;P&gt;***Display Output&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT it_final[] IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            i_callback_program       = g_repid&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           i_callback_user_command  = 'USER_COMMAND'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           i_callback_pf_status_set = 'PF_STATUS_SET'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            i_save                   = 'A'&lt;/P&gt;&lt;P&gt;            it_events                = it_event1&lt;/P&gt;&lt;P&gt;            is_layout                = is_layout&lt;/P&gt;&lt;P&gt;            it_fieldcat              = i_fieldcat[]&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            t_outtab                 = i_error[].&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE i015(zv_msg) WITH 'No Data Found for this selection'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " FINAL_OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  top_of_page&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;P&gt;FORM top_of_page.&lt;/P&gt;&lt;P&gt;***FM for Displaying Heading&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_list_commentary = i_header1[]&lt;/P&gt;&lt;P&gt;      i_logo             = 'ENJOYSAP_LOGO'.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "top_of_page&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  FIELD_CAT&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 field_cat .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " FIELD_CAT&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  CALL_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;P&gt; *&lt;/P&gt;&lt;P&gt;FORM call_transaction .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL TRANSACTION 'PA40' USING i_bdcdata&lt;/P&gt;&lt;P&gt;                               MODE g_mode&lt;/P&gt;&lt;P&gt;                               UPDATE 'S'&lt;/P&gt;&lt;P&gt;                               MESSAGES INTO i_messtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If call transaction successful&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   g_cnt_success = g_cnt_success + 1.       " Append success count  "changed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM error_record_data.  " Populate all data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If call transaction not successful&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM error_record_data. " Populate all table&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   g_cnt_failure = g_cnt_failure + 1.       " Append error count  "changed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " CALL_TRANSACTION&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 10 Feb 2011 06:29:31 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2011-02-10T06:29:31Z</dc:date>
    <item>
      <title>BDC PROGRAM WITH OUT USING A FM?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-program-with-out-using-a-fm/m-p/7669155#M1574961</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I need wirte a BDC program for tcode PA30.&lt;/P&gt;&lt;P&gt;i did the screen recording part using tcode-shdb.&lt;/P&gt;&lt;P&gt;i need to use field i recorded as input fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now the main part is how to write code? with out using a class/method?&lt;/P&gt;&lt;P&gt;class/method which i earlier used is class : CL_GUI_FRONTEND_SERVICES.&lt;/P&gt;&lt;P&gt;                                                         method: gui_upload.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; am not using ny flat file/xml file to upload?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;are there any function modules which i can use?&lt;/P&gt;&lt;P&gt;and how to write code with out using FM?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if any can solve  my issue would be very helpful...plz provide code...which would be more helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in Adv.&lt;/P&gt;&lt;P&gt;Krrish.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Feb 2011 03:26:21 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-program-with-out-using-a-fm/m-p/7669155#M1574961</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2011-02-10T03:26:21Z</dc:date>
    </item>
    <item>
      <title>Re: BDC PROGRAM WITH OUT USING A FM?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-program-with-out-using-a-fm/m-p/7669156#M1574962</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;class/method:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD cl_gui_frontend_services=&amp;gt;gui_upload&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FILENAME                = SPACE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FILETYPE                = 'ASC'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   HAS_FIELD_SEPARATOR     = SPACE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   HEADER_LENGTH           = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   READ_BY_LINE            = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DAT_MODE                = SPACE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CODEPAGE                = SPACE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IGNORE_CERR             = ABAP_TRUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   REPLACEMENT             = '#'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   VIRUS_SCAN_PROFILE      =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FILELENGTH              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   HEADER                  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CHANGING&lt;/P&gt;&lt;P&gt;    data_tab                =&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FILE_OPEN_ERROR         = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FILE_READ_ERROR         = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   NO_BATCH                = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   GUI_REFUSE_FILETRANSFER = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   INVALID_TYPE            = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   NO_AUTHORITY            = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   UNKNOWN_ERROR           = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   BAD_DATA_FORMAT         = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   HEADER_NOT_ALLOWED      = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SEPARATOR_NOT_ALLOWED   = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   HEADER_TOO_LONG         = 11&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   UNKNOWN_DP_ERROR        = 12&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ACCESS_DENIED           = 13&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DP_OUT_OF_MEMORY        = 14&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DISK_FULL               = 15&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   DP_TIMEOUT              = 16&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   NOT_SUPPORTED_BY_GUI    = 17&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   ERROR_NO_GUI            = 18&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   others                  = 19&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;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Feb 2011 03:31:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-program-with-out-using-a-fm/m-p/7669156#M1574962</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2011-02-10T03:31:06Z</dc:date>
    </item>
    <item>
      <title>Re: BDC PROGRAM WITH OUT USING A FM?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-program-with-out-using-a-fm/m-p/7669157#M1574963</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;Go through this link. While selecting the file use this class.There are number of Wiki are available in  SCN. Please go through this.&lt;/P&gt;&lt;P&gt;&lt;A href="http://wiki.sdn.sap.com/wiki/display/Snippets/Working" target="test_blank"&gt;http://wiki.sdn.sap.com/wiki/display/Snippets/Working&lt;/A&gt;&lt;EM&gt;With&lt;/EM&gt;Files. Tell if more help need on this. Close thread if your thread is answered.&lt;/P&gt;&lt;P&gt;The above wiki provided by Xinpeng Lin.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Madhu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Feb 2011 06:08:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-program-with-out-using-a-fm/m-p/7669157#M1574963</guid>
      <dc:creator>madhu_vadlamani</dc:creator>
      <dc:date>2011-02-10T06:08:23Z</dc:date>
    </item>
    <item>
      <title>Re: BDC PROGRAM WITH OUT USING A FM?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-program-with-out-using-a-fm/m-p/7669158#M1574964</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;   If you are migrating employee data, I would suggest you to do it through PA40 transaction rather PA30. systematic screen validations it will go through. If you dont want to use any FM and wanted to do using recording pls find the below code which will update the employee data through PA40 with call transaction method. &lt;/P&gt;&lt;P&gt; &lt;/P&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;/P&gt;&lt;P&gt;SELECTION-SCREEN: BEGIN OF BLOCK b1 WITH FRAME TITLE   text-001.&lt;/P&gt;&lt;P&gt;PARAMETERS: p_plan TYPE ibipparms-path OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK b1.&lt;/P&gt;&lt;P&gt; TYPES: BEGIN OF ty_error,&lt;/P&gt;&lt;P&gt;         pernr TYPE persno,       " Personnel number&lt;/P&gt;&lt;P&gt;         rel_obj_id(12),         " Related Object ID&lt;/P&gt;&lt;P&gt;         msg(200) TYPE c,       " To store Message&lt;/P&gt;&lt;P&gt;       END   OF ty_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: i_tplan TYPE STANDARD TABLE OF alsmex_tabline WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      i_intern TYPE STANDARD TABLE OF alsmex_tabline WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      i_error    TYPE ty_error OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF w_pa000,&lt;/P&gt;&lt;P&gt;       pernr TYPE persno,&lt;/P&gt;&lt;P&gt;       begda TYPE begda,&lt;/P&gt;&lt;P&gt;      END OF w_pa000.&lt;/P&gt;&lt;P&gt;DATA: wa_plan LIKE i_plan,&lt;/P&gt;&lt;P&gt;      wa_messtab    TYPE bdcmsgcoll, " Messages&lt;/P&gt;&lt;P&gt;      wa_error      TYPE ty_error.  " Errors&lt;/P&gt;&lt;P&gt;DATA: it_pa000 LIKE STANDARD TABLE OF w_pa000 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      it_pa002 LIKE STANDARD TABLE OF w_pa000 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;      it_pa001 LIKE STANDARD TABLE OF w_pa000 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;DATA:  g_mode LIKE ctu_params-dismode VALUE 'N',&lt;/P&gt;&lt;P&gt;       g_file TYPE ibipparms-path.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV field catalog&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : i_fieldcat TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Batchinputdata of single transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:   i_bdcdata LIKE bdcdata    OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      messages of call transaction&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:   i_messtab LIKE bdcmsgcoll OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      error session opened (' ' or 'X')&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Table to hold the return messages&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA: BEGIN OF i_errmsg OCCURS 10.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE bapiret2.&lt;/P&gt;&lt;P&gt;DATA: END OF i_errmsg.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV List header table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : i_header1 TYPE slis_t_listheader.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV List header table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA : i_header TYPE slis_listheader.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***ALV Events&lt;/P&gt;&lt;P&gt;DATA: is_layout TYPE slis_layout_alv.&lt;/P&gt;&lt;P&gt;DATA : it_event TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;DATA : it_event1 TYPE slis_t_event.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To get the F4 help for file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_plan.&lt;/P&gt;&lt;P&gt;  PERFORM get_filename.&lt;/P&gt;&lt;P&gt;************************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;START  OF SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************************&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Initialise data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM initialise_events.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Retrieve data from Excel file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM retreive_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate final data into an internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM populate_data.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Process the excel file data to create a record for IT0007&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM process_data.&lt;/P&gt;&lt;P&gt;************************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;END  OF SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************************&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;  PERFORM final_output.&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  GET_FILENAME&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 get_filename .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Function module used for F4 help&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;    IMPORTING&lt;/P&gt;&lt;P&gt;      file_name     = p_plan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_FILENAME&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  INITIALISE_EVENTS&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 initialise_events .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  i_header-typ = 'H'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; i_header-key = 'R'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  i_header-info = 'BDC Interface for PA Infotypes 0000,0001,0002'.&lt;/P&gt;&lt;P&gt;  APPEND i_header TO i_header1.&lt;/P&gt;&lt;P&gt;  CLEAR i_header.&lt;/P&gt;&lt;P&gt;  i_header-typ = 'S'.&lt;/P&gt;&lt;P&gt;  i_header-info = 'Hiring, Org.Assignment, Personnel Data'.&lt;/P&gt;&lt;P&gt;  APPEND i_header TO i_header1.&lt;/P&gt;&lt;P&gt;  CLEAR i_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Events and form name&lt;/P&gt;&lt;P&gt;  it_event-name = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;  it_event-form = 'TOP_OF_PAGE'.&lt;/P&gt;&lt;P&gt;  APPEND it_event TO it_event1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " INITIALISE_EVENTS&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  RETREIVE_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 retreive_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM upload_data.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " RETREIVE_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  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;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FM to upload data from excel sheet to internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                = p_plan&lt;/P&gt;&lt;P&gt;      i_begin_col             = g_colbeg&lt;/P&gt;&lt;P&gt;      i_begin_row             = g_rowbeg&lt;/P&gt;&lt;P&gt;      i_end_col               = g_colend&lt;/P&gt;&lt;P&gt;      i_end_row               = g_rowend&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      intern                  = i_tplan&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      inconsistent_parameters = 1&lt;/P&gt;&lt;P&gt;      upload_ole              = 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;P&gt;    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno&lt;/P&gt;&lt;P&gt;            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " 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  POPULATE_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 populate_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;processing the internal table generated from the function module&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Passing data from Excel file to internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: g_cnt_processed,&lt;/P&gt;&lt;P&gt;         g_cnt_err_processed,&lt;/P&gt;&lt;P&gt;         i_intern,&lt;/P&gt;&lt;P&gt;         i_plan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_tplan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT NEW row.&lt;/P&gt;&lt;P&gt;      CLEAR i_plan.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CASE i_tplan-col.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Begin Date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WHEN '0001'.&lt;/P&gt;&lt;P&gt;        i_plan-pernr = i_tplan-value.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End Date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WHEN '0002'.&lt;/P&gt;&lt;P&gt;        i_plan-begda = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0003'.&lt;/P&gt;&lt;P&gt;        i_plan-massg = i_tplan-value.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Sign&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      WHEN '0004'.&lt;/P&gt;&lt;P&gt;        i_plan-plans = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0005'.&lt;/P&gt;&lt;P&gt;        i_plan-werks = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0006'.&lt;/P&gt;&lt;P&gt;        i_plan-persg = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0007'.&lt;/P&gt;&lt;P&gt;        i_plan-persk = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0008'.&lt;/P&gt;&lt;P&gt;        i_plan-anrex = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0009'.&lt;/P&gt;&lt;P&gt;        i_plan-nachn = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0010'.&lt;/P&gt;&lt;P&gt;        i_plan-vorna = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0011'.&lt;/P&gt;&lt;P&gt;        i_plan-gesch = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0012'.&lt;/P&gt;&lt;P&gt;        i_plan-gbdat = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0013'.&lt;/P&gt;&lt;P&gt;        i_plan-fatxt = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0014'.&lt;/P&gt;&lt;P&gt;        i_plan-famdt = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0015'.&lt;/P&gt;&lt;P&gt;        i_plan-gblnd = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0016'.&lt;/P&gt;&lt;P&gt;        i_plan-anzkd = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0017'.&lt;/P&gt;&lt;P&gt;        i_plan-natio = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0018'.&lt;/P&gt;&lt;P&gt;        i_plan-btrtl = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0019'.&lt;/P&gt;&lt;P&gt;        i_plan-gsber = i_tplan-value.&lt;/P&gt;&lt;P&gt;      WHEN '0020'.&lt;/P&gt;&lt;P&gt;        i_plan-abkrs = i_tplan-value.&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Appending the internal table tb_data, tb_chng&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    AT END OF row.&lt;/P&gt;&lt;P&gt;      APPEND i_plan.&lt;/P&gt;&lt;P&gt;      IF i_plan IS INITIAL.&lt;/P&gt;&lt;P&gt;        g_cnt_err_processed = g_cnt_err_processed + 1.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;To get the total number of records processed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  DESCRIBE TABLE i_plan LINES g_lines.&lt;/P&gt;&lt;P&gt;  g_cnt_processed = g_cnt_err_processed + g_lines.&lt;/P&gt;&lt;P&gt;  CLEAR g_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " POPULATE_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  PROCESS_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;FORM process_data .&lt;/P&gt;&lt;P&gt;  CLEAR wa_error.&lt;/P&gt;&lt;P&gt;  REFRESH i_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if the employee numbers from the template has already been hired&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  SELECT pernr&lt;/P&gt;&lt;P&gt;         begda&lt;/P&gt;&lt;P&gt;         FROM pa0000&lt;/P&gt;&lt;P&gt;         INTO TABLE it_pa000&lt;/P&gt;&lt;P&gt;         FOR ALL ENTRIES IN i_plan&lt;/P&gt;&lt;P&gt;         WHERE pernr = i_plan-pernr&lt;/P&gt;&lt;P&gt;           AND massn = 'ZA'.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    SORT it_pa000 BY pernr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if employee has a corresponding infotype 0001 record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT pernr&lt;/P&gt;&lt;P&gt;           begda&lt;/P&gt;&lt;P&gt;           FROM pa0001&lt;/P&gt;&lt;P&gt;           INTO TABLE it_pa001&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN it_pa000&lt;/P&gt;&lt;P&gt;           WHERE pernr = it_pa000-pernr AND&lt;/P&gt;&lt;P&gt;                 begda = it_pa000-begda.&lt;/P&gt;&lt;P&gt;    IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;      SORT it_pa001 BY pernr.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check if employee has a corresponding infotype 0002 record&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SELECT pernr&lt;/P&gt;&lt;P&gt;           begda&lt;/P&gt;&lt;P&gt;           FROM pa0001&lt;/P&gt;&lt;P&gt;           INTO TABLE it_pa002&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN it_pa001&lt;/P&gt;&lt;P&gt;           WHERE pernr = it_pa001-pernr AND&lt;/P&gt;&lt;P&gt;                 begda = it_pa001-begda.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        SORT it_pa002 BY pernr.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_plan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    REFRESH i_bdcdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***&lt;STRONG&gt;your recording to be pasted here&lt;/STRONG&gt;***&lt;/P&gt;&lt;P&gt;    PERFORM bdc_field       USING 'BDC_CURSOR'&lt;/P&gt;&lt;P&gt;                                  'P0006-BEGDA'.&lt;/P&gt;&lt;P&gt;    PERFORM call_transaction.&lt;/P&gt;&lt;P&gt;    APPEND wa_error TO i_error.&lt;/P&gt;&lt;P&gt;    REFRESH: i_bdcdata, i_messtab.&lt;/P&gt;&lt;P&gt;    CLEAR: wa_error, i_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " PROCESS_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  BDC_DYNPRO&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;FORM bdc_dynpro USING program dynpro.&lt;/P&gt;&lt;P&gt;  CLEAR i_bdcdata.&lt;/P&gt;&lt;P&gt;  i_bdcdata-program  = program.&lt;/P&gt;&lt;P&gt;  i_bdcdata-dynpro   = dynpro.&lt;/P&gt;&lt;P&gt;  i_bdcdata-dynbegin = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND i_bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "BDC_DYNPRO&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_FIELD&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;FORM bdc_field USING fnam fval.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF fval &amp;lt;&amp;gt; nodata.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR i_bdcdata.&lt;/P&gt;&lt;P&gt;  i_bdcdata-fnam = fnam.&lt;/P&gt;&lt;P&gt;  i_bdcdata-fval = fval.&lt;/P&gt;&lt;P&gt;  APPEND i_bdcdata.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDFORM.                    "bdc_field&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  ERROR_RECORD_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 error_record_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR: g_lines,&lt;/P&gt;&lt;P&gt;       wa_messtab,&lt;/P&gt;&lt;P&gt;       g_msg.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE i_messtab LINES g_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  READ TABLE i_messtab INTO wa_messtab INDEX g_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CLEAR g_msg.&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        id        = wa_messtab-msgid&lt;/P&gt;&lt;P&gt;        lang      = sy-langu&lt;/P&gt;&lt;P&gt;        no        = wa_messtab-msgnr&lt;/P&gt;&lt;P&gt;        v1        = wa_messtab-msgv1&lt;/P&gt;&lt;P&gt;        v2        = wa_messtab-msgv2&lt;/P&gt;&lt;P&gt;        v3        = wa_messtab-msgv3&lt;/P&gt;&lt;P&gt;        v4        = wa_messtab-msgv4&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        msg       = g_msg&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        not_found = 1&lt;/P&gt;&lt;P&gt;        OTHERS    = 2.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   IF wa_messtab-msgtyp = 'E'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF wa_messtab-msgtyp = 'S' AND wa_messtab-msgnr = '102' AND wa_messtab-msgid = 'PG'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_error-pernr = i_plan-pernr.&lt;/P&gt;&lt;P&gt;      wa_error-rel_obj_id = 'S'.&lt;/P&gt;&lt;P&gt;      wa_error-msg = 'Personnel Number Created Successfully'.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      wa_error-pernr = i_plan-pernr.&lt;/P&gt;&lt;P&gt;      wa_error-rel_obj_id = 'E'.&lt;/P&gt;&lt;P&gt;      wa_error-msg = g_msg.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   APPEND wa_error TO i_error.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   CLEAR i_error.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " ERROR_RECORD_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  FINAL_OUTPUT&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 final_output .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR g_lines.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SORT i_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*************&lt;STRONG&gt;added&lt;/STRONG&gt;*********************************************&lt;/P&gt;&lt;P&gt;  loop at i_error into wa_error.&lt;/P&gt;&lt;P&gt;    if wa_error-MSG eq 'No batch input data for screen MP000600 2000'.&lt;/P&gt;&lt;P&gt;      wa_error-rel_obj_id = 'S'.&lt;/P&gt;&lt;P&gt;      wa_error-MSG = 'Record Created Successfully'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      modify i_error from wa_error.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at i_error into wa_error.&lt;/P&gt;&lt;P&gt;    if  wa_error-rel_obj_id = 'S'.&lt;/P&gt;&lt;P&gt;      g_cnt_success = g_cnt_success + 1.       " Append success count&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    elseif  wa_error-rel_obj_id = 'E'.&lt;/P&gt;&lt;P&gt;      g_cnt_failure = g_cnt_failure + 1.       " Append error count&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Field catalog&lt;/P&gt;&lt;P&gt;  PERFORM field_cat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;***Assigning Program name&lt;/P&gt;&lt;P&gt;  g_repid = sy-repid.&lt;/P&gt;&lt;P&gt;  SORT i_error.&lt;/P&gt;&lt;P&gt;***Display Output&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF NOT it_final[] IS INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            i_callback_program       = g_repid&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           i_callback_user_command  = 'USER_COMMAND'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           i_callback_pf_status_set = 'PF_STATUS_SET'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            i_save                   = 'A'&lt;/P&gt;&lt;P&gt;            it_events                = it_event1&lt;/P&gt;&lt;P&gt;            is_layout                = is_layout&lt;/P&gt;&lt;P&gt;            it_fieldcat              = i_fieldcat[]&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;            t_outtab                 = i_error[].&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ELSE.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   MESSAGE i015(zv_msg) WITH 'No Data Found for this selection'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " FINAL_OUTPUT&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  top_of_page&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;P&gt;FORM top_of_page.&lt;/P&gt;&lt;P&gt;***FM for Displaying Heading&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      it_list_commentary = i_header1[]&lt;/P&gt;&lt;P&gt;      i_logo             = 'ENJOYSAP_LOGO'.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "top_of_page&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  FIELD_CAT&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 field_cat .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " FIELD_CAT&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  CALL_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;P&gt; *&lt;/P&gt;&lt;P&gt;FORM call_transaction .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL TRANSACTION 'PA40' USING i_bdcdata&lt;/P&gt;&lt;P&gt;                               MODE g_mode&lt;/P&gt;&lt;P&gt;                               UPDATE 'S'&lt;/P&gt;&lt;P&gt;                               MESSAGES INTO i_messtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If call transaction successful&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   g_cnt_success = g_cnt_success + 1.       " Append success count  "changed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    PERFORM error_record_data.  " Populate all data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If call transaction not successful&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    PERFORM error_record_data. " Populate all table&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   g_cnt_failure = g_cnt_failure + 1.       " Append error count  "changed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " CALL_TRANSACTION&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Feb 2011 06:29:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-program-with-out-using-a-fm/m-p/7669158#M1574964</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2011-02-10T06:29:31Z</dc:date>
    </item>
    <item>
      <title>Re: BDC PROGRAM WITH OUT USING A FM?</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-program-with-out-using-a-fm/m-p/7669159#M1574965</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;     If you don't want to upload any data using FM's, then what data is passed to PA30 ?&lt;/P&gt;&lt;P&gt;     In such cases you can have a Z table created and store the information you wanted to upload , write a select and&lt;/P&gt;&lt;P&gt;     do the call transaction.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Srini.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Feb 2011 06:51:10 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc-program-with-out-using-a-fm/m-p/7669159#M1574965</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2011-02-10T06:51:10Z</dc:date>
    </item>
  </channel>
</rss>

