<?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: experts try to modify the code . in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532340#M574335</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Mohammed for ur reply. I want to improve the performance only , so i want to reduce the database access. For this sake i want to change the select statements ie removing selects inside loops etc.  Thanks a lot for your reply&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 23 Jul 2007 11:23:11 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-07-23T11:23:11Z</dc:date>
    <item>
      <title>experts try to modify the code .</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532336#M574331</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;experts try to modify the code  to increase performance. It is very difficult to alter this code ie removing select inside the loop etc. I hope someone is there to prove that they r expert&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;tables: zmtp, mkpf, mseg, mast, lfa1. &amp;#147;ztemp has lifnr, matnr,kbetr&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: begin of sk_data occurs 0,&lt;/P&gt;&lt;P&gt;matnr like mseg-matnr, "1&lt;/P&gt;&lt;P&gt;idnrk like stpo-idnrk, "2&lt;/P&gt;&lt;P&gt;kbetr like zmtp-kbetr, "3&lt;/P&gt;&lt;P&gt;menge like mseg-menge, "4&lt;/P&gt;&lt;P&gt;compu like mseg-menge, "5&lt;/P&gt;&lt;P&gt;alqty like mseg-menge, "6&lt;/P&gt;&lt;P&gt;scqty like mseg-menge, "7&lt;/P&gt;&lt;P&gt;chqty like mseg-menge, "8&lt;/P&gt;&lt;P&gt;lifnr like lfa1-lifnr, "9&lt;/P&gt;&lt;P&gt;bomus like mseg-menge, "bom usage&lt;/P&gt;&lt;P&gt;rsq like mseg-menge, "real scrap qty&lt;/P&gt;&lt;P&gt;end of sk_data.&lt;/P&gt;&lt;P&gt;data: t_data like table of sk_data with header line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;parameters: p_werks like t001w-werks obligatory memory id wer,&lt;/P&gt;&lt;P&gt;p_lifnr like lfa1-lifnr obligatory memory id lif.&lt;/P&gt;&lt;P&gt;select-options: s_budat for mkpf-budat.&lt;/P&gt;&lt;P&gt;&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 display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;top-of-page.&lt;/P&gt;&lt;P&gt;perform top.&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;form get_data .&lt;/P&gt;&lt;P&gt;data: lt_stb like stpox occurs 0 with header line.&lt;/P&gt;&lt;P&gt;data: begin of lt_we occurs 0,&lt;/P&gt;&lt;P&gt;mblnr like mkpf-mblnr,&lt;/P&gt;&lt;P&gt;end of lt_we.&lt;/P&gt;&lt;P&gt;data: lt_wo like table of lt_we with header line.&lt;/P&gt;&lt;P&gt;data: lt_wa like table of lt_we with header line.&lt;/P&gt;&lt;P&gt;data: lt_121 like table of lt_we with header line.&lt;/P&gt;&lt;P&gt;data: begin of lt_menge occurs 0,&lt;/P&gt;&lt;P&gt;mblnr like mseg-mblnr,&lt;/P&gt;&lt;P&gt;matnr like mseg-matnr,&lt;/P&gt;&lt;P&gt;bwart like mseg-bwart,&lt;/P&gt;&lt;P&gt;menge like mseg-menge,&lt;/P&gt;&lt;P&gt;end of lt_menge.&lt;/P&gt;&lt;P&gt;select mblnr into table lt_we&lt;/P&gt;&lt;P&gt;from mkpf&lt;/P&gt;&lt;P&gt;where budat in s_budat&lt;/P&gt;&lt;P&gt;and vgart = 'WE'.&lt;/P&gt;&lt;P&gt;select mblnr into table lt_wo&lt;/P&gt;&lt;P&gt;from mkpf&lt;/P&gt;&lt;P&gt;where budat in s_budat&lt;/P&gt;&lt;P&gt;and vgart = 'WO'.&lt;/P&gt;&lt;P&gt;select lifnr matnr kbetr&lt;/P&gt;&lt;P&gt;into corresponding fields of table t_data&lt;/P&gt;&lt;P&gt;from zmtp&lt;/P&gt;&lt;P&gt;where lifnr = p_lifnr.&lt;/P&gt;&lt;P&gt;select single * from lfa1&lt;/P&gt;&lt;P&gt;where lifnr = p_lifnr.&lt;/P&gt;&lt;P&gt;loop at t_data&lt;/P&gt;&lt;P&gt;if not lt_we[] is initial.&lt;/P&gt;&lt;P&gt;select mblnr matnr bwart menge into table lt_menge&lt;/P&gt;&lt;P&gt;from mseg&lt;/P&gt;&lt;P&gt;for all entries in lt_we&lt;/P&gt;&lt;P&gt;where mblnr = lt_we-mblnr&lt;/P&gt;&lt;P&gt;and matnr = t_data-matnr&lt;/P&gt;&lt;P&gt;and werks = p_werks&lt;/P&gt;&lt;P&gt;and bwart in ('101', '102').&lt;/P&gt;&lt;P&gt;loop at lt_menge.&lt;/P&gt;&lt;P&gt;if lt_menge-bwart = '102'.&lt;/P&gt;&lt;P&gt;lt_menge-menge = - lt_menge-menge.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;t_data-menge =t_data-menge + lt_menge-menge.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;modify t_data.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;if not lt_wo[] is initial.&lt;/P&gt;&lt;P&gt;select mblnr into table lt_121&lt;/P&gt;&lt;P&gt;from mseg&lt;/P&gt;&lt;P&gt;for all entries in lt_wo&lt;/P&gt;&lt;P&gt;where mblnr = lt_wo-mblnr&lt;/P&gt;&lt;P&gt;and matnr = t_data-matnr&lt;/P&gt;&lt;P&gt;and werks = p_werks&lt;/P&gt;&lt;P&gt;and bwart = '121'.&lt;/P&gt;&lt;P&gt;if not lt_121[] is initial.&lt;/P&gt;&lt;P&gt;select mblnr matnr bwart menge into table lt_menge&lt;/P&gt;&lt;P&gt;from mseg&lt;/P&gt;&lt;P&gt;for all entries in lt_121&lt;/P&gt;&lt;P&gt;where mblnr = lt_121-mblnr&lt;/P&gt;&lt;P&gt;and bwart in ('543', '544').&lt;/P&gt;&lt;P&gt;loop at lt_menge.&lt;/P&gt;&lt;P&gt;if lt_menge-bwart = '544'.&lt;/P&gt;&lt;P&gt;lt_menge-menge = - lt_menge-menge.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;t_data-rsq = t_data-rsq + lt_menge-menge.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;modify t_data.&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;loop at t_data.&lt;/P&gt;&lt;P&gt;select single stlnr into mast-stlnr&lt;/P&gt;&lt;P&gt;from mast&lt;/P&gt;&lt;P&gt;where matnr = t_data-matnr&lt;/P&gt;&lt;P&gt;and stlan = '1'&lt;/P&gt;&lt;P&gt;and werks = p_werks.&lt;/P&gt;&lt;P&gt;if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;select single stlal into stko-stlal&lt;/P&gt;&lt;P&gt;from stko&lt;/P&gt;&lt;P&gt;where stlnr = mast-stlnr&lt;/P&gt;&lt;P&gt;and stlty = 'M'&lt;/P&gt;&lt;P&gt;and stlst &amp;lt;&amp;gt; '02'&lt;/P&gt;&lt;P&gt;and datuv &amp;lt;= sy-datum.&lt;/P&gt;&lt;P&gt;call function 'CS_BOM_EXPL_MAT_V2'&lt;/P&gt;&lt;P&gt;exporting&lt;/P&gt;&lt;P&gt;capid = 'PP01'&lt;/P&gt;&lt;P&gt;datuv = sy-datum&lt;/P&gt;&lt;P&gt;mtnrv = t_data-matnr&lt;/P&gt;&lt;P&gt;stlal = stko-stlal&lt;/P&gt;&lt;P&gt;stlan = '1'&lt;/P&gt;&lt;P&gt;werks = p_werks&lt;/P&gt;&lt;P&gt;tables&lt;/P&gt;&lt;P&gt;stb = lt_stb&lt;/P&gt;&lt;P&gt;exceptions&lt;/P&gt;&lt;P&gt;alt_not_found = 1&lt;/P&gt;&lt;P&gt;call_invalid = 2&lt;/P&gt;&lt;P&gt;material_not_found = 3&lt;/P&gt;&lt;P&gt;missing_authorization = 4&lt;/P&gt;&lt;P&gt;no_bom_found = 5&lt;/P&gt;&lt;P&gt;no_plant_data = 6&lt;/P&gt;&lt;P&gt;no_suitable_bom_found = 7&lt;/P&gt;&lt;P&gt;conversion_error = 8&lt;/P&gt;&lt;P&gt;others = 9.&lt;/P&gt;&lt;P&gt;loop at lt_stb.&lt;/P&gt;&lt;P&gt;if lt_stb-menge &amp;gt; 0.&lt;/P&gt;&lt;P&gt;sk_data = t_data.&lt;/P&gt;&lt;P&gt;sk_data-idnrk = lt_stb-idnrk.&lt;/P&gt;&lt;P&gt;sk_data-bomus = lt_stb-menge.&lt;/P&gt;&lt;P&gt;sk_data-compu = sk_data-menge * sk_data-bomus. &lt;/P&gt;&lt;P&gt;sk_data-alqty = sk_data-compu * sk_data-kbetr / 100. "&lt;/P&gt;&lt;P&gt;if not lt_wa[] is initial.&lt;/P&gt;&lt;P&gt;select mblnr matnr bwart menge into table lt_menge&lt;/P&gt;&lt;P&gt;from mseg&lt;/P&gt;&lt;P&gt;for all entries in lt_wa&lt;/P&gt;&lt;P&gt;where mblnr = lt_wa-mblnr&lt;/P&gt;&lt;P&gt;and matnr = sk_data-idnrk&lt;/P&gt;&lt;P&gt;and werks = p_werks&lt;/P&gt;&lt;P&gt;and bwart in ('551', '552').&lt;/P&gt;&lt;P&gt;loop at lt_menge.&lt;/P&gt;&lt;P&gt;if lt_menge-bwart = '552'.&lt;/P&gt;&lt;P&gt;lt_menge-menge = - lt_menge-menge.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;sk_data-rsq = sk_data-rsq + lt_menge-menge.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;endif.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;sk_data-scqty = sk_data-rsq.&lt;/P&gt;&lt;P&gt;sk_data-chqty =sk_data-scqty - sk_data-alqty.&lt;/P&gt;&lt;P&gt;append sk_data.&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;else.&lt;/P&gt;&lt;P&gt;sk_data = t_data.&lt;/P&gt;&lt;P&gt;append sk_data.&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;sort sk_data by matnr idnrk.&lt;/P&gt;&lt;P&gt;endform. " get_data&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2007 08:30:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532336#M574331</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-23T08:30:35Z</dc:date>
    </item>
    <item>
      <title>Re: experts try to modify the code .</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532337#M574332</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;well without making use of the code-button your code gets kinda unreadable, so i stopped after a while.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;BUT until that i already found at least one small room of improvement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;you are doing 2 selects on MKPF right after one another.&lt;/P&gt;&lt;P&gt;why dont you just do ONE select on you MKPF with a double where clause?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;like &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
SELECT mblnr into table lt_wo
from mkpf
where budat in s_budat
and vgart = 'WO'
or   vgart = 'WE'.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;just make sure when you want to loop over your old lt_wo, dont forget to do it like following:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;LOOP at lt_wo where vgart = 'WO'.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2007 08:41:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532337#M574332</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-23T08:41:08Z</dc:date>
    </item>
    <item>
      <title>Re: experts try to modify the code .</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532338#M574333</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;select mblnr vgart appending table lt_we from mkpf&lt;/P&gt;&lt;P&gt;client specified&lt;/P&gt;&lt;P&gt;where mandt = sy-mandt and budat in s_budat&lt;/P&gt;&lt;P&gt;and ( vgart = 'WO' or vgart = 'WE' )&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select lifnr matnr kbetr&lt;/P&gt;&lt;P&gt;into corresponding fields of table t_data&lt;/P&gt;&lt;P&gt;from zmtp&lt;/P&gt;&lt;P&gt;where lifnr = p_lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select single * from lfa1&lt;/P&gt;&lt;P&gt;where lifnr = p_lifnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at t_data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select mblnr matnr bwart menge into table lt_menge&lt;/P&gt;&lt;P&gt;from mseg &lt;/P&gt;&lt;P&gt;for all entries in lt_we&lt;/P&gt;&lt;P&gt;where mblnr = lt_we-mblnr&lt;/P&gt;&lt;P&gt;and matnr = t_data-matnr&lt;/P&gt;&lt;P&gt;and werks = p_werks&lt;/P&gt;&lt;P&gt;and bwart in ('101', '102')&lt;/P&gt;&lt;P&gt;and lt_we-vgart =' we'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at lt_menge where bwart = '102'.&lt;/P&gt;&lt;P&gt; lt_menge-menge =  lt_menge-menge * -1.&lt;/P&gt;&lt;P&gt;t_data-menge = t_data-menge + lt_menge-menge.&lt;/P&gt;&lt;P&gt;endloop.&lt;/P&gt;&lt;P&gt;modify t_data transporting menge.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;select mblnr into table lt_121&lt;/P&gt;&lt;P&gt;from mseg&lt;/P&gt;&lt;P&gt;for all entries in lt_we&lt;/P&gt;&lt;P&gt;where mblnr = lt_we-mblnr&lt;/P&gt;&lt;P&gt;and matnr = t_data-matnr&lt;/P&gt;&lt;P&gt;and werks = p_werks&lt;/P&gt;&lt;P&gt;and bwart = '121'&lt;/P&gt;&lt;P&gt;and lt_we-vgart = 'WO'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i,m stopping here&lt;/P&gt;&lt;P&gt;Its very hard to grasp u r code...plz tell u r requirement so that it will be easy to get u r code....specify the process logic&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2007 09:30:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532338#M574333</guid>
      <dc:creator>kesavadas_thekkillath</dc:creator>
      <dc:date>2007-07-23T09:30:06Z</dc:date>
    </item>
    <item>
      <title>Re: experts try to modify the code .</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532339#M574334</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Select statements in your code can be taken out of LOOPs. see the code below... I took out the select statements and inserted LOOPs for that... &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did these changes only for &lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;IF NOT lt_we[] IS INITIAL&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt; for rest of the code you can put same logic&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;

TABLES: zmtp, mkpf, mseg, mast, lfa1.

DATA: BEGIN OF sk_data OCCURS 0,
            matnr LIKE mseg-matnr, "1
            idnrk LIKE stpo-idnrk, "2
            kbetr LIKE zmtp-kbetr, "3
            menge LIKE mseg-menge, "4
            compu LIKE mseg-menge, "5
            alqty LIKE mseg-menge, "6
            scqty LIKE mseg-menge, "7
            chqty LIKE mseg-menge, "8
            lifnr LIKE lfa1-lifnr, "9
            bomus LIKE mseg-menge, "bom usage
            rsq LIKE mseg-menge, "real scrap qty
      END OF sk_data.

DATA: t_data LIKE TABLE OF sk_data WITH HEADER LINE.

PARAMETERS: p_werks LIKE t001w-werks OBLIGATORY MEMORY ID wer,
            p_lifnr LIKE lfa1-lifnr  OBLIGATORY MEMORY ID lif.

SELECT-OPTIONS: s_budat FOR mkpf-budat.

START-OF-SELECTION.
  PERFORM get_data.
  PERFORM display.

TOP-OF-PAGE.
  PERFORM top.

*---------------------------------------------------------------------*
*       FORM get_data                                                 *
*---------------------------------------------------------------------*
*       ........                                                      *
*---------------------------------------------------------------------*
FORM get_data .
  DATA: lt_stb LIKE stpox OCCURS 0 WITH HEADER LINE.
  DATA: BEGIN OF lt_we OCCURS 0,
          mblnr LIKE mkpf-mblnr,
          vgart LIKE mkpf-vgart,
        END OF lt_we.
  DATA: lt_wo  LIKE TABLE OF lt_we WITH HEADER LINE ,
        lt_wa  LIKE TABLE OF lt_we WITH HEADER LINE ,
        lt_121 LIKE TABLE OF lt_we WITH HEADER LINE .

  DATA: BEGIN OF lt_menge OCCURS 0,
          mblnr LIKE mseg-mblnr,
          matnr LIKE mseg-matnr,
          bwart LIKE mseg-bwart,
          menge LIKE mseg-menge,
        END OF lt_menge.

  RANGES : r_matnr FOR mara-matnr .

  SELECT mblnr
         vgart
    INTO TABLE lt_we
    FROM mkpf
   WHERE budat IN s_budat
     AND ( vgart = 'WE' OR vgart = 'WO' ).

*  SELECT mblnr
*    INTO TABLE lt_wo
*    FROM mkpf
*   WHERE budat IN s_budat
*     AND vgart = 'WO'.


  SELECT lifnr
         matnr
         kbetr
    INTO CORRESPONDING FIELDS OF TABLE t_data
    FROM zmtp
   WHERE lifnr = p_lifnr.

  LOOP AT t_data .
    r_matnr-sign   = 'I' .
    r_matnr-option = 'EQ' .
    r_matnr-low    = t_data-matnr .
    APPEND r_matnr .
  ENDLOOP.

  SELECT SINGLE *
    FROM lfa1
   WHERE lifnr = p_lifnr.

  SELECT mblnr
         matnr
         bwart
         menge
    INTO TABLE lt_menge
    FROM mseg
     FOR ALL ENTRIES IN lt_we
   WHERE mblnr = lt_we-mblnr
     AND matnr IN r_matnr
     AND werks = p_werks
     AND bwart IN ('101', '102', '121').


  LOOP AT t_data .

    LOOP AT lt_we WHERE matnr = t_data-matnr
                    AND vgart = 'WE' .
*   IF NOT lt_we[] IS INITIAL.

*     SELECT mblnr
*            matnr
*            bwart
*            menge
*       INTO TABLE lt_menge
*       FROM mseg
*        FOR ALL ENTRIES IN lt_we
*      WHERE mblnr = lt_we-mblnr
*        AND matnr = t_data-matnr
*        AND werks = p_werks
*        AND bwart IN ('101', '102').

      LOOP AT l_menge WHERE mblnr = lt_we-mblnr
                            T_DATA-MATNR
                            werks = p_werks  .

*       LOOP AT lt_menge.
        IF lt_menge-bwart = '102'.
          lt_menge-menge = - lt_menge-menge.
        ENDIF.
        t_data-menge =t_data-menge + lt_menge-menge.
      ENDLOOP.

      MODIFY t_data.

    ENDLOOP .
*   ENDIF. "IF NOT lt_we[] IS INITIAL.

    IF NOT lt_wo[] IS INITIAL.

      SELECT mblnr
        INTO TABLE lt_121
        FROM mseg
         FOR ALL ENTRIES IN lt_wo
       WHERE mblnr = lt_wo-mblnr
         AND matnr = t_data-matnr
         AND werks = p_werks
         AND bwart = '121'.

      IF NOT lt_121[] IS INITIAL.
        SELECT mblnr
               matnr
               bwart
               menge
          INTO TABLE lt_menge
          FROM mseg
           FOR ALL ENTRIES IN lt_121
         WHERE mblnr = lt_121-mblnr
           AND bwart IN ('543', '544').


        LOOP AT lt_menge.
          IF lt_menge-bwart = '544'.
            lt_menge-menge = - lt_menge-menge.
          ENDIF.

          t_data-rsq = t_data-rsq + lt_menge-menge.

        ENDLOOP.

        MODIFY t_data.
      ENDIF. "IF NOT lt_121[] IS INITIAL
    ENDIF. "IF NOT lt_wo[] IS INITIAL
  ENDLOOP.

  LOOP AT t_data.

    SELECT SINGLE stlnr
      INTO mast-stlnr
      FROM mast
     WHERE matnr = t_data-matnr
       AND stlan = '1'
       AND werks = p_werks.

    IF sy-subrc = 0.

      SELECT SINGLE stlal
        INTO stko-stlal
        FROM stko
       WHERE stlnr = mast-stlnr
         AND stlty = 'M'
         AND stlst &amp;lt;&amp;gt; '02'
         AND datuv &amp;lt;= sy-datum.

      CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
           EXPORTING
                capid                 = 'PP01'
                datuv                 = sy-datum
                mtnrv                 = t_data-matnr
                stlal                 = stko-stlal
                stlan                 = '1'
                werks                 = p_werks
           TABLES
                stb                   = lt_stb
           EXCEPTIONS
                alt_not_found         = 1
                call_invalid          = 2
                material_not_found    = 3
                missing_authorization = 4
                no_bom_found          = 5
                no_plant_data         = 6
                no_suitable_bom_found = 7
                conversion_error      = 8
                OTHERS                = 9.

      LOOP AT lt_stb.
        IF lt_stb-menge &amp;gt; 0.
          sk_data = t_data.
          sk_data-idnrk = lt_stb-idnrk.
          sk_data-bomus = lt_stb-menge.
          sk_data-compu = sk_data-menge * sk_data-bomus.
          sk_data-alqty = sk_data-compu * sk_data-kbetr / 100. "
          IF NOT lt_wa[] IS INITIAL.
            SELECT mblnr matnr bwart menge INTO TABLE lt_menge
            FROM mseg
            FOR ALL ENTRIES IN lt_wa
            WHERE mblnr = lt_wa-mblnr
            AND matnr = sk_data-idnrk
            AND werks = p_werks
            AND bwart IN ('551', '552').
            LOOP AT lt_menge.
              IF lt_menge-bwart = '552'.
                lt_menge-menge = - lt_menge-menge.
              ENDIF.
              sk_data-rsq = sk_data-rsq + lt_menge-menge.
            ENDLOOP.
          ENDIF.

          sk_data-scqty = sk_data-rsq.
          sk_data-chqty =sk_data-scqty - sk_data-alqty.
          APPEND sk_data.

        ENDIF.
      ENDLOOP.
    ELSE.
      sk_data = t_data.
      APPEND sk_data.
    ENDIF.
  ENDLOOP.

  SORT sk_data BY matnr idnrk.
ENDFORM. " get_data
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2007 09:37:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532339#M574334</guid>
      <dc:creator>Pawan_Kesari</dc:creator>
      <dc:date>2007-07-23T09:37:41Z</dc:date>
    </item>
    <item>
      <title>Re: experts try to modify the code .</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532340#M574335</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks Mohammed for ur reply. I want to improve the performance only , so i want to reduce the database access. For this sake i want to change the select statements ie removing selects inside loops etc.  Thanks a lot for your reply&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2007 11:23:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532340#M574335</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-23T11:23:11Z</dc:date>
    </item>
    <item>
      <title>Re: experts try to modify the code .</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532341#M574336</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;if it helped plz provide some points....&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2007 11:34:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532341#M574336</guid>
      <dc:creator>kesavadas_thekkillath</dc:creator>
      <dc:date>2007-07-23T11:34:30Z</dc:date>
    </item>
    <item>
      <title>Re: experts try to modify the code .</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532342#M574337</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for ur time  Pawan.some of the statements in the code are throughing errors please correct them. Also please tell me the use of ranges.The errors are comming at..&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT t_data .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    LOOP AT lt_we WHERE matnr = t_data-matnr  :" we dont have field matnr&lt;/P&gt;&lt;P&gt;                    AND vgart = 'WE' .&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IF NOT lt_we[] IS INITIAL.&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;    SELECT mblnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           bwart&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           menge&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      INTO TABLE lt_menge&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FROM mseg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       FOR ALL ENTRIES IN lt_we&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WHERE mblnr = lt_we-mblnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       AND matnr = t_data-matnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       AND werks = p_werks&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       AND bwart IN ('101', '102').&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;      LOOP AT l_menge WHERE mblnr = lt_we-mblnr&lt;/P&gt;&lt;P&gt;                            T_DATA-MATNR&lt;/P&gt;&lt;P&gt;                            werks = p_werks  .  "werks is not there&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;pls correct the code..where we have to end the loop .&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 23 Jul 2007 19:32:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/experts-try-to-modify-the-code/m-p/2532342#M574337</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-07-23T19:32:32Z</dc:date>
    </item>
  </channel>
</rss>

