<?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 performance issue in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301153#M1025633</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;i got one issue, user want to increase its performance, plz help me init and tell where to make changes and wat changes to be done there.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the issue is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: mast,        "Material to BOM Link&lt;/P&gt;&lt;P&gt;        stko,        "BOM Header&lt;/P&gt;&lt;P&gt;        stpo,        "BOM Item&lt;/P&gt;&lt;P&gt;        mara,        "Material General data&lt;/P&gt;&lt;P&gt;        makt,        "Material Descriptions&lt;/P&gt;&lt;P&gt;        cdhdr.       "Change Document Header&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis.&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; CONSTANTS DECLARATIONS&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;CONSTANTS:&lt;/P&gt;&lt;P&gt; gc_x(1)               VALUE 'X',&lt;/P&gt;&lt;P&gt; gc_topofpage             TYPE slis_formname VALUE 'TOP_OF_PAGE',&lt;/P&gt;&lt;P&gt; gc_topofpage_bd          TYPE slis_formname VALUE 'TOP_OF_PAGE_BD',&lt;/P&gt;&lt;P&gt; gc_drillrepo(10)         TYPE c VALUE 'DRILLREPO',&lt;/P&gt;&lt;P&gt; gc_drillrepo_trans(15)   TYPE c VALUE 'DRILLREPO_TRANS',&lt;/P&gt;&lt;P&gt; gc_e(1)               VALUE 'E',&lt;/P&gt;&lt;P&gt; gc_zspe(4)            VALUE 'ZSPE',&lt;/P&gt;&lt;P&gt; gc_ztem(4)            VALUE 'ZTEM',&lt;/P&gt;&lt;P&gt; gc_add(5)             VALUE 'ADDED',&lt;/P&gt;&lt;P&gt; gc_remove(7)          VALUE 'REMOVED',&lt;/P&gt;&lt;P&gt; gc_mat(3)             VALUE 'MAT',&lt;/P&gt;&lt;P&gt; gc_wrk(3)             VALUE 'WRK',&lt;/P&gt;&lt;P&gt; gc_csv(3)             VALUE 'CSV',&lt;/P&gt;&lt;P&gt; gc_cs03(4)            VALUE 'CS03',&lt;/P&gt;&lt;P&gt; gc_ic1(4)             VALUE '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*SMS152353 - Wasimkhan - Sept 11, 2007.&lt;/P&gt;&lt;P&gt;*Following Constant is commented and Variable is declared instead to&lt;/P&gt;&lt;P&gt;*have the value of the client at runtime rather than hardcoding.&lt;/P&gt;&lt;P&gt;*The name still suggests it as a constant as don't want to make the changes at all the places.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;gc_num(4)             VALUE '140M'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt; gc_num(4).&lt;/P&gt;&lt;P&gt;CONCATENATE sy-mandt 'M' INTO gc_num.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*End SMS152353.&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; INTERNAL TABLE DECLARATIONS&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;*Internal table contains fields of basic ALV list&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF i_final OCCURS 0 ,&lt;/P&gt;&lt;P&gt;      werks     LIKE mast-werks,&lt;/P&gt;&lt;P&gt;      mtart     LIKE mara-mtart,&lt;/P&gt;&lt;P&gt;      extwg     LIKE mara-extwg,&lt;/P&gt;&lt;P&gt;      matnr     LIKE mast-matnr,&lt;/P&gt;&lt;P&gt;      maktx     LIKE makt-maktx,&lt;/P&gt;&lt;P&gt;      stlnr     LIKE mast-stlnr,&lt;/P&gt;&lt;P&gt;      stlan     LIKE mast-stlan,&lt;/P&gt;&lt;P&gt;      stlal     LIKE stko-stlal,&lt;/P&gt;&lt;P&gt;      annam     LIKE stko-annam,&lt;/P&gt;&lt;P&gt;      andat     LIKE stko-andat,&lt;/P&gt;&lt;P&gt;      aenam     LIKE stko-aenam,&lt;/P&gt;&lt;P&gt;      aedat     LIKE mast-aedat,&lt;/P&gt;&lt;P&gt;      tabkey    LIKE cdpos-tabkey,&lt;/P&gt;&lt;P&gt;      fname     LIKE cdpos-fname,&lt;/P&gt;&lt;P&gt;      chngind   LIKE cdpos-chngind,&lt;/P&gt;&lt;P&gt;      value_old LIKE cdpos-value_old,&lt;/P&gt;&lt;P&gt;      utime     LIKE cdhdr-utime,&lt;/P&gt;&lt;P&gt;      display   TYPE c,&lt;/P&gt;&lt;P&gt;      comp_err  TYPE c,&lt;/P&gt;&lt;P&gt;    END OF i_final.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: i_final_new LIKE STANDARD TABLE OF i_final WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal table contains fields of Header data&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_stko OCCURS 0,&lt;/P&gt;&lt;P&gt;       stlty LIKE stko-stlty,&lt;/P&gt;&lt;P&gt;       stlnr LIKE stko-stlnr,&lt;/P&gt;&lt;P&gt;       stlal LIKE stko-stlal,&lt;/P&gt;&lt;P&gt;       andat LIKE stko-andat,&lt;/P&gt;&lt;P&gt;       annam LIKE stko-annam,&lt;/P&gt;&lt;P&gt;       aedat LIKE stko-aedat,&lt;/P&gt;&lt;P&gt;       aenam LIKE stko-aenam,&lt;/P&gt;&lt;P&gt;     END OF i_stko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_scr OCCURS 0 ,&lt;/P&gt;&lt;P&gt;        stlnr LIKE mast-stlnr,&lt;/P&gt;&lt;P&gt;        stlan LIKE mast-stlan,&lt;/P&gt;&lt;P&gt;        stlal LIKE stko-stlal,&lt;/P&gt;&lt;P&gt;        annam LIKE stko-annam,&lt;/P&gt;&lt;P&gt;        aenam LIKE stko-aenam,&lt;/P&gt;&lt;P&gt;      END OF i_scr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal table contains fields of Item details&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_stpo OCCURS 0,&lt;/P&gt;&lt;P&gt;        stlty        LIKE stpo-stlty,&lt;/P&gt;&lt;P&gt;        stlnr        LIKE stpo-stlnr,&lt;/P&gt;&lt;P&gt;        stlkn        LIKE stpo-stlkn,&lt;/P&gt;&lt;P&gt;        stpoz        LIKE stpo-stpoz,&lt;/P&gt;&lt;P&gt;        idnrk        LIKE stpo-idnrk,&lt;/P&gt;&lt;P&gt;        maktx        LIKE makt-maktx,&lt;/P&gt;&lt;P&gt;        menge        LIKE stpo-menge,&lt;/P&gt;&lt;P&gt;        meins        LIKE stpo-meins,&lt;/P&gt;&lt;P&gt;        andat        LIKE stpo-andat,&lt;/P&gt;&lt;P&gt;        annam        LIKE stpo-annam,&lt;/P&gt;&lt;P&gt;        aedat        LIKE stpo-aedat,&lt;/P&gt;&lt;P&gt;        utime        LIKE cdhdr-utime,&lt;/P&gt;&lt;P&gt;        aenam        LIKE stpo-aenam,&lt;/P&gt;&lt;P&gt;        tabkey       LIKE cdpos-tabkey,&lt;/P&gt;&lt;P&gt;        fname        LIKE cdpos-fname,&lt;/P&gt;&lt;P&gt;        chngind      LIKE cdpos-chngind,&lt;/P&gt;&lt;P&gt;        value_old    LIKE cdpos-value_old,&lt;/P&gt;&lt;P&gt;        comp_err_desc(7) TYPE c,&lt;/P&gt;&lt;P&gt;      END OF i_stpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_stpo1 OCCURS 0,&lt;/P&gt;&lt;P&gt;        stlty        LIKE stpo-stlty,&lt;/P&gt;&lt;P&gt;        stlnr        LIKE stpo-stlnr,&lt;/P&gt;&lt;P&gt;        stlkn        LIKE stpo-stlkn,&lt;/P&gt;&lt;P&gt;        stpoz        LIKE stpo-stpoz,&lt;/P&gt;&lt;P&gt;        idnrk        LIKE stpo-idnrk,&lt;/P&gt;&lt;P&gt;        maktx        LIKE makt-maktx,&lt;/P&gt;&lt;P&gt;        menge        LIKE stpo-menge,&lt;/P&gt;&lt;P&gt;        meins        LIKE stpo-meins,&lt;/P&gt;&lt;P&gt;        andat        LIKE stpo-andat,&lt;/P&gt;&lt;P&gt;        annam        LIKE stpo-annam,&lt;/P&gt;&lt;P&gt;        aedat        LIKE stpo-aedat,&lt;/P&gt;&lt;P&gt;        utime        LIKE cdhdr-utime,&lt;/P&gt;&lt;P&gt;        aenam        LIKE stpo-aenam,&lt;/P&gt;&lt;P&gt;        tabkey       LIKE cdpos-tabkey,&lt;/P&gt;&lt;P&gt;        fname        LIKE cdpos-fname,&lt;/P&gt;&lt;P&gt;        chngind      LIKE cdpos-chngind,&lt;/P&gt;&lt;P&gt;        value_old    LIKE cdpos-value_old,&lt;/P&gt;&lt;P&gt;        comp_err_desc(7) TYPE c,&lt;/P&gt;&lt;P&gt;      END OF i_stpo1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal table contains fields of secondary list&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_bomitem OCCURS 0,&lt;/P&gt;&lt;P&gt;        stlty        LIKE stpo-stlty,&lt;/P&gt;&lt;P&gt;        stlnr        LIKE stpo-stlnr,&lt;/P&gt;&lt;P&gt;        stlkn        LIKE stpo-stlkn,&lt;/P&gt;&lt;P&gt;        stpoz        LIKE stpo-stpoz,&lt;/P&gt;&lt;P&gt;        idnrk        LIKE stpo-idnrk,&lt;/P&gt;&lt;P&gt;        maktx        LIKE makt-maktx,&lt;/P&gt;&lt;P&gt;        menge        LIKE stpo-menge,&lt;/P&gt;&lt;P&gt;        meins        LIKE stpo-meins,&lt;/P&gt;&lt;P&gt;        andat        LIKE stpo-andat,&lt;/P&gt;&lt;P&gt;        annam        LIKE stpo-annam,&lt;/P&gt;&lt;P&gt;        aedat        LIKE stpo-aedat,&lt;/P&gt;&lt;P&gt;        aenam        LIKE stpo-aenam,&lt;/P&gt;&lt;P&gt;        utime        LIKE cdhdr-utime,&lt;/P&gt;&lt;P&gt;        disp         TYPE c,&lt;/P&gt;&lt;P&gt;        tabkey       LIKE cdpos-tabkey,&lt;/P&gt;&lt;P&gt;        fname        LIKE cdpos-fname,&lt;/P&gt;&lt;P&gt;        fdesc        LIKE dfies-fieldtext,&lt;/P&gt;&lt;P&gt;        status(9)    TYPE c,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       chngind      LIKE cdpos-chngind,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        value_old    LIKE cdpos-value_old,&lt;/P&gt;&lt;P&gt;        comp_err_desc(7) TYPE c,&lt;/P&gt;&lt;P&gt;     END OF i_bomitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_chgbom OCCURS 0,&lt;/P&gt;&lt;P&gt;        objectid     LIKE cdhdr-objectid,&lt;/P&gt;&lt;P&gt;        objectclas   LIKE cdhdr-objectclas,&lt;/P&gt;&lt;P&gt;        changenr     LIKE cdhdr-changenr,&lt;/P&gt;&lt;P&gt;        tcode        LIKE cdhdr-tcode,&lt;/P&gt;&lt;P&gt;        username     LIKE cdhdr-username,&lt;/P&gt;&lt;P&gt;        udate        LIKE cdhdr-udate,&lt;/P&gt;&lt;P&gt;        utime        LIKE cdhdr-utime,&lt;/P&gt;&lt;P&gt;      END OF i_chgbom.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF i_chgbom1 OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE cdpos.&lt;/P&gt;&lt;P&gt;DATA : END OF i_chgbom1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : i_bomitem_field_desc TYPE TABLE OF dfies WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Variable declaration&lt;/P&gt;&lt;P&gt;DATA: g_temp_matnr   TYPE mara-matnr,&lt;/P&gt;&lt;P&gt;      g_temp_stlnr   TYPE mast-stlnr,&lt;/P&gt;&lt;P&gt;      g_tabix        LIKE syst-tabix,&lt;/P&gt;&lt;P&gt;      g_tmp_tabix    LIKE syst-tabix,&lt;/P&gt;&lt;P&gt;      g_objid        LIKE cdhdr-objectid,&lt;/P&gt;&lt;P&gt;      g_tabkey       LIKE cdpos-tabkey,&lt;/P&gt;&lt;P&gt;      g_mandt        LIKE sy-mandt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Slis variables&lt;/P&gt;&lt;P&gt;DATA: gt_fieldtab      TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;      gt_fieldtab_bd   TYPE slis_t_fieldcat_alv,          "BOM Item Details&lt;/P&gt;&lt;P&gt;      gv_layout        TYPE slis_layout_alv,&lt;/P&gt;&lt;P&gt;      gv_topofpage     TYPE slis_formname,&lt;/P&gt;&lt;P&gt;      gv_topofpage_bd  TYPE slis_formname,                "BOM Details&lt;/P&gt;&lt;P&gt;      gt_events        TYPE slis_t_event,&lt;/P&gt;&lt;P&gt;      gv_repname       LIKE sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal table contains fields to get Add/Remove functionality&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF i_temp_stpo OCCURS 0,&lt;/P&gt;&lt;P&gt;        stlty LIKE stpo-stlty,&lt;/P&gt;&lt;P&gt;        stlnr LIKE stpo-stlnr,&lt;/P&gt;&lt;P&gt;        idnrk LIKE stpo-idnrk,&lt;/P&gt;&lt;P&gt;        menge LIKE stpo-menge,&lt;/P&gt;&lt;P&gt;        meins LIKE stpo-meins,&lt;/P&gt;&lt;P&gt;        maktx LIKE makt-maktx.&lt;/P&gt;&lt;P&gt;DATA:  END OF i_temp_stpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: wa_temp_stpo LIKE LINE OF i_temp_stpo,&lt;/P&gt;&lt;P&gt;      wa_stpo      LIKE LINE OF i_stpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Screen Validation Variables&lt;/P&gt;&lt;P&gt;DATA: g_werks_l TYPE mast-werks,&lt;/P&gt;&lt;P&gt;      g_werks_h TYPE mast-werks,&lt;/P&gt;&lt;P&gt;      g_mtart_l TYPE mara-mtart,&lt;/P&gt;&lt;P&gt;      g_mtart_h TYPE mara-mtart,&lt;/P&gt;&lt;P&gt;      g_extwg_l TYPE mara-extwg,&lt;/P&gt;&lt;P&gt;      g_extwg_h TYPE mara-extwg.&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; SELECTION-SCREEN&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;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_werks FOR mast-werks OBLIGATORY,&lt;/P&gt;&lt;P&gt;                s_mtart FOR mara-mtart OBLIGATORY,&lt;/P&gt;&lt;P&gt;                s_extwg FOR mara-extwg,&lt;/P&gt;&lt;P&gt;                s_aedat FOR mast-aedat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&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; INITIALIZATION&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;INITIALIZATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gv_repname = sy-repid.&lt;/P&gt;&lt;P&gt;  PERFORM initialize_fieldcat USING gt_fieldtab.&lt;/P&gt;&lt;P&gt;  PERFORM build_eventtab      USING gt_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; VALIDATION - SELECTION SCREEN&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;AT SELECTION-SCREEN ON s_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM f_validate_werks.         "for validating Plant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON s_mtart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM f_validate_mtart.         "for validating Material Type&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON s_extwg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM F_VALIDATE_EXTWG.         "for validating External Material Group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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; START-OF-SELECTION&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;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform top_of_page.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_data.&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; END-OF-SELECTION&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;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gv_topofpage = gc_topofpage.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT i_final[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM f_display_alv.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE s067(zptf).&lt;/P&gt;&lt;P&gt;  ENDIF.&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  initialize_fieldcat&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_FIELDTAB[]  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 initialize_fieldcat  USING    p_fieldtab TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_fieldcat TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR l_fieldcat.&lt;/P&gt;&lt;P&gt;  l_fieldcat-tabname    = 'I_FINAL'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-fix_column = gc_x.&lt;/P&gt;&lt;P&gt;  l_fieldcat-no_out     = 'O'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'WERKS'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-007.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-007.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-008.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'MTART'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-010.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-011.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-012.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-014.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-015.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-016.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'MAKTX'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-018.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-019.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-020.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'STLNR'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-022.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-023.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-024.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'STLAN'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-026.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-027.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-028.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'STLAL'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-030.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-031.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-032.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'ANDAT'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-034.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-034.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-035.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'ANNAM'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-037.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-037.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-038.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'AEDAT'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-040.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-041.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-042.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'AENAM'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-044.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-045.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-046.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'COMP_ERR'(047).&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-048.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-049.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-050.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " initialize_fieldcat&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  build_eventtab&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_EVENTS[]  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 build_eventtab  USING    p_events TYPE slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ls_event TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_list_type = 0&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      et_events   = p_events.&lt;/P&gt;&lt;P&gt;  READ TABLE p_events WITH KEY name = slis_ev_top_of_page&lt;/P&gt;&lt;P&gt;                           INTO ls_event.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND ls_event TO p_events.&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.                    " build_eventtab&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  build_comment&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_HEADING  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 build_comment  USING    p_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_comment&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;&lt;/P&gt;&lt;P&gt;  DATA: l_list_comm    TYPE slis_t_listheader,      " type for list comment&lt;/P&gt;&lt;P&gt;        l_list_comment LIKE l_list_comm             " list comment table&lt;/P&gt;&lt;P&gt;                          WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Heading of Main report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  l_list_comment-typ  = text-002.&lt;/P&gt;&lt;P&gt;  l_list_comment-info = text-003.                   "Heading of Report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND l_list_comment TO l_list_comm.&lt;/P&gt;&lt;P&gt;  CLEAR l_list_comment-info.&lt;/P&gt;&lt;P&gt;&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 = l_list_comm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " top_of_page&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  get_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;      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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        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 get_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT t&lt;SUB&gt;werks r&lt;/SUB&gt;mtart r&lt;SUB&gt;extwg t&lt;/SUB&gt;matnr x&lt;SUB&gt;maktx t&lt;/SUB&gt;stlnr t~stlan&lt;/P&gt;&lt;P&gt;         INTO TABLE i_final&lt;/P&gt;&lt;P&gt;         FROM mara AS r&lt;/P&gt;&lt;P&gt;         INNER JOIN makt AS x ON r&lt;SUB&gt;matnr = x&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;         INNER JOIN mast AS t ON x&lt;SUB&gt;matnr = t&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;         WHERE   r~mtart IN s_mtart&lt;/P&gt;&lt;P&gt;         AND     r~extwg IN s_extwg&lt;/P&gt;&lt;P&gt;         AND     t~werks IN s_werks&lt;/P&gt;&lt;P&gt;         AND     x~spras = gc_e.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CLEAR i_final_new.&lt;/P&gt;&lt;P&gt;    i_final_new[] = i_final[].&lt;/P&gt;&lt;P&gt;    SORT i_final_new BY stlnr.&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM i_final_new COMPARING stlnr.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*///start&lt;/P&gt;&lt;P&gt;  SELECT objectid objectclas changenr tcode username udate utime&lt;/P&gt;&lt;P&gt;      INTO TABLE i_chgbom&lt;/P&gt;&lt;P&gt;      FROM cdhdr&lt;/P&gt;&lt;P&gt;        WHERE objectclas = 'STUE'&lt;/P&gt;&lt;P&gt;        AND   tcode      = 'CS02'&lt;/P&gt;&lt;P&gt;        AND   udate IN s_aedat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    SORT i_chgbom BY objectid ASCENDING udate DESCENDING utime DESCENDING.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT i_chgbom[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT * FROM cdpos&lt;/P&gt;&lt;P&gt;             INTO TABLE i_chgbom1&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES  IN i_chgbom&lt;/P&gt;&lt;P&gt;             WHERE objectclas EQ i_chgbom-objectclas&lt;/P&gt;&lt;P&gt;             AND   objectid   EQ i_chgbom-objectid&lt;/P&gt;&lt;P&gt;             AND   changenr   EQ i_chgbom-changenr.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    SORT i_chgbom1 BY objectid ASCENDING tabkey ASCENDING changenr DESCENDING.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*///end&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*SMS152353 - Wasimkhan - Sept 11, 2007.&lt;/P&gt;&lt;P&gt;*Following Select Statement commented and added the new modified statements to improve the performance.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;PERFORM GET_STKO.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF i_final_new[] IS NOT INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT a&lt;SUB&gt;stlty a&lt;/SUB&gt;stlnr a&lt;SUB&gt;stlal a&lt;/SUB&gt;andat a&lt;SUB&gt;annam a&lt;/SUB&gt;aedat a~aenam&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          FROM stko AS a&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          INTO TABLE i_stko&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          FOR ALL ENTRIES IN i_final_new&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          WHERE a~stlnr = i_final_new-stlnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  Select on STPO and populate i_stpo&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT p&lt;SUB&gt;stlty p&lt;/SUB&gt;stlnr p&lt;SUB&gt;stlkn p&lt;/SUB&gt;stpoz p&lt;SUB&gt;idnrk m&lt;/SUB&gt;maktx p&lt;SUB&gt;menge p&lt;/SUB&gt;meins p&lt;SUB&gt;andat p&lt;/SUB&gt;annam p&lt;SUB&gt;aedat p&lt;/SUB&gt;aenam&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          FROM       stpo AS p&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          INNER JOIN makt AS m&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          ON  p&lt;SUB&gt;idnrk = m&lt;/SUB&gt;matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          AND m~spras = gc_e&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;          INTO TABLE i_stpo&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          INTO CORRESPONDING FIELDS OF TABLE i_stpo&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          FOR ALL ENTRIES IN i_final_new&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          WHERE p~stlnr = i_final_new-stlnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM GET_STKO.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF i_final_new[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT a&lt;SUB&gt;stlty a&lt;/SUB&gt;stlnr a&lt;SUB&gt;stlal a&lt;/SUB&gt;andat a&lt;SUB&gt;annam a&lt;/SUB&gt;aedat a~aenam&lt;/P&gt;&lt;P&gt;           FROM stko AS a&lt;/P&gt;&lt;P&gt;           INTO TABLE i_stko&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN i_final_new&lt;/P&gt;&lt;P&gt;           WHERE a~stlty = 'M'&lt;/P&gt;&lt;P&gt;           AND   a~stlnr = i_final_new-stlnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Select on STPO and populate i_stpo&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT p&lt;SUB&gt;stlty p&lt;/SUB&gt;stlnr p&lt;SUB&gt;stlkn p&lt;/SUB&gt;stpoz p&lt;SUB&gt;idnrk m&lt;/SUB&gt;maktx p&lt;SUB&gt;menge p&lt;/SUB&gt;meins p&lt;SUB&gt;andat p&lt;/SUB&gt;annam p&lt;SUB&gt;aedat p&lt;/SUB&gt;aenam&lt;/P&gt;&lt;P&gt;           FROM       stpo AS p&lt;/P&gt;&lt;P&gt;           INNER JOIN makt AS m&lt;/P&gt;&lt;P&gt;           ON  p&lt;SUB&gt;idnrk = m&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;           INTO CORRESPONDING FIELDS OF TABLE i_stpo&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN i_final_new&lt;/P&gt;&lt;P&gt;           WHERE p~stlty = 'M'&lt;/P&gt;&lt;P&gt;           AND   p~stlnr = i_final_new-stlnr&lt;/P&gt;&lt;P&gt;           AND   m~spras = gc_e.&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;End SMS152353.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_final.&lt;/P&gt;&lt;P&gt;    CLEAR g_tabix.&lt;/P&gt;&lt;P&gt;    g_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE i_stko WITH KEY stlnr = i_final-stlnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      i_final-stlnr = i_stko-stlnr.&lt;/P&gt;&lt;P&gt;      i_final-stlal = i_stko-stlal.&lt;/P&gt;&lt;P&gt;      i_final-annam = i_stko-annam.&lt;/P&gt;&lt;P&gt;      i_final-andat = i_stko-andat.&lt;/P&gt;&lt;P&gt;      i_final-aenam = i_stko-aenam.&lt;/P&gt;&lt;P&gt;      i_final-aedat = i_stko-aedat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE gc_num i_final-stlnr INTO g_objid .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_chgbom WITH KEY objectid = g_objid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        i_final-aenam   = i_chgbom-username.&lt;/P&gt;&lt;P&gt;        i_final-aedat   = i_chgbom-udate.&lt;/P&gt;&lt;P&gt;        i_final-utime   = i_chgbom-utime.&lt;/P&gt;&lt;P&gt;        i_final-display = gc_x.&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;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        input  = i_final-matnr&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = i_final-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MODIFY i_final INDEX g_tabix.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE i_final WHERE display NE gc_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for added/removed components in BOM for Special Materials&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR g_tabix.&lt;/P&gt;&lt;P&gt;  LOOP AT i_final.&lt;/P&gt;&lt;P&gt;    g_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Check whether material is a special material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF i_final-mtart = gc_zspe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Get the template material for the special material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR g_temp_matnr.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE a~matnr&lt;/P&gt;&lt;P&gt;                  INTO g_temp_matnr&lt;/P&gt;&lt;P&gt;                  FROM mara AS a INNER JOIN marc AS b&lt;/P&gt;&lt;P&gt;                  ON a&lt;SUB&gt;matnr = b&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;                  WHERE a~mtart = gc_ztem&lt;/P&gt;&lt;P&gt;                  AND   a~extwg = i_final-extwg+0(4)&lt;/P&gt;&lt;P&gt;                  AND   b~werks = i_final-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Get the BOM of template material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CLEAR g_temp_stlnr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE stlnr&lt;/P&gt;&lt;P&gt;                    INTO g_temp_stlnr&lt;/P&gt;&lt;P&gt;                    FROM mast&lt;/P&gt;&lt;P&gt;                    WHERE matnr = g_temp_matnr&lt;/P&gt;&lt;P&gt;                    AND   werks = i_final-werks&lt;/P&gt;&lt;P&gt;                    AND   stlan = i_final-stlan.&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;      IF NOT g_temp_stlnr IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Get STPO records for template material BOM&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        REFRESH i_temp_stpo.&lt;/P&gt;&lt;P&gt;        SELECT a&lt;SUB&gt;stlty a&lt;/SUB&gt;stlnr a&lt;SUB&gt;idnrk a&lt;/SUB&gt;menge a&lt;SUB&gt;meins b&lt;/SUB&gt;maktx&lt;/P&gt;&lt;P&gt;                    FROM stpo AS a INNER JOIN makt AS b&lt;/P&gt;&lt;P&gt;                    ON   a&lt;SUB&gt;idnrk = b&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;                    INTO TABLE i_temp_stpo&lt;/P&gt;&lt;P&gt;                    WHERE a~stlnr = g_temp_stlnr&lt;/P&gt;&lt;P&gt;                    AND   b~spras = gc_e.&lt;/P&gt;&lt;P&gt;      ENDIF.&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;    Check for components which are not in template BOM.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF i_temp_stpo[] IS NOT INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR g_tmp_tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT i_stpo WHERE stlnr = i_final-stlnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      g_tmp_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SORT i_chgbom BY objectclas objectid changenr.&lt;/P&gt;&lt;P&gt;      CONCATENATE gc_num i_final-stlnr INTO g_objid .&lt;/P&gt;&lt;P&gt;      READ TABLE i_chgbom WITH KEY objectid = g_objid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      g_mandt = sy-mandt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display Component error if it does not exist in template BOM&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Check whether material is a special material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF i_final-mtart = gc_zspe.&lt;/P&gt;&lt;P&gt;        READ TABLE i_temp_stpo WITH KEY idnrk = i_stpo-idnrk.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          i_stpo-comp_err_desc = gc_x.&lt;/P&gt;&lt;P&gt;          i_final-comp_err = gc_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        MODIFY i_stpo INDEX g_tmp_tabix.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        MODIFY i_stpo INDEX g_tmp_tabix.&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;     SORT i_chgbom1 BY objectclas ASCENDING objectid ASCENDING tabkey ASCENDING changenr DESCENDING.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SORT i_chgbom1 BY tabkey ASCENDING changenr DESCENDING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE g_mandt i_stpo-stlty i_stpo-stlnr i_stpo-stlkn i_stpo-stpoz INTO g_tabkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      DATA : l_flag TYPE c.&lt;/P&gt;&lt;P&gt;      l_flag = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT i_chgbom1 WHERE objectclas = i_chgbom-objectclas&lt;/P&gt;&lt;P&gt;                          AND objectid   = i_chgbom-objectid&lt;/P&gt;&lt;P&gt;                          AND tabkey     = g_tabkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF l_flag = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          i_stpo-tabkey    = i_chgbom1-tabkey.&lt;/P&gt;&lt;P&gt;          i_stpo-chngind   = i_chgbom1-chngind.&lt;/P&gt;&lt;P&gt;          i_stpo-fname     = i_chgbom1-fname.&lt;/P&gt;&lt;P&gt;          i_stpo-value_old = i_chgbom1-value_old.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          g_mandt = sy-mandt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         CONCATENATE gc_num i_final-stlnr INTO g_objid.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          CONCATENATE g_mandt i_stko-stlty i_final-stlnr INTO g_objid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          READ TABLE i_chgbom WITH KEY objectid = g_objid changenr = i_chgbom1-changenr.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            i_stpo-aenam   = i_chgbom-username.&lt;/P&gt;&lt;P&gt;            i_stpo-aedat   = i_chgbom-udate.&lt;/P&gt;&lt;P&gt;            i_stpo-utime    = i_chgbom-utime.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          MODIFY i_stpo INDEX g_tmp_tabix.&lt;/P&gt;&lt;P&gt;          CLEAR l_flag.&lt;/P&gt;&lt;P&gt;        ELSEIF l_flag = ' '.&lt;/P&gt;&lt;P&gt;          i_stpo1 = i_stpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF i_stpo-fname = 'MENGE'.&lt;/P&gt;&lt;P&gt;            i_stpo1-menge = i_stpo-value_old.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          IF i_stpo-fname = 'MEINS'.&lt;/P&gt;&lt;P&gt;            i_stpo1-meins = i_stpo-value_old.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          IF i_stpo-fname = 'IDNRK'.&lt;/P&gt;&lt;P&gt;            i_stpo1-idnrk = i_stpo-value_old.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          i_stpo1-tabkey    = i_chgbom1-tabkey.&lt;/P&gt;&lt;P&gt;          i_stpo1-chngind   = i_chgbom1-chngind.&lt;/P&gt;&lt;P&gt;          i_stpo1-fname     = i_chgbom1-fname.&lt;/P&gt;&lt;P&gt;          i_stpo1-value_old = i_chgbom1-value_old.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF i_chgbom1-fname = 'MENGE'.&lt;/P&gt;&lt;P&gt;            i_stpo1-menge = i_chgbom1-value_new.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          IF i_chgbom1-fname = 'MEINS'.&lt;/P&gt;&lt;P&gt;            i_stpo1-meins = i_chgbom1-value_new.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          IF i_chgbom1-fname = 'IDNRK'.&lt;/P&gt;&lt;P&gt;            i_stpo1-idnrk = i_chgbom1-value_new.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          CONCATENATE gc_num i_final-stlnr INTO g_objid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          READ TABLE i_chgbom WITH KEY objectid = g_objid changenr = i_chgbom1-changenr.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            i_stpo1-aenam   = i_chgbom-username.&lt;/P&gt;&lt;P&gt;            i_stpo1-aedat   = i_chgbom-udate.&lt;/P&gt;&lt;P&gt;            i_stpo1-utime    = i_chgbom-utime.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND i_stpo1.             "INDEX g_tmp_tabix.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND LINES OF i_stpo1 TO i_stpo.&lt;/P&gt;&lt;P&gt;    CLEAR i_stpo1.&lt;/P&gt;&lt;P&gt;    REFRESH i_stpo1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT i_chgbom1 WHERE objectid = g_objid&lt;/P&gt;&lt;P&gt;                      AND   chngind  = 'D'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_stpo-stlty     = i_stpo-stlty.&lt;/P&gt;&lt;P&gt;      wa_stpo-stlnr     = i_stpo-stlnr.&lt;/P&gt;&lt;P&gt;      wa_stpo-tabkey    = i_chgbom1-tabkey.&lt;/P&gt;&lt;P&gt;      wa_stpo-chngind   = i_chgbom1-chngind.&lt;/P&gt;&lt;P&gt;      wa_stpo-fname     = i_chgbom1-fname.&lt;/P&gt;&lt;P&gt;      wa_stpo-value_old = i_chgbom1-value_old.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE gc_num i_final-stlnr INTO g_objid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_chgbom WITH KEY objectid = g_objid changenr = i_chgbom1-changenr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        wa_stpo-aenam   = i_chgbom-username.&lt;/P&gt;&lt;P&gt;        wa_stpo-aedat   = i_chgbom-udate.&lt;/P&gt;&lt;P&gt;        wa_stpo-utime   = i_chgbom-utime.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND wa_stpo TO i_stpo.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&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;    MODIFY i_final INDEX g_tabix.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*{Form routine to get 1st interactive output&lt;/P&gt;&lt;P&gt;FORM drillrepo USING user_comm LIKE sy-ucomm                           " to fetch BOM Details screen on double click on a field&lt;/P&gt;&lt;P&gt;     rs_selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE user_comm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If it is double click.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN gc_ic1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check the field name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF RS_SELFIELD-FIELDNAME = 'STLNR'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_final INDEX rs_selfield-tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID gc_mat FIELD i_final-matnr.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID gc_wrk FIELD i_final-werks.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID gc_csv FIELD i_final-stlan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Field catalog to get BOM item details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM init_fieldcat_bd    USING gt_fieldtab_bd.     "For bom Item details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM get_data_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      gv_topofpage_bd = gc_topofpage_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&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      = sy-repid&lt;/P&gt;&lt;P&gt;          i_callback_user_command = 'DRILLREPO_TRANS'&lt;/P&gt;&lt;P&gt;          it_fieldcat             = gt_fieldtab_bd[]&lt;/P&gt;&lt;P&gt;          i_callback_top_of_page  = gv_topofpage_bd&lt;/P&gt;&lt;P&gt;          i_save                  = 'A'&lt;/P&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          t_outtab                = i_bomitem&lt;/P&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;P&gt;          program_error           = 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "drillrepo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*{Form routine to get 2nd interactive output&lt;/P&gt;&lt;P&gt;FORM drillrepo_trans USING user_comm_trans LIKE sy-ucomm                           " Directs to Transaction to get  BOM Details  on double click on a field&lt;/P&gt;&lt;P&gt;     rs_selfield_trans TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE user_comm_trans.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If it is double click.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN gc_ic1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_bomitem INDEX rs_selfield_trans-tabindex.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID gc_mat FIELD i_final-matnr.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID gc_wrk FIELD i_final-werks.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID gc_csv FIELD i_final-stlan.&lt;/P&gt;&lt;P&gt;      CALL TRANSACTION gc_cs03 AND SKIP FIRST SCREEN.&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;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "DRILLREPO_TRANS&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  init_fieldcat_bd&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_FIELDTAB_BD  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 init_fieldcat_bd  USING    p_fieldtab_bd TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_fieldcat_bd TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;  REFRESH p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;  CLEAR p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;  CLEAR l_fieldcat_bd.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-tabname    = 'I_BOMITEM'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fix_column = gc_x.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-no_out     = 'O'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'IDNRK'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-052.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-053.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-054.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'MAKTX'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-018.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-018.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-020.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'MENGE'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-056.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-057.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-058.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-no_zero      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'MEINS'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-060.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-061.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-062.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'ANDAT'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-034.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-034.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-035.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'ANNAM'(036).&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-037.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-037.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-038.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'AEDAT'.                        "last changed date&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-040.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-041.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-042.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'UTIME'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-079.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-080.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-081.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'AENAM'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-044.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-045.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-046.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'COMP_ERR_DESC'(063).&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-064.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-065.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-066.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'TABKEY'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-067.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-068.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-069.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'STATUS'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-070.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-071.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-072.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'FDESC'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-073.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-074.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-075.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'VALUE_OLD'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-076.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-077.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-078.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " init_fieldcat_bd&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_bd&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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        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_bd .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_list_comm_bd    TYPE slis_t_listheader,      " type for list comment for BOM Item Report&lt;/P&gt;&lt;P&gt;        l_list_comment_bd LIKE l_list_comm_bd          " list comment table for BOM Item Report&lt;/P&gt;&lt;P&gt;                          WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Heading of second report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  l_list_comment_bd-typ  = text-002.&lt;/P&gt;&lt;P&gt;  l_list_comment_bd-info = text-004.                   "Heading of BOM Item Report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND l_list_comment_bd TO l_list_comm_bd.&lt;/P&gt;&lt;P&gt;  CLEAR l_list_comment_bd-info.&lt;/P&gt;&lt;P&gt;&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 = l_list_comm_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " top_of_page_bd&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Retrieve data for BOM Item Details (second drill down)&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_data_bd&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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        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 get_data_bd .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH i_bomitem.&lt;/P&gt;&lt;P&gt;  LOOP AT i_stpo WHERE stlnr = i_final-stlnr.&lt;/P&gt;&lt;P&gt;    i_bomitem-stlty = i_stpo-stlty.&lt;/P&gt;&lt;P&gt;    i_bomitem-stlnr = i_stpo-stlnr.&lt;/P&gt;&lt;P&gt;    i_bomitem-idnrk = i_stpo-idnrk.&lt;/P&gt;&lt;P&gt;    i_bomitem-maktx = i_stpo-maktx.&lt;/P&gt;&lt;P&gt;    i_bomitem-menge = i_stpo-menge.&lt;/P&gt;&lt;P&gt;    i_bomitem-meins = i_stpo-meins.&lt;/P&gt;&lt;P&gt;    i_bomitem-andat = i_stpo-andat.&lt;/P&gt;&lt;P&gt;    i_bomitem-annam = i_stpo-annam.&lt;/P&gt;&lt;P&gt;    i_bomitem-aedat = i_stpo-aedat.&lt;/P&gt;&lt;P&gt;    i_bomitem-aenam = i_stpo-aenam.&lt;/P&gt;&lt;P&gt;    i_bomitem-utime = i_stpo-utime.&lt;/P&gt;&lt;P&gt;    i_bomitem-comp_err_desc = i_stpo-comp_err_desc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    i_bomitem-tabkey    = i_stpo-tabkey.&lt;/P&gt;&lt;P&gt;    i_bomitem-fname     = i_stpo-fname.&lt;/P&gt;&lt;P&gt;    i_bomitem-status    = i_stpo-chngind.&lt;/P&gt;&lt;P&gt;    i_bomitem-value_old = i_stpo-value_old.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  For Displaying the Status for 'I', 'U' &amp;amp; 'D'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF i_stpo-chngind     = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Translation of HardCoded Elements to text Elements- Varun Gupta 07-Feb-2008&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;     i_bomitem-status    = 'Add'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_bomitem-status    = text-084.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF i_stpo-chngind = 'U'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_bomitem-status    = 'Change'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_bomitem-status    = text-082.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF i_stpo-chngind = 'D'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_bomitem-status    = 'Delete'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_bomitem-status    = text-083.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End Of Changes - Varun Gupta 07-Feb-2008&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;    IF i_bomitem-fname    = 'KEY'.&lt;/P&gt;&lt;P&gt;      i_bomitem-fname    = '   '.&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;  FM For Displaying the Field Description.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'RV_TABLE_READ'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        tr_langu        = 'E'&lt;/P&gt;&lt;P&gt;        tr_table        = 'STPO'&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        dfies_tab       = i_bomitem_field_desc&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        table_not_found = 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE i_bomitem_field_desc WITH KEY fieldname = i_stpo-fname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      i_bomitem-fdesc  = i_bomitem_field_desc-fieldtext.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        input  = i_bomitem-idnrk&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = i_bomitem-idnrk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND i_bomitem.&lt;/P&gt;&lt;P&gt;    CLEAR: i_bomitem-fdesc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT i_bomitem BY idnrk DESCENDING aedat DESCENDING utime DESCENDING.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_data_bd&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  f_display_alv&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;      Display the ALV report using I_FINAL 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 f_display_alv .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Function to display report output&lt;/P&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                = sy-repid&lt;/P&gt;&lt;P&gt;      i_callback_user_command           = 'DRILLREPO'&lt;/P&gt;&lt;P&gt;      i_callback_top_of_page            =  gv_topofpage&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_BACKGROUND_ID                     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_GRID_TITLE                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      is_layout                         = gv_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat                       = gt_fieldtab[]&lt;/P&gt;&lt;P&gt;      i_default                         = gc_x&lt;/P&gt;&lt;P&gt;      i_save                            = 'A'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IS_VARIANT                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      it_events                         = gt_events[]&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                          = i_final&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;     program_error                     = 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_display_alv&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  f_validate_werks&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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        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 f_validate_werks .&lt;/P&gt;&lt;P&gt;  IF NOT s_werks IS INITIAL.&lt;/P&gt;&lt;P&gt;    CLEAR g_werks_l.&lt;/P&gt;&lt;P&gt;    CLEAR g_werks_h.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT s_werks-low IS INITIAL.&lt;/P&gt;&lt;P&gt;      IF NOT s_werks-high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE werks FROM mast INTO g_werks_l&lt;/P&gt;&lt;P&gt;                            WHERE werks = s_werks-low.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE e064(zptf) WITH s_werks-low.              "Invalid Plant&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 SINGLE werks FROM mast INTO g_werks_h&lt;/P&gt;&lt;P&gt;                            WHERE werks = s_werks-high.&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 e064(zptf) WITH s_werks-high.             "Invalid Plant&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE werks FROM mast INTO g_werks_l&lt;/P&gt;&lt;P&gt;                            WHERE werks = s_werks-low.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE e064(zptf) WITH s_werks-low.              "Invalid Plant&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF NOT s_werks-high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE werks FROM mast INTO g_werks_h&lt;/P&gt;&lt;P&gt;                          WHERE werks = s_werks-high.&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 e064(zptf) WITH s_werks-high.               "Invalid Plant&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_validate_werks&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  f_validate_mtart&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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        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 f_validate_mtart .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT s_mtart IS INITIAL.&lt;/P&gt;&lt;P&gt;    CLEAR g_mtart_l.&lt;/P&gt;&lt;P&gt;    CLEAR g_mtart_h.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT s_mtart-low IS INITIAL.&lt;/P&gt;&lt;P&gt;      IF NOT s_mtart-high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE mtart FROM  mara INTO g_mtart_l&lt;/P&gt;&lt;P&gt;                            WHERE mtart = s_mtart-low.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE e162(zptf) WITH s_mtart-low.              "Invalid Material Type&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 SINGLE mtart FROM mara INTO g_werks_h&lt;/P&gt;&lt;P&gt;                            WHERE mtart = s_mtart-high.&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 e162(zptf) WITH s_mtart-high.             "Invalid Material Type&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE mtart FROM mara INTO g_mtart_l&lt;/P&gt;&lt;P&gt;                            WHERE mtart = s_mtart-low.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE e162(zptf) WITH s_mtart-low.              "Invalid Material Type&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF NOT s_mtart-high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE mtart FROM mara INTO g_mtart_h&lt;/P&gt;&lt;P&gt;                          WHERE mtart = s_mtart-high.&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 e162(zptf) WITH s_mtart-high.               "Invalid Material Type&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_validate_mtart&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  f_validate_extwg&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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        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 f_validate_extwg .&lt;/P&gt;&lt;P&gt;  IF NOT s_werks IS INITIAL.&lt;/P&gt;&lt;P&gt;    CLEAR g_extwg_l.&lt;/P&gt;&lt;P&gt;    CLEAR g_extwg_h.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT s_extwg-low IS INITIAL.&lt;/P&gt;&lt;P&gt;      IF NOT s_extwg-high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE extwg FROM mara INTO g_extwg_l&lt;/P&gt;&lt;P&gt;                            WHERE extwg = s_extwg-low.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE e163(zptf) WITH s_extwg-low.              "Invalid External Material Group&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 SINGLE extwg FROM mara INTO g_extwg_h&lt;/P&gt;&lt;P&gt;                            WHERE extwg = s_extwg-high.&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 e163(zptf) WITH s_extwg-high.             "Invalid External Material Group&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE extwg FROM mara INTO g_extwg_l&lt;/P&gt;&lt;P&gt;                            WHERE extwg = s_extwg-low.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE e163(zptf) WITH s_extwg-low.              "Invalid External Material Group&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF NOT s_extwg-high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE extwg FROM mara INTO g_extwg_h&lt;/P&gt;&lt;P&gt;                          WHERE extwg = s_extwg-high.&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 e163(zptf) WITH s_extwg-high.               "Invalid External Material Group&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_validate_extwg&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 08 Aug 2008 05:09:53 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-08-08T05:09:53Z</dc:date>
    <item>
      <title>performance issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301153#M1025633</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;i got one issue, user want to increase its performance, plz help me init and tell where to make changes and wat changes to be done there.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the issue is:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES: mast,        "Material to BOM Link&lt;/P&gt;&lt;P&gt;        stko,        "BOM Header&lt;/P&gt;&lt;P&gt;        stpo,        "BOM Item&lt;/P&gt;&lt;P&gt;        mara,        "Material General data&lt;/P&gt;&lt;P&gt;        makt,        "Material Descriptions&lt;/P&gt;&lt;P&gt;        cdhdr.       "Change Document Header&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TYPE-POOLS: slis.&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; CONSTANTS DECLARATIONS&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;CONSTANTS:&lt;/P&gt;&lt;P&gt; gc_x(1)               VALUE 'X',&lt;/P&gt;&lt;P&gt; gc_topofpage             TYPE slis_formname VALUE 'TOP_OF_PAGE',&lt;/P&gt;&lt;P&gt; gc_topofpage_bd          TYPE slis_formname VALUE 'TOP_OF_PAGE_BD',&lt;/P&gt;&lt;P&gt; gc_drillrepo(10)         TYPE c VALUE 'DRILLREPO',&lt;/P&gt;&lt;P&gt; gc_drillrepo_trans(15)   TYPE c VALUE 'DRILLREPO_TRANS',&lt;/P&gt;&lt;P&gt; gc_e(1)               VALUE 'E',&lt;/P&gt;&lt;P&gt; gc_zspe(4)            VALUE 'ZSPE',&lt;/P&gt;&lt;P&gt; gc_ztem(4)            VALUE 'ZTEM',&lt;/P&gt;&lt;P&gt; gc_add(5)             VALUE 'ADDED',&lt;/P&gt;&lt;P&gt; gc_remove(7)          VALUE 'REMOVED',&lt;/P&gt;&lt;P&gt; gc_mat(3)             VALUE 'MAT',&lt;/P&gt;&lt;P&gt; gc_wrk(3)             VALUE 'WRK',&lt;/P&gt;&lt;P&gt; gc_csv(3)             VALUE 'CSV',&lt;/P&gt;&lt;P&gt; gc_cs03(4)            VALUE 'CS03',&lt;/P&gt;&lt;P&gt; gc_ic1(4)             VALUE '&amp;amp;IC1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*SMS152353 - Wasimkhan - Sept 11, 2007.&lt;/P&gt;&lt;P&gt;*Following Constant is commented and Variable is declared instead to&lt;/P&gt;&lt;P&gt;*have the value of the client at runtime rather than hardcoding.&lt;/P&gt;&lt;P&gt;*The name still suggests it as a constant as don't want to make the changes at all the places.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;gc_num(4)             VALUE '140M'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt; gc_num(4).&lt;/P&gt;&lt;P&gt;CONCATENATE sy-mandt 'M' INTO gc_num.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*End SMS152353.&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; INTERNAL TABLE DECLARATIONS&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;*Internal table contains fields of basic ALV list&lt;/P&gt;&lt;P&gt;DATA:BEGIN OF i_final OCCURS 0 ,&lt;/P&gt;&lt;P&gt;      werks     LIKE mast-werks,&lt;/P&gt;&lt;P&gt;      mtart     LIKE mara-mtart,&lt;/P&gt;&lt;P&gt;      extwg     LIKE mara-extwg,&lt;/P&gt;&lt;P&gt;      matnr     LIKE mast-matnr,&lt;/P&gt;&lt;P&gt;      maktx     LIKE makt-maktx,&lt;/P&gt;&lt;P&gt;      stlnr     LIKE mast-stlnr,&lt;/P&gt;&lt;P&gt;      stlan     LIKE mast-stlan,&lt;/P&gt;&lt;P&gt;      stlal     LIKE stko-stlal,&lt;/P&gt;&lt;P&gt;      annam     LIKE stko-annam,&lt;/P&gt;&lt;P&gt;      andat     LIKE stko-andat,&lt;/P&gt;&lt;P&gt;      aenam     LIKE stko-aenam,&lt;/P&gt;&lt;P&gt;      aedat     LIKE mast-aedat,&lt;/P&gt;&lt;P&gt;      tabkey    LIKE cdpos-tabkey,&lt;/P&gt;&lt;P&gt;      fname     LIKE cdpos-fname,&lt;/P&gt;&lt;P&gt;      chngind   LIKE cdpos-chngind,&lt;/P&gt;&lt;P&gt;      value_old LIKE cdpos-value_old,&lt;/P&gt;&lt;P&gt;      utime     LIKE cdhdr-utime,&lt;/P&gt;&lt;P&gt;      display   TYPE c,&lt;/P&gt;&lt;P&gt;      comp_err  TYPE c,&lt;/P&gt;&lt;P&gt;    END OF i_final.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: i_final_new LIKE STANDARD TABLE OF i_final WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal table contains fields of Header data&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_stko OCCURS 0,&lt;/P&gt;&lt;P&gt;       stlty LIKE stko-stlty,&lt;/P&gt;&lt;P&gt;       stlnr LIKE stko-stlnr,&lt;/P&gt;&lt;P&gt;       stlal LIKE stko-stlal,&lt;/P&gt;&lt;P&gt;       andat LIKE stko-andat,&lt;/P&gt;&lt;P&gt;       annam LIKE stko-annam,&lt;/P&gt;&lt;P&gt;       aedat LIKE stko-aedat,&lt;/P&gt;&lt;P&gt;       aenam LIKE stko-aenam,&lt;/P&gt;&lt;P&gt;     END OF i_stko.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_scr OCCURS 0 ,&lt;/P&gt;&lt;P&gt;        stlnr LIKE mast-stlnr,&lt;/P&gt;&lt;P&gt;        stlan LIKE mast-stlan,&lt;/P&gt;&lt;P&gt;        stlal LIKE stko-stlal,&lt;/P&gt;&lt;P&gt;        annam LIKE stko-annam,&lt;/P&gt;&lt;P&gt;        aenam LIKE stko-aenam,&lt;/P&gt;&lt;P&gt;      END OF i_scr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal table contains fields of Item details&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_stpo OCCURS 0,&lt;/P&gt;&lt;P&gt;        stlty        LIKE stpo-stlty,&lt;/P&gt;&lt;P&gt;        stlnr        LIKE stpo-stlnr,&lt;/P&gt;&lt;P&gt;        stlkn        LIKE stpo-stlkn,&lt;/P&gt;&lt;P&gt;        stpoz        LIKE stpo-stpoz,&lt;/P&gt;&lt;P&gt;        idnrk        LIKE stpo-idnrk,&lt;/P&gt;&lt;P&gt;        maktx        LIKE makt-maktx,&lt;/P&gt;&lt;P&gt;        menge        LIKE stpo-menge,&lt;/P&gt;&lt;P&gt;        meins        LIKE stpo-meins,&lt;/P&gt;&lt;P&gt;        andat        LIKE stpo-andat,&lt;/P&gt;&lt;P&gt;        annam        LIKE stpo-annam,&lt;/P&gt;&lt;P&gt;        aedat        LIKE stpo-aedat,&lt;/P&gt;&lt;P&gt;        utime        LIKE cdhdr-utime,&lt;/P&gt;&lt;P&gt;        aenam        LIKE stpo-aenam,&lt;/P&gt;&lt;P&gt;        tabkey       LIKE cdpos-tabkey,&lt;/P&gt;&lt;P&gt;        fname        LIKE cdpos-fname,&lt;/P&gt;&lt;P&gt;        chngind      LIKE cdpos-chngind,&lt;/P&gt;&lt;P&gt;        value_old    LIKE cdpos-value_old,&lt;/P&gt;&lt;P&gt;        comp_err_desc(7) TYPE c,&lt;/P&gt;&lt;P&gt;      END OF i_stpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_stpo1 OCCURS 0,&lt;/P&gt;&lt;P&gt;        stlty        LIKE stpo-stlty,&lt;/P&gt;&lt;P&gt;        stlnr        LIKE stpo-stlnr,&lt;/P&gt;&lt;P&gt;        stlkn        LIKE stpo-stlkn,&lt;/P&gt;&lt;P&gt;        stpoz        LIKE stpo-stpoz,&lt;/P&gt;&lt;P&gt;        idnrk        LIKE stpo-idnrk,&lt;/P&gt;&lt;P&gt;        maktx        LIKE makt-maktx,&lt;/P&gt;&lt;P&gt;        menge        LIKE stpo-menge,&lt;/P&gt;&lt;P&gt;        meins        LIKE stpo-meins,&lt;/P&gt;&lt;P&gt;        andat        LIKE stpo-andat,&lt;/P&gt;&lt;P&gt;        annam        LIKE stpo-annam,&lt;/P&gt;&lt;P&gt;        aedat        LIKE stpo-aedat,&lt;/P&gt;&lt;P&gt;        utime        LIKE cdhdr-utime,&lt;/P&gt;&lt;P&gt;        aenam        LIKE stpo-aenam,&lt;/P&gt;&lt;P&gt;        tabkey       LIKE cdpos-tabkey,&lt;/P&gt;&lt;P&gt;        fname        LIKE cdpos-fname,&lt;/P&gt;&lt;P&gt;        chngind      LIKE cdpos-chngind,&lt;/P&gt;&lt;P&gt;        value_old    LIKE cdpos-value_old,&lt;/P&gt;&lt;P&gt;        comp_err_desc(7) TYPE c,&lt;/P&gt;&lt;P&gt;      END OF i_stpo1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal table contains fields of secondary list&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_bomitem OCCURS 0,&lt;/P&gt;&lt;P&gt;        stlty        LIKE stpo-stlty,&lt;/P&gt;&lt;P&gt;        stlnr        LIKE stpo-stlnr,&lt;/P&gt;&lt;P&gt;        stlkn        LIKE stpo-stlkn,&lt;/P&gt;&lt;P&gt;        stpoz        LIKE stpo-stpoz,&lt;/P&gt;&lt;P&gt;        idnrk        LIKE stpo-idnrk,&lt;/P&gt;&lt;P&gt;        maktx        LIKE makt-maktx,&lt;/P&gt;&lt;P&gt;        menge        LIKE stpo-menge,&lt;/P&gt;&lt;P&gt;        meins        LIKE stpo-meins,&lt;/P&gt;&lt;P&gt;        andat        LIKE stpo-andat,&lt;/P&gt;&lt;P&gt;        annam        LIKE stpo-annam,&lt;/P&gt;&lt;P&gt;        aedat        LIKE stpo-aedat,&lt;/P&gt;&lt;P&gt;        aenam        LIKE stpo-aenam,&lt;/P&gt;&lt;P&gt;        utime        LIKE cdhdr-utime,&lt;/P&gt;&lt;P&gt;        disp         TYPE c,&lt;/P&gt;&lt;P&gt;        tabkey       LIKE cdpos-tabkey,&lt;/P&gt;&lt;P&gt;        fname        LIKE cdpos-fname,&lt;/P&gt;&lt;P&gt;        fdesc        LIKE dfies-fieldtext,&lt;/P&gt;&lt;P&gt;        status(9)    TYPE c,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       chngind      LIKE cdpos-chngind,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        value_old    LIKE cdpos-value_old,&lt;/P&gt;&lt;P&gt;        comp_err_desc(7) TYPE c,&lt;/P&gt;&lt;P&gt;     END OF i_bomitem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF i_chgbom OCCURS 0,&lt;/P&gt;&lt;P&gt;        objectid     LIKE cdhdr-objectid,&lt;/P&gt;&lt;P&gt;        objectclas   LIKE cdhdr-objectclas,&lt;/P&gt;&lt;P&gt;        changenr     LIKE cdhdr-changenr,&lt;/P&gt;&lt;P&gt;        tcode        LIKE cdhdr-tcode,&lt;/P&gt;&lt;P&gt;        username     LIKE cdhdr-username,&lt;/P&gt;&lt;P&gt;        udate        LIKE cdhdr-udate,&lt;/P&gt;&lt;P&gt;        utime        LIKE cdhdr-utime,&lt;/P&gt;&lt;P&gt;      END OF i_chgbom.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF i_chgbom1 OCCURS 0.&lt;/P&gt;&lt;P&gt;        INCLUDE STRUCTURE cdpos.&lt;/P&gt;&lt;P&gt;DATA : END OF i_chgbom1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : i_bomitem_field_desc TYPE TABLE OF dfies WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Variable declaration&lt;/P&gt;&lt;P&gt;DATA: g_temp_matnr   TYPE mara-matnr,&lt;/P&gt;&lt;P&gt;      g_temp_stlnr   TYPE mast-stlnr,&lt;/P&gt;&lt;P&gt;      g_tabix        LIKE syst-tabix,&lt;/P&gt;&lt;P&gt;      g_tmp_tabix    LIKE syst-tabix,&lt;/P&gt;&lt;P&gt;      g_objid        LIKE cdhdr-objectid,&lt;/P&gt;&lt;P&gt;      g_tabkey       LIKE cdpos-tabkey,&lt;/P&gt;&lt;P&gt;      g_mandt        LIKE sy-mandt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Slis variables&lt;/P&gt;&lt;P&gt;DATA: gt_fieldtab      TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;      gt_fieldtab_bd   TYPE slis_t_fieldcat_alv,          "BOM Item Details&lt;/P&gt;&lt;P&gt;      gv_layout        TYPE slis_layout_alv,&lt;/P&gt;&lt;P&gt;      gv_topofpage     TYPE slis_formname,&lt;/P&gt;&lt;P&gt;      gv_topofpage_bd  TYPE slis_formname,                "BOM Details&lt;/P&gt;&lt;P&gt;      gt_events        TYPE slis_t_event,&lt;/P&gt;&lt;P&gt;      gv_repname       LIKE sy-repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal table contains fields to get Add/Remove functionality&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF i_temp_stpo OCCURS 0,&lt;/P&gt;&lt;P&gt;        stlty LIKE stpo-stlty,&lt;/P&gt;&lt;P&gt;        stlnr LIKE stpo-stlnr,&lt;/P&gt;&lt;P&gt;        idnrk LIKE stpo-idnrk,&lt;/P&gt;&lt;P&gt;        menge LIKE stpo-menge,&lt;/P&gt;&lt;P&gt;        meins LIKE stpo-meins,&lt;/P&gt;&lt;P&gt;        maktx LIKE makt-maktx.&lt;/P&gt;&lt;P&gt;DATA:  END OF i_temp_stpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: wa_temp_stpo LIKE LINE OF i_temp_stpo,&lt;/P&gt;&lt;P&gt;      wa_stpo      LIKE LINE OF i_stpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Screen Validation Variables&lt;/P&gt;&lt;P&gt;DATA: g_werks_l TYPE mast-werks,&lt;/P&gt;&lt;P&gt;      g_werks_h TYPE mast-werks,&lt;/P&gt;&lt;P&gt;      g_mtart_l TYPE mara-mtart,&lt;/P&gt;&lt;P&gt;      g_mtart_h TYPE mara-mtart,&lt;/P&gt;&lt;P&gt;      g_extwg_l TYPE mara-extwg,&lt;/P&gt;&lt;P&gt;      g_extwg_h TYPE mara-extwg.&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; SELECTION-SCREEN&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;SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: s_werks FOR mast-werks OBLIGATORY,&lt;/P&gt;&lt;P&gt;                s_mtart FOR mara-mtart OBLIGATORY,&lt;/P&gt;&lt;P&gt;                s_extwg FOR mara-extwg,&lt;/P&gt;&lt;P&gt;                s_aedat FOR mast-aedat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK b1.&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; INITIALIZATION&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;INITIALIZATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gv_repname = sy-repid.&lt;/P&gt;&lt;P&gt;  PERFORM initialize_fieldcat USING gt_fieldtab.&lt;/P&gt;&lt;P&gt;  PERFORM build_eventtab      USING gt_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; VALIDATION - SELECTION SCREEN&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;AT SELECTION-SCREEN ON s_werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM f_validate_werks.         "for validating Plant&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON s_mtart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PERFORM f_validate_mtart.         "for validating Material Type&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;AT SELECTION-SCREEN ON s_extwg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; PERFORM F_VALIDATE_EXTWG.         "for validating External Material Group&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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; START-OF-SELECTION&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;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;perform top_of_page.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  PERFORM get_data.&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; END-OF-SELECTION&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;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gv_topofpage = gc_topofpage.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT i_final[] IS INITIAL.&lt;/P&gt;&lt;P&gt;    PERFORM f_display_alv.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    MESSAGE s067(zptf).&lt;/P&gt;&lt;P&gt;  ENDIF.&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  initialize_fieldcat&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_FIELDTAB[]  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 initialize_fieldcat  USING    p_fieldtab TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_fieldcat TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CLEAR l_fieldcat.&lt;/P&gt;&lt;P&gt;  l_fieldcat-tabname    = 'I_FINAL'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-fix_column = gc_x.&lt;/P&gt;&lt;P&gt;  l_fieldcat-no_out     = 'O'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'WERKS'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-007.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-007.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-008.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'MTART'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-010.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-011.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-012.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-014.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-015.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-016.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'MAKTX'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-018.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-019.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-020.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'STLNR'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-022.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-023.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-024.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'STLAN'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-026.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-027.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-028.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'STLAL'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-030.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-031.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-032.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'ANDAT'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-034.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-034.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-035.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'ANNAM'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-037.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-037.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-038.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'AEDAT'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-040.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-041.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-042.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'AENAM'.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-044.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-045.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-046.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat-fieldname = 'COMP_ERR'(047).&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_m = text-048.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_s = text-049.&lt;/P&gt;&lt;P&gt;  l_fieldcat-seltext_l = text-050.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat TO p_fieldtab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " initialize_fieldcat&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  build_eventtab&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_EVENTS[]  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 build_eventtab  USING    p_events TYPE slis_t_event.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: ls_event TYPE slis_alv_event.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_list_type = 0&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      et_events   = p_events.&lt;/P&gt;&lt;P&gt;  READ TABLE p_events WITH KEY name = slis_ev_top_of_page&lt;/P&gt;&lt;P&gt;                           INTO ls_event.&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND ls_event TO p_events.&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.                    " build_eventtab&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  build_comment&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_HEADING  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 build_comment  USING    p_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " build_comment&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;&lt;/P&gt;&lt;P&gt;  DATA: l_list_comm    TYPE slis_t_listheader,      " type for list comment&lt;/P&gt;&lt;P&gt;        l_list_comment LIKE l_list_comm             " list comment table&lt;/P&gt;&lt;P&gt;                          WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Heading of Main report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  l_list_comment-typ  = text-002.&lt;/P&gt;&lt;P&gt;  l_list_comment-info = text-003.                   "Heading of Report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND l_list_comment TO l_list_comm.&lt;/P&gt;&lt;P&gt;  CLEAR l_list_comment-info.&lt;/P&gt;&lt;P&gt;&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 = l_list_comm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " top_of_page&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  get_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;      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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        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 get_data .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT t&lt;SUB&gt;werks r&lt;/SUB&gt;mtart r&lt;SUB&gt;extwg t&lt;/SUB&gt;matnr x&lt;SUB&gt;maktx t&lt;/SUB&gt;stlnr t~stlan&lt;/P&gt;&lt;P&gt;         INTO TABLE i_final&lt;/P&gt;&lt;P&gt;         FROM mara AS r&lt;/P&gt;&lt;P&gt;         INNER JOIN makt AS x ON r&lt;SUB&gt;matnr = x&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;         INNER JOIN mast AS t ON x&lt;SUB&gt;matnr = t&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;         WHERE   r~mtart IN s_mtart&lt;/P&gt;&lt;P&gt;         AND     r~extwg IN s_extwg&lt;/P&gt;&lt;P&gt;         AND     t~werks IN s_werks&lt;/P&gt;&lt;P&gt;         AND     x~spras = gc_e.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    CLEAR i_final_new.&lt;/P&gt;&lt;P&gt;    i_final_new[] = i_final[].&lt;/P&gt;&lt;P&gt;    SORT i_final_new BY stlnr.&lt;/P&gt;&lt;P&gt;    DELETE ADJACENT DUPLICATES FROM i_final_new COMPARING stlnr.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*///start&lt;/P&gt;&lt;P&gt;  SELECT objectid objectclas changenr tcode username udate utime&lt;/P&gt;&lt;P&gt;      INTO TABLE i_chgbom&lt;/P&gt;&lt;P&gt;      FROM cdhdr&lt;/P&gt;&lt;P&gt;        WHERE objectclas = 'STUE'&lt;/P&gt;&lt;P&gt;        AND   tcode      = 'CS02'&lt;/P&gt;&lt;P&gt;        AND   udate IN s_aedat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    SORT i_chgbom BY objectid ASCENDING udate DESCENDING utime DESCENDING.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT i_chgbom[] IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    SELECT * FROM cdpos&lt;/P&gt;&lt;P&gt;             INTO TABLE i_chgbom1&lt;/P&gt;&lt;P&gt;             FOR ALL ENTRIES  IN i_chgbom&lt;/P&gt;&lt;P&gt;             WHERE objectclas EQ i_chgbom-objectclas&lt;/P&gt;&lt;P&gt;             AND   objectid   EQ i_chgbom-objectid&lt;/P&gt;&lt;P&gt;             AND   changenr   EQ i_chgbom-changenr.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    SORT i_chgbom1 BY objectid ASCENDING tabkey ASCENDING changenr DESCENDING.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;*///end&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*SMS152353 - Wasimkhan - Sept 11, 2007.&lt;/P&gt;&lt;P&gt;*Following Select Statement commented and added the new modified statements to improve the performance.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;PERFORM GET_STKO.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IF i_final_new[] IS NOT INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT a&lt;SUB&gt;stlty a&lt;/SUB&gt;stlnr a&lt;SUB&gt;stlal a&lt;/SUB&gt;andat a&lt;SUB&gt;annam a&lt;/SUB&gt;aedat a~aenam&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          FROM stko AS a&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          INTO TABLE i_stko&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          FOR ALL ENTRIES IN i_final_new&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          WHERE a~stlnr = i_final_new-stlnr.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;  Select on STPO and populate i_stpo&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   SELECT p&lt;SUB&gt;stlty p&lt;/SUB&gt;stlnr p&lt;SUB&gt;stlkn p&lt;/SUB&gt;stpoz p&lt;SUB&gt;idnrk m&lt;/SUB&gt;maktx p&lt;SUB&gt;menge p&lt;/SUB&gt;meins p&lt;SUB&gt;andat p&lt;/SUB&gt;annam p&lt;SUB&gt;aedat p&lt;/SUB&gt;aenam&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          FROM       stpo AS p&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          INNER JOIN makt AS m&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          ON  p&lt;SUB&gt;idnrk = m&lt;/SUB&gt;matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          AND m~spras = gc_e&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;          INTO TABLE i_stpo&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          INTO CORRESPONDING FIELDS OF TABLE i_stpo&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          FOR ALL ENTRIES IN i_final_new&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;          WHERE p~stlnr = i_final_new-stlnr.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ENDIF&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PERFORM GET_STKO.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  IF i_final_new[] IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;    SELECT a&lt;SUB&gt;stlty a&lt;/SUB&gt;stlnr a&lt;SUB&gt;stlal a&lt;/SUB&gt;andat a&lt;SUB&gt;annam a&lt;/SUB&gt;aedat a~aenam&lt;/P&gt;&lt;P&gt;           FROM stko AS a&lt;/P&gt;&lt;P&gt;           INTO TABLE i_stko&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN i_final_new&lt;/P&gt;&lt;P&gt;           WHERE a~stlty = 'M'&lt;/P&gt;&lt;P&gt;           AND   a~stlnr = i_final_new-stlnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Select on STPO and populate i_stpo&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    SELECT p&lt;SUB&gt;stlty p&lt;/SUB&gt;stlnr p&lt;SUB&gt;stlkn p&lt;/SUB&gt;stpoz p&lt;SUB&gt;idnrk m&lt;/SUB&gt;maktx p&lt;SUB&gt;menge p&lt;/SUB&gt;meins p&lt;SUB&gt;andat p&lt;/SUB&gt;annam p&lt;SUB&gt;aedat p&lt;/SUB&gt;aenam&lt;/P&gt;&lt;P&gt;           FROM       stpo AS p&lt;/P&gt;&lt;P&gt;           INNER JOIN makt AS m&lt;/P&gt;&lt;P&gt;           ON  p&lt;SUB&gt;idnrk = m&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;           INTO CORRESPONDING FIELDS OF TABLE i_stpo&lt;/P&gt;&lt;P&gt;           FOR ALL ENTRIES IN i_final_new&lt;/P&gt;&lt;P&gt;           WHERE p~stlty = 'M'&lt;/P&gt;&lt;P&gt;           AND   p~stlnr = i_final_new-stlnr&lt;/P&gt;&lt;P&gt;           AND   m~spras = gc_e.&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;End SMS152353.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT i_final.&lt;/P&gt;&lt;P&gt;    CLEAR g_tabix.&lt;/P&gt;&lt;P&gt;    g_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE i_stko WITH KEY stlnr = i_final-stlnr.&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      i_final-stlnr = i_stko-stlnr.&lt;/P&gt;&lt;P&gt;      i_final-stlal = i_stko-stlal.&lt;/P&gt;&lt;P&gt;      i_final-annam = i_stko-annam.&lt;/P&gt;&lt;P&gt;      i_final-andat = i_stko-andat.&lt;/P&gt;&lt;P&gt;      i_final-aenam = i_stko-aenam.&lt;/P&gt;&lt;P&gt;      i_final-aedat = i_stko-aedat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE gc_num i_final-stlnr INTO g_objid .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_chgbom WITH KEY objectid = g_objid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        i_final-aenam   = i_chgbom-username.&lt;/P&gt;&lt;P&gt;        i_final-aedat   = i_chgbom-udate.&lt;/P&gt;&lt;P&gt;        i_final-utime   = i_chgbom-utime.&lt;/P&gt;&lt;P&gt;        i_final-display = gc_x.&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;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        input  = i_final-matnr&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = i_final-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MODIFY i_final INDEX g_tabix.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DELETE i_final WHERE display NE gc_x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check for added/removed components in BOM for Special Materials&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CLEAR g_tabix.&lt;/P&gt;&lt;P&gt;  LOOP AT i_final.&lt;/P&gt;&lt;P&gt;    g_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Check whether material is a special material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF i_final-mtart = gc_zspe.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Get the template material for the special material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      CLEAR g_temp_matnr.&lt;/P&gt;&lt;P&gt;      SELECT SINGLE a~matnr&lt;/P&gt;&lt;P&gt;                  INTO g_temp_matnr&lt;/P&gt;&lt;P&gt;                  FROM mara AS a INNER JOIN marc AS b&lt;/P&gt;&lt;P&gt;                  ON a&lt;SUB&gt;matnr = b&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;                  WHERE a~mtart = gc_ztem&lt;/P&gt;&lt;P&gt;                  AND   a~extwg = i_final-extwg+0(4)&lt;/P&gt;&lt;P&gt;                  AND   b~werks = i_final-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Get the BOM of template material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        CLEAR g_temp_stlnr.&lt;/P&gt;&lt;P&gt;        SELECT SINGLE stlnr&lt;/P&gt;&lt;P&gt;                    INTO g_temp_stlnr&lt;/P&gt;&lt;P&gt;                    FROM mast&lt;/P&gt;&lt;P&gt;                    WHERE matnr = g_temp_matnr&lt;/P&gt;&lt;P&gt;                    AND   werks = i_final-werks&lt;/P&gt;&lt;P&gt;                    AND   stlan = i_final-stlan.&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;      IF NOT g_temp_stlnr IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Get STPO records for template material BOM&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        REFRESH i_temp_stpo.&lt;/P&gt;&lt;P&gt;        SELECT a&lt;SUB&gt;stlty a&lt;/SUB&gt;stlnr a&lt;SUB&gt;idnrk a&lt;/SUB&gt;menge a&lt;SUB&gt;meins b&lt;/SUB&gt;maktx&lt;/P&gt;&lt;P&gt;                    FROM stpo AS a INNER JOIN makt AS b&lt;/P&gt;&lt;P&gt;                    ON   a&lt;SUB&gt;idnrk = b&lt;/SUB&gt;matnr&lt;/P&gt;&lt;P&gt;                    INTO TABLE i_temp_stpo&lt;/P&gt;&lt;P&gt;                    WHERE a~stlnr = g_temp_stlnr&lt;/P&gt;&lt;P&gt;                    AND   b~spras = gc_e.&lt;/P&gt;&lt;P&gt;      ENDIF.&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;    Check for components which are not in template BOM.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF i_temp_stpo[] IS NOT INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CLEAR g_tmp_tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT i_stpo WHERE stlnr = i_final-stlnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      g_tmp_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SORT i_chgbom BY objectclas objectid changenr.&lt;/P&gt;&lt;P&gt;      CONCATENATE gc_num i_final-stlnr INTO g_objid .&lt;/P&gt;&lt;P&gt;      READ TABLE i_chgbom WITH KEY objectid = g_objid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      g_mandt = sy-mandt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Display Component error if it does not exist in template BOM&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Check whether material is a special material&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF i_final-mtart = gc_zspe.&lt;/P&gt;&lt;P&gt;        READ TABLE i_temp_stpo WITH KEY idnrk = i_stpo-idnrk.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          i_stpo-comp_err_desc = gc_x.&lt;/P&gt;&lt;P&gt;          i_final-comp_err = gc_x.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        MODIFY i_stpo INDEX g_tmp_tabix.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;        MODIFY i_stpo INDEX g_tmp_tabix.&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;     SORT i_chgbom1 BY objectclas ASCENDING objectid ASCENDING tabkey ASCENDING changenr DESCENDING.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SORT i_chgbom1 BY tabkey ASCENDING changenr DESCENDING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE g_mandt i_stpo-stlty i_stpo-stlnr i_stpo-stlkn i_stpo-stpoz INTO g_tabkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      DATA : l_flag TYPE c.&lt;/P&gt;&lt;P&gt;      l_flag = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      LOOP AT i_chgbom1 WHERE objectclas = i_chgbom-objectclas&lt;/P&gt;&lt;P&gt;                          AND objectid   = i_chgbom-objectid&lt;/P&gt;&lt;P&gt;                          AND tabkey     = g_tabkey.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF l_flag = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          i_stpo-tabkey    = i_chgbom1-tabkey.&lt;/P&gt;&lt;P&gt;          i_stpo-chngind   = i_chgbom1-chngind.&lt;/P&gt;&lt;P&gt;          i_stpo-fname     = i_chgbom1-fname.&lt;/P&gt;&lt;P&gt;          i_stpo-value_old = i_chgbom1-value_old.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          g_mandt = sy-mandt.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         CONCATENATE gc_num i_final-stlnr INTO g_objid.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          CONCATENATE g_mandt i_stko-stlty i_final-stlnr INTO g_objid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          READ TABLE i_chgbom WITH KEY objectid = g_objid changenr = i_chgbom1-changenr.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            i_stpo-aenam   = i_chgbom-username.&lt;/P&gt;&lt;P&gt;            i_stpo-aedat   = i_chgbom-udate.&lt;/P&gt;&lt;P&gt;            i_stpo-utime    = i_chgbom-utime.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          MODIFY i_stpo INDEX g_tmp_tabix.&lt;/P&gt;&lt;P&gt;          CLEAR l_flag.&lt;/P&gt;&lt;P&gt;        ELSEIF l_flag = ' '.&lt;/P&gt;&lt;P&gt;          i_stpo1 = i_stpo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF i_stpo-fname = 'MENGE'.&lt;/P&gt;&lt;P&gt;            i_stpo1-menge = i_stpo-value_old.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          IF i_stpo-fname = 'MEINS'.&lt;/P&gt;&lt;P&gt;            i_stpo1-meins = i_stpo-value_old.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          IF i_stpo-fname = 'IDNRK'.&lt;/P&gt;&lt;P&gt;            i_stpo1-idnrk = i_stpo-value_old.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          i_stpo1-tabkey    = i_chgbom1-tabkey.&lt;/P&gt;&lt;P&gt;          i_stpo1-chngind   = i_chgbom1-chngind.&lt;/P&gt;&lt;P&gt;          i_stpo1-fname     = i_chgbom1-fname.&lt;/P&gt;&lt;P&gt;          i_stpo1-value_old = i_chgbom1-value_old.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF i_chgbom1-fname = 'MENGE'.&lt;/P&gt;&lt;P&gt;            i_stpo1-menge = i_chgbom1-value_new.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          IF i_chgbom1-fname = 'MEINS'.&lt;/P&gt;&lt;P&gt;            i_stpo1-meins = i_chgbom1-value_new.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          IF i_chgbom1-fname = 'IDNRK'.&lt;/P&gt;&lt;P&gt;            i_stpo1-idnrk = i_chgbom1-value_new.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          CONCATENATE gc_num i_final-stlnr INTO g_objid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          READ TABLE i_chgbom WITH KEY objectid = g_objid changenr = i_chgbom1-changenr.&lt;/P&gt;&lt;P&gt;          IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;            i_stpo1-aenam   = i_chgbom-username.&lt;/P&gt;&lt;P&gt;            i_stpo1-aedat   = i_chgbom-udate.&lt;/P&gt;&lt;P&gt;            i_stpo1-utime    = i_chgbom-utime.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          APPEND i_stpo1.             "INDEX g_tmp_tabix.&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;      ENDLOOP.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND LINES OF i_stpo1 TO i_stpo.&lt;/P&gt;&lt;P&gt;    CLEAR i_stpo1.&lt;/P&gt;&lt;P&gt;    REFRESH i_stpo1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    LOOP AT i_chgbom1 WHERE objectid = g_objid&lt;/P&gt;&lt;P&gt;                      AND   chngind  = 'D'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      wa_stpo-stlty     = i_stpo-stlty.&lt;/P&gt;&lt;P&gt;      wa_stpo-stlnr     = i_stpo-stlnr.&lt;/P&gt;&lt;P&gt;      wa_stpo-tabkey    = i_chgbom1-tabkey.&lt;/P&gt;&lt;P&gt;      wa_stpo-chngind   = i_chgbom1-chngind.&lt;/P&gt;&lt;P&gt;      wa_stpo-fname     = i_chgbom1-fname.&lt;/P&gt;&lt;P&gt;      wa_stpo-value_old = i_chgbom1-value_old.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CONCATENATE gc_num i_final-stlnr INTO g_objid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_chgbom WITH KEY objectid = g_objid changenr = i_chgbom1-changenr.&lt;/P&gt;&lt;P&gt;      IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        wa_stpo-aenam   = i_chgbom-username.&lt;/P&gt;&lt;P&gt;        wa_stpo-aedat   = i_chgbom-udate.&lt;/P&gt;&lt;P&gt;        wa_stpo-utime   = i_chgbom-utime.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND wa_stpo TO i_stpo.&lt;/P&gt;&lt;P&gt;    ENDLOOP.&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;    MODIFY i_final INDEX g_tabix.&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;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*{Form routine to get 1st interactive output&lt;/P&gt;&lt;P&gt;FORM drillrepo USING user_comm LIKE sy-ucomm                           " to fetch BOM Details screen on double click on a field&lt;/P&gt;&lt;P&gt;     rs_selfield TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE user_comm.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If it is double click.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN gc_ic1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check the field name&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     IF RS_SELFIELD-FIELDNAME = 'STLNR'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_final INDEX rs_selfield-tabindex.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID gc_mat FIELD i_final-matnr.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID gc_wrk FIELD i_final-werks.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID gc_csv FIELD i_final-stlan.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Field catalog to get BOM item details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM init_fieldcat_bd    USING gt_fieldtab_bd.     "For bom Item details&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      PERFORM get_data_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      gv_topofpage_bd = gc_topofpage_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&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      = sy-repid&lt;/P&gt;&lt;P&gt;          i_callback_user_command = 'DRILLREPO_TRANS'&lt;/P&gt;&lt;P&gt;          it_fieldcat             = gt_fieldtab_bd[]&lt;/P&gt;&lt;P&gt;          i_callback_top_of_page  = gv_topofpage_bd&lt;/P&gt;&lt;P&gt;          i_save                  = 'A'&lt;/P&gt;&lt;P&gt;        TABLES&lt;/P&gt;&lt;P&gt;          t_outtab                = i_bomitem&lt;/P&gt;&lt;P&gt;        EXCEPTIONS&lt;/P&gt;&lt;P&gt;          program_error           = 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "drillrepo&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*{Form routine to get 2nd interactive output&lt;/P&gt;&lt;P&gt;FORM drillrepo_trans USING user_comm_trans LIKE sy-ucomm                           " Directs to Transaction to get  BOM Details  on double click on a field&lt;/P&gt;&lt;P&gt;     rs_selfield_trans TYPE slis_selfield.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CASE user_comm_trans.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;If it is double click.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    WHEN gc_ic1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      READ TABLE i_bomitem INDEX rs_selfield_trans-tabindex.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID gc_mat FIELD i_final-matnr.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID gc_wrk FIELD i_final-werks.&lt;/P&gt;&lt;P&gt;      SET PARAMETER ID gc_csv FIELD i_final-stlan.&lt;/P&gt;&lt;P&gt;      CALL TRANSACTION gc_cs03 AND SKIP FIRST SCREEN.&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;  ENDCASE.&lt;/P&gt;&lt;P&gt;ENDFORM.                    "DRILLREPO_TRANS&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  init_fieldcat_bd&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_FIELDTAB_BD  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 init_fieldcat_bd  USING    p_fieldtab_bd TYPE slis_t_fieldcat_alv.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_fieldcat_bd TYPE slis_fieldcat_alv.&lt;/P&gt;&lt;P&gt;  REFRESH p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;  CLEAR p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;  CLEAR l_fieldcat_bd.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-tabname    = 'I_BOMITEM'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fix_column = gc_x.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-no_out     = 'O'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'IDNRK'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-052.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-053.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-054.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'MAKTX'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-018.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-018.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-020.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'MENGE'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-056.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-057.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-058.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-no_zero      = 'X'.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'MEINS'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-060.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-061.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-062.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'ANDAT'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-034.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-034.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-035.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'ANNAM'(036).&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-037.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-037.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-038.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'AEDAT'.                        "last changed date&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-040.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-041.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-042.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'UTIME'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-079.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-080.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-081.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'AENAM'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-044.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-045.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-046.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'COMP_ERR_DESC'(063).&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-064.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-065.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-066.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'TABKEY'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-067.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-068.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-069.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'STATUS'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-070.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-071.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-072.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'FDESC'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-073.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-074.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-075.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-fieldname = 'VALUE_OLD'.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_m = text-076.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_s = text-077.&lt;/P&gt;&lt;P&gt;  l_fieldcat_bd-seltext_l = text-078.&lt;/P&gt;&lt;P&gt;  APPEND l_fieldcat_bd TO p_fieldtab_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " init_fieldcat_bd&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_bd&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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        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_bd .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: l_list_comm_bd    TYPE slis_t_listheader,      " type for list comment for BOM Item Report&lt;/P&gt;&lt;P&gt;        l_list_comment_bd LIKE l_list_comm_bd          " list comment table for BOM Item Report&lt;/P&gt;&lt;P&gt;                          WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Heading of second report&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  l_list_comment_bd-typ  = text-002.&lt;/P&gt;&lt;P&gt;  l_list_comment_bd-info = text-004.                   "Heading of BOM Item Report&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  APPEND l_list_comment_bd TO l_list_comm_bd.&lt;/P&gt;&lt;P&gt;  CLEAR l_list_comment_bd-info.&lt;/P&gt;&lt;P&gt;&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 = l_list_comm_bd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " top_of_page_bd&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Retrieve data for BOM Item Details (second drill down)&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_data_bd&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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        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 get_data_bd .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH i_bomitem.&lt;/P&gt;&lt;P&gt;  LOOP AT i_stpo WHERE stlnr = i_final-stlnr.&lt;/P&gt;&lt;P&gt;    i_bomitem-stlty = i_stpo-stlty.&lt;/P&gt;&lt;P&gt;    i_bomitem-stlnr = i_stpo-stlnr.&lt;/P&gt;&lt;P&gt;    i_bomitem-idnrk = i_stpo-idnrk.&lt;/P&gt;&lt;P&gt;    i_bomitem-maktx = i_stpo-maktx.&lt;/P&gt;&lt;P&gt;    i_bomitem-menge = i_stpo-menge.&lt;/P&gt;&lt;P&gt;    i_bomitem-meins = i_stpo-meins.&lt;/P&gt;&lt;P&gt;    i_bomitem-andat = i_stpo-andat.&lt;/P&gt;&lt;P&gt;    i_bomitem-annam = i_stpo-annam.&lt;/P&gt;&lt;P&gt;    i_bomitem-aedat = i_stpo-aedat.&lt;/P&gt;&lt;P&gt;    i_bomitem-aenam = i_stpo-aenam.&lt;/P&gt;&lt;P&gt;    i_bomitem-utime = i_stpo-utime.&lt;/P&gt;&lt;P&gt;    i_bomitem-comp_err_desc = i_stpo-comp_err_desc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    i_bomitem-tabkey    = i_stpo-tabkey.&lt;/P&gt;&lt;P&gt;    i_bomitem-fname     = i_stpo-fname.&lt;/P&gt;&lt;P&gt;    i_bomitem-status    = i_stpo-chngind.&lt;/P&gt;&lt;P&gt;    i_bomitem-value_old = i_stpo-value_old.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  For Displaying the Status for 'I', 'U' &amp;amp; 'D'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    IF i_stpo-chngind     = 'I'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Translation of HardCoded Elements to text Elements- Varun Gupta 07-Feb-2008&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;     i_bomitem-status    = 'Add'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_bomitem-status    = text-084.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF i_stpo-chngind = 'U'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_bomitem-status    = 'Change'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_bomitem-status    = text-082.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF i_stpo-chngind = 'D'.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     i_bomitem-status    = 'Delete'.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      i_bomitem-status    = text-083.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;End Of Changes - Varun Gupta 07-Feb-2008&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;    IF i_bomitem-fname    = 'KEY'.&lt;/P&gt;&lt;P&gt;      i_bomitem-fname    = '   '.&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;  FM For Displaying the Field Description.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    CALL FUNCTION 'RV_TABLE_READ'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        tr_langu        = 'E'&lt;/P&gt;&lt;P&gt;        tr_table        = 'STPO'&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        dfies_tab       = i_bomitem_field_desc&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        table_not_found = 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE i_bomitem_field_desc WITH KEY fieldname = i_stpo-fname.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;      i_bomitem-fdesc  = i_bomitem_field_desc-fieldtext.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        input  = i_bomitem-idnrk&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        output = i_bomitem-idnrk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    APPEND i_bomitem.&lt;/P&gt;&lt;P&gt;    CLEAR: i_bomitem-fdesc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;  SORT i_bomitem BY idnrk DESCENDING aedat DESCENDING utime DESCENDING.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " get_data_bd&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  f_display_alv&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;      Display the ALV report using I_FINAL 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 f_display_alv .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Function to display report output&lt;/P&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                = sy-repid&lt;/P&gt;&lt;P&gt;      i_callback_user_command           = 'DRILLREPO'&lt;/P&gt;&lt;P&gt;      i_callback_top_of_page            =  gv_topofpage&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_BACKGROUND_ID                     = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    I_GRID_TITLE                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      is_layout                         = gv_layout&lt;/P&gt;&lt;P&gt;      it_fieldcat                       = gt_fieldtab[]&lt;/P&gt;&lt;P&gt;      i_default                         = gc_x&lt;/P&gt;&lt;P&gt;      i_save                            = 'A'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    IS_VARIANT                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      it_events                         = gt_events[]&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                          = i_final&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;     program_error                     = 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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_display_alv&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  f_validate_werks&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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        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 f_validate_werks .&lt;/P&gt;&lt;P&gt;  IF NOT s_werks IS INITIAL.&lt;/P&gt;&lt;P&gt;    CLEAR g_werks_l.&lt;/P&gt;&lt;P&gt;    CLEAR g_werks_h.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT s_werks-low IS INITIAL.&lt;/P&gt;&lt;P&gt;      IF NOT s_werks-high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE werks FROM mast INTO g_werks_l&lt;/P&gt;&lt;P&gt;                            WHERE werks = s_werks-low.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE e064(zptf) WITH s_werks-low.              "Invalid Plant&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 SINGLE werks FROM mast INTO g_werks_h&lt;/P&gt;&lt;P&gt;                            WHERE werks = s_werks-high.&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 e064(zptf) WITH s_werks-high.             "Invalid Plant&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE werks FROM mast INTO g_werks_l&lt;/P&gt;&lt;P&gt;                            WHERE werks = s_werks-low.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE e064(zptf) WITH s_werks-low.              "Invalid Plant&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF NOT s_werks-high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE werks FROM mast INTO g_werks_h&lt;/P&gt;&lt;P&gt;                          WHERE werks = s_werks-high.&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 e064(zptf) WITH s_werks-high.               "Invalid Plant&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_validate_werks&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  f_validate_mtart&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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        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 f_validate_mtart .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF NOT s_mtart IS INITIAL.&lt;/P&gt;&lt;P&gt;    CLEAR g_mtart_l.&lt;/P&gt;&lt;P&gt;    CLEAR g_mtart_h.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT s_mtart-low IS INITIAL.&lt;/P&gt;&lt;P&gt;      IF NOT s_mtart-high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE mtart FROM  mara INTO g_mtart_l&lt;/P&gt;&lt;P&gt;                            WHERE mtart = s_mtart-low.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE e162(zptf) WITH s_mtart-low.              "Invalid Material Type&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 SINGLE mtart FROM mara INTO g_werks_h&lt;/P&gt;&lt;P&gt;                            WHERE mtart = s_mtart-high.&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 e162(zptf) WITH s_mtart-high.             "Invalid Material Type&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE mtart FROM mara INTO g_mtart_l&lt;/P&gt;&lt;P&gt;                            WHERE mtart = s_mtart-low.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE e162(zptf) WITH s_mtart-low.              "Invalid Material Type&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF NOT s_mtart-high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE mtart FROM mara INTO g_mtart_h&lt;/P&gt;&lt;P&gt;                          WHERE mtart = s_mtart-high.&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 e162(zptf) WITH s_mtart-high.               "Invalid Material Type&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_validate_mtart&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  f_validate_extwg&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;  p1        text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; &amp;lt;--  p2        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 f_validate_extwg .&lt;/P&gt;&lt;P&gt;  IF NOT s_werks IS INITIAL.&lt;/P&gt;&lt;P&gt;    CLEAR g_extwg_l.&lt;/P&gt;&lt;P&gt;    CLEAR g_extwg_h.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF NOT s_extwg-low IS INITIAL.&lt;/P&gt;&lt;P&gt;      IF NOT s_extwg-high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE extwg FROM mara INTO g_extwg_l&lt;/P&gt;&lt;P&gt;                            WHERE extwg = s_extwg-low.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE e163(zptf) WITH s_extwg-low.              "Invalid External Material Group&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 SINGLE extwg FROM mara INTO g_extwg_h&lt;/P&gt;&lt;P&gt;                            WHERE extwg = s_extwg-high.&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 e163(zptf) WITH s_extwg-high.             "Invalid External Material Group&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SELECT SINGLE extwg FROM mara INTO g_extwg_l&lt;/P&gt;&lt;P&gt;                            WHERE extwg = s_extwg-low.&lt;/P&gt;&lt;P&gt;        IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;          MESSAGE e163(zptf) WITH s_extwg-low.              "Invalid External Material Group&lt;/P&gt;&lt;P&gt;        ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ELSEIF NOT s_extwg-high IS INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SELECT SINGLE extwg FROM mara INTO g_extwg_h&lt;/P&gt;&lt;P&gt;                          WHERE extwg = s_extwg-high.&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 e163(zptf) WITH s_extwg-high.               "Invalid External Material Group&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " f_validate_extwg&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Aug 2008 05:09:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301153#M1025633</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-08-08T05:09:53Z</dc:date>
    </item>
    <item>
      <title>Re: performance issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301154#M1025634</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please do not just paste full programs here with unspecific questions!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It is YOUR task to do the basic analysis, run ST05 and SE30 and &lt;/P&gt;&lt;P&gt;give an overview on runtime and most expensive lines. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SQL trace:&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_blogpost" href="https://community.sap.com/" __jive_macro_name="blogpost" modifiedtitle="true" __default_attr="44587"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SE30&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_blogpost" href="https://community.sap.com/" __jive_macro_name="blogpost" modifiedtitle="true" __default_attr="45105"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ask specific questions.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Siegfried&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Aug 2008 07:31:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301154#M1025634</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-08-08T07:31:44Z</dc:date>
    </item>
    <item>
      <title>Re: performance issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301155#M1025635</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;First of all, The coding you have pasted is the old way of doing the code.To increase the performance its alwayus fine to use OOPs concepts of doing report. Please check in SDN for links to do it with thw help of object oriented ways.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Second thing is that you should use work area than directly using internal tables with header line.Work area's increases the performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In perform statement it is a better practice to use using,changing and tables statements.It helps in increasing the performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Use diffrenet includes for creating top data declaration,selection screen and coding.proper modulerization techniques results in better performance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Take care of these points,The performance will be definitly fine as there is no much expensive statement in your code.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Aug 2008 08:19:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301155#M1025635</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-08-08T08:19:28Z</dc:date>
    </item>
    <item>
      <title>Re: performance issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301156#M1025636</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;sorry, but lots of rubbish here:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;gt; &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;gt; First of all, The coding you have pasted is the old way of doing the code.To increase the performance its alwayus fine to use OOPs concepts of doing report. Please check in SDN for links to do it with thw help of object oriented ways.&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;using OOP won't improve the performance of the program&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;gt; &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt; Second thing is that you should use work area than directly using internal tables with header line.Work area's increases the performance.&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this is true, but only a minor improvement&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;gt; &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt; In perform statement it is a better practice to use using,changing and tables statements.It helps in increasing the performance.&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES is obsolate by FORM-PERFORMs, also does not improve performance&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;gt; &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;P&gt; Use diffrenet includes for creating top data declaration,selection screen and coding.proper modulerization techniques results in better performance.&lt;/P&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;INCLUDEs also do not improve performance&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Aug 2008 09:00:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301156#M1025636</guid>
      <dc:creator>JozsefSzikszai</dc:creator>
      <dc:date>2008-08-08T09:00:59Z</dc:date>
    </item>
    <item>
      <title>Re: performance issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301157#M1025637</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I would suggest you not to paste the entire code and write only specific query, since it is helpful for others to respond. Nobody is gonna peep into the entire report and find out a concrete solution for you problem.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Aug 2008 10:45:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301157#M1025637</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-08-08T10:45:17Z</dc:date>
    </item>
    <item>
      <title>Re: performance issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301158#M1025638</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Exactly. Plus, use the tag  before and after every code snippet for easier readabilty.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 08 Aug 2008 11:59:36 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301158#M1025638</guid>
      <dc:creator>ThomasZloch</dc:creator>
      <dc:date>2008-08-08T11:59:36Z</dc:date>
    </item>
    <item>
      <title>Re: performance issue</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301159#M1025639</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hello.&lt;/P&gt;&lt;P&gt;.....do one thing.&lt;/P&gt;&lt;P&gt;use a fm:(csap_mat_bom_read) to extract the bom item data from data base.don;t extract directly from stpo and stko by using select statements.&lt;/P&gt;&lt;P&gt;...it improves performance.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 10 Aug 2008 12:54:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue/m-p/4301159#M1025639</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-08-10T12:54:13Z</dc:date>
    </item>
  </channel>
</rss>

