<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: performance problem in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2742028#M637162</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;U have used select inside the loop. That's the main problem. Use FOR ALL ENTRIES. After getting values from first select query, use FOR ALL ENTRIES of first internal table. Don't use select inside loop. And also, it will take time to retrieve from MSEG table, so pass all the key fields. Check SY-SUBRC after each query. Rewrite the coding using above points, it will definitely work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if found useful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 11 Sep 2007 12:57:55 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-09-11T12:57:55Z</dc:date>
    <item>
      <title>performance problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2742026#M637160</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      This is my coding part, am facing performance problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     it goes to time exceed. how to solve this, any changes needs to be applied.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     pls suggest me on this. thanks in advance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Rajaram.&lt;/P&gt;&lt;P&gt;REPORT  ZSAB_SO1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES : mkpf,mseg,t247.&lt;/P&gt;&lt;P&gt;TYPE-POOLS : slis.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : fcat TYPE slis_t_fieldcat_alv,&lt;/P&gt;&lt;P&gt;       ls_fcat LIKE LINE OF fcat,&lt;/P&gt;&lt;P&gt;       fheader TYPE TABLE OF slis_listheader WITH NON-UNIQUE DEFAULT KEY&lt;/P&gt;&lt;P&gt;       WITH HEADER LINE INITIAL SIZE 0.&lt;/P&gt;&lt;P&gt;DATA :  i_repid LIKE sy-repid,&lt;/P&gt;&lt;P&gt;        gs_layout   TYPE slis_layout_alv,&lt;/P&gt;&lt;P&gt;        flag type n.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Internal Table&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF itab OCCURS 0,&lt;/P&gt;&lt;P&gt;         mblnr like mseg-mblnr,&lt;/P&gt;&lt;P&gt;         budat like mkpf-budat,&lt;/P&gt;&lt;P&gt;         KDAUF like mseg-KDAUF,&lt;/P&gt;&lt;P&gt;         KDPOS like mseg-KDPOS,&lt;/P&gt;&lt;P&gt;         matnr like mseg-matnr,&lt;/P&gt;&lt;P&gt;         WERKS like mseg-werks,&lt;/P&gt;&lt;P&gt;         ERFMG like mseg-ERFMG,&lt;/P&gt;&lt;P&gt;         ERFME like mseg-ERFME,&lt;/P&gt;&lt;P&gt;         BWART like mseg-BWART,&lt;/P&gt;&lt;P&gt;         maktx like makt-maktx,&lt;/P&gt;&lt;P&gt;         WMENG like vbep-WMENG,&lt;/P&gt;&lt;P&gt;         VRKME like vbep-VRKME,&lt;/P&gt;&lt;P&gt;       end of itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF itab1 OCCURS 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        mblnr like mseg-mblnr,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         lights,&lt;/P&gt;&lt;P&gt;         kdauf(90) type c,&lt;/P&gt;&lt;P&gt;         kdpos like mseg-kdpos,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        budat like mkpf-budat,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         matnr like mseg-matnr,&lt;/P&gt;&lt;P&gt;         werks like mseg-werks,&lt;/P&gt;&lt;P&gt;         erfmg like mseg-erfmg,&lt;/P&gt;&lt;P&gt;         erfme like mseg-erfme,&lt;/P&gt;&lt;P&gt;         bwart like mseg-BWART,&lt;/P&gt;&lt;P&gt;         maktx like makt-maktx,&lt;/P&gt;&lt;P&gt;         WMENG like vbep-WMENG,&lt;/P&gt;&lt;P&gt;         ABGRU like vbap-ABGRU,&lt;/P&gt;&lt;P&gt;         status(10) type c,&lt;/P&gt;&lt;P&gt;       end of itab1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF it_final OCCURS 0,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        mblnr like mseg-mblnr,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         lights,&lt;/P&gt;&lt;P&gt;         budat like mkpf-budat,&lt;/P&gt;&lt;P&gt;         KDAUF like mseg-KDAUF,&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        kdauf(90) type c,&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;         KDPOS like mseg-KDPOS,&lt;/P&gt;&lt;P&gt;         matnr like mseg-matnr,&lt;/P&gt;&lt;P&gt;         WERKS like mseg-werks,&lt;/P&gt;&lt;P&gt;         ERFMG like mseg-ERFMG,&lt;/P&gt;&lt;P&gt;         ERFME like mseg-ERFME,&lt;/P&gt;&lt;P&gt;         BWART like mseg-BWART,&lt;/P&gt;&lt;P&gt;         maktx like makt-maktx,&lt;/P&gt;&lt;P&gt;         WMENG like vbep-WMENG,&lt;/P&gt;&lt;P&gt;         ABGRU like vbap-ABGRU,&lt;/P&gt;&lt;P&gt;         AEDAT like vbap-AEDAT,&lt;/P&gt;&lt;P&gt;         status(10) type c,&lt;/P&gt;&lt;P&gt;         month(10) type c,&lt;/P&gt;&lt;P&gt;         ltx LIKE t247-ltx,&lt;/P&gt;&lt;P&gt;         ktx LIKE t247-ktx,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       end of it_final.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : begin of ipos occurs 0,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       kda(20) type n,&lt;/P&gt;&lt;P&gt;       pos(20) type n,&lt;/P&gt;&lt;P&gt;       OBJECTCLAS like cdpos-OBJECTCLAS,&lt;/P&gt;&lt;P&gt;       OBJECTID like cdpos-OBJECTID,&lt;/P&gt;&lt;P&gt;       CHANGENR like cdpos-CHANGENR,&lt;/P&gt;&lt;P&gt;       TABNAME like cdpos-TABNAME,&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_NEW like cdpos-VALUE_NEW,&lt;/P&gt;&lt;P&gt;       VALUE_OLD like cdpos-VALUE_OLD,&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;       CHANGENR1 like cdhdr-CHANGENR,&lt;/P&gt;&lt;P&gt;       end of ipos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA : begin of it1 occurs 0,&lt;/P&gt;&lt;P&gt;       kda(90) type c,&lt;/P&gt;&lt;P&gt;       pos like mseg-kdpos,&lt;/P&gt;&lt;P&gt;       OBJECTCLAS like cdpos-OBJECTCLAS,&lt;/P&gt;&lt;P&gt;       OBJECTID like cdpos-OBJECTID,&lt;/P&gt;&lt;P&gt;       CHANGENR like cdpos-CHANGENR,&lt;/P&gt;&lt;P&gt;       TABNAME like cdpos-TABNAME,&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_NEW like cdpos-VALUE_NEW,&lt;/P&gt;&lt;P&gt;       VALUE_OLD like cdpos-VALUE_OLD,&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;       CHANGENR1 like cdhdr-CHANGENR,&lt;/P&gt;&lt;P&gt;       matnr like vbap-matnr,&lt;/P&gt;&lt;P&gt;       BWART like mseg-BWART,&lt;/P&gt;&lt;P&gt;       ERFMG like mseg-ERFMG,&lt;/P&gt;&lt;P&gt;       werks like vbap-werks,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;       end of it1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*data : it1 like ipos occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data : itab2 like itab1 occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data : e_itab2 like line of itab2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK bk1 WITH FRAME TITLE text-001.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: zdate FOR mkpf-budat OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECT-OPTIONS: zpl FOR mseg-WERKS OBLIGATORY.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK bk1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  gs_layout-colwidth_optimize = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Select statement for read all the delivery document&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT mseg~mblnr&lt;/P&gt;&lt;P&gt;         mkpf~budat&lt;/P&gt;&lt;P&gt;         mseg~kdauf&lt;/P&gt;&lt;P&gt;         mseg~kdpos&lt;/P&gt;&lt;P&gt;         mseg~matnr&lt;/P&gt;&lt;P&gt;         mseg~werks&lt;/P&gt;&lt;P&gt;         mseg~erfmg&lt;/P&gt;&lt;P&gt;         mseg~erfme&lt;/P&gt;&lt;P&gt;         mseg~BWART&lt;/P&gt;&lt;P&gt;         from mseg&lt;/P&gt;&lt;P&gt;         inner join&lt;/P&gt;&lt;P&gt;         mkpf on mkpf&lt;SUB&gt;mblnr EQ mseg&lt;/SUB&gt;mblnr&lt;/P&gt;&lt;P&gt;                 into table itab&lt;/P&gt;&lt;P&gt;         where mkpf~budat in zdate and&lt;/P&gt;&lt;P&gt;            mseg~werks in zpl and&lt;/P&gt;&lt;P&gt;            mseg~kdauf ne ' ' and&lt;/P&gt;&lt;P&gt;           ( mseg~BWART = '601' or&lt;/P&gt;&lt;P&gt;            mseg~bwart = '602').&lt;/P&gt;&lt;P&gt;&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;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab.&lt;/P&gt;&lt;P&gt;  if zpl-low is not initial and zpl-high is not initial.&lt;/P&gt;&lt;P&gt;        if ( itab-werks not between zpl-low and zpl-high ).&lt;/P&gt;&lt;P&gt;        delete itab.&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;if zpl-high is initial and itab-werks &amp;lt;&amp;gt; zpl-low.&lt;/P&gt;&lt;P&gt;        delete it1.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;*if itab is not initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; select cdpos~OBJECTCLAS&lt;/P&gt;&lt;P&gt;       cdpos~OBJECTID&lt;/P&gt;&lt;P&gt;       cdpos~CHANGENR&lt;/P&gt;&lt;P&gt;       cdpos~TABNAME&lt;/P&gt;&lt;P&gt;       cdpos~TABKEY&lt;/P&gt;&lt;P&gt;       cdpos~FNAME&lt;/P&gt;&lt;P&gt;       cdpos~CHNGIND&lt;/P&gt;&lt;P&gt;       cdpos~VALUE_NEW&lt;/P&gt;&lt;P&gt;       cdpos~VALUE_OLD&lt;/P&gt;&lt;P&gt;       from cdpos into corresponding fields of table it1&lt;/P&gt;&lt;P&gt;             where tabname = 'VBAP' and&lt;/P&gt;&lt;P&gt;             fname = 'ABGRU'.&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;loop at it1.&lt;/P&gt;&lt;P&gt; if zdate-high is not initial.&lt;/P&gt;&lt;P&gt;     select single CHANGENR UDATE UTIME&lt;/P&gt;&lt;P&gt;            from cdhdr&lt;/P&gt;&lt;P&gt;            into (it1-CHANGENR1   , it1-UDATE , it1-UTIME)&lt;/P&gt;&lt;P&gt;            where CHANGENR = it1-CHANGENR and&lt;/P&gt;&lt;P&gt;                  UDATE BETWEEN ZDATE-LOW AND ZDATE-HIGH.&lt;/P&gt;&lt;P&gt;     IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;     modify it1.&lt;/P&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;P&gt;       DELETE IT1.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt; else.&lt;/P&gt;&lt;P&gt;     select single CHANGENR UDATE UTIME&lt;/P&gt;&lt;P&gt;            from cdhdr&lt;/P&gt;&lt;P&gt;            into (it1-CHANGENR1   , it1-UDATE , it1-UTIME)&lt;/P&gt;&lt;P&gt;            where CHANGENR = it1-CHANGENR and&lt;/P&gt;&lt;P&gt;                  UDATE = ZDATE-LOW.&lt;/P&gt;&lt;P&gt;     IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;     modify it1.&lt;/P&gt;&lt;P&gt;     ELSE.&lt;/P&gt;&lt;P&gt;       DELETE IT1.&lt;/P&gt;&lt;P&gt;     ENDIF.&lt;/P&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at it1.&lt;/P&gt;&lt;P&gt;it1-kda = it1-tabkey+3(10).&lt;/P&gt;&lt;P&gt;it1-pos = it1-tabkey+14(6).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*it1-kda = it1-tabkey+5(8).&lt;/P&gt;&lt;P&gt;*it1-pos = it1-tabkey+14(6).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;modify it1.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;delete adjacent duplicates from it1 comparing kda pos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at it1.&lt;/P&gt;&lt;P&gt;     select single vbeln&lt;/P&gt;&lt;P&gt;                   posnr&lt;/P&gt;&lt;P&gt;                   matnr&lt;/P&gt;&lt;P&gt;                   WERKS&lt;/P&gt;&lt;P&gt;                   from vbap&lt;/P&gt;&lt;P&gt;                   into (it1-kda , it1-pos , it1-matnr , it1-werks)&lt;/P&gt;&lt;P&gt;                   where vbeln = it1-kda and posnr = it1-pos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     modify it1.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at it1.&lt;/P&gt;&lt;P&gt;  if zpl-low is not initial and zpl-high is not initial.&lt;/P&gt;&lt;P&gt;        if ( it1-werks not between zpl-low and zpl-high ).&lt;/P&gt;&lt;P&gt;        delete it1.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;         move it1-kda to itab-kdauf.&lt;/P&gt;&lt;P&gt;         move it1-pos to itab-kdpos.&lt;/P&gt;&lt;P&gt;         move it1-matnr to itab-matnr.&lt;/P&gt;&lt;P&gt;         move it1-bwart to itab-bwart.&lt;/P&gt;&lt;P&gt;         move it1-erfmg to itab-erfmg.&lt;/P&gt;&lt;P&gt;         move it1-werks to itab-werks.&lt;/P&gt;&lt;P&gt;         move it1-UDATE to itab-budat.&lt;/P&gt;&lt;P&gt;         append itab.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        flag = 1.&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;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  if zpl-high is initial and it1-werks &amp;lt;&amp;gt; zpl-low.&lt;/P&gt;&lt;P&gt;        delete it1.&lt;/P&gt;&lt;P&gt;  elseif zpl-high is initial.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; if flag = 1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; exit.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  move it1-kda to itab-kdauf.&lt;/P&gt;&lt;P&gt;  move it1-pos to itab-kdpos.&lt;/P&gt;&lt;P&gt;  move it1-matnr to itab-matnr.&lt;/P&gt;&lt;P&gt;  move it1-bwart to itab-bwart.&lt;/P&gt;&lt;P&gt;  move it1-erfmg to itab-erfmg.&lt;/P&gt;&lt;P&gt;  move it1-werks to itab-werks.&lt;/P&gt;&lt;P&gt;  move it1-UDATE to itab-budat.&lt;/P&gt;&lt;P&gt;  append itab.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;delete adjacent duplicates from it1 comparing kda pos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*if itab is initial.&lt;/P&gt;&lt;P&gt;*exit.&lt;/P&gt;&lt;P&gt;*endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sort itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if itab is not initial.&lt;/P&gt;&lt;P&gt;select   a~mblnr&lt;/P&gt;&lt;P&gt;         a~kdauf&lt;/P&gt;&lt;P&gt;         a~kdpos&lt;/P&gt;&lt;P&gt;         a~matnr&lt;/P&gt;&lt;P&gt;         a~werks&lt;/P&gt;&lt;P&gt;         a~erfmg&lt;/P&gt;&lt;P&gt;         a~erfme&lt;/P&gt;&lt;P&gt;         a~BWART&lt;/P&gt;&lt;P&gt;         b~budat&lt;/P&gt;&lt;P&gt;         from mseg as a&lt;/P&gt;&lt;P&gt;         inner join mkpf as b on&lt;/P&gt;&lt;P&gt;         a&lt;SUB&gt;mblnr = b&lt;/SUB&gt;mblnr&lt;/P&gt;&lt;P&gt;         into corresponding fields of table  itab1&lt;/P&gt;&lt;P&gt;         for all entries in itab&lt;/P&gt;&lt;P&gt;         where a~kdauf = itab-kdauf&lt;/P&gt;&lt;P&gt;           and a~kdpos = itab-kdpos and&lt;/P&gt;&lt;P&gt;           ( a&lt;SUB&gt;bwart = '601' or a&lt;/SUB&gt;bwart = '602' ) and&lt;/P&gt;&lt;P&gt;           a~WERKS = itab-werks and&lt;/P&gt;&lt;P&gt;           b~budat le itab-budat.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab.&lt;/P&gt;&lt;P&gt;loop at itab1.&lt;/P&gt;&lt;P&gt;  if itab-kdauf = itab1-kdauf and itab-kdpos = itab1-kdpos.&lt;/P&gt;&lt;P&gt;    flag = 0.&lt;/P&gt;&lt;P&gt;    exit.&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    flag = 1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;  if flag = 1.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; read table itab1 with key kdauf &amp;lt;&amp;gt; itab-kdauf.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   select single VBELN&lt;/P&gt;&lt;P&gt;                 POSNR&lt;/P&gt;&lt;P&gt;                 wmeng&lt;/P&gt;&lt;P&gt;                 from vbep&lt;/P&gt;&lt;P&gt;                 into (itab-kdauf , itab-kdpos , itab-wmeng)&lt;/P&gt;&lt;P&gt;                 where VBELN = itab-kdauf and&lt;/P&gt;&lt;P&gt;                       POSNR = itab-kdpos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  move itab-kdauf to itab1-kdauf.&lt;/P&gt;&lt;P&gt;  move itab-kdpos to itab1-kdpos.&lt;/P&gt;&lt;P&gt;  move itab-wmeng to itab1-wmeng.&lt;/P&gt;&lt;P&gt;  move itab-matnr to itab1-matnr.&lt;/P&gt;&lt;P&gt;  move itab-bwart to itab1-bwart.&lt;/P&gt;&lt;P&gt;  move itab-erfmg to itab1-erfmg.&lt;/P&gt;&lt;P&gt;  move itab-werks to itab1-werks.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  append itab1.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab.&lt;/P&gt;&lt;P&gt;   select single VBELN&lt;/P&gt;&lt;P&gt;                 POSNR&lt;/P&gt;&lt;P&gt;                 wmeng&lt;/P&gt;&lt;P&gt;                 VRKME&lt;/P&gt;&lt;P&gt;                 from vbep&lt;/P&gt;&lt;P&gt;                 into (itab-kdauf , itab-kdpos , itab-wmeng , itab-VRKME)&lt;/P&gt;&lt;P&gt;                 where VBELN = itab-kdauf and&lt;/P&gt;&lt;P&gt;                       POSNR = itab-kdpos.&lt;/P&gt;&lt;P&gt;  move itab-kdauf to itab1-kdauf.&lt;/P&gt;&lt;P&gt;  move itab-kdpos to itab1-kdpos.&lt;/P&gt;&lt;P&gt;  move itab-wmeng to itab1-wmeng.&lt;/P&gt;&lt;P&gt;  move itab-matnr to itab1-matnr.&lt;/P&gt;&lt;P&gt;  move itab-bwart to itab1-bwart.&lt;/P&gt;&lt;P&gt;  move itab-erfmg to itab1-erfmg.&lt;/P&gt;&lt;P&gt;  move itab-werks to itab1-werks.&lt;/P&gt;&lt;P&gt;  move itab-VRKME to itab1-erfme.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  append itab1.&lt;/P&gt;&lt;P&gt;endloop.&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;loop at itab1.&lt;/P&gt;&lt;P&gt; if zpl-low is not initial and zpl-high is initial.&lt;/P&gt;&lt;P&gt;        if ( itab1-werks NE zpl-low ).&lt;/P&gt;&lt;P&gt;        delete itab1.&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;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab1.&lt;/P&gt;&lt;P&gt; select single maktx&lt;/P&gt;&lt;P&gt;      from makt into (itab1-maktx)&lt;/P&gt;&lt;P&gt;      where matnr = itab1-matnr.&lt;/P&gt;&lt;P&gt;      modify itab1.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab1.&lt;/P&gt;&lt;P&gt;        move-corresponding itab1 to itab2.&lt;/P&gt;&lt;P&gt;        collect itab2.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sort itab2 by kdauf kdpos bwart.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab2.&lt;/P&gt;&lt;P&gt;  read table itab2 into e_itab2 with key kdauf = itab2-kdauf kdpos = itab2-kdpos bwart = '602'.&lt;/P&gt;&lt;P&gt;  if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;  delete itab2 index sy-tabix.&lt;/P&gt;&lt;P&gt;  itab2-erfmg = itab2-erfmg - e_itab2-erfmg.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;  modify itab2.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if itab2 is not initial.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select cdpos~OBJECTCLAS&lt;/P&gt;&lt;P&gt;       cdpos~OBJECTID&lt;/P&gt;&lt;P&gt;       cdpos~CHANGENR&lt;/P&gt;&lt;P&gt;       cdpos~TABNAME&lt;/P&gt;&lt;P&gt;       cdpos~TABKEY&lt;/P&gt;&lt;P&gt;       cdpos~FNAME&lt;/P&gt;&lt;P&gt;       cdpos~CHNGIND&lt;/P&gt;&lt;P&gt;       cdpos~VALUE_NEW&lt;/P&gt;&lt;P&gt;       cdpos~VALUE_OLD&lt;/P&gt;&lt;P&gt;       from cdpos into corresponding fields of table ipos&lt;/P&gt;&lt;P&gt;       for all entries in itab2&lt;/P&gt;&lt;P&gt;       where tabname = 'VBAP' and&lt;/P&gt;&lt;P&gt;             fname = 'ABGRU' and&lt;/P&gt;&lt;P&gt;             OBJECTID = itab2-kdauf.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;loop at ipos.&lt;/P&gt;&lt;P&gt;ipos-kda = ipos-tabkey+5(8).&lt;/P&gt;&lt;P&gt;ipos-pos = ipos-tabkey+14(6).&lt;/P&gt;&lt;P&gt;modify ipos.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at ipos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     select single CHANGENR UDATE UTIME&lt;/P&gt;&lt;P&gt;            from cdhdr&lt;/P&gt;&lt;P&gt;            into (ipos-CHANGENR1   , ipos-UDATE , ipos-UTIME)&lt;/P&gt;&lt;P&gt;            where CHANGENR = ipos-CHANGENR.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           and OBJECTID = ipos-kda.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;     modify ipos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab2.&lt;/P&gt;&lt;P&gt;    select single WMENG&lt;/P&gt;&lt;P&gt;           from vbep into (itab2-WMENG)&lt;/P&gt;&lt;P&gt;           where vbeln = itab2-kdauf and&lt;/P&gt;&lt;P&gt;                 posnr = itab2-kdpos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    select single ABGRU&lt;/P&gt;&lt;P&gt;           from vbap into (itab2-ABGRU)&lt;/P&gt;&lt;P&gt;           where vbeln = itab2-kdauf and&lt;/P&gt;&lt;P&gt;                 posnr = itab2-kdpos.&lt;/P&gt;&lt;P&gt;    modify itab2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab2.&lt;/P&gt;&lt;P&gt;        move-corresponding itab2 to it_final.&lt;/P&gt;&lt;P&gt;        append it_final.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sort itab descending by kdauf kdpos budat descending.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at it_final.&lt;/P&gt;&lt;P&gt;    read table itab with key kdauf = it_final-kdauf kdpos = it_final-kdpos.&lt;/P&gt;&lt;P&gt;    if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    it_final-budat = itab-budat.&lt;/P&gt;&lt;P&gt;    modify it_final.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sort it_final by budat descending.&lt;/P&gt;&lt;P&gt;*sort ipos by udate UTIME descending.&lt;/P&gt;&lt;P&gt;sort ipos DESCENDING by kda pos UDATE UTIME .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at ipos.&lt;/P&gt;&lt;P&gt;  if zdate-high is not initial and ipos-udate GT zdate-high.&lt;/P&gt;&lt;P&gt;  delete ipos.&lt;/P&gt;&lt;P&gt;  elseif zdate-high is initial and ipos-udate GT zdate-low.&lt;/P&gt;&lt;P&gt;  delete ipos.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sort ipos DESCENDING by kda pos UDATE UTIME .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at it_final.&lt;/P&gt;&lt;P&gt;read table ipos with key kda = it_final-kdauf pos = it_final-kdpos.&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;it_final-budat = ipos-udate.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;if it_final-erfmg GE it_final-wmeng.&lt;/P&gt;&lt;P&gt;it_final-status ='COMPLETED'.&lt;/P&gt;&lt;P&gt;it_final-lights = '3'.&lt;/P&gt;&lt;P&gt;else.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; if it_final-erfmg LT it_final-wmeng.&lt;/P&gt;&lt;P&gt;    if ipos-VALUE_NEW is not initial and ipos-kda = it_final-kdauf and ipos-pos = it_final-kdpos.&lt;/P&gt;&lt;P&gt;    it_final-status ='COMPLETED'.&lt;/P&gt;&lt;P&gt;    it_final-lights = '3'.&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;     it_final-status ='OPEN'.&lt;/P&gt;&lt;P&gt;     it_final-lights = '1'.&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;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;modify it_final.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at it_final.&lt;/P&gt;&lt;P&gt;*if it_final-werks &amp;lt;&amp;gt; zpl.&lt;/P&gt;&lt;P&gt;*delete it_final.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT SINGLE ktx&lt;/P&gt;&lt;P&gt;              ltx&lt;/P&gt;&lt;P&gt;              INTO (it_final-ktx , it_final-ltx)&lt;/P&gt;&lt;P&gt;              FROM t247&lt;/P&gt;&lt;P&gt;              WHERE spras = sy-langu AND&lt;/P&gt;&lt;P&gt;                    mnr EQ it_final-budat+4(2).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;translate it_final-ktx to lower case.&lt;/P&gt;&lt;P&gt;translate it_final-ktx(1) to upper case.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;modify it_final.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; perform edit_mask.&lt;/P&gt;&lt;P&gt; i_repid = sy-repid.&lt;/P&gt;&lt;P&gt; PERFORM fieldcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; gs_layout-lights_fieldname = 'LIGHTS'.&lt;/P&gt;&lt;P&gt; gs_layout-lights_tabname = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ALV GRID&lt;/P&gt;&lt;/LI&gt;&lt;/UL&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      = i_repid&lt;/P&gt;&lt;P&gt;      it_fieldcat             = fcat&lt;/P&gt;&lt;P&gt;      i_save                  = 'A'&lt;/P&gt;&lt;P&gt;      is_layout               = gs_layout&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      t_outtab                = it_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;&lt;/P&gt;&lt;P&gt;FORM fieldcat .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MOVE sy-repid TO i_repid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_fcat-tabname      = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'LIGHTS'.&lt;/P&gt;&lt;P&gt;  ls_fcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext_m = 'STATUS'.&lt;/P&gt;&lt;P&gt;  APPEND ls_fcat TO fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_fcat-tabname      = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'WERKS'.&lt;/P&gt;&lt;P&gt;  ls_fcat-outputlen = 4.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext_m = 'Plant'.&lt;/P&gt;&lt;P&gt;  APPEND ls_fcat TO fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_fcat-tabname      = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'BUDAT'.&lt;/P&gt;&lt;P&gt;  ls_fcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext_m = 'Posting Date'.&lt;/P&gt;&lt;P&gt;  APPEND ls_fcat TO fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_fcat-tabname      = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'KTX'.&lt;/P&gt;&lt;P&gt;  ls_fcat-outputlen = 3.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext_m = 'Month'.&lt;/P&gt;&lt;P&gt;  APPEND ls_fcat TO fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ls_fcat-tabname      = 'IT_FINAL'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ls_fcat-fieldname = 'MBLNR'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ls_fcat-outputlen = 10.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; ls_fcat-seltext_m = 'Document'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; APPEND ls_fcat TO fcat.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_fcat-tabname      = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'KDAUF'.&lt;/P&gt;&lt;P&gt;  ls_fcat-outputlen = 10.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext_m = 'Sales Document'.&lt;/P&gt;&lt;P&gt;  APPEND ls_fcat TO fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_fcat-tabname      = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'KDPOS'.&lt;/P&gt;&lt;P&gt;  ls_fcat-outputlen = 4.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext_m = 'Item'.&lt;/P&gt;&lt;P&gt;  APPEND ls_fcat TO fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_fcat-tabname      = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'MATNR'.&lt;/P&gt;&lt;P&gt;  ls_fcat-outputlen = 20.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext_m = 'Material'.&lt;/P&gt;&lt;P&gt;  APPEND ls_fcat TO fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_fcat-tabname      = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'MAKTX'.&lt;/P&gt;&lt;P&gt;  ls_fcat-outputlen = 40.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext_m = 'Description'.&lt;/P&gt;&lt;P&gt;  APPEND ls_fcat TO fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_fcat-tabname      = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'WMENG'.&lt;/P&gt;&lt;P&gt;  ls_fcat-outputlen = 8.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext_m = 'Ord.Qty'.&lt;/P&gt;&lt;P&gt;  APPEND ls_fcat TO fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_fcat-tabname      = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'ERFMG'.&lt;/P&gt;&lt;P&gt;  ls_fcat-outputlen = 8.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext_m = 'PGI Done'.&lt;/P&gt;&lt;P&gt;  APPEND ls_fcat TO fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_fcat-tabname      = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'ERFME'.&lt;/P&gt;&lt;P&gt;  ls_fcat-outputlen = 3.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext_m = 'UoM'.&lt;/P&gt;&lt;P&gt;  APPEND ls_fcat TO fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ls_fcat-tabname      = 'IT_FINAL'.&lt;/P&gt;&lt;P&gt;  ls_fcat-fieldname = 'STATUS'.&lt;/P&gt;&lt;P&gt;  ls_fcat-outputlen = 12.&lt;/P&gt;&lt;P&gt;  ls_fcat-seltext_m = 'Status'.&lt;/P&gt;&lt;P&gt;  APPEND ls_fcat TO fcat.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    "fieldcat&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form edit_mask.&lt;/P&gt;&lt;P&gt;  loop at it_final.&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  = it_final-kdauf&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        OUTPUT = it_final-kdauf.&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  = it_final-kdpos&lt;/P&gt;&lt;P&gt;      IMPORTING&lt;/P&gt;&lt;P&gt;        OUTPUT = it_final-kdpos.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    modify it_final.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;endform.                    "edit_mask&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 08 Sep 2007 09:48:23 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2742026#M637160</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-08T09:48:23Z</dc:date>
    </item>
    <item>
      <title>Re: performance problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2742027#M637161</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Rajaram,&lt;/P&gt;&lt;P&gt;    please avoid using SELECT inside LOOP which will the major cause for low performance of ur code.&lt;/P&gt;&lt;P&gt;and try to use Parallel cursor algorithm when you use loop inside another loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;S.N.Venkatesh&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Sep 2007 12:45:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2742027#M637161</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-11T12:45:27Z</dc:date>
    </item>
    <item>
      <title>Re: performance problem</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2742028#M637162</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;U have used select inside the loop. That's the main problem. Use FOR ALL ENTRIES. After getting values from first select query, use FOR ALL ENTRIES of first internal table. Don't use select inside loop. And also, it will take time to retrieve from MSEG table, so pass all the key fields. Check SY-SUBRC after each query. Rewrite the coding using above points, it will definitely work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if found useful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Sep 2007 12:57:55 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-problem/m-p/2742028#M637162</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-09-11T12:57:55Z</dc:date>
    </item>
  </channel>
</rss>

