<?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 nested loops in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184414#M758216</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;using parllel cursor technique you can avoid nested loop.&lt;/P&gt;&lt;P&gt;for example:-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: l_index like sy-index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab.&lt;/P&gt;&lt;P&gt;     read table itab2 with key ...........&lt;/P&gt;&lt;P&gt;     if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        l_index = sy-index.&lt;/P&gt;&lt;P&gt;        do.&lt;/P&gt;&lt;P&gt;            "Here write the code what you want".&lt;/P&gt;&lt;P&gt;            again go for read.&lt;/P&gt;&lt;P&gt;            l_index = l_index + 1&lt;/P&gt;&lt;P&gt;            read table itab2 index l_index.&lt;/P&gt;&lt;P&gt;            if compare the all fields which you are using while     &lt;/P&gt;&lt;P&gt;                     reading first time from the table itab2.&lt;/P&gt;&lt;P&gt;            else.&lt;/P&gt;&lt;P&gt;                exit.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;        enddo.&lt;/P&gt;&lt;P&gt;            clear l_index.&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;P&gt;Reward if useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Sreeram.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 20 Dec 2007 08:59:19 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-12-20T08:59:19Z</dc:date>
    <item>
      <title>how to avoid nested loops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184409#M758211</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;can any one help me , in nested loops .. how to avoid this one.. its urgent...&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the code is as follows..........&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OOP AT gt_indata INTO gs_indata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Get Period Values from Header&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      IF ld_first_time = gc_J.&lt;/P&gt;&lt;P&gt;         ld_first_time = gc_N.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Split input Header into Period Structure&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;       FIELD-SYMBOLS: &amp;lt;lfs_hex&amp;gt;  TYPE x,&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                      &amp;lt;lfs_char&amp;gt; TYPE c.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         ASSIGN gc_tab TO &amp;lt;lfs_hex&amp;gt;.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ASSIGN &amp;lt;lfs_hex&amp;gt; TO &amp;lt;lfs_char&amp;gt; CASTING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        Perform split1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CLEAR: gs_split_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        SPLIT gs_indata AT &amp;lt;lfs_char&amp;gt; INTO&lt;/P&gt;&lt;P&gt;          gs_split_1-head_1&lt;/P&gt;&lt;P&gt;          gs_split_1-head_2&lt;/P&gt;&lt;P&gt;          gs_split_1-head_3&lt;/P&gt;&lt;P&gt;          gs_split_1-head_4&lt;/P&gt;&lt;P&gt;*Period 1 to 10&lt;/P&gt;&lt;P&gt;          gs_split_1-per_1 gs_split_1-per_2 gs_split_1-per_3 gs_split_1-per_4&lt;/P&gt;&lt;P&gt;          gs_split_1-per_5 gs_split_1-per_6 gs_split_1-per_7 gs_split_1-per_8&lt;/P&gt;&lt;P&gt;          gs_split_1-per_9 gs_split_1-per_10&lt;/P&gt;&lt;P&gt;*Period 11 to 20&lt;/P&gt;&lt;P&gt;          gs_split_1-per_11 gs_split_1-per_12 gs_split_1-per_13 gs_split_1-per_14&lt;/P&gt;&lt;P&gt;          gs_split_1-per_15 gs_split_1-per_16 gs_split_1-per_17 gs_split_1-per_18&lt;/P&gt;&lt;P&gt;          gs_split_1-per_19 gs_split_1-per_20&lt;/P&gt;&lt;P&gt;*Period 21 to 30&lt;/P&gt;&lt;P&gt;          gs_split_1-per_21 gs_split_1-per_22 gs_split_1-per_23 gs_split_1-per_24&lt;/P&gt;&lt;P&gt;          gs_split_1-per_25 gs_split_1-per_26 gs_split_1-per_27 gs_split_1-per_28&lt;/P&gt;&lt;P&gt;          gs_split_1-per_29 gs_split_1-per_30&lt;/P&gt;&lt;P&gt;*Period 31 to 40&lt;/P&gt;&lt;P&gt;          gs_split_1-per_31 gs_split_1-per_32 gs_split_1-per_33 gs_split_1-per_34&lt;/P&gt;&lt;P&gt;          gs_split_1-per_35 gs_split_1-per_36 gs_split_1-per_37 gs_split_1-per_38&lt;/P&gt;&lt;P&gt;          gs_split_1-per_39 gs_split_1-per_40&lt;/P&gt;&lt;P&gt;*Period 41 to 50&lt;/P&gt;&lt;P&gt;          gs_split_1-per_41 gs_split_1-per_42 gs_split_1-per_43 gs_split_1-per_44&lt;/P&gt;&lt;P&gt;          gs_split_1-per_45 gs_split_1-per_46 gs_split_1-per_47 gs_split_1-per_48&lt;/P&gt;&lt;P&gt;          gs_split_1-per_49 gs_split_1-per_50&lt;/P&gt;&lt;P&gt;*Period 51 to 55&lt;/P&gt;&lt;P&gt;          gs_split_1-per_51 gs_split_1-per_52 gs_split_1-per_53 gs_split_1-per_54&lt;/P&gt;&lt;P&gt;          gs_split_1-per_55.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create internal table with all Periods from input file Header&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CLEAR ld_tabix.&lt;/P&gt;&lt;P&gt;        Do 56 times Varying&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       WHILE w_tabix LT 56&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;           gs_period-per FROM gs_split_1-per_1 NEXT gs_split_1-per_2.&lt;/P&gt;&lt;P&gt;          ADD 1 TO ld_tabix.&lt;/P&gt;&lt;P&gt;*Break at value END in the file&lt;/P&gt;&lt;P&gt;          IF gs_period-per = gc_END.&lt;/P&gt;&lt;P&gt;            EXIT.&lt;/P&gt;&lt;P&gt;          ENDIF.&lt;/P&gt;&lt;P&gt;          APPEND gs_period     TO gt_period.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       ENDWHILE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        Enddo.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Convert Date type and and Period to real Date&lt;/P&gt;&lt;P&gt;        LOOP AT gt_period INTO gs_period.&lt;/P&gt;&lt;P&gt;          CASE gs_period-per(1).&lt;/P&gt;&lt;P&gt;            WHEN gc_W.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Week&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              MOVE gs_period-per+1(6)    TO ld_week.&lt;/P&gt;&lt;P&gt;              CALL FUNCTION 'WEEK_GET_FIRST_DAY'&lt;/P&gt;&lt;P&gt;                EXPORTING&lt;/P&gt;&lt;P&gt;                  week         = ld_week&lt;/P&gt;&lt;P&gt;                IMPORTING&lt;/P&gt;&lt;P&gt;                  date         = ld_date&lt;/P&gt;&lt;P&gt;                EXCEPTIONS&lt;/P&gt;&lt;P&gt;                  week_invalid = 1&lt;/P&gt;&lt;P&gt;                  OTHERS       = 2.&lt;/P&gt;&lt;P&gt;              IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Error Wrong Period Week&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                Message A000(38) with text-002.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;              MOVE gc_2           TO gs_period-date_type.&lt;/P&gt;&lt;P&gt;              MOVE ld_date       TO gs_period-req_date.&lt;/P&gt;&lt;P&gt;              MODIFY gt_period   FROM gs_period.&lt;/P&gt;&lt;P&gt;            WHEN gc_M.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Month&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              MOVE gc_3                TO gs_period-date_type.&lt;/P&gt;&lt;P&gt;              MOVE gs_period-per&lt;EM&gt;1(6) TO ld_date_alfn&lt;/EM&gt;0(6).&lt;/P&gt;&lt;P&gt;              MOVE 01                 TO ld_date_alfn+6(2).&lt;/P&gt;&lt;P&gt;              MOVE ld_date_alfn        TO ld_date.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Check if Date is Valid&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              CALL FUNCTION 'LAST_DAY_OF_MONTHS'&lt;/P&gt;&lt;P&gt;                EXPORTING&lt;/P&gt;&lt;P&gt;                  day_in            = ld_date&lt;/P&gt;&lt;P&gt;                IMPORTING&lt;/P&gt;&lt;P&gt;                  last_day_of_month = ld_date_last&lt;/P&gt;&lt;P&gt;                EXCEPTIONS&lt;/P&gt;&lt;P&gt;                  day_in_no_date    = 1&lt;/P&gt;&lt;P&gt;                  OTHERS            = 2.&lt;/P&gt;&lt;P&gt;              IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; Error Wrong Period Month&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                Message A000(38) with text-003.&lt;/P&gt;&lt;P&gt;              ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;              MOVE ld_date          TO gs_period-req_date.&lt;/P&gt;&lt;P&gt;              MODIFY gt_period      FROM gs_period.&lt;/P&gt;&lt;P&gt;            WHEN OTHERS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  Error Wrong Date Type&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              MESSAGE A000(38) WITH text-001.&lt;/P&gt;&lt;P&gt;          ENDCASE.&lt;/P&gt;&lt;P&gt;        ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        DESCRIBE TABLE gt_period LINES gs_max_line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;        CONTINUE.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;*Split input Item into Field Structure&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      ASSIGN gc_tab TO &amp;lt;lfs_hex&amp;gt;.&lt;/P&gt;&lt;P&gt;      ASSIGN &amp;lt;lfs_hex&amp;gt; TO &amp;lt;lfs_char&amp;gt; CASTING.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR: gs_split_2,&lt;/P&gt;&lt;P&gt;             gt_quantity.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      SPLIT gs_indata AT &amp;lt;lfs_char&amp;gt; INTO&lt;/P&gt;&lt;P&gt;        gs_split_2-material&lt;/P&gt;&lt;P&gt;        gs_split_2-plant&lt;/P&gt;&lt;P&gt;        gs_split_2-version&lt;/P&gt;&lt;P&gt;        gs_split_2-act_ind&lt;/P&gt;&lt;P&gt;*Period 1 to 10&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_1 gs_split_2-ant_2 gs_split_2-ant_3 gs_split_2-ant_4&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_5 gs_split_2-ant_6 gs_split_2-ant_7 gs_split_2-ant_8&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_9 gs_split_2-ant_10&lt;/P&gt;&lt;P&gt;*Period 11 to 20&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_11 gs_split_2-ant_12 gs_split_2-ant_13 gs_split_2-ant_14&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_15 gs_split_2-ant_16 gs_split_2-ant_17 gs_split_2-ant_18&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_19 gs_split_2-ant_20&lt;/P&gt;&lt;P&gt;*Period 21 to 30&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_21 gs_split_2-ant_22 gs_split_2-ant_23 gs_split_2-ant_24&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_25 gs_split_2-ant_26 gs_split_2-ant_27 gs_split_2-ant_28&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_29 gs_split_2-ant_30&lt;/P&gt;&lt;P&gt;*Period 31 to 40&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_31 gs_split_2-ant_32 gs_split_2-ant_33 gs_split_2-ant_34&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_35 gs_split_2-ant_36 gs_split_2-ant_37 gs_split_2-ant_38&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_39 gs_split_2-ant_40&lt;/P&gt;&lt;P&gt;*Period 41 to 50&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_41 gs_split_2-ant_42 gs_split_2-ant_43 gs_split_2-ant_44&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_45 gs_split_2-ant_46 gs_split_2-ant_47 gs_split_2-ant_48&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_49 gs_split_2-ant_50&lt;/P&gt;&lt;P&gt;*Period 51 to 55&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_51 gs_split_2-ant_52 gs_split_2-ant_53 gs_split_2-ant_54&lt;/P&gt;&lt;P&gt;        gs_split_2-ant_55.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create internal table with all Periods from input file&lt;/P&gt;&lt;P&gt;      CLEAR ld_tabix.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     WHILE w_tabix LT gs_max_line&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;       Do gs_max_line Times Varying&lt;/P&gt;&lt;P&gt;          gs_quantity-antal FROM gs_split_2-ant_1 NEXT gs_split_2-ant_2.&lt;/P&gt;&lt;P&gt;        ADD 1 TO ld_tabix.&lt;/P&gt;&lt;P&gt;        APPEND gs_quantity     TO gt_quantity.&lt;/P&gt;&lt;P&gt;       Enddo.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     ENDWHILE.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      MOVE gs_split_2-material    TO gs_outdata-matnr.&lt;/P&gt;&lt;P&gt;      MOVE gs_split_2-plant       TO gs_outdata-plant.&lt;/P&gt;&lt;P&gt;      MOVE gs_split_2-version     TO gs_outdata-version.&lt;/P&gt;&lt;P&gt;      MOVE gs_split_2-act_ind     TO gs_outdata-act_ind.&lt;/P&gt;&lt;P&gt;      MOVE gt_quantity[]          TO gs_outdata-quantity[].&lt;/P&gt;&lt;P&gt;      APPEND gs_outdata           TO gt_outdata.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDLOOP.  "GT_INDATA&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Loop through Output file records and create return table for each Product&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Allocation Object.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        LOOP AT gt_alloc_object INTO gs_alloc_object.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         LOOP AT gt_outdata INTO gs_outdata.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            Read Table gt_outdata into gs_outdata index sy-index.&lt;/P&gt;&lt;P&gt;            CLEAR gs_t_data.&lt;/P&gt;&lt;P&gt;            gs_t_data-konob = gs_alloc_object-konob.&lt;/P&gt;&lt;P&gt;            gs_t_data-matnr = gs_outdata-matnr.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;            gs_t_data-vrsio = gs_outdata-version.&lt;/P&gt;&lt;P&gt;            gs_t_data-werks = gs_outdata-plant.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Validate material and get unit of measurement from material master&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;            SELECT SINGLE meins FROM mara&lt;/P&gt;&lt;P&gt;                        INTO gs_t_data-basme&lt;/P&gt;&lt;P&gt;                        WHERE matnr = gs_t_data-matnr.&lt;/P&gt;&lt;P&gt;            IF sy-subrc EQ 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Material exists&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;              LOOP AT gs_outdata-quantity INTO gs_quantity.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;              READ TABLE gt_outdata into gs_outdata index sy-index.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;               move gs_outdata-quantity to gs_quantity-antal.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                MOVE gs_quantity-antal TO gs_t_data-kcqty.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Get period&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                SORT gt_period.&lt;/P&gt;&lt;P&gt;                READ TABLE gt_period INTO gs_period INDEX sy-tabix .&lt;/P&gt;&lt;P&gt;                IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;                  gs_t_data-spwoc = gs_period-per+1(6).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;                ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Check restrictions&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;                IF gs_t_data-werks IN gt_werks AND&lt;/P&gt;&lt;P&gt;                   gs_t_data-matnr IN gt_matnr AND&lt;/P&gt;&lt;P&gt;                   gs_t_data-spwoc IN gt_spwoc.&lt;/P&gt;&lt;P&gt;                  APPEND gs_t_data TO t_data.&lt;/P&gt;&lt;P&gt;                ENDIF.&lt;/P&gt;&lt;P&gt;              ENDLOOP.   "gs_OUTDATA-QUANTITY&lt;/P&gt;&lt;P&gt;            ENDIF.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         ENDLOOP.  "GT_OUTDATA&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;        ENDLOOP.   "GT_ALLOC_OBJECT&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  WHEN OTHERS.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;No more info structures implemented&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;form split1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;endform.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Dec 2007 11:02:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184409#M758211</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-13T11:02:03Z</dc:date>
    </item>
    <item>
      <title>Re: how to avoid nested loops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184410#M758212</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 can use read statement using binary search instead of using nested loop in some places at ur program. but don&amp;#146;t forget to sort the table which u r reading before reading that. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One more thing in side the loop u used select single *. But u can use select with required fields out side of the loop in to itab, then read that itab in side the loop.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if it dose.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Siva Kumar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Dec 2007 11:53:03 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184410#M758212</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-13T11:53:03Z</dc:date>
    </item>
    <item>
      <title>Re: how to avoid nested loops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184411#M758213</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You can not avoid nested loops, because it is often necessary to compare to internal tables,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;1. One table must be the outher table and must be fully processed,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Each each line of the outer table:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You must not process a full inner table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But only one line of the inner table, then use READ ... BINARY SEARCH' and SORT this table once outside of the outer table!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Or a few lines of the inner table, then use READ BINARY SEARCH and LOOP ... FROM INDEX with EXIT condition, which is very important.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Read this blog, especially the last section:&lt;/P&gt;&lt;P&gt;/people/siegfried.boes/blog/2007/09/12/runtimes-of-reads-and-loops-on-internal-tables&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Siegfried&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Dec 2007 12:44:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184411#M758213</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-13T12:44:20Z</dc:date>
    </item>
    <item>
      <title>Re: how to avoid nested loops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184412#M758214</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;For better performance go for Parellel cursor technique or fetch data in internal tables using Select .... FOR all enteries....&lt;/P&gt;&lt;P&gt;&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;&lt;/P&gt;&lt;P&gt;Naveen Gupta&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Dec 2007 04:48:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184412#M758214</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-20T04:48:14Z</dc:date>
    </item>
    <item>
      <title>Re: how to avoid nested loops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184413#M758215</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;see this link:&lt;/P&gt;&lt;P&gt;/people/rob.burbank/blog/2006/02/07/performance-of-nested-loops&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;how to avoid nested loops in this program to improve the performence&lt;/P&gt;&lt;P&gt;&lt;A class="jive_macro jive_macro_message" href="https://community.sap.com/" __jive_macro_name="message" modifiedtitle="true" __default_attr="4294232"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if useful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Dec 2007 04:56:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184413#M758215</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-20T04:56:39Z</dc:date>
    </item>
    <item>
      <title>Re: how to avoid nested loops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184414#M758216</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;using parllel cursor technique you can avoid nested loop.&lt;/P&gt;&lt;P&gt;for example:-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;data: l_index like sy-index.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;loop at itab.&lt;/P&gt;&lt;P&gt;     read table itab2 with key ...........&lt;/P&gt;&lt;P&gt;     if sy-subrc = 0.&lt;/P&gt;&lt;P&gt;        l_index = sy-index.&lt;/P&gt;&lt;P&gt;        do.&lt;/P&gt;&lt;P&gt;            "Here write the code what you want".&lt;/P&gt;&lt;P&gt;            again go for read.&lt;/P&gt;&lt;P&gt;            l_index = l_index + 1&lt;/P&gt;&lt;P&gt;            read table itab2 index l_index.&lt;/P&gt;&lt;P&gt;            if compare the all fields which you are using while     &lt;/P&gt;&lt;P&gt;                     reading first time from the table itab2.&lt;/P&gt;&lt;P&gt;            else.&lt;/P&gt;&lt;P&gt;                exit.&lt;/P&gt;&lt;P&gt;            endif.&lt;/P&gt;&lt;P&gt;        enddo.&lt;/P&gt;&lt;P&gt;            clear l_index.&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;P&gt;Reward if useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks,&lt;/P&gt;&lt;P&gt;Sreeram.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Dec 2007 08:59:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184414#M758216</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-20T08:59:19Z</dc:date>
    </item>
    <item>
      <title>Re: how to avoid nested loops</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184415#M758217</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;The exact Parllel cursor technique is :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORT : it_mara BY matnr ,&lt;/P&gt;&lt;P&gt;       it_makt BY matnr .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;i = 1.&lt;/P&gt;&lt;P&gt;LOOP AT it_mara INTO wa_mara.&lt;/P&gt;&lt;P&gt;  LOOP AT it_makt INTO wa_makt FROM i.&lt;/P&gt;&lt;P&gt;    IF wa_makt-matnr &amp;lt;&amp;gt; wa_mara-matnr.&lt;/P&gt;&lt;P&gt;      i = sy-tabix.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;    write &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; wa_mara-matnr , wa_makt-MAKTX .&lt;/P&gt;&lt;P&gt;    MOVE wa_mara-matnr TO itab-matnr.&lt;/P&gt;&lt;P&gt;    MOVE wa_makt-maktx TO itab-maktx.&lt;/P&gt;&lt;P&gt;    append itab .&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PS: REward points if helpfull&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Naveen Gupta&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 20 Dec 2007 09:04:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/how-to-avoid-nested-loops/m-p/3184415#M758217</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-12-20T09:04:46Z</dc:date>
    </item>
  </channel>
</rss>

