<?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: code optimisation in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584313#M263461</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt;
  from  vbap        
    inner join VBAK  on vbap~vbeln = vbak~vbeln
    inner join vapma on vbap~matnr = vapma~vbeln
    INNER JOIN VBEP  ON VBEP~POSNR = VBAP~POSNR AND
               VBEP~VBELN = VBAK~VBELN AND
               VBEP~VBELN = VBAP~VBELN
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a couple of issues with this&lt;/P&gt;&lt;P&gt;1. You are joing a material number to a order number&lt;/P&gt;&lt;P&gt;2. i think the last line is unnecesary&lt;/P&gt;&lt;P&gt;3. i am not of the value of using VAPMA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
  from  vbap        
    inner join VBAK  on vbak~vbeln = vbap~vbeln
    INNER JOIN VBEP  ON 
               VBEP~VBELN = VBAP~VBELN AND
               VBEP~POSNR = VBAP~POSNR.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this seems to work on my system, anyway&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 Sep 2006 19:22:39 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-09-18T19:22:39Z</dc:date>
    <item>
      <title>code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584309#M263457</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Experts&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;look at the below code , these statment is taking long&lt;/P&gt;&lt;P&gt;time to execute, problem is requirement is such that&lt;/P&gt;&lt;P&gt;i cannot go for primary key,can anybudy optimise&lt;/P&gt;&lt;P&gt;my code without losing any valuable data&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT VBAK&lt;SUB&gt;VKORG VBAK&lt;/SUB&gt;VBTYP VBAK&lt;SUB&gt;AUART VBAK&lt;/SUB&gt;VTWEG VBAK~SPART&lt;/P&gt;&lt;P&gt;           VBAK&lt;SUB&gt;KUNNR VBAK&lt;/SUB&gt;KVGR1 VBAK&lt;SUB&gt;KVGR3 VBAP&lt;/SUB&gt;WERKS VBAP~MATNR&lt;/P&gt;&lt;P&gt;           VBAP&lt;SUB&gt;MVGR1 VBAP&lt;/SUB&gt;MVGR2 VBAP&lt;SUB&gt;MVGR3 VBAP&lt;/SUB&gt;MVGR3 VBAP~MVGR4&lt;/P&gt;&lt;P&gt;           VBAP&lt;SUB&gt;MVGR5 VBEP&lt;/SUB&gt;VBELN VBEP&lt;SUB&gt;POSNR VBEP&lt;/SUB&gt;ETENR VBEP~MBDAT&lt;/P&gt;&lt;P&gt;           VBAP&lt;SUB&gt;KDMAT VBEP&lt;/SUB&gt;EDATU&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      INTO CORRESPONDING FIELDS OF&lt;/P&gt;&lt;P&gt;     TABLE INT_OPEN_SCH_LINES&lt;/P&gt;&lt;P&gt;      FROM VBAK&lt;/P&gt;&lt;P&gt;     INNER JOIN VBAP ON VBAK&lt;SUB&gt;VBELN = VBAP&lt;/SUB&gt;VBELN&lt;/P&gt;&lt;P&gt;     INNER JOIN VBEP ON VBEP&lt;SUB&gt;POSNR = VBAP&lt;/SUB&gt;POSNR AND&lt;/P&gt;&lt;P&gt;                        VBEP&lt;SUB&gt;VBELN = VBAK&lt;/SUB&gt;VBELN AND&lt;/P&gt;&lt;P&gt;                        VBEP&lt;SUB&gt;VBELN = VBAP&lt;/SUB&gt;VBELN&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;   WHERE VBAP~WERKS IN S_WERKS AND&lt;/P&gt;&lt;P&gt;           VBAP~MATNR IN S_MATNR AND&lt;/P&gt;&lt;P&gt;           VBAP~MATKL IN S_MATKL AND&lt;/P&gt;&lt;P&gt;           VBAP~ABGRU IN S_ABGRU AND&lt;/P&gt;&lt;P&gt;           VBAK~KUNNR IN S_KUNNR AND&lt;/P&gt;&lt;P&gt;           VBEP~MBDAT = D0       AND&lt;/P&gt;&lt;P&gt;           VBAK~VBTYP IN S_VBTYP AND&lt;/P&gt;&lt;P&gt;           VBAK~AUART IN S_AUART AND&lt;/P&gt;&lt;P&gt;           VBAK~KVGR3 IN S_KVGR3.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Sep 2006 16:33:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584309#M263457</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-09-18T16:33:30Z</dc:date>
    </item>
    <item>
      <title>Re: code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584310#M263458</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;   In se30 transaction you can look for &lt;/P&gt;&lt;P&gt;   Tip&amp;amp;TRicks button on application toolbar&lt;/P&gt;&lt;P&gt;   apart from below conventions&lt;/P&gt;&lt;P&gt;   Follow below steps&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1) Remove corresponding from select satement&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2) Remove * from select&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;3) Select field in sequence as defined in database&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;4) Avoid unnecessary selects&lt;/P&gt;&lt;P&gt;i.e check for internal table not initial&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;5) Use all entries and sort table by key fields&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;6) Remove selects ferom loop and use binary search&lt;/P&gt;&lt;P&gt;7) Try to use secondary index when you don't have &lt;/P&gt;&lt;P&gt;full key.&lt;/P&gt;&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":smiling_face_with_sunglasses:"&gt;😎&lt;/span&gt; Modify internal table use transporting option&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;9) Avoid nested loop . Use read table and loop at itab&lt;/P&gt;&lt;P&gt;from sy-tabix statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;10) free intrenal table memory wnen table is not &lt;/P&gt;&lt;P&gt;required for further processing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;11)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Follow below logic.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM SUB_SELECTION_AUFKTAB.&lt;/P&gt;&lt;P&gt;if not it_plant[] is initial.&lt;/P&gt;&lt;P&gt;it_plant1[] = it_plant[].&lt;/P&gt;&lt;P&gt;sort it_plant1 by werks.&lt;/P&gt;&lt;P&gt;delete adjacent duplicates from it_plant1 comparing werks &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SELECT AUFNR KTEXT USER4 OBJNR INTO CORRESPONDING FIELDS OF TABLE I_AUFKTAB&lt;/P&gt;&lt;P&gt;FROM AUFK&lt;/P&gt;&lt;P&gt;FOR ALL ENTRIES IN it_plant1&lt;/P&gt;&lt;P&gt;WHERE AUFNR IN S_AUFNR AND&lt;/P&gt;&lt;P&gt;KTEXT IN S_KTEXT AND&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WERKS IN S_WERKS AND&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;AUART IN S_AUART AND&lt;/P&gt;&lt;P&gt;USER4 IN S_USER4 AND&lt;/P&gt;&lt;P&gt;werks eq it_plant1-werks.&lt;/P&gt;&lt;P&gt;free it_plant1.&lt;/P&gt;&lt;P&gt;Endif.&lt;/P&gt;&lt;P&gt;ENDFORM. "SUB_SELECTION_AUFKTAB&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  &lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Amole&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;Amole&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Sep 2006 16:37:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584310#M263458</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-09-18T16:37:34Z</dc:date>
    </item>
    <item>
      <title>Re: code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584311#M263459</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Table VAPMA is a secondary index table for sales order items based on material. Try that.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Sep 2006 18:19:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584311#M263459</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-09-18T18:19:08Z</dc:date>
    </item>
    <item>
      <title>Re: code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584312#M263460</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Like this:&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
SELECT  VBAK~VKORG VBAK~VBTYP VBAK~AUART VBAK~VTWEG VBAK~SPART
        VBAK~KUNNR VBAK~KVGR1 VBAK~KVGR3 VBAP~WERKS VBAP~MATNR
        VBAP~MVGR1 VBAP~MVGR2 VBAP~MVGR3 VBAP~MVGR3 VBAP~MVGR4
        VBAP~MVGR5 VBEP~VBELN VBEP~POSNR VBEP~ETENR VBEP~MBDAT
        VBAP~KDMAT VBEP~EDATU

  INTO CORRESPONDING FIELDS OF
        TABLE INT_OPEN_SCH_LINES
        
  FROM  vapma
    INNER JOIN vbap  ON vapma~vbeln = vbap~vbeln AND
                        vapma~posnr = vbap~posnr
    INNER JOIN vbak  ON vbap~vbeln  = vbak~vbeln
    INNER JOIN vbep  ON vbep~posnr  = vbap~posnr AND
                        vbep~vbeln = vbak~vbeln AND
                        vbep~vbeln = vbap~vbeln


  WHERE vapma~matnr IN s_matnr AND
        vbap~werks IN s_werks AND
        VBAP~MATKL IN S_MATKL AND
        VBAP~ABGRU IN S_ABGRU AND
        VBAK~KUNNR IN S_KUNNR AND
        VBEP~MBDAT = D0 AND
        VBAK~VBTYP IN S_VBTYP AND
        VBAK~AUART IN S_AUART AND
        VBAK~KVGR3 IN S_KVGR3.&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Rob Burbank&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The WHERE claus was still incorrect. I changed it to select using MATNR from VAPMA (which was the whole point to start with).&lt;/P&gt;&lt;P&gt;Message was edited by: Rob Burbank&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The JOINs still had problems. I've re-written them and actually tested it this time. It seems to work and runs reasonably quickly.&lt;/P&gt;&lt;P&gt;Message was edited by: Rob Burbank&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Sep 2006 18:32:59 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584312#M263460</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-09-18T18:32:59Z</dc:date>
    </item>
    <item>
      <title>Re: code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584313#M263461</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE&gt;&lt;CODE&gt;
  from  vbap        
    inner join VBAK  on vbap~vbeln = vbak~vbeln
    inner join vapma on vbap~matnr = vapma~vbeln
    INNER JOIN VBEP  ON VBEP~POSNR = VBAP~POSNR AND
               VBEP~VBELN = VBAK~VBELN AND
               VBEP~VBELN = VBAP~VBELN
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have a couple of issues with this&lt;/P&gt;&lt;P&gt;1. You are joing a material number to a order number&lt;/P&gt;&lt;P&gt;2. i think the last line is unnecesary&lt;/P&gt;&lt;P&gt;3. i am not of the value of using VAPMA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
  from  vbap        
    inner join VBAK  on vbak~vbeln = vbap~vbeln
    INNER JOIN VBEP  ON 
               VBEP~VBELN = VBAP~VBELN AND
               VBEP~POSNR = VBAP~POSNR.
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;this seems to work on my system, anyway&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Sep 2006 19:22:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584313#M263461</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-09-18T19:22:39Z</dc:date>
    </item>
    <item>
      <title>Re: code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584314#M263462</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You're right on the first two. I've changed the code. (This is what happens when you don't test.) But what's the problem with VAPMA?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Sep 2006 19:30:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584314#M263462</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-09-18T19:30:19Z</dc:date>
    </item>
    <item>
      <title>Re: code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584315#M263463</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;i just dont see why you need it...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Sep 2006 19:31:29 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584315#M263463</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-09-18T19:31:29Z</dc:date>
    </item>
    <item>
      <title>Re: code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584316#M263464</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Because the original select isn't using any key fields in the WHERE clause. Adding VAPMA allows the use of its index on MATNR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Perhaps the original poster would try it and let us know if it helps or not.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Sep 2006 19:39:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584316#M263464</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-09-18T19:39:31Z</dc:date>
    </item>
    <item>
      <title>Re: code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584317#M263465</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;And of course, check that S_MATNR is not empty.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Sep 2006 19:44:01 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584317#M263465</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-09-18T19:44:01Z</dc:date>
    </item>
    <item>
      <title>Re: code optimisation</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584318#M263466</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;OK - I tried it. The modified code runs over 4000 times more quickly for a single material and about 9 times more quickly for a range of 100 materials. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;They are about even at 1000 materials. (Index uusage becomes less important when selecting large volumes of data.)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Rob Burbank&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Sep 2006 21:54:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-optimisation/m-p/1584318#M263466</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-09-18T21:54:13Z</dc:date>
    </item>
  </channel>
</rss>

