<?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: Need help on optimizing code... in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157793#M456090</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;Try using these FM's and let us know if it works for you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FM to read from VBFA table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SD_VBFA_ARRAY_READ_VBELV&lt;/P&gt;&lt;P&gt;SD_VBFA_READ_WITH_VBELV&lt;/P&gt;&lt;P&gt;SD_VBFA_SELECT&lt;/P&gt;&lt;P&gt;SD_VBFA_SINGLE_READ&lt;/P&gt;&lt;P&gt;SD_VBFA_TRANSFER_TO_BUFFER&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Varun.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 25 Apr 2007 06:18:41 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-04-25T06:18:41Z</dc:date>
    <item>
      <title>Need help on optimizing code...</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157787#M456084</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Experts, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We are having a hard time optimizaing a certain report wherein it gives&lt;/P&gt;&lt;P&gt;us time limit error in our prod server. The part of the report where it &lt;/P&gt;&lt;P&gt;really slows down is when it gets records from tables VBAK and VBAP using&lt;/P&gt;&lt;P&gt;inner join then looping it and inside the loop it gets a single record&lt;/P&gt;&lt;P&gt;from table VBFA where VBELV = VBELN of the current loop. the internal table &lt;/P&gt;&lt;P&gt;that holds the records from VBAK and VBAP(lt_vbap) holds almost a million records&lt;/P&gt;&lt;P&gt;and going through VBFA table every loop is very time consuming since it is also&lt;/P&gt;&lt;P&gt;a very big table. What I did before is to remove the select single from vbfa statement&lt;/P&gt;&lt;P&gt;inside the loop and used FOR ALL ENTRIES statement instead but instead of time limit error, &lt;/P&gt;&lt;P&gt;it gives lack of memory error. Now, I don't know what else to do so I really need help here. &lt;/P&gt;&lt;P&gt;Anyway, below is the code:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
LOOP AT lt_vbap ASSIGNING &amp;lt;wa_vbap&amp;gt;.
    IF &amp;lt;wa_vbap&amp;gt;-auart EQ 'ZUCI' OR
       &amp;lt;wa_vbap&amp;gt;-auart EQ 'ZURV' OR
       &amp;lt;wa_vbap&amp;gt;-auart EQ 'ZUPR'.
*   Check ifa delivery document has been created
      CLEAR wa_vbill.
      SELECT SINGLE vbeln
        FROM vbfa
        INTO wa_vbill
       WHERE vbelv = &amp;lt;wa_vbap&amp;gt;-vbeln
         AND ( ( vbtyp_n EQ 'J' AND vbtyp_v = 'C' )  "Delivery/Order
          OR ( vbtyp_n EQ 'T' AND vbtyp_v = 'H' ) ). "Returns delivery for order/Returns

      IF sy-subrc &amp;lt;&amp;gt; 0.
        &amp;lt;wa_vbap&amp;gt;-del_ind = 'X'.
        CONTINUE.
      ELSE.
*       Check if within selection parameters
        CLEAR wa_likp.
        READ TABLE lt_likp INTO wa_likp WITH KEY vbeln = wa_vbill.
        IF sy-subrc &amp;lt;&amp;gt; 0.
          SELECT SINGLE * FROM likp INTO wa_likp WHERE vbeln = wa_vbill.
          APPEND wa_likp TO lt_likp.
        ENDIF.

        IF NOT wa_likp-wadat_ist IN s_erdat. "Actual goods movement date
          &amp;lt;wa_vbap&amp;gt;-del_ind = 'X'.
          CONTINUE.
        ENDIF.
      ENDIF.
    ELSE.
*   Check if this has already been billed
      CLEAR wa_vbill.
      SELECT SINGLE vbeln
        FROM vbfa
        INTO wa_vbill
       WHERE vbelv = &amp;lt;wa_vbap&amp;gt;-vbeln
         AND ( ( vbtyp_n EQ 'M' AND vbtyp_v = 'C' )   "Invoice/Order
          OR ( vbtyp_n EQ 'O' AND vbtyp_v = 'H' ) ).  "Credit memo/Returns

      IF sy-subrc &amp;lt;&amp;gt; 0.
        &amp;lt;wa_vbap&amp;gt;-del_ind = 'X'.
        CONTINUE.
      ELSE.
*       Check if within selection parameters
        CLEAR wa_vbrk.
        READ TABLE lt_vbrk INTO wa_vbrk WITH KEY vbeln = wa_vbill.
        IF sy-subrc &amp;lt;&amp;gt; 0.
          SELECT SINGLE vbeln fkdat
          FROM vbrk
          INTO wa_vbrk
          WHERE vbeln = wa_vbill.
          APPEND wa_vbrk TO lt_vbrk.
        ENDIF.

        IF NOT wa_vbrk-fkdat IN s_erdat.
          &amp;lt;wa_vbap&amp;gt;-del_ind = 'X'.
          CONTINUE.
        ENDIF.
      ENDIF.
    ENDIF.
  ..............
     ....................
&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Apr 2007 05:27:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157787#M456084</guid>
      <dc:creator>aris_hidalgo</dc:creator>
      <dc:date>2007-04-25T05:27:35Z</dc:date>
    </item>
    <item>
      <title>Re: Need help on optimizing code...</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157788#M456085</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;dont use select stmt in b/w loop-endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;b&amp;gt;before doing any changes in this report , first get the DB cost of each and every table from ST05.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;2.Find out no.of DB accesses.&lt;/P&gt;&lt;P&gt;3.No. of Duplicate records.&amp;lt;/b&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: &lt;/P&gt;&lt;P&gt;        Prabhu Peram&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Apr 2007 05:34:52 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157788#M456085</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-25T05:34:52Z</dc:date>
    </item>
    <item>
      <title>Re: Need help on optimizing code...</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157789#M456086</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi&lt;/P&gt;&lt;P&gt;Write the Select statements for both VBFA and VBRK outside of the loop using for all entries of VBAK and VBAP records into internal tables and read those internal tables in this loop...endloop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;reward if useful&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;ANJI&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Apr 2007 05:51:02 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157789#M456086</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-25T05:51:02Z</dc:date>
    </item>
    <item>
      <title>Re: Need help on optimizing code...</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157790#M456087</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you guys for your replies. I tried using FOR ALL ENTRIES statement but it gives us lack of memory space in prod server. Any suggestions? Thanks!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Apr 2007 05:58:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157790#M456087</guid>
      <dc:creator>aris_hidalgo</dc:creator>
      <dc:date>2007-04-25T05:58:19Z</dc:date>
    </item>
    <item>
      <title>Re: Need help on optimizing code...</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157791#M456088</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;dont use select within the loop. for every record in the loop, it checks the where condition from the entire vbfa table which inturn affects performance. instead select into the internal tables before entering the loop and then use the read statement.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Apr 2007 06:02:40 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157791#M456088</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-25T06:02:40Z</dc:date>
    </item>
    <item>
      <title>Re: Need help on optimizing code...</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157792#M456089</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Viraylab,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Special care should be taken while using the VBFA table . It is&lt;/P&gt;&lt;P&gt;better to query the VBFA table using Function Modules .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please check in VBFA for FMs Read*VBFA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I think we have got a FM read_vbfa*vbeln&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Apr 2007 06:02:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157792#M456089</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-25T06:02:44Z</dc:date>
    </item>
    <item>
      <title>Re: Need help on optimizing code...</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157793#M456090</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;Try using these FM's and let us know if it works for you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FM to read from VBFA table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SD_VBFA_ARRAY_READ_VBELV&lt;/P&gt;&lt;P&gt;SD_VBFA_READ_WITH_VBELV&lt;/P&gt;&lt;P&gt;SD_VBFA_SELECT&lt;/P&gt;&lt;P&gt;SD_VBFA_SINGLE_READ&lt;/P&gt;&lt;P&gt;SD_VBFA_TRANSFER_TO_BUFFER&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks and Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Varun.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 25 Apr 2007 06:18:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/need-help-on-optimizing-code/m-p/2157793#M456090</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-04-25T06:18:41Z</dc:date>
    </item>
  </channel>
</rss>

