<?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 of this code in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067852#M93859</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Can any one tell me how to improve the performance of this code...?Or is there any way to alter select statements...?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Points guaranteed...&lt;/P&gt;&lt;P&gt;kaki&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  YMINVAGE  no standard page heading&lt;/P&gt;&lt;P&gt;        line-size 145&lt;/P&gt;&lt;P&gt;        line-count 65&lt;/P&gt;&lt;P&gt;        message-id Z1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables : mchb,                         "Batch Stocks&lt;/P&gt;&lt;P&gt;         mara,                         "Material Master&lt;/P&gt;&lt;P&gt;         mseg,&lt;/P&gt;&lt;P&gt;         lqua.                         "Storage bin location&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of t_mchb occurs 0,&lt;/P&gt;&lt;P&gt;        matnr like mara-matnr,&lt;/P&gt;&lt;P&gt;        werks like mchb-werks,&lt;/P&gt;&lt;P&gt;        lgort like mchb-lgort,&lt;/P&gt;&lt;P&gt;        ersda like mchb-ersda,     " creation date&lt;/P&gt;&lt;P&gt;        charg like mchb-charg,     " Batch Number&lt;/P&gt;&lt;P&gt;        clabs like mchb-clabs,     " unrestricted quantity&lt;/P&gt;&lt;P&gt;        cspem like mchb-cspem,     " Blocked stock&lt;/P&gt;&lt;P&gt;        prdha like mvke-prodh,     " product hierarchy&lt;/P&gt;&lt;P&gt;        wdatu like lqua-wdatu,     " gr date&lt;/P&gt;&lt;P&gt;        qty type i,&lt;/P&gt;&lt;P&gt;        price(8) type p decimals 2,&lt;/P&gt;&lt;P&gt;        amount(8) type p decimals 2,&lt;/P&gt;&lt;P&gt;      end of t_mchb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of t_qty occurs 0,&lt;/P&gt;&lt;P&gt;       matnr like mchb-matnr,&lt;/P&gt;&lt;P&gt;       werks like mchb-werks,&lt;/P&gt;&lt;P&gt;       lgort like mchb-lgort,&lt;/P&gt;&lt;P&gt;       wdatu like lqua-wdatu,&lt;/P&gt;&lt;P&gt;       clabs like mchb-clabs,&lt;/P&gt;&lt;P&gt;       cspem like mchb-cspem,&lt;/P&gt;&lt;P&gt;       charg like mchb-charg,&lt;/P&gt;&lt;P&gt;       price(8) type p decimals 2,&lt;/P&gt;&lt;P&gt;       qty30  like mchb-clabs,&lt;/P&gt;&lt;P&gt;       qty60  like mchb-clabs,&lt;/P&gt;&lt;P&gt;       qty90  like mchb-clabs,&lt;/P&gt;&lt;P&gt;       qtyful like mchb-clabs,&lt;/P&gt;&lt;P&gt;       amt30 like mseg-dmbtr,&lt;/P&gt;&lt;P&gt;       amt60 like mseg-dmbtr,&lt;/P&gt;&lt;P&gt;       amt90 like mseg-dmbtr,&lt;/P&gt;&lt;P&gt;       amtful like mseg-dmbtr,&lt;/P&gt;&lt;P&gt;      end of t_qty.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of t_coll occurs 0,&lt;/P&gt;&lt;P&gt;         matnr like mchb-matnr,&lt;/P&gt;&lt;P&gt;         werks like mchb-werks,&lt;/P&gt;&lt;P&gt;         lgort like mchb-lgort,&lt;/P&gt;&lt;P&gt;         clabs like mchb-clabs,&lt;/P&gt;&lt;P&gt;         cspem like mchb-cspem,&lt;/P&gt;&lt;P&gt;         charg like mchb-charg,&lt;/P&gt;&lt;P&gt;         amount(8) type p decimals 2,&lt;/P&gt;&lt;P&gt;         date30 type d,&lt;/P&gt;&lt;P&gt;         date60 type d,&lt;/P&gt;&lt;P&gt;         date90 type d,&lt;/P&gt;&lt;P&gt;         fdate type d,&lt;/P&gt;&lt;P&gt;      end of t_coll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : zukurs type p decimals 3,&lt;/P&gt;&lt;P&gt;       zffact like tcurr-ffact,&lt;/P&gt;&lt;P&gt;       ztfact like tcurr-tfact.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen begin of block sel with frame title text-001.&lt;/P&gt;&lt;P&gt;select-options : s_matnr for mchb-matnr.&lt;/P&gt;&lt;P&gt;select-options : s_prdha for mara-prdha.&lt;/P&gt;&lt;P&gt;select-options : s_werks for mchb-werks.&lt;/P&gt;&lt;P&gt;select-options : s_lgort for mchb-lgort.&lt;/P&gt;&lt;P&gt;select-options : s_grdate for lqua-wdatu.&lt;/P&gt;&lt;P&gt;selection-screen end of block sel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen begin of block sel1 with frame title text-002.&lt;/P&gt;&lt;P&gt;parameters: p_actstk radiobutton group g1 default 'X',&lt;/P&gt;&lt;P&gt;            p_blkstk radiobutton group g1.&lt;/P&gt;&lt;P&gt;selection-screen end of block sel1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;  perform get_data.&lt;/P&gt;&lt;P&gt;  perform process_data.&lt;/P&gt;&lt;P&gt;  perform display_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;top-of-page.&lt;/P&gt;&lt;P&gt;  perform set_page_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;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;&lt;/P&gt;&lt;P&gt;form get_data.&lt;/P&gt;&lt;P&gt;  if p_actstk = 'X'.&lt;/P&gt;&lt;P&gt;*for material,plant,location&lt;/P&gt;&lt;P&gt;    select matnr werks lgort ersda charg clabs from mchb into&lt;/P&gt;&lt;P&gt;             corresponding fields of table t_mchb&lt;/P&gt;&lt;P&gt;                           where matnr in s_matnr and&lt;/P&gt;&lt;P&gt;                                  werks in s_werks and&lt;/P&gt;&lt;P&gt;                                  lgort in s_lgort and&lt;/P&gt;&lt;P&gt;                                  clabs &amp;gt; 0 and&lt;/P&gt;&lt;P&gt;                                  ersda in s_grdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    select matnr werks lgort ersda charg cspem from mchb into&lt;/P&gt;&lt;P&gt;             corresponding fields of table t_mchb&lt;/P&gt;&lt;P&gt;                           where matnr in s_matnr and&lt;/P&gt;&lt;P&gt;                                  werks in s_werks and&lt;/P&gt;&lt;P&gt;                                  lgort in s_lgort and&lt;/P&gt;&lt;P&gt;                                  cspem &amp;gt; 0 and&lt;/P&gt;&lt;P&gt;                                  ersda in s_grdate.&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;  loop at t_mchb.&lt;/P&gt;&lt;P&gt;*for product hierarchy&lt;/P&gt;&lt;P&gt;    select single * from mara where matnr = t_mchb-matnr and&lt;/P&gt;&lt;P&gt;                                    prdha in s_prdha.&lt;/P&gt;&lt;P&gt;    t_mchb-prdha = mara-prdha.&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;for date of goods receipt&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select single * from lqua where matnr = t_mchb-matnr and&lt;/P&gt;&lt;P&gt;                                    charg = t_mchb-charg and&lt;/P&gt;&lt;P&gt;                                    wdatu in s_grdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_mchb-wdatu = lqua-wdatu.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for unit price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select single * from mseg where matnr = t_mchb-matnr and&lt;/P&gt;&lt;P&gt;                                    charg = t_mchb-charg and&lt;/P&gt;&lt;P&gt;                                    werks = t_mchb-werks.&lt;/P&gt;&lt;P&gt;    clear zukurs.&lt;/P&gt;&lt;P&gt;    perform get_usd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if zukurs &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      t_mchb-price = ( mseg-dmbtr / mseg-menge ) / ( zukurs / 100 ).&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      t_mchb-price = ( mseg-dmbtr / mseg-menge ) / '1.6'.&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;      modify t_mchb.&lt;/P&gt;&lt;P&gt;      clear t_mchb.&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;  if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;    message i016.&lt;/P&gt;&lt;P&gt;    leave list-processing.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_mchb.&lt;/P&gt;&lt;P&gt;    t_coll-matnr = t_mchb-matnr.&lt;/P&gt;&lt;P&gt;    t_coll-werks = t_mchb-werks.&lt;/P&gt;&lt;P&gt;    t_coll-lgort = t_mchb-lgort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append t_coll.&lt;/P&gt;&lt;P&gt;    clear t_coll.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort t_coll.&lt;/P&gt;&lt;P&gt;  delete adjacent duplicates from t_coll.&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;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;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 process_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data:age type d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: g_qty30 type i,&lt;/P&gt;&lt;P&gt;        g_qty60 type i,&lt;/P&gt;&lt;P&gt;        g_qty90 type i,&lt;/P&gt;&lt;P&gt;        g_qtyful type i,&lt;/P&gt;&lt;P&gt;        g_amt30 like t_qty-amt30,&lt;/P&gt;&lt;P&gt;        g_amt60 like t_qty-amt30,&lt;/P&gt;&lt;P&gt;        g_amt90 like t_qty-amt30,&lt;/P&gt;&lt;P&gt;        g_amtful like t_qty-amt30.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_coll.&lt;/P&gt;&lt;P&gt;    loop at t_mchb where matnr = t_coll-matnr&lt;/P&gt;&lt;P&gt;                        and werks = t_coll-werks&lt;/P&gt;&lt;P&gt;                        and lgort = t_coll-lgort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      age = t_mchb-wdatu.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if age lt 31.&lt;/P&gt;&lt;P&gt;        if p_actstk = 'X'.&lt;/P&gt;&lt;P&gt;          g_qty30 = g_qty30 + t_mchb-clabs.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          g_qty30 = g_qty30 + t_mchb-cspem.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      elseif age gt 30 and age lt 61.&lt;/P&gt;&lt;P&gt;        if p_actstk = 'X'.&lt;/P&gt;&lt;P&gt;          g_qty60 = g_qty60 + t_mchb-clabs.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          g_qty60 = g_qty60 + t_mchb-cspem.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      elseif age gt 60 and age lt 91.&lt;/P&gt;&lt;P&gt;        if p_actstk = 'X'.&lt;/P&gt;&lt;P&gt;          g_qty90 = g_qty90 + t_mchb-clabs.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          g_qty90 = g_qty90 + t_mchb-cspem.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        if p_actstk = 'X'.&lt;/P&gt;&lt;P&gt;          g_qtyful = g_qtyful + t_mchb-clabs.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          g_qtyful = g_qtyful + t_mchb-cspem.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for amount calculation&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;   if t_mchb-price = '0.00'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     t_mchb-price = '1'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    g_amt30 = g_qty30 * t_mchb-price.&lt;/P&gt;&lt;P&gt;    g_amt60 = g_qty60 * t_mchb-price.&lt;/P&gt;&lt;P&gt;    g_amt90 = g_qty90 * t_mchb-price.&lt;/P&gt;&lt;P&gt;    g_amtful = g_qtyful * t_mchb-price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_qty-amt30 = g_amt30.&lt;/P&gt;&lt;P&gt;    t_qty-amt60 = g_amt60.&lt;/P&gt;&lt;P&gt;    t_qty-amt90 = g_amt90.&lt;/P&gt;&lt;P&gt;    t_qty-amtful = g_amtful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_qty-matnr = t_mchb-matnr.&lt;/P&gt;&lt;P&gt;    t_qty-werks = t_mchb-werks.&lt;/P&gt;&lt;P&gt;    t_qty-lgort = t_mchb-lgort.&lt;/P&gt;&lt;P&gt;    t_qty-wdatu = t_mchb-wdatu.&lt;/P&gt;&lt;P&gt;    t_qty-clabs = t_mchb-clabs.&lt;/P&gt;&lt;P&gt;    t_qty-cspem = t_mchb-cspem.&lt;/P&gt;&lt;P&gt;    t_qty-price = t_mchb-price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*for quantities&lt;/P&gt;&lt;P&gt;    t_qty-qty30  =  g_qty30.&lt;/P&gt;&lt;P&gt;    t_qty-qty60  =  g_qty60.&lt;/P&gt;&lt;P&gt;    t_qty-qty90  =  g_qty90.&lt;/P&gt;&lt;P&gt;    t_qty-qtyful =  g_qtyful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if g_qty30 ne 0 or g_qty60 ne 0&lt;/P&gt;&lt;P&gt;        or g_qty90 ne 0 or g_qtyful ne 0.&lt;/P&gt;&lt;P&gt;      append t_qty.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear t_qty.&lt;/P&gt;&lt;P&gt;    clear: g_qty30, g_qty60, g_qty90, g_qtyful,&lt;/P&gt;&lt;P&gt;           g_amt30, g_amt60, g_amt90, g_amtful.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "process_data&lt;/P&gt;&lt;P&gt;&lt;/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  display_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;P&gt;form display_data.&lt;/P&gt;&lt;P&gt;  data: l_ind value '1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_qty.&lt;/P&gt;&lt;P&gt;    IF l_ind = '1'.&lt;/P&gt;&lt;P&gt;      l_ind = '0'.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_TOTAL INTENSIFIED OFF .&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      l_ind = 1.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_NORMAL.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    write:/1(24) t_qty-matnr color 2,&lt;/P&gt;&lt;P&gt;      24(4) t_qty-werks,&lt;/P&gt;&lt;P&gt;      32(4) t_qty-lgort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE:41(1) SY-VLINE NO-GAP.&lt;/P&gt;&lt;P&gt;    WRITE:68(1) SY-VLINE NO-GAP.&lt;/P&gt;&lt;P&gt;    WRITE:95(1) SY-VLINE NO-GAP.&lt;/P&gt;&lt;P&gt;    WRITE:119(1) SY-VLINE NO-GAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   if age &amp;lt; 31.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    write: 42(13) t_qty-qty30,&lt;/P&gt;&lt;P&gt;           55(13) t_qty-amt30.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   elseif age &amp;lt; 61.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    write: 69(11) t_qty-qty60,&lt;/P&gt;&lt;P&gt;           84(11) t_qty-amt60.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   elseif age &amp;lt; 91.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    write: 96(11) t_qty-qty90,&lt;/P&gt;&lt;P&gt;           108(11) t_qty-amt90.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   else.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    write: 120(11) t_qty-qtyful,&lt;/P&gt;&lt;P&gt;          131(12) t_qty-amtful.&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;&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  uline.&lt;/P&gt;&lt;P&gt;endform.                    "display_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;      Form  GET_USD&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 get_usd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'READ_EXCHANGE_RATE'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            date             = lqua-wdatu&lt;/P&gt;&lt;P&gt;            foreign_currency = 'USD'&lt;/P&gt;&lt;P&gt;            local_currency   = 'SGD'&lt;/P&gt;&lt;P&gt;            type_of_rate     = 'M'&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            exchange_rate    = zukurs&lt;/P&gt;&lt;P&gt;            foreign_factor   = zffact&lt;/P&gt;&lt;P&gt;            local_factor     = ztfact&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        valid_from_date  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            no_rate_found    = 1&lt;/P&gt;&lt;P&gt;            no_factors_found = 2&lt;/P&gt;&lt;P&gt;            no_spread_found  = 3&lt;/P&gt;&lt;P&gt;            others           = 4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " GET_USD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  set_page_header&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 set_page_header.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; call function 'Z_REPORT_TITLE'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     line_size       = sy-linsz&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     sy_title        = 'Inventory Aging Report'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     uline           = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     first_page_only = ' '.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write:/1(145) space color 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write :1(20)  'Material'            color col_heading,&lt;/P&gt;&lt;P&gt;         23(9) 'Plant'                color col_heading,&lt;/P&gt;&lt;P&gt;         31(15) 'Str.loc'           color col_heading,&lt;/P&gt;&lt;P&gt;         51(18) '0  - 30 days'        color col_heading,&lt;/P&gt;&lt;P&gt;         76(18) ' 31 - 60 days '      color col_heading,&lt;/P&gt;&lt;P&gt;         100(15) ' 61 - 90 days '      color col_heading,&lt;/P&gt;&lt;P&gt;         125(14) '  &amp;gt; 91 days   '     color col_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write:/1(145) space color 1.&lt;/P&gt;&lt;P&gt;  write:48(11) 'Qty'          color col_heading,&lt;/P&gt;&lt;P&gt;         58(10) 'Amnt(USD)'   color col_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write:73(10) 'Qty'          color col_heading,&lt;/P&gt;&lt;P&gt;        82(10) 'Amnt(USD)'    color col_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write:98(10) 'Qty'          color col_heading,&lt;/P&gt;&lt;P&gt;        108(10) 'Amnt(USD)'    color col_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write:122(10) 'Qty'          color col_heading,&lt;/P&gt;&lt;P&gt;        132(10) 'Amnt(USD)'    color col_heading.&lt;/P&gt;&lt;P&gt;  uline.&lt;/P&gt;&lt;P&gt;endform.                    "set_page_header&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 10 Nov 2005 09:13:40 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2005-11-10T09:13:40Z</dc:date>
    <item>
      <title>performance issue of this code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067852#M93859</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Can any one tell me how to improve the performance of this code...?Or is there any way to alter select statements...?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Points guaranteed...&lt;/P&gt;&lt;P&gt;kaki&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  YMINVAGE  no standard page heading&lt;/P&gt;&lt;P&gt;        line-size 145&lt;/P&gt;&lt;P&gt;        line-count 65&lt;/P&gt;&lt;P&gt;        message-id Z1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables : mchb,                         "Batch Stocks&lt;/P&gt;&lt;P&gt;         mara,                         "Material Master&lt;/P&gt;&lt;P&gt;         mseg,&lt;/P&gt;&lt;P&gt;         lqua.                         "Storage bin location&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of t_mchb occurs 0,&lt;/P&gt;&lt;P&gt;        matnr like mara-matnr,&lt;/P&gt;&lt;P&gt;        werks like mchb-werks,&lt;/P&gt;&lt;P&gt;        lgort like mchb-lgort,&lt;/P&gt;&lt;P&gt;        ersda like mchb-ersda,     " creation date&lt;/P&gt;&lt;P&gt;        charg like mchb-charg,     " Batch Number&lt;/P&gt;&lt;P&gt;        clabs like mchb-clabs,     " unrestricted quantity&lt;/P&gt;&lt;P&gt;        cspem like mchb-cspem,     " Blocked stock&lt;/P&gt;&lt;P&gt;        prdha like mvke-prodh,     " product hierarchy&lt;/P&gt;&lt;P&gt;        wdatu like lqua-wdatu,     " gr date&lt;/P&gt;&lt;P&gt;        qty type i,&lt;/P&gt;&lt;P&gt;        price(8) type p decimals 2,&lt;/P&gt;&lt;P&gt;        amount(8) type p decimals 2,&lt;/P&gt;&lt;P&gt;      end of t_mchb.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of t_qty occurs 0,&lt;/P&gt;&lt;P&gt;       matnr like mchb-matnr,&lt;/P&gt;&lt;P&gt;       werks like mchb-werks,&lt;/P&gt;&lt;P&gt;       lgort like mchb-lgort,&lt;/P&gt;&lt;P&gt;       wdatu like lqua-wdatu,&lt;/P&gt;&lt;P&gt;       clabs like mchb-clabs,&lt;/P&gt;&lt;P&gt;       cspem like mchb-cspem,&lt;/P&gt;&lt;P&gt;       charg like mchb-charg,&lt;/P&gt;&lt;P&gt;       price(8) type p decimals 2,&lt;/P&gt;&lt;P&gt;       qty30  like mchb-clabs,&lt;/P&gt;&lt;P&gt;       qty60  like mchb-clabs,&lt;/P&gt;&lt;P&gt;       qty90  like mchb-clabs,&lt;/P&gt;&lt;P&gt;       qtyful like mchb-clabs,&lt;/P&gt;&lt;P&gt;       amt30 like mseg-dmbtr,&lt;/P&gt;&lt;P&gt;       amt60 like mseg-dmbtr,&lt;/P&gt;&lt;P&gt;       amt90 like mseg-dmbtr,&lt;/P&gt;&lt;P&gt;       amtful like mseg-dmbtr,&lt;/P&gt;&lt;P&gt;      end of t_qty.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of t_coll occurs 0,&lt;/P&gt;&lt;P&gt;         matnr like mchb-matnr,&lt;/P&gt;&lt;P&gt;         werks like mchb-werks,&lt;/P&gt;&lt;P&gt;         lgort like mchb-lgort,&lt;/P&gt;&lt;P&gt;         clabs like mchb-clabs,&lt;/P&gt;&lt;P&gt;         cspem like mchb-cspem,&lt;/P&gt;&lt;P&gt;         charg like mchb-charg,&lt;/P&gt;&lt;P&gt;         amount(8) type p decimals 2,&lt;/P&gt;&lt;P&gt;         date30 type d,&lt;/P&gt;&lt;P&gt;         date60 type d,&lt;/P&gt;&lt;P&gt;         date90 type d,&lt;/P&gt;&lt;P&gt;         fdate type d,&lt;/P&gt;&lt;P&gt;      end of t_coll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data : zukurs type p decimals 3,&lt;/P&gt;&lt;P&gt;       zffact like tcurr-ffact,&lt;/P&gt;&lt;P&gt;       ztfact like tcurr-tfact.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen begin of block sel with frame title text-001.&lt;/P&gt;&lt;P&gt;select-options : s_matnr for mchb-matnr.&lt;/P&gt;&lt;P&gt;select-options : s_prdha for mara-prdha.&lt;/P&gt;&lt;P&gt;select-options : s_werks for mchb-werks.&lt;/P&gt;&lt;P&gt;select-options : s_lgort for mchb-lgort.&lt;/P&gt;&lt;P&gt;select-options : s_grdate for lqua-wdatu.&lt;/P&gt;&lt;P&gt;selection-screen end of block sel.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;selection-screen begin of block sel1 with frame title text-002.&lt;/P&gt;&lt;P&gt;parameters: p_actstk radiobutton group g1 default 'X',&lt;/P&gt;&lt;P&gt;            p_blkstk radiobutton group g1.&lt;/P&gt;&lt;P&gt;selection-screen end of block sel1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;start-of-selection.&lt;/P&gt;&lt;P&gt;  perform get_data.&lt;/P&gt;&lt;P&gt;  perform process_data.&lt;/P&gt;&lt;P&gt;  perform display_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;top-of-page.&lt;/P&gt;&lt;P&gt;  perform set_page_header.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;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;&lt;/P&gt;&lt;P&gt;form get_data.&lt;/P&gt;&lt;P&gt;  if p_actstk = 'X'.&lt;/P&gt;&lt;P&gt;*for material,plant,location&lt;/P&gt;&lt;P&gt;    select matnr werks lgort ersda charg clabs from mchb into&lt;/P&gt;&lt;P&gt;             corresponding fields of table t_mchb&lt;/P&gt;&lt;P&gt;                           where matnr in s_matnr and&lt;/P&gt;&lt;P&gt;                                  werks in s_werks and&lt;/P&gt;&lt;P&gt;                                  lgort in s_lgort and&lt;/P&gt;&lt;P&gt;                                  clabs &amp;gt; 0 and&lt;/P&gt;&lt;P&gt;                                  ersda in s_grdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  else.&lt;/P&gt;&lt;P&gt;    select matnr werks lgort ersda charg cspem from mchb into&lt;/P&gt;&lt;P&gt;             corresponding fields of table t_mchb&lt;/P&gt;&lt;P&gt;                           where matnr in s_matnr and&lt;/P&gt;&lt;P&gt;                                  werks in s_werks and&lt;/P&gt;&lt;P&gt;                                  lgort in s_lgort and&lt;/P&gt;&lt;P&gt;                                  cspem &amp;gt; 0 and&lt;/P&gt;&lt;P&gt;                                  ersda in s_grdate.&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;  loop at t_mchb.&lt;/P&gt;&lt;P&gt;*for product hierarchy&lt;/P&gt;&lt;P&gt;    select single * from mara where matnr = t_mchb-matnr and&lt;/P&gt;&lt;P&gt;                                    prdha in s_prdha.&lt;/P&gt;&lt;P&gt;    t_mchb-prdha = mara-prdha.&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;for date of goods receipt&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select single * from lqua where matnr = t_mchb-matnr and&lt;/P&gt;&lt;P&gt;                                    charg = t_mchb-charg and&lt;/P&gt;&lt;P&gt;                                    wdatu in s_grdate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_mchb-wdatu = lqua-wdatu.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for unit price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    select single * from mseg where matnr = t_mchb-matnr and&lt;/P&gt;&lt;P&gt;                                    charg = t_mchb-charg and&lt;/P&gt;&lt;P&gt;                                    werks = t_mchb-werks.&lt;/P&gt;&lt;P&gt;    clear zukurs.&lt;/P&gt;&lt;P&gt;    perform get_usd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if zukurs &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;      t_mchb-price = ( mseg-dmbtr / mseg-menge ) / ( zukurs / 100 ).&lt;/P&gt;&lt;P&gt;    else.&lt;/P&gt;&lt;P&gt;      t_mchb-price = ( mseg-dmbtr / mseg-menge ) / '1.6'.&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;      modify t_mchb.&lt;/P&gt;&lt;P&gt;      clear t_mchb.&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;  if sy-subrc ne 0.&lt;/P&gt;&lt;P&gt;    message i016.&lt;/P&gt;&lt;P&gt;    leave list-processing.&lt;/P&gt;&lt;P&gt;  endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_mchb.&lt;/P&gt;&lt;P&gt;    t_coll-matnr = t_mchb-matnr.&lt;/P&gt;&lt;P&gt;    t_coll-werks = t_mchb-werks.&lt;/P&gt;&lt;P&gt;    t_coll-lgort = t_mchb-lgort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    append t_coll.&lt;/P&gt;&lt;P&gt;    clear t_coll.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  sort t_coll.&lt;/P&gt;&lt;P&gt;  delete adjacent duplicates from t_coll.&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;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  process_data&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;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 process_data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data:age type d.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  data: g_qty30 type i,&lt;/P&gt;&lt;P&gt;        g_qty60 type i,&lt;/P&gt;&lt;P&gt;        g_qty90 type i,&lt;/P&gt;&lt;P&gt;        g_qtyful type i,&lt;/P&gt;&lt;P&gt;        g_amt30 like t_qty-amt30,&lt;/P&gt;&lt;P&gt;        g_amt60 like t_qty-amt30,&lt;/P&gt;&lt;P&gt;        g_amt90 like t_qty-amt30,&lt;/P&gt;&lt;P&gt;        g_amtful like t_qty-amt30.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_coll.&lt;/P&gt;&lt;P&gt;    loop at t_mchb where matnr = t_coll-matnr&lt;/P&gt;&lt;P&gt;                        and werks = t_coll-werks&lt;/P&gt;&lt;P&gt;                        and lgort = t_coll-lgort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      age = t_mchb-wdatu.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      if age lt 31.&lt;/P&gt;&lt;P&gt;        if p_actstk = 'X'.&lt;/P&gt;&lt;P&gt;          g_qty30 = g_qty30 + t_mchb-clabs.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          g_qty30 = g_qty30 + t_mchb-cspem.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      elseif age gt 30 and age lt 61.&lt;/P&gt;&lt;P&gt;        if p_actstk = 'X'.&lt;/P&gt;&lt;P&gt;          g_qty60 = g_qty60 + t_mchb-clabs.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          g_qty60 = g_qty60 + t_mchb-cspem.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      elseif age gt 60 and age lt 91.&lt;/P&gt;&lt;P&gt;        if p_actstk = 'X'.&lt;/P&gt;&lt;P&gt;          g_qty90 = g_qty90 + t_mchb-clabs.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          g_qty90 = g_qty90 + t_mchb-cspem.&lt;/P&gt;&lt;P&gt;        endif.&lt;/P&gt;&lt;P&gt;      else.&lt;/P&gt;&lt;P&gt;        if p_actstk = 'X'.&lt;/P&gt;&lt;P&gt;          g_qtyful = g_qtyful + t_mchb-clabs.&lt;/P&gt;&lt;P&gt;        else.&lt;/P&gt;&lt;P&gt;          g_qtyful = g_qtyful + t_mchb-cspem.&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;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for amount calculation&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;   if t_mchb-price = '0.00'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     t_mchb-price = '1'.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   endif.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    g_amt30 = g_qty30 * t_mchb-price.&lt;/P&gt;&lt;P&gt;    g_amt60 = g_qty60 * t_mchb-price.&lt;/P&gt;&lt;P&gt;    g_amt90 = g_qty90 * t_mchb-price.&lt;/P&gt;&lt;P&gt;    g_amtful = g_qtyful * t_mchb-price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_qty-amt30 = g_amt30.&lt;/P&gt;&lt;P&gt;    t_qty-amt60 = g_amt60.&lt;/P&gt;&lt;P&gt;    t_qty-amt90 = g_amt90.&lt;/P&gt;&lt;P&gt;    t_qty-amtful = g_amtful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    t_qty-matnr = t_mchb-matnr.&lt;/P&gt;&lt;P&gt;    t_qty-werks = t_mchb-werks.&lt;/P&gt;&lt;P&gt;    t_qty-lgort = t_mchb-lgort.&lt;/P&gt;&lt;P&gt;    t_qty-wdatu = t_mchb-wdatu.&lt;/P&gt;&lt;P&gt;    t_qty-clabs = t_mchb-clabs.&lt;/P&gt;&lt;P&gt;    t_qty-cspem = t_mchb-cspem.&lt;/P&gt;&lt;P&gt;    t_qty-price = t_mchb-price.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*for quantities&lt;/P&gt;&lt;P&gt;    t_qty-qty30  =  g_qty30.&lt;/P&gt;&lt;P&gt;    t_qty-qty60  =  g_qty60.&lt;/P&gt;&lt;P&gt;    t_qty-qty90  =  g_qty90.&lt;/P&gt;&lt;P&gt;    t_qty-qtyful =  g_qtyful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    if g_qty30 ne 0 or g_qty60 ne 0&lt;/P&gt;&lt;P&gt;        or g_qty90 ne 0 or g_qtyful ne 0.&lt;/P&gt;&lt;P&gt;      append t_qty.&lt;/P&gt;&lt;P&gt;    endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    clear t_qty.&lt;/P&gt;&lt;P&gt;    clear: g_qty30, g_qty60, g_qty90, g_qtyful,&lt;/P&gt;&lt;P&gt;           g_amt30, g_amt60, g_amt90, g_amtful.&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                    "process_data&lt;/P&gt;&lt;P&gt;&lt;/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  display_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;P&gt;form display_data.&lt;/P&gt;&lt;P&gt;  data: l_ind value '1'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  loop at t_qty.&lt;/P&gt;&lt;P&gt;    IF l_ind = '1'.&lt;/P&gt;&lt;P&gt;      l_ind = '0'.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_TOTAL INTENSIFIED OFF .&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      l_ind = 1.&lt;/P&gt;&lt;P&gt;      FORMAT COLOR COL_NORMAL.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    write:/1(24) t_qty-matnr color 2,&lt;/P&gt;&lt;P&gt;      24(4) t_qty-werks,&lt;/P&gt;&lt;P&gt;      32(4) t_qty-lgort.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    WRITE:41(1) SY-VLINE NO-GAP.&lt;/P&gt;&lt;P&gt;    WRITE:68(1) SY-VLINE NO-GAP.&lt;/P&gt;&lt;P&gt;    WRITE:95(1) SY-VLINE NO-GAP.&lt;/P&gt;&lt;P&gt;    WRITE:119(1) SY-VLINE NO-GAP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   if age &amp;lt; 31.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    write: 42(13) t_qty-qty30,&lt;/P&gt;&lt;P&gt;           55(13) t_qty-amt30.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   elseif age &amp;lt; 61.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    write: 69(11) t_qty-qty60,&lt;/P&gt;&lt;P&gt;           84(11) t_qty-amt60.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   elseif age &amp;lt; 91.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    write: 96(11) t_qty-qty90,&lt;/P&gt;&lt;P&gt;           108(11) t_qty-amt90.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   else.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    write: 120(11) t_qty-qtyful,&lt;/P&gt;&lt;P&gt;          131(12) t_qty-amtful.&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;&lt;/P&gt;&lt;P&gt;  endloop.&lt;/P&gt;&lt;P&gt;  uline.&lt;/P&gt;&lt;P&gt;endform.                    "display_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;      Form  GET_USD&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 get_usd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  call function 'READ_EXCHANGE_RATE'&lt;/P&gt;&lt;P&gt;       exporting&lt;/P&gt;&lt;P&gt;            date             = lqua-wdatu&lt;/P&gt;&lt;P&gt;            foreign_currency = 'USD'&lt;/P&gt;&lt;P&gt;            local_currency   = 'SGD'&lt;/P&gt;&lt;P&gt;            type_of_rate     = 'M'&lt;/P&gt;&lt;P&gt;       importing&lt;/P&gt;&lt;P&gt;            exchange_rate    = zukurs&lt;/P&gt;&lt;P&gt;            foreign_factor   = zffact&lt;/P&gt;&lt;P&gt;            local_factor     = ztfact&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        valid_from_date  =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       exceptions&lt;/P&gt;&lt;P&gt;            no_rate_found    = 1&lt;/P&gt;&lt;P&gt;            no_factors_found = 2&lt;/P&gt;&lt;P&gt;            no_spread_found  = 3&lt;/P&gt;&lt;P&gt;            others           = 4.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.                               " GET_USD&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="---------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  set_page_header&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 set_page_header.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; call function 'Z_REPORT_TITLE'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     line_size       = sy-linsz&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     sy_title        = 'Inventory Aging Report'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     uline           = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     first_page_only = ' '.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write:/1(145) space color 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write :1(20)  'Material'            color col_heading,&lt;/P&gt;&lt;P&gt;         23(9) 'Plant'                color col_heading,&lt;/P&gt;&lt;P&gt;         31(15) 'Str.loc'           color col_heading,&lt;/P&gt;&lt;P&gt;         51(18) '0  - 30 days'        color col_heading,&lt;/P&gt;&lt;P&gt;         76(18) ' 31 - 60 days '      color col_heading,&lt;/P&gt;&lt;P&gt;         100(15) ' 61 - 90 days '      color col_heading,&lt;/P&gt;&lt;P&gt;         125(14) '  &amp;gt; 91 days   '     color col_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write:/1(145) space color 1.&lt;/P&gt;&lt;P&gt;  write:48(11) 'Qty'          color col_heading,&lt;/P&gt;&lt;P&gt;         58(10) 'Amnt(USD)'   color col_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write:73(10) 'Qty'          color col_heading,&lt;/P&gt;&lt;P&gt;        82(10) 'Amnt(USD)'    color col_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write:98(10) 'Qty'          color col_heading,&lt;/P&gt;&lt;P&gt;        108(10) 'Amnt(USD)'    color col_heading.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  write:122(10) 'Qty'          color col_heading,&lt;/P&gt;&lt;P&gt;        132(10) 'Amnt(USD)'    color col_heading.&lt;/P&gt;&lt;P&gt;  uline.&lt;/P&gt;&lt;P&gt;endform.                    "set_page_header&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Nov 2005 09:13:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067852#M93859</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-11-10T09:13:40Z</dc:date>
    </item>
    <item>
      <title>Re: performance issue of this code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067853#M93860</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;U can avoid the selects with in the loop this will reduce ur performance.&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;select * from mara into t_mara for all entries in t_mchb where matnr = t_mchb-matnr and prdha in s_prdha.

Similarly u can change all the select statements and then u can read the itab inside the loop.

loop at t_mchb.
*for product hierarchy
&amp;lt;b&amp;gt;Read t_mara.........&amp;lt;/b&amp;gt;
t_mchb-prdha = mara-prdha.


* for date of goods receipt
Read.....
t_mchb-wdatu = lqua-wdatu.

* for unit price
Read.....&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This will improve ur performance better.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;hope this helps.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Nov 2005 09:21:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067853#M93860</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-11-10T09:21:04Z</dc:date>
    </item>
    <item>
      <title>Re: performance issue of this code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067854#M93861</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Kaki,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; The Following Codes present in the program will cause severe performance degradation. So try to avoid it with the other possible logic.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Issue: 1:&lt;/P&gt;&lt;P&gt;-&lt;/P&gt;&lt;HR originaltext="--------" /&gt;&lt;P&gt;&amp;lt;b&amp;gt;loop at t_mchb.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;*for product hierarchy&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;select single * from mara where matnr = t_mchb-matnr and&lt;/P&gt;&lt;P&gt;prdha in s_prdha.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;t_mchb-prdha = mara-prdha.&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;for date of goods receipt&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;lt;b&amp;gt;select single * from lqua where matnr = t_mchb-matnr and&lt;/P&gt;&lt;P&gt;charg = t_mchb-charg and&lt;/P&gt;&lt;P&gt;wdatu in s_grdate.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;t_mchb-wdatu = lqua-wdatu.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for unit price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;lt;b&amp;gt;select single * from mseg where matnr = t_mchb-matnr and&lt;/P&gt;&lt;P&gt;charg = t_mchb-charg and&lt;/P&gt;&lt;P&gt;werks = t_mchb-werks.&lt;/P&gt;&lt;P&gt;clear zukurs.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;perform get_usd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;.........&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;Remedy: 1:&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt; &amp;lt;b&amp;gt;Build Internal Tables and use it instead of Hitting the Database. &amp;lt;/b&amp;gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So the Code would look like: &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at t_mchb.&lt;/P&gt;&lt;P&gt;*for product hierarchy&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;read table iMara with key&amp;lt;/b&amp;gt;  &lt;/P&gt;&lt;P&gt;matnr = t_mchb-matnr &lt;/P&gt;&lt;P&gt;prdha in s_prdha.&lt;/P&gt;&lt;P&gt;   if sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;     t_mchb-prdha = mara-prdha.&lt;/P&gt;&lt;P&gt;   endif. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;for date of goods receipt&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;lt;b&amp;gt;REad table iLqua with key&amp;lt;/b&amp;gt;  &lt;/P&gt;&lt;P&gt;matnr = t_mchb-matnr &lt;/P&gt;&lt;P&gt; charg = t_mchb-charg &lt;/P&gt;&lt;P&gt; wdatu in s_grdate.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt; If sy-subrc eq 0.&lt;/P&gt;&lt;P&gt;t_mchb-wdatu = lqua-wdatu.&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;for unit price&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&amp;lt;b&amp;gt;read table imseg with key&amp;lt;/b&amp;gt; &lt;/P&gt;&lt;P&gt; matnr = t_mchb-matnr&lt;/P&gt;&lt;P&gt; charg = t_mchb-charg&lt;/P&gt;&lt;P&gt; werks = t_mchb-werks.&lt;/P&gt;&lt;P&gt;clear zukurs.&lt;/P&gt;&lt;P&gt;perform get_usd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;.........&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Kam&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Nov 2005 09:22:57 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067854#M93861</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-11-10T09:22:57Z</dc:date>
    </item>
    <item>
      <title>Re: performance issue of this code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067855#M93862</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Kaki,&lt;/P&gt;&lt;P&gt;   Two immediate observations which would consume much time are, the &lt;/P&gt;&lt;P&gt;"into corresponding fields of" statement and select statements in loop statement.&lt;/P&gt;&lt;P&gt;If the order od the fields selected is the same as the order of the fields declared in the internal table, then you can avoid the into corresponding fields of statement.&lt;/P&gt;&lt;P&gt;To avoid the selects in the loops, you get the mara data into an internal table first and then use read table statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ravi&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Nov 2005 09:24:47 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067855#M93862</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-11-10T09:24:47Z</dc:date>
    </item>
    <item>
      <title>Re: performance issue of this code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067856#M93863</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I suggest you to change this part.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;In this,you are using select single inside the loop at t_mchb.Instead of that you can modify those select statement using for all entries without loop.But this needs more internal tables.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you want to use select inside loop,then change the &lt;/P&gt;&lt;P&gt;select single * from mara&lt;/P&gt;&lt;P&gt;as&lt;/P&gt;&lt;P&gt;select single prdha into t_mchb-prdha from mara...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And update other select single also accordingly.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Kindly reward points if it helps.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Nov 2005 09:29:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067856#M93863</guid>
      <dc:creator>jayanthi_jayaraman</dc:creator>
      <dc:date>2005-11-10T09:29:02Z</dc:date>
    </item>
    <item>
      <title>Re: performance issue of this code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067857#M93864</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;  There are many performance related issues in this code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) Avoid using &amp;lt;b&amp;gt; into corresponding fields &amp;lt;/b&amp;gt;in Select. This reduces most of time of execution.&lt;/P&gt;&lt;P&gt;2) Avoid using &amp;lt;b&amp;gt; Select inside loop &amp;lt;/b&amp;gt;, instead select data outside loop , sort it and use&amp;lt;b&amp;gt; read&amp;lt;/b&amp;gt; inside loop with binary search.&lt;/P&gt;&lt;P&gt;3) While using &amp;lt;b&amp;gt;sort&amp;lt;/b&amp;gt;, avoid saying sort itab. instead specify some fields in which order u want to sort. &amp;lt;b&amp;gt; sort itab by field1 field2.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;4) while using delete adjacent duplicates also, mention the fields which it has to compare.&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt; Delete adjacent duplicates from itab comparing vbeln&amp;lt;/b&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Take care of all these points, then time of execution reduces a lot.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Sailaja.&lt;/P&gt;&lt;P&gt;Dont forget to reward points if answer helps you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Nov 2005 10:03:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067857#M93864</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-11-10T10:03:44Z</dc:date>
    </item>
    <item>
      <title>Re: performance issue of this code</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067858#M93865</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You may perform a Runtime Analysis SE30 for some performance info on your system.&lt;/P&gt;&lt;P&gt;I think the biggest issues are:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) Selecting from table LQUA with CHARG. LQUA does not have an index on CHARG field. Try to see if you can select differently using an available LQUA index, or you may have to create an LQUA with CHARG.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) In the MSEG select, try to include LGORT also, because this gets closer to an availabe index on MSEG table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3) Before the Loop at T_COLL, try to see if filling T_COLL first can be avoided. If not, use the parallel cursor method, like:&lt;/P&gt;&lt;P&gt;LOOP AT T_COLL.&lt;/P&gt;&lt;P&gt;LOOP AT T_MCHB FROM G_TABIX WHERE....&lt;/P&gt;&lt;P&gt;G_TABIX = SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This should help you.&lt;/P&gt;&lt;P&gt;Bhanu&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 10 Nov 2005 12:48:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/performance-issue-of-this-code/m-p/1067858#M93865</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2005-11-10T12:48:11Z</dc:date>
    </item>
  </channel>
</rss>

