<?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: how to avoid the nested loops here in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-the-nested-loops-here/m-p/3473944#M835038</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;First of all, there are many thinks to do here.. &lt;/P&gt;&lt;P&gt;"Sort" statament must to be outside the "LOOP".&lt;/P&gt;&lt;P&gt;Take out the all of them and put "While" in insted of.&lt;/P&gt;&lt;P&gt;"WHILE" is faster than "LOOP" statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;e.g., in this case you have a basic loop, you can set the "FROM index" to help the performance.&lt;/P&gt;&lt;P&gt;LOOP AT it_marc&lt;/P&gt;&lt;P&gt;INTO wa_marc&lt;/P&gt;&lt;P&gt;WHERE matnr = wa_iseg-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But, the better idea is if you change insides LOOPs for WHILE.&lt;/P&gt;&lt;P&gt;sort it_marc by matnr &amp;gt; Outside the main LOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Main loop&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT it_iseg&lt;/P&gt;&lt;P&gt;INTO wa_iseg&lt;/P&gt;&lt;P&gt;WHERE iblnr = wa_ikpf-iblnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE IT_MARC INTO wa_marc WITH KEY MATNR = wa_iseg-matnr BINARY SEACH.&lt;/P&gt;&lt;P&gt;lv_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;While ( wa_marc-matnr = wa_iseg-matnr AND sy-subrc eq 0).&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;Your code....&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;add 1 to lv_tabix.&lt;/P&gt;&lt;P&gt;READ TABLE IT_MARC INDEX LV_TABIX.&lt;/P&gt;&lt;P&gt;endwhile.&lt;/P&gt;&lt;P&gt;ENDLOOP. "MAIN LOOP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Read index is faster than read binary search or Loop.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Alexandre&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 26 Feb 2008 16:17:30 GMT</pubDate>
    <dc:creator>alexandre_docarmorocha</dc:creator>
    <dc:date>2008-02-26T16:17:30Z</dc:date>
    <item>
      <title>how to avoid the nested loops here</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-the-nested-loops-here/m-p/3473943#M835037</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;LOOP AT it_iseg&lt;/P&gt;&lt;P&gt;       INTO wa_iseg&lt;/P&gt;&lt;P&gt;      WHERE iblnr = wa_ikpf-iblnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SORT it_marc BY matnr.&lt;/P&gt;&lt;P&gt;        LOOP AT it_marc&lt;/P&gt;&lt;P&gt;           INTO wa_marc&lt;/P&gt;&lt;P&gt;          WHERE matnr = wa_iseg-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_item-zeili = wa_iseg-zeili.&lt;/P&gt;&lt;P&gt;        wa_item-matnr = wa_iseg-matnr.&lt;/P&gt;&lt;P&gt;        wa_item-charg = wa_iseg-charg.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        READ  TABLE it_makt&lt;/P&gt;&lt;P&gt;              INTO wa_makt&lt;/P&gt;&lt;P&gt;          WITH KEY matnr = wa_iseg-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        wa_item-maktx = wa_makt-maktx.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        IF wa_marc-sernp &amp;lt;&amp;gt; space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;          IF wa_ikpf-xbufi = 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            LOOP AT it_ser07&lt;/P&gt;&lt;P&gt;               INTO wa_ser07&lt;/P&gt;&lt;P&gt;               WHERE iblnr = wa_iseg-iblnr&lt;/P&gt;&lt;P&gt;                AND  mjhar = wa_ikpf-gjahr&lt;/P&gt;&lt;P&gt;                and oltpi = 1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              READ TABLE it_objk&lt;/P&gt;&lt;P&gt;              INTO wa_objk&lt;/P&gt;&lt;P&gt;              WITH KEY obknr = wa_ser07-obknr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;                READ TABLE it_equi&lt;/P&gt;&lt;P&gt;                INTO wa_equi&lt;/P&gt;&lt;P&gt;                WITH KEY equnr = wa_objk-equnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                IF sy-subrc EQ 0.&lt;/P&gt;&lt;P&gt;                  wa_item-sernr = wa_equi-sernr.&lt;/P&gt;&lt;P&gt;                  wa_item-invnr = wa_equi-invnr.&lt;/P&gt;&lt;P&gt;                  wa_item-menge = space.&lt;/P&gt;&lt;P&gt;                ENDIF.    "readtable it_ser07&lt;/P&gt;&lt;P&gt;              ENDIF.     "read table it_objk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              IF wa_item IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;                APPEND wa_item TO it_item.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               CLEAR wa_item.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;            ENDLOOP.&lt;/P&gt;&lt;P&gt;          ELSEIF wa_ikpf-xbufi EQ space.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            LOOP AT it_equi&lt;/P&gt;&lt;P&gt;            INTO wa_equi&lt;/P&gt;&lt;P&gt;           WHERE matnr = wa_iseg-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              READ TABLE it_eqbs&lt;/P&gt;&lt;P&gt;              INTO wa_eqbs&lt;/P&gt;&lt;P&gt;              WITH KEY     equnr   = wa_equi-equnr&lt;/P&gt;&lt;P&gt;                           b_werk  = wa_equi-werk&lt;/P&gt;&lt;P&gt;                           b_lager = wa_equi-lager.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                wa_item-sernr = wa_equi-sernr.&lt;/P&gt;&lt;P&gt;                wa_item-invnr = wa_equi-invnr.&lt;/P&gt;&lt;P&gt;                IF wa_item IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;                APPEND wa_item TO it_item.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;              ENDIF.            "read it_eqbs&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            ENDLOOP.            "loop at it_equi table.&lt;/P&gt;&lt;P&gt;          ENDIF.                "wa_ikpf-xbufi EQ space&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        ELSE.                   "if wa_marc-sernp is blank.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         IF wa_item IS NOT INITIAL.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           APPEND wa_item TO it_item.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;           CLEAR wa_item.&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;          CONTINUE.&lt;/P&gt;&lt;P&gt;        ENDIF.      "serial number is present.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ENDLOOP.      "loop at it_marc.&lt;/P&gt;&lt;P&gt;    ENDLOOP.        "loop at it_iseg.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Feb 2008 16:02:07 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-the-nested-loops-here/m-p/3473943#M835037</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-02-26T16:02:07Z</dc:date>
    </item>
    <item>
      <title>Re: how to avoid the nested loops here</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-the-nested-loops-here/m-p/3473944#M835038</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;First of all, there are many thinks to do here.. &lt;/P&gt;&lt;P&gt;"Sort" statament must to be outside the "LOOP".&lt;/P&gt;&lt;P&gt;Take out the all of them and put "While" in insted of.&lt;/P&gt;&lt;P&gt;"WHILE" is faster than "LOOP" statement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;e.g., in this case you have a basic loop, you can set the "FROM index" to help the performance.&lt;/P&gt;&lt;P&gt;LOOP AT it_marc&lt;/P&gt;&lt;P&gt;INTO wa_marc&lt;/P&gt;&lt;P&gt;WHERE matnr = wa_iseg-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But, the better idea is if you change insides LOOPs for WHILE.&lt;/P&gt;&lt;P&gt;sort it_marc by matnr &amp;gt; Outside the main LOOP.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Main loop&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;LOOP AT it_iseg&lt;/P&gt;&lt;P&gt;INTO wa_iseg&lt;/P&gt;&lt;P&gt;WHERE iblnr = wa_ikpf-iblnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;READ TABLE IT_MARC INTO wa_marc WITH KEY MATNR = wa_iseg-matnr BINARY SEACH.&lt;/P&gt;&lt;P&gt;lv_tabix = sy-tabix.&lt;/P&gt;&lt;P&gt;While ( wa_marc-matnr = wa_iseg-matnr AND sy-subrc eq 0).&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;Your code....&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;add 1 to lv_tabix.&lt;/P&gt;&lt;P&gt;READ TABLE IT_MARC INDEX LV_TABIX.&lt;/P&gt;&lt;P&gt;endwhile.&lt;/P&gt;&lt;P&gt;ENDLOOP. "MAIN LOOP&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Read index is faster than read binary search or Loop.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Alexandre&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Feb 2008 16:17:30 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-the-nested-loops-here/m-p/3473944#M835038</guid>
      <dc:creator>alexandre_docarmorocha</dc:creator>
      <dc:date>2008-02-26T16:17:30Z</dc:date>
    </item>
  </channel>
</rss>

