<?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 in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/3898359#M935627</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;DESCRIPTION: BDC program for upload demand (BATCH SESSION - MD11)  &lt;/P&gt;&lt;P&gt;Using excel sheet for data upload&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;YOURCODE: &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; Report  ZTBPP102                                                    *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&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; Title: BDC program for upload demand (BATCH SESSION - MD11)         *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&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;Essential Steps :&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;1. Read the data from excel file into ABAP internal table using&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   function module ALSM_EXCEL_TO_INTERNAL_TABLE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;2. Store the data in internal table and do the validation&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;3. For valid data create a Batch session (MD11)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Insert data from the internal table into the batch&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;4. Once the batch is created the user needs to process the batch&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   by going through SM35&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;&lt;/P&gt;&lt;P&gt;REPORT  ztbpp102.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;------------------- Start of Data Declaration -----------------------*&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CONSTANTS: c_begcol TYPE i VALUE 1,&lt;/P&gt;&lt;P&gt;            c_begrow TYPE i VALUE 1,&lt;/P&gt;&lt;P&gt;            c_endcol TYPE i VALUE 100,&lt;/P&gt;&lt;P&gt;            c_endrow TYPE i VALUE 32000,&lt;/P&gt;&lt;P&gt;            c_x(1) TYPE c VALUE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : w_field(30),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Flag for data check status&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        w_invalid_data(1) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS : &amp;lt;fs&amp;gt; TYPE ANY.&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;Internal Tables&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The prefix 000n is becuase the colmn in alsmex_tabline isof data&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;type n withg length 4&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: BEGIN OF ty_tab,&lt;/P&gt;&lt;P&gt;           cell_0001 TYPE alsmex_tabline-value,  "Plant&lt;/P&gt;&lt;P&gt;           cell_0002 TYPE alsmex_tabline-value,  "Material No&lt;/P&gt;&lt;P&gt;           cell_0003 TYPE alsmex_tabline-value,  "Order Start Date&lt;/P&gt;&lt;P&gt;           cell_0004 TYPE alsmex_tabline-value,  "Order finish Date&lt;/P&gt;&lt;P&gt;           cell_0005 TYPE alsmex_tabline-value,  "Quantity&lt;/P&gt;&lt;P&gt;           cell_0006 TYPE alsmex_tabline-value,  "Quantity unit DV1K905068&lt;/P&gt;&lt;P&gt;        END OF ty_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_error,&lt;/P&gt;&lt;P&gt;         line TYPE string,&lt;/P&gt;&lt;P&gt;        END OF ty_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_mara,&lt;/P&gt;&lt;P&gt;          matnr TYPE mara-matnr,&lt;/P&gt;&lt;P&gt;        END OF ty_mara.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_t001w,&lt;/P&gt;&lt;P&gt;          werks TYPE t001w-werks,&lt;/P&gt;&lt;P&gt;        END OF ty_t001w.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_upload_data LIKE alsmex_tabline OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_tab TYPE STANDARD TABLE OF ty_tab,&lt;/P&gt;&lt;P&gt;       wa_tab TYPE ty_tab,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for BDC&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     it_bdcdata TYPE STANDARD TABLE OF bdcdata,&lt;/P&gt;&lt;P&gt;*work area&lt;/P&gt;&lt;P&gt;      wa_bdcdata TYPE bdcdata,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to store error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      it_error TYPE STANDARD TABLE OF ty_error,&lt;/P&gt;&lt;P&gt;      wa_error TYPE ty_error,&lt;/P&gt;&lt;P&gt;      it_mara TYPE STANDARD TABLE OF ty_mara,&lt;/P&gt;&lt;P&gt;      wa_mara TYPE ty_mara,&lt;/P&gt;&lt;P&gt;      it_t001w TYPE STANDARD TABLE OF ty_t001w,&lt;/P&gt;&lt;P&gt;      wa_t001w TYPE ty_t001w.&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;------------------- End of Data Declaration -----------------------*&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------" /&gt;       Start of Selection Screen   -&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 LIKE rlgrap-filename MEMORY ID m02,&lt;/P&gt;&lt;P&gt;             p_sesson TYPE apqi-groupid DEFAULT 'DMND_UPLOAD'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------" /&gt;       End of Selection Screen   -&lt;HR originaltext="------------------------" /&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;Event INITIALIZATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;   CLEAR: w_invalid_data, w_field.&lt;/P&gt;&lt;P&gt;   REFRESH: it_upload_data, it_tab, it_error, it_bdcdata, it_mara,&lt;/P&gt;&lt;P&gt;            it_t001w.&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;  Start of at selection-screen -&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Show the file selection dialog box&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   CALL FUNCTION 'KD_GET_FILENAME_ON_F4'&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;       mask          = '(&lt;STRONG&gt;.xls)|&lt;/STRONG&gt;.xls|(&lt;STRONG&gt;.&lt;/STRONG&gt;)|&lt;STRONG&gt;.&lt;/STRONG&gt;' "For excel&lt;/P&gt;&lt;P&gt;       static        = 'X'&lt;/P&gt;&lt;P&gt;     CHANGING&lt;/P&gt;&lt;P&gt;       file_name     = p_file&lt;/P&gt;&lt;P&gt;     EXCEPTIONS&lt;/P&gt;&lt;P&gt;       mask_too_long = 1&lt;/P&gt;&lt;P&gt;       OTHERS        = 2.&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;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------" /&gt; End of at Selection-screen -&lt;HR originaltext="--------------------------" /&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;START-OF-SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Upload the excel data into the program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   PERFORM upload_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate data in internal table it_tab from excel upload data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   PERFORM populate_it_tab_from_excel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check the mandatory fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   PERFORM check_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;When the dataset is valid proceed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   IF w_invalid_data IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open the BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM open_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate BDC table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM populate_bdc_session.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Close the BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM close_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     WRITE:/ 'Batch input session '(m01), p_sesson, ' created &lt;/P&gt;&lt;P&gt;successfully'(m02).&lt;/P&gt;&lt;P&gt;     WRITE:/ 'Please process the session using transaction SM35'(m03).&lt;/P&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;P&gt;     WRITE:/ 'Error in Input Data :'(m04).&lt;/P&gt;&lt;P&gt;     SKIP 1.&lt;/P&gt;&lt;P&gt;     LOOP AT it_error INTO wa_error.&lt;/P&gt;&lt;P&gt;       WRITE:/ wa_error-line.&lt;/P&gt;&lt;P&gt;     ENDLOOP.&lt;/P&gt;&lt;P&gt;     SKIP 1.&lt;/P&gt;&lt;P&gt;     WRITE: 'Please correct error and try to upload again'(m05).&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  UPLOAD_FILE&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;Upload the data from the excel file into ABAP internal table&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 upload_file .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Upload the excel file in ABAP 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_file&lt;/P&gt;&lt;P&gt;       i_begin_col             = c_begcol&lt;/P&gt;&lt;P&gt;       i_begin_row             = c_begrow&lt;/P&gt;&lt;P&gt;       i_end_col               = c_endcol&lt;/P&gt;&lt;P&gt;       i_end_row               = c_endrow&lt;/P&gt;&lt;P&gt;     TABLES&lt;/P&gt;&lt;P&gt;       intern                  = it_upload_data&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 i999(zttl) WITH 'Error in uploading the file!'(m06).&lt;/P&gt;&lt;P&gt;     LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " UPLOAD_FILE&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_it_tab_from_excel&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; Populate data in internal table it_tab from excel upload data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM populate_it_tab_from_excel .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   DATA: l_col_no TYPE alsmex_tabline-col.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table  it_upload_data store data in cellwise&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;with row, colmn and value&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Change this data to a row-wise data and populate the table it_tab&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   SORT it_upload_data BY row col.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Delete the entries with row 0001 as those row has the colmn headings&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   DELETE it_upload_data WHERE row = '0001'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Convert the excel data to row-wise data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   LOOP AT it_upload_data.&lt;/P&gt;&lt;P&gt;     l_col_no  = it_upload_data-col.&lt;/P&gt;&lt;P&gt;     CONCATENATE 'WA_TAB-cell_' l_col_no INTO w_field.&lt;/P&gt;&lt;P&gt;     ASSIGN (w_field) TO &amp;lt;fs&amp;gt;.&lt;/P&gt;&lt;P&gt;     IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;       &amp;lt;fs&amp;gt; = it_upload_data-value.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;     AT END OF row.&lt;/P&gt;&lt;P&gt;       APPEND wa_tab TO it_tab.&lt;/P&gt;&lt;P&gt;       CLEAR wa_tab.&lt;/P&gt;&lt;P&gt;     ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   IF it_tab[] IS INITIAL.&lt;/P&gt;&lt;P&gt;     MESSAGE i999(zttl) WITH 'No record to upload!'(m07).&lt;/P&gt;&lt;P&gt;     LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " populate_it_tab_from_excel&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  check_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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Do data validation&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 check_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   DATA: l_error TYPE string,&lt;/P&gt;&lt;P&gt;         l_line_no(4) TYPE c,&lt;/P&gt;&lt;P&gt;         l_it_tab_temp TYPE STANDARD TABLE OF ty_tab,&lt;/P&gt;&lt;P&gt;         l_it_mara TYPE STANDARD TABLE OF ty_mara,&lt;/P&gt;&lt;P&gt;         l_it_t001w TYPE STANDARD TABLE OF ty_t001w,&lt;/P&gt;&lt;P&gt;         l_gsmng TYPE plaf-gsmng,&lt;/P&gt;&lt;P&gt;         l_matnr TYPE plaf-matnr.&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;Select plant data from T001w&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Cell_0001 is for plant&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   IF NOT it_tab[] IS INITIAL.&lt;/P&gt;&lt;P&gt;     REFRESH l_it_tab_temp.&lt;/P&gt;&lt;P&gt;     l_it_tab_temp[] = it_tab[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     SORT l_it_tab_temp BY cell_0001.&lt;/P&gt;&lt;P&gt;     DELETE ADJACENT DUPLICATES FROM l_it_tab_temp COMPARING cell_0001.&lt;/P&gt;&lt;P&gt;     LOOP AT l_it_tab_temp INTO wa_tab.&lt;/P&gt;&lt;P&gt;       wa_t001w-werks = wa_tab-cell_0001.&lt;/P&gt;&lt;P&gt;       TRANSLATE  wa_t001w-werks TO UPPER CASE.           "#EC TRANSLANG&lt;/P&gt;&lt;P&gt;       APPEND wa_t001w TO l_it_t001w.&lt;/P&gt;&lt;P&gt;     ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     IF NOT l_it_t001w[] IS INITIAL.&lt;/P&gt;&lt;P&gt;       SELECT werks&lt;/P&gt;&lt;P&gt;       FROM t001w&lt;/P&gt;&lt;P&gt;       INTO TABLE it_t001w&lt;/P&gt;&lt;P&gt;       FOR ALL ENTRIES IN l_it_t001w&lt;/P&gt;&lt;P&gt;       WHERE werks = l_it_t001w-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;         SORT it_t001w BY werks.&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;*Select data from Material master&lt;/P&gt;&lt;P&gt;   IF NOT it_tab[] IS INITIAL.&lt;/P&gt;&lt;P&gt;     REFRESH l_it_tab_temp.&lt;/P&gt;&lt;P&gt;     l_it_tab_temp[] = it_tab[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Cell 0002 is for material no&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     SORT l_it_tab_temp BY cell_0002.&lt;/P&gt;&lt;P&gt;     DELETE ADJACENT DUPLICATES FROM l_it_tab_temp COMPARING cell_0002.&lt;/P&gt;&lt;P&gt;     LOOP AT l_it_tab_temp INTO wa_tab.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;call a conversion exit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       CLEAR l_matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;           input  = wa_tab-cell_0002&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;           output = l_matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       TRANSLATE l_matnr TO UPPER CASE.                   "#EC TRANSLANG&lt;/P&gt;&lt;P&gt;       wa_mara-matnr = l_matnr.&lt;/P&gt;&lt;P&gt;       APPEND wa_mara TO l_it_mara.&lt;/P&gt;&lt;P&gt;     ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     IF NOT l_it_mara[] IS INITIAL.&lt;/P&gt;&lt;P&gt;       SELECT matnr&lt;/P&gt;&lt;P&gt;       FROM mara&lt;/P&gt;&lt;P&gt;       INTO TABLE it_mara&lt;/P&gt;&lt;P&gt;       FOR ALL ENTRIES IN l_it_mara&lt;/P&gt;&lt;P&gt;       WHERE matnr = l_it_mara-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;         SORT it_mara BY matnr.&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;&lt;/P&gt;&lt;P&gt;*Check on mandatory field&lt;/P&gt;&lt;P&gt;   LOOP AT it_tab INTO wa_tab.&lt;/P&gt;&lt;P&gt;     l_line_no = sy-tabix.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Increase the line no by 1 as the first row (have the heading)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;is not considered&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     l_line_no = l_line_no + 1.&lt;/P&gt;&lt;P&gt;&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;Check for plant (cell_0001)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IF wa_tab-cell_0001 IS INITIAL.&lt;/P&gt;&lt;P&gt;       CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;       CONCATENATE text-m08 l_line_no ': Plant is mandatory'(m13)&lt;/P&gt;&lt;P&gt;         INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;       wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;       APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;       w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for valid plant&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       CLEAR wa_t001w.&lt;/P&gt;&lt;P&gt;       TRANSLATE  wa_tab-cell_0001 TO UPPER CASE.         "#EC TRANSLANG&lt;/P&gt;&lt;P&gt;       READ TABLE it_t001w INTO wa_t001w WITH KEY werks = wa_tab-cell_0001&lt;/P&gt;&lt;P&gt;                                                BINARY SEARCH.&lt;/P&gt;&lt;P&gt;       IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;         CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;         CONCATENATE text-m08 l_line_no ': Invalid plant '(m14) &lt;/P&gt;&lt;P&gt;wa_tab-cell_0001&lt;/P&gt;&lt;P&gt;           INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;         wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;         APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;         w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for material number (Cell_0002)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IF wa_tab-cell_0002 IS INITIAL.&lt;/P&gt;&lt;P&gt;       CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;       CONCATENATE 'Line'(m08) l_line_no ': Material no is mandatory'(m11)&lt;/P&gt;&lt;P&gt;         INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;       wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;       APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;       w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for valid material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       CLEAR wa_mara.&lt;/P&gt;&lt;P&gt;       TRANSLATE  wa_tab-cell_0002 TO UPPER CASE.         "#EC TRANSLANG&lt;/P&gt;&lt;P&gt;       READ TABLE it_mara INTO wa_mara WITH KEY matnr = wa_tab-cell_0002&lt;/P&gt;&lt;P&gt;                                                BINARY SEARCH.&lt;/P&gt;&lt;P&gt;       IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;         CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;         CONCATENATE text-m08 l_line_no ': Invalid Material no'(m12) &lt;/P&gt;&lt;P&gt;wa_tab-cell_0002&lt;/P&gt;&lt;P&gt;           INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;         wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;         APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;         w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for quantity (cell_0005)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IF wa_tab-cell_0005 IS INITIAL.&lt;/P&gt;&lt;P&gt;       CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;       CONCATENATE text-m08 l_line_no ': Order quantity is mandatory'(m21)&lt;/P&gt;&lt;P&gt;         INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;       wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;       APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;       w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check that quantity is a number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       CLEAR: l_gsmng.&lt;/P&gt;&lt;P&gt;       CATCH SYSTEM-EXCEPTIONS conversion_errors = 1.&lt;/P&gt;&lt;P&gt;         l_gsmng = wa_tab-cell_0005.&lt;/P&gt;&lt;P&gt;         IF l_gsmng = 0.&lt;/P&gt;&lt;P&gt;           CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;           CONCATENATE 'Line'(m08) l_line_no ': Quantity cannot be zero'(m22)&lt;/P&gt;&lt;P&gt;             INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;           wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;           APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;           w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;       ENDCATCH.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If there is a conversion error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       IF sy-subrc = 1.&lt;/P&gt;&lt;P&gt;         CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;         CONCATENATE 'Line'(m08) l_line_no ': Quantity'(m23) &lt;/P&gt;&lt;P&gt;wa_tab-cell_0005 'is not a number'(m24)&lt;/P&gt;&lt;P&gt;           INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;         wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;         APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;         w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;       ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start of insert DV1K905068&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IF wa_tab-cell_0006 IS INITIAL.&lt;/P&gt;&lt;P&gt;       CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;       CONCATENATE text-m08 l_line_no ': Quantity unit is mandatory'(m25)&lt;/P&gt;&lt;P&gt;         INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;       wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;       APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;       w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End of insert DV1K905068&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Order finish date is mandatory (Cell_0004)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IF wa_tab-cell_0004 IS INITIAL.&lt;/P&gt;&lt;P&gt;       CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;       CONCATENATE text-m08 l_line_no ': Order finish date is mandatory'(m15)&lt;/P&gt;&lt;P&gt;         INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;       wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;       APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;       w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;     ENDIF.&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.                    " check_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  open_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open the BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM open_group .&lt;/P&gt;&lt;P&gt;&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_sesson&lt;/P&gt;&lt;P&gt;       keep                = c_x&lt;/P&gt;&lt;P&gt;       user                = sy-uname&lt;/P&gt;&lt;P&gt;     EXCEPTIONS&lt;/P&gt;&lt;P&gt;       client_invalid      = 1&lt;/P&gt;&lt;P&gt;       destination_invalid = 2&lt;/P&gt;&lt;P&gt;       group_invalid       = 3&lt;/P&gt;&lt;P&gt;       group_is_locked     = 4&lt;/P&gt;&lt;P&gt;       holddate_invalid    = 5&lt;/P&gt;&lt;P&gt;       internal_error      = 6&lt;/P&gt;&lt;P&gt;       queue_error         = 7&lt;/P&gt;&lt;P&gt;       running             = 8&lt;/P&gt;&lt;P&gt;       system_lock_error   = 9&lt;/P&gt;&lt;P&gt;       user_invalid        = 10&lt;/P&gt;&lt;P&gt;       OTHERS              = 11.&lt;/P&gt;&lt;P&gt;   IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;     MESSAGE i999(zttl) WITH 'Error in creating session'(m16).&lt;/P&gt;&lt;P&gt;     LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " open_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  close_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Close the BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM close_group .&lt;/P&gt;&lt;P&gt;   CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;P&gt;     EXCEPTIONS&lt;/P&gt;&lt;P&gt;       not_open    = 1&lt;/P&gt;&lt;P&gt;       queue_error = 2&lt;/P&gt;&lt;P&gt;       OTHERS      = 3.&lt;/P&gt;&lt;P&gt;   IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;     MESSAGE i999(zttl) WITH 'Error in closing session'(m17).&lt;/P&gt;&lt;P&gt;     LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " close_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  populate_bdc_session&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;Populate the BDC table&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 populate_bdc_session .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   DATA: l_gsmng TYPE plaf-gsmng,                            "DV1K905068&lt;/P&gt;&lt;P&gt;         l_meins_in TYPE mara-meins,                         "DV1K905068&lt;/P&gt;&lt;P&gt;         l_matnr TYPE mara-matnr,                            "DV1K905068&lt;/P&gt;&lt;P&gt;         l_string_gsmng TYPE string.                         "DV1K905068&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   LOOP AT it_tab INTO wa_tab.&lt;/P&gt;&lt;P&gt;     REFRESH it_bdcdata.&lt;/P&gt;&lt;P&gt;     CLEAR: wa_bdcdata.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;First screen of transaction MD111&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_dynpro USING 'SAPMM61P' '0100'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data fiels in screen 0100&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_CURSOR' 'RM61P-PASCH'.&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_OKCODE' '/00'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Planned order profile is always LA&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'RM61P-PASCH' 'LA'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Screen 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_dynpro USING 'SAPLM61O' '0110'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data fiels in screen 0110&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start of change DV1K904978&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field  USING 'BDC_OKCODE' '=TERM'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_OKCODE' '/00'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End of change DV1K904978&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Material no&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'PLAF-MATNR' wa_tab-cell_0002.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Plant&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'PLAF-PLWRK' wa_tab-cell_0001.&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_SUBSCR' 'SAPLM61O                  &lt;/P&gt;&lt;P&gt;               0711INCLUDE1XX'.&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_SUBSCR' 'SAPLM61O                  &lt;/P&gt;&lt;P&gt;               0802INCLUDE711_1'.&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_CURSOR' 'PLAF-PEDTR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strat of change DV1K905068&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Do a material unit conversion from given unit to kg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Use local variable as the fn module needs variable of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;type meins&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     CLEAR: l_meins_in, l_matnr, l_gsmng, l_string_gsmng .&lt;/P&gt;&lt;P&gt;     l_meins_in = wa_tab-cell_0006.&lt;/P&gt;&lt;P&gt;     l_matnr    = wa_tab-cell_0002.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Convert unit text to upper case&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     TRANSLATE l_matnr TO UPPER CASE.                "#EC TRANSLANG&lt;/P&gt;&lt;P&gt;     TRANSLATE l_meins_in TO UPPER CASE.                "#EC TRANSLANG&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Conversion exit on unit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;         input          = l_meins_in&lt;/P&gt;&lt;P&gt;         language       = sy-langu&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;         output         = l_meins_in&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;         unit_not_found = 1&lt;/P&gt;&lt;P&gt;         OTHERS         = 2.&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;       WRITE:/ 'Unit not maintained ', l_meins_in.&lt;/P&gt;&lt;P&gt;       CONTINUE.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Converting the amount&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     CATCH SYSTEM-EXCEPTIONS conversion_errors = 1.&lt;/P&gt;&lt;P&gt;       l_gsmng = wa_tab-cell_0005.&lt;/P&gt;&lt;P&gt;     ENDCATCH.&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;       WRITE:/ 'Quantity is not in proper format ', wa_tab-cell_0005.&lt;/P&gt;&lt;P&gt;       CONTINUE.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;         i_matnr              = l_matnr&lt;/P&gt;&lt;P&gt;         i_in_me              = l_meins_in&lt;/P&gt;&lt;P&gt;         i_out_me             = 'KG'&lt;/P&gt;&lt;P&gt;         i_menge              = l_gsmng&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;         e_menge              = l_gsmng&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;         error_in_application = 1&lt;/P&gt;&lt;P&gt;         error                = 2&lt;/P&gt;&lt;P&gt;         OTHERS               = 3.&lt;/P&gt;&lt;P&gt;     IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;       WRITE:/ 'Material Unit conversion not maintained for ', &lt;/P&gt;&lt;P&gt;wa_tab-cell_0002.&lt;/P&gt;&lt;P&gt;       CONTINUE.&lt;/P&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Assign to straig type variable as gsmng is packed and cannot be appended&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;directly to the BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       l_string_gsmng = l_gsmng.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Quantity&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field  USING 'PLAF-GSMNG' wa_tab-cell_0005.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'PLAF-GSMNG' l_string_gsmng.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End of change DV1K905068&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Order finish date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'PLAF-PEDTR' wa_tab-cell_0004.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Order start date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'PLAF-PSTTR' wa_tab-cell_0003.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_SUBSCR' 'SAPLM61O                  &lt;/P&gt;&lt;P&gt;               0810INCLUDE711_2'.&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;Screen 3&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_dynpro USING 'SAPLM61O' '0110'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data fiels in screen 0110&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_CURSOR' 'PLAF-MATNR'.&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_OKCODE' 'HZPL'.&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_SUBSCR' 'SAPLM61O                  &lt;/P&gt;&lt;P&gt;               0715INCLUDE1XX'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Transfer data to batch input by transaction&lt;/P&gt;&lt;P&gt;     CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;         tcode          = 'MD11'&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;         dynprotab      = it_bdcdata&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;         internal_error = 1&lt;/P&gt;&lt;P&gt;         not_open       = 2&lt;/P&gt;&lt;P&gt;         queue_error    = 3&lt;/P&gt;&lt;P&gt;         tcode_invalid  = 4&lt;/P&gt;&lt;P&gt;         OTHERS         = 5.&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 i999(zttl) WITH 'Error in creating session'(m20).&lt;/P&gt;&lt;P&gt;       LEAVE LIST-PROCESSING.&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;ENDFORM.                    " populate_bdc_session&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Populate the dynpros&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_pogram   Progran name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_dynpro   Screen no&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_dynpro  USING    p_program TYPE bdc_prog&lt;/P&gt;&lt;P&gt;                           p_dynpro TYPE bdc_dynr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   CLEAR wa_bdcdata.&lt;/P&gt;&lt;P&gt;   wa_bdcdata-program  = p_program.&lt;/P&gt;&lt;P&gt;   wa_bdcdata-dynpro   = p_dynpro.&lt;/P&gt;&lt;P&gt;   wa_bdcdata-dynbegin = c_x.&lt;/P&gt;&lt;P&gt;   APPEND wa_bdcdata TO it_bdcdata.&lt;/P&gt;&lt;P&gt;&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_fnam   Field name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_fval   Field value&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_field  USING   p_fnam TYPE fnam_____4&lt;/P&gt;&lt;P&gt;                         p_fval.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   CLEAR wa_bdcdata.&lt;/P&gt;&lt;P&gt;   wa_bdcdata-fnam  = p_fnam.&lt;/P&gt;&lt;P&gt;   wa_bdcdata-fval   = p_fval.&lt;/P&gt;&lt;P&gt;   APPEND wa_bdcdata TO it_bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_field &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jagadish&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 27 May 2008 05:00:15 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-05-27T05:00:15Z</dc:date>
    <item>
      <title>bdc</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/3898358#M935626</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;f there is list processing in bdc then how to handle this .reply plz&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 May 2008 04:57:49 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/3898358#M935626</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-27T04:57:49Z</dc:date>
    </item>
    <item>
      <title>Re: bdc</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/3898359#M935627</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;DESCRIPTION: BDC program for upload demand (BATCH SESSION - MD11)  &lt;/P&gt;&lt;P&gt;Using excel sheet for data upload&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;YOURCODE: &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; Report  ZTBPP102                                                    *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&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; Title: BDC program for upload demand (BATCH SESSION - MD11)         *&lt;/P&gt;&lt;P&gt;*&amp;amp;                                                                     *&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;Essential Steps :&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;1. Read the data from excel file into ABAP internal table using&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   function module ALSM_EXCEL_TO_INTERNAL_TABLE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;2. Store the data in internal table and do the validation&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;3. For valid data create a Batch session (MD11)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   Insert data from the internal table into the batch&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;4. Once the batch is created the user needs to process the batch&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   by going through SM35&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;&lt;/P&gt;&lt;P&gt;REPORT  ztbpp102.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;------------------- Start of Data Declaration -----------------------*&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Constants&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;CONSTANTS: c_begcol TYPE i VALUE 1,&lt;/P&gt;&lt;P&gt;            c_begrow TYPE i VALUE 1,&lt;/P&gt;&lt;P&gt;            c_endcol TYPE i VALUE 100,&lt;/P&gt;&lt;P&gt;            c_endrow TYPE i VALUE 32000,&lt;/P&gt;&lt;P&gt;            c_x(1) TYPE c VALUE 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : w_field(30),&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Flag for data check status&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        w_invalid_data(1) TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FIELD-SYMBOLS : &amp;lt;fs&amp;gt; TYPE ANY.&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;Internal Tables&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;The prefix 000n is becuase the colmn in alsmex_tabline isof data&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;type n withg length 4&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TYPES: BEGIN OF ty_tab,&lt;/P&gt;&lt;P&gt;           cell_0001 TYPE alsmex_tabline-value,  "Plant&lt;/P&gt;&lt;P&gt;           cell_0002 TYPE alsmex_tabline-value,  "Material No&lt;/P&gt;&lt;P&gt;           cell_0003 TYPE alsmex_tabline-value,  "Order Start Date&lt;/P&gt;&lt;P&gt;           cell_0004 TYPE alsmex_tabline-value,  "Order finish Date&lt;/P&gt;&lt;P&gt;           cell_0005 TYPE alsmex_tabline-value,  "Quantity&lt;/P&gt;&lt;P&gt;           cell_0006 TYPE alsmex_tabline-value,  "Quantity unit DV1K905068&lt;/P&gt;&lt;P&gt;        END OF ty_tab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_error,&lt;/P&gt;&lt;P&gt;         line TYPE string,&lt;/P&gt;&lt;P&gt;        END OF ty_error.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_mara,&lt;/P&gt;&lt;P&gt;          matnr TYPE mara-matnr,&lt;/P&gt;&lt;P&gt;        END OF ty_mara.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPES: BEGIN OF ty_t001w,&lt;/P&gt;&lt;P&gt;          werks TYPE t001w-werks,&lt;/P&gt;&lt;P&gt;        END OF ty_t001w.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: it_upload_data LIKE alsmex_tabline OCCURS 0 WITH HEADER LINE,&lt;/P&gt;&lt;P&gt;       it_tab TYPE STANDARD TABLE OF ty_tab,&lt;/P&gt;&lt;P&gt;       wa_tab TYPE ty_tab,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table for BDC&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     it_bdcdata TYPE STANDARD TABLE OF bdcdata,&lt;/P&gt;&lt;P&gt;*work area&lt;/P&gt;&lt;P&gt;      wa_bdcdata TYPE bdcdata,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table to store error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      it_error TYPE STANDARD TABLE OF ty_error,&lt;/P&gt;&lt;P&gt;      wa_error TYPE ty_error,&lt;/P&gt;&lt;P&gt;      it_mara TYPE STANDARD TABLE OF ty_mara,&lt;/P&gt;&lt;P&gt;      wa_mara TYPE ty_mara,&lt;/P&gt;&lt;P&gt;      it_t001w TYPE STANDARD TABLE OF ty_t001w,&lt;/P&gt;&lt;P&gt;      wa_t001w TYPE ty_t001w.&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;------------------- End of Data Declaration -----------------------*&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------" /&gt;       Start of Selection Screen   -&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 LIKE rlgrap-filename MEMORY ID m02,&lt;/P&gt;&lt;P&gt;             p_sesson TYPE apqi-groupid DEFAULT 'DMND_UPLOAD'.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN: END OF BLOCK b1.&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-------" /&gt;       End of Selection Screen   -&lt;HR originaltext="------------------------" /&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;Event INITIALIZATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;INITIALIZATION.&lt;/P&gt;&lt;P&gt;   CLEAR: w_invalid_data, w_field.&lt;/P&gt;&lt;P&gt;   REFRESH: it_upload_data, it_tab, it_error, it_bdcdata, it_mara,&lt;/P&gt;&lt;P&gt;            it_t001w.&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;  Start of at selection-screen -&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Show the file selection dialog box&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   CALL FUNCTION 'KD_GET_FILENAME_ON_F4'&lt;/P&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;P&gt;       mask          = '(&lt;STRONG&gt;.xls)|&lt;/STRONG&gt;.xls|(&lt;STRONG&gt;.&lt;/STRONG&gt;)|&lt;STRONG&gt;.&lt;/STRONG&gt;' "For excel&lt;/P&gt;&lt;P&gt;       static        = 'X'&lt;/P&gt;&lt;P&gt;     CHANGING&lt;/P&gt;&lt;P&gt;       file_name     = p_file&lt;/P&gt;&lt;P&gt;     EXCEPTIONS&lt;/P&gt;&lt;P&gt;       mask_too_long = 1&lt;/P&gt;&lt;P&gt;       OTHERS        = 2.&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;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------" /&gt; End of at Selection-screen -&lt;HR originaltext="--------------------------" /&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;START-OF-SELECTION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Upload the excel data into the program&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   PERFORM upload_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate data in internal table it_tab from excel upload data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   PERFORM populate_it_tab_from_excel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check the mandatory fields&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   PERFORM check_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;When the dataset is valid proceed&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   IF w_invalid_data IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open the BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM open_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Populate BDC table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM populate_bdc_session.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Close the BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM close_group.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     WRITE:/ 'Batch input session '(m01), p_sesson, ' created &lt;/P&gt;&lt;P&gt;successfully'(m02).&lt;/P&gt;&lt;P&gt;     WRITE:/ 'Please process the session using transaction SM35'(m03).&lt;/P&gt;&lt;P&gt;   ELSE.&lt;/P&gt;&lt;P&gt;     WRITE:/ 'Error in Input Data :'(m04).&lt;/P&gt;&lt;P&gt;     SKIP 1.&lt;/P&gt;&lt;P&gt;     LOOP AT it_error INTO wa_error.&lt;/P&gt;&lt;P&gt;       WRITE:/ wa_error-line.&lt;/P&gt;&lt;P&gt;     ENDLOOP.&lt;/P&gt;&lt;P&gt;     SKIP 1.&lt;/P&gt;&lt;P&gt;     WRITE: 'Please correct error and try to upload again'(m05).&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  UPLOAD_FILE&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;Upload the data from the excel file into ABAP internal table&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 upload_file .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Upload the excel file in ABAP 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_file&lt;/P&gt;&lt;P&gt;       i_begin_col             = c_begcol&lt;/P&gt;&lt;P&gt;       i_begin_row             = c_begrow&lt;/P&gt;&lt;P&gt;       i_end_col               = c_endcol&lt;/P&gt;&lt;P&gt;       i_end_row               = c_endrow&lt;/P&gt;&lt;P&gt;     TABLES&lt;/P&gt;&lt;P&gt;       intern                  = it_upload_data&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 i999(zttl) WITH 'Error in uploading the file!'(m06).&lt;/P&gt;&lt;P&gt;     LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " UPLOAD_FILE&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_it_tab_from_excel&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; Populate data in internal table it_tab from excel upload data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM populate_it_tab_from_excel .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   DATA: l_col_no TYPE alsmex_tabline-col.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Internal table  it_upload_data store data in cellwise&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;with row, colmn and value&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Change this data to a row-wise data and populate the table it_tab&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   SORT it_upload_data BY row col.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Delete the entries with row 0001 as those row has the colmn headings&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   DELETE it_upload_data WHERE row = '0001'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Convert the excel data to row-wise data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   LOOP AT it_upload_data.&lt;/P&gt;&lt;P&gt;     l_col_no  = it_upload_data-col.&lt;/P&gt;&lt;P&gt;     CONCATENATE 'WA_TAB-cell_' l_col_no INTO w_field.&lt;/P&gt;&lt;P&gt;     ASSIGN (w_field) TO &amp;lt;fs&amp;gt;.&lt;/P&gt;&lt;P&gt;     IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;       &amp;lt;fs&amp;gt; = it_upload_data-value.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;     AT END OF row.&lt;/P&gt;&lt;P&gt;       APPEND wa_tab TO it_tab.&lt;/P&gt;&lt;P&gt;       CLEAR wa_tab.&lt;/P&gt;&lt;P&gt;     ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   IF it_tab[] IS INITIAL.&lt;/P&gt;&lt;P&gt;     MESSAGE i999(zttl) WITH 'No record to upload!'(m07).&lt;/P&gt;&lt;P&gt;     LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " populate_it_tab_from_excel&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  check_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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Do data validation&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 check_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   DATA: l_error TYPE string,&lt;/P&gt;&lt;P&gt;         l_line_no(4) TYPE c,&lt;/P&gt;&lt;P&gt;         l_it_tab_temp TYPE STANDARD TABLE OF ty_tab,&lt;/P&gt;&lt;P&gt;         l_it_mara TYPE STANDARD TABLE OF ty_mara,&lt;/P&gt;&lt;P&gt;         l_it_t001w TYPE STANDARD TABLE OF ty_t001w,&lt;/P&gt;&lt;P&gt;         l_gsmng TYPE plaf-gsmng,&lt;/P&gt;&lt;P&gt;         l_matnr TYPE plaf-matnr.&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;Select plant data from T001w&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Cell_0001 is for plant&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   IF NOT it_tab[] IS INITIAL.&lt;/P&gt;&lt;P&gt;     REFRESH l_it_tab_temp.&lt;/P&gt;&lt;P&gt;     l_it_tab_temp[] = it_tab[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     SORT l_it_tab_temp BY cell_0001.&lt;/P&gt;&lt;P&gt;     DELETE ADJACENT DUPLICATES FROM l_it_tab_temp COMPARING cell_0001.&lt;/P&gt;&lt;P&gt;     LOOP AT l_it_tab_temp INTO wa_tab.&lt;/P&gt;&lt;P&gt;       wa_t001w-werks = wa_tab-cell_0001.&lt;/P&gt;&lt;P&gt;       TRANSLATE  wa_t001w-werks TO UPPER CASE.           "#EC TRANSLANG&lt;/P&gt;&lt;P&gt;       APPEND wa_t001w TO l_it_t001w.&lt;/P&gt;&lt;P&gt;     ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     IF NOT l_it_t001w[] IS INITIAL.&lt;/P&gt;&lt;P&gt;       SELECT werks&lt;/P&gt;&lt;P&gt;       FROM t001w&lt;/P&gt;&lt;P&gt;       INTO TABLE it_t001w&lt;/P&gt;&lt;P&gt;       FOR ALL ENTRIES IN l_it_t001w&lt;/P&gt;&lt;P&gt;       WHERE werks = l_it_t001w-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;         SORT it_t001w BY werks.&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;*Select data from Material master&lt;/P&gt;&lt;P&gt;   IF NOT it_tab[] IS INITIAL.&lt;/P&gt;&lt;P&gt;     REFRESH l_it_tab_temp.&lt;/P&gt;&lt;P&gt;     l_it_tab_temp[] = it_tab[].&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Cell 0002 is for material no&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     SORT l_it_tab_temp BY cell_0002.&lt;/P&gt;&lt;P&gt;     DELETE ADJACENT DUPLICATES FROM l_it_tab_temp COMPARING cell_0002.&lt;/P&gt;&lt;P&gt;     LOOP AT l_it_tab_temp INTO wa_tab.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;call a conversion exit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       CLEAR l_matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'&lt;/P&gt;&lt;P&gt;         EXPORTING&lt;/P&gt;&lt;P&gt;           input  = wa_tab-cell_0002&lt;/P&gt;&lt;P&gt;         IMPORTING&lt;/P&gt;&lt;P&gt;           output = l_matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       TRANSLATE l_matnr TO UPPER CASE.                   "#EC TRANSLANG&lt;/P&gt;&lt;P&gt;       wa_mara-matnr = l_matnr.&lt;/P&gt;&lt;P&gt;       APPEND wa_mara TO l_it_mara.&lt;/P&gt;&lt;P&gt;     ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     IF NOT l_it_mara[] IS INITIAL.&lt;/P&gt;&lt;P&gt;       SELECT matnr&lt;/P&gt;&lt;P&gt;       FROM mara&lt;/P&gt;&lt;P&gt;       INTO TABLE it_mara&lt;/P&gt;&lt;P&gt;       FOR ALL ENTRIES IN l_it_mara&lt;/P&gt;&lt;P&gt;       WHERE matnr = l_it_mara-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;         SORT it_mara BY matnr.&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;&lt;/P&gt;&lt;P&gt;*Check on mandatory field&lt;/P&gt;&lt;P&gt;   LOOP AT it_tab INTO wa_tab.&lt;/P&gt;&lt;P&gt;     l_line_no = sy-tabix.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Increase the line no by 1 as the first row (have the heading)&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;is not considered&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     l_line_no = l_line_no + 1.&lt;/P&gt;&lt;P&gt;&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;Check for plant (cell_0001)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IF wa_tab-cell_0001 IS INITIAL.&lt;/P&gt;&lt;P&gt;       CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;       CONCATENATE text-m08 l_line_no ': Plant is mandatory'(m13)&lt;/P&gt;&lt;P&gt;         INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;       wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;       APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;       w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for valid plant&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       CLEAR wa_t001w.&lt;/P&gt;&lt;P&gt;       TRANSLATE  wa_tab-cell_0001 TO UPPER CASE.         "#EC TRANSLANG&lt;/P&gt;&lt;P&gt;       READ TABLE it_t001w INTO wa_t001w WITH KEY werks = wa_tab-cell_0001&lt;/P&gt;&lt;P&gt;                                                BINARY SEARCH.&lt;/P&gt;&lt;P&gt;       IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;         CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;         CONCATENATE text-m08 l_line_no ': Invalid plant '(m14) &lt;/P&gt;&lt;P&gt;wa_tab-cell_0001&lt;/P&gt;&lt;P&gt;           INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;         wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;         APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;         w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for material number (Cell_0002)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IF wa_tab-cell_0002 IS INITIAL.&lt;/P&gt;&lt;P&gt;       CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;       CONCATENATE 'Line'(m08) l_line_no ': Material no is mandatory'(m11)&lt;/P&gt;&lt;P&gt;         INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;       wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;       APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;       w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for valid material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       CLEAR wa_mara.&lt;/P&gt;&lt;P&gt;       TRANSLATE  wa_tab-cell_0002 TO UPPER CASE.         "#EC TRANSLANG&lt;/P&gt;&lt;P&gt;       READ TABLE it_mara INTO wa_mara WITH KEY matnr = wa_tab-cell_0002&lt;/P&gt;&lt;P&gt;                                                BINARY SEARCH.&lt;/P&gt;&lt;P&gt;       IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;         CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;         CONCATENATE text-m08 l_line_no ': Invalid Material no'(m12) &lt;/P&gt;&lt;P&gt;wa_tab-cell_0002&lt;/P&gt;&lt;P&gt;           INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;         wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;         APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;         w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for quantity (cell_0005)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IF wa_tab-cell_0005 IS INITIAL.&lt;/P&gt;&lt;P&gt;       CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;       CONCATENATE text-m08 l_line_no ': Order quantity is mandatory'(m21)&lt;/P&gt;&lt;P&gt;         INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;       wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;       APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;       w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check that quantity is a number&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       CLEAR: l_gsmng.&lt;/P&gt;&lt;P&gt;       CATCH SYSTEM-EXCEPTIONS conversion_errors = 1.&lt;/P&gt;&lt;P&gt;         l_gsmng = wa_tab-cell_0005.&lt;/P&gt;&lt;P&gt;         IF l_gsmng = 0.&lt;/P&gt;&lt;P&gt;           CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;           CONCATENATE 'Line'(m08) l_line_no ': Quantity cannot be zero'(m22)&lt;/P&gt;&lt;P&gt;             INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;           wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;           APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;           w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;         ENDIF.&lt;/P&gt;&lt;P&gt;       ENDCATCH.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If there is a conversion error&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       IF sy-subrc = 1.&lt;/P&gt;&lt;P&gt;         CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;         CONCATENATE 'Line'(m08) l_line_no ': Quantity'(m23) &lt;/P&gt;&lt;P&gt;wa_tab-cell_0005 'is not a number'(m24)&lt;/P&gt;&lt;P&gt;           INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;         wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;         APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;         w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;       ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start of insert DV1K905068&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IF wa_tab-cell_0006 IS INITIAL.&lt;/P&gt;&lt;P&gt;       CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;       CONCATENATE text-m08 l_line_no ': Quantity unit is mandatory'(m25)&lt;/P&gt;&lt;P&gt;         INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;       wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;       APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;       w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End of insert DV1K905068&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Order finish date is mandatory (Cell_0004)&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     IF wa_tab-cell_0004 IS INITIAL.&lt;/P&gt;&lt;P&gt;       CLEAR: l_error, wa_error.&lt;/P&gt;&lt;P&gt;       CONCATENATE text-m08 l_line_no ': Order finish date is mandatory'(m15)&lt;/P&gt;&lt;P&gt;         INTO l_error SEPARATED BY space.&lt;/P&gt;&lt;P&gt;       wa_error-line = l_error.&lt;/P&gt;&lt;P&gt;       APPEND wa_error TO it_error.&lt;/P&gt;&lt;P&gt;       w_invalid_data = c_x.&lt;/P&gt;&lt;P&gt;     ENDIF.&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.                    " check_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  open_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Open the BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM open_group .&lt;/P&gt;&lt;P&gt;&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_sesson&lt;/P&gt;&lt;P&gt;       keep                = c_x&lt;/P&gt;&lt;P&gt;       user                = sy-uname&lt;/P&gt;&lt;P&gt;     EXCEPTIONS&lt;/P&gt;&lt;P&gt;       client_invalid      = 1&lt;/P&gt;&lt;P&gt;       destination_invalid = 2&lt;/P&gt;&lt;P&gt;       group_invalid       = 3&lt;/P&gt;&lt;P&gt;       group_is_locked     = 4&lt;/P&gt;&lt;P&gt;       holddate_invalid    = 5&lt;/P&gt;&lt;P&gt;       internal_error      = 6&lt;/P&gt;&lt;P&gt;       queue_error         = 7&lt;/P&gt;&lt;P&gt;       running             = 8&lt;/P&gt;&lt;P&gt;       system_lock_error   = 9&lt;/P&gt;&lt;P&gt;       user_invalid        = 10&lt;/P&gt;&lt;P&gt;       OTHERS              = 11.&lt;/P&gt;&lt;P&gt;   IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;     MESSAGE i999(zttl) WITH 'Error in creating session'(m16).&lt;/P&gt;&lt;P&gt;     LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " open_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  close_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Close the BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM close_group .&lt;/P&gt;&lt;P&gt;   CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;P&gt;     EXCEPTIONS&lt;/P&gt;&lt;P&gt;       not_open    = 1&lt;/P&gt;&lt;P&gt;       queue_error = 2&lt;/P&gt;&lt;P&gt;       OTHERS      = 3.&lt;/P&gt;&lt;P&gt;   IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;     MESSAGE i999(zttl) WITH 'Error in closing session'(m17).&lt;/P&gt;&lt;P&gt;     LEAVE LIST-PROCESSING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " close_group&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  populate_bdc_session&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;Populate the BDC table&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 populate_bdc_session .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   DATA: l_gsmng TYPE plaf-gsmng,                            "DV1K905068&lt;/P&gt;&lt;P&gt;         l_meins_in TYPE mara-meins,                         "DV1K905068&lt;/P&gt;&lt;P&gt;         l_matnr TYPE mara-matnr,                            "DV1K905068&lt;/P&gt;&lt;P&gt;         l_string_gsmng TYPE string.                         "DV1K905068&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   LOOP AT it_tab INTO wa_tab.&lt;/P&gt;&lt;P&gt;     REFRESH it_bdcdata.&lt;/P&gt;&lt;P&gt;     CLEAR: wa_bdcdata.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;First screen of transaction MD111&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_dynpro USING 'SAPMM61P' '0100'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data fiels in screen 0100&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_CURSOR' 'RM61P-PASCH'.&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_OKCODE' '/00'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Planned order profile is always LA&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'RM61P-PASCH' 'LA'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Screen 2&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_dynpro USING 'SAPLM61O' '0110'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data fiels in screen 0110&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Start of change DV1K904978&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field  USING 'BDC_OKCODE' '=TERM'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_OKCODE' '/00'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End of change DV1K904978&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Material no&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'PLAF-MATNR' wa_tab-cell_0002.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Plant&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'PLAF-PLWRK' wa_tab-cell_0001.&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_SUBSCR' 'SAPLM61O                  &lt;/P&gt;&lt;P&gt;               0711INCLUDE1XX'.&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_SUBSCR' 'SAPLM61O                  &lt;/P&gt;&lt;P&gt;               0802INCLUDE711_1'.&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_CURSOR' 'PLAF-PEDTR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Strat of change DV1K905068&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Do a material unit conversion from given unit to kg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Use local variable as the fn module needs variable of&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;type meins&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     CLEAR: l_meins_in, l_matnr, l_gsmng, l_string_gsmng .&lt;/P&gt;&lt;P&gt;     l_meins_in = wa_tab-cell_0006.&lt;/P&gt;&lt;P&gt;     l_matnr    = wa_tab-cell_0002.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Convert unit text to upper case&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     TRANSLATE l_matnr TO UPPER CASE.                "#EC TRANSLANG&lt;/P&gt;&lt;P&gt;     TRANSLATE l_meins_in TO UPPER CASE.                "#EC TRANSLANG&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Conversion exit on unit&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;         input          = l_meins_in&lt;/P&gt;&lt;P&gt;         language       = sy-langu&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;         output         = l_meins_in&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;         unit_not_found = 1&lt;/P&gt;&lt;P&gt;         OTHERS         = 2.&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;       WRITE:/ 'Unit not maintained ', l_meins_in.&lt;/P&gt;&lt;P&gt;       CONTINUE.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Converting the amount&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     CATCH SYSTEM-EXCEPTIONS conversion_errors = 1.&lt;/P&gt;&lt;P&gt;       l_gsmng = wa_tab-cell_0005.&lt;/P&gt;&lt;P&gt;     ENDCATCH.&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;       WRITE:/ 'Quantity is not in proper format ', wa_tab-cell_0005.&lt;/P&gt;&lt;P&gt;       CONTINUE.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;         i_matnr              = l_matnr&lt;/P&gt;&lt;P&gt;         i_in_me              = l_meins_in&lt;/P&gt;&lt;P&gt;         i_out_me             = 'KG'&lt;/P&gt;&lt;P&gt;         i_menge              = l_gsmng&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;         e_menge              = l_gsmng&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;         error_in_application = 1&lt;/P&gt;&lt;P&gt;         error                = 2&lt;/P&gt;&lt;P&gt;         OTHERS               = 3.&lt;/P&gt;&lt;P&gt;     IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;       WRITE:/ 'Material Unit conversion not maintained for ', &lt;/P&gt;&lt;P&gt;wa_tab-cell_0002.&lt;/P&gt;&lt;P&gt;       CONTINUE.&lt;/P&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Assign to straig type variable as gsmng is packed and cannot be appended&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;directly to the BDC session&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       l_string_gsmng = l_gsmng.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Quantity&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   PERFORM bdc_field  USING 'PLAF-GSMNG' wa_tab-cell_0005.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'PLAF-GSMNG' l_string_gsmng.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End of change DV1K905068&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Order finish date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'PLAF-PEDTR' wa_tab-cell_0004.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Order start date&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'PLAF-PSTTR' wa_tab-cell_0003.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_SUBSCR' 'SAPLM61O                  &lt;/P&gt;&lt;P&gt;               0810INCLUDE711_2'.&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;Screen 3&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_dynpro USING 'SAPLM61O' '0110'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Data fiels in screen 0110&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_CURSOR' 'PLAF-MATNR'.&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_OKCODE' 'HZPL'.&lt;/P&gt;&lt;P&gt;     PERFORM bdc_field  USING 'BDC_SUBSCR' 'SAPLM61O                  &lt;/P&gt;&lt;P&gt;               0715INCLUDE1XX'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Transfer data to batch input by transaction&lt;/P&gt;&lt;P&gt;     CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;         tcode          = 'MD11'&lt;/P&gt;&lt;P&gt;       TABLES&lt;/P&gt;&lt;P&gt;         dynprotab      = it_bdcdata&lt;/P&gt;&lt;P&gt;       EXCEPTIONS&lt;/P&gt;&lt;P&gt;         internal_error = 1&lt;/P&gt;&lt;P&gt;         not_open       = 2&lt;/P&gt;&lt;P&gt;         queue_error    = 3&lt;/P&gt;&lt;P&gt;         tcode_invalid  = 4&lt;/P&gt;&lt;P&gt;         OTHERS         = 5.&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 i999(zttl) WITH 'Error in creating session'(m20).&lt;/P&gt;&lt;P&gt;       LEAVE LIST-PROCESSING.&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;ENDFORM.                    " populate_bdc_session&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Populate the dynpros&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_pogram   Progran name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_dynpro   Screen no&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_dynpro  USING    p_program TYPE bdc_prog&lt;/P&gt;&lt;P&gt;                           p_dynpro TYPE bdc_dynr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   CLEAR wa_bdcdata.&lt;/P&gt;&lt;P&gt;   wa_bdcdata-program  = p_program.&lt;/P&gt;&lt;P&gt;   wa_bdcdata-dynpro   = p_dynpro.&lt;/P&gt;&lt;P&gt;   wa_bdcdata-dynbegin = c_x.&lt;/P&gt;&lt;P&gt;   APPEND wa_bdcdata TO it_bdcdata.&lt;/P&gt;&lt;P&gt;&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_fnam   Field name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_fval   Field value&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM bdc_field  USING   p_fnam TYPE fnam_____4&lt;/P&gt;&lt;P&gt;                         p_fval.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   CLEAR wa_bdcdata.&lt;/P&gt;&lt;P&gt;   wa_bdcdata-fnam  = p_fnam.&lt;/P&gt;&lt;P&gt;   wa_bdcdata-fval   = p_fval.&lt;/P&gt;&lt;P&gt;   APPEND wa_bdcdata TO it_bdcdata.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " bdc_field &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jagadish&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 27 May 2008 05:00:15 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/bdc/m-p/3898359#M935627</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-05-27T05:00:15Z</dc:date>
    </item>
  </channel>
</rss>

