<?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: Abap Iterating and Iterator Classes in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965195#M1893822</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Jeffrey,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I routinely implement iterators for internal tables using local &lt;SPAN style="font-size: 10pt;"&gt;classes like&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;CLASS&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: courier; font-size: 10pt;"&gt; lcl_iterator &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;DEFINITION&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: courier; font-size: 10pt;"&gt; FRIENDS lif_unit_test&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;PUBLIC&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;SECTION&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHODS&lt;/SPAN&gt; constructor &lt;SPAN style="color: #0000ff;"&gt;IMPORTING&lt;/SPAN&gt; it_messages &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; tt_trace&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iv_start&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; sytabix &lt;SPAN style="color: #0000ff;"&gt;DEFAULT&lt;/SPAN&gt; &lt;SPAN style="color: #3399ff;"&gt;1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iv_stop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; sytabix OPTIONAL&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHODS&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;next&lt;/SPAN&gt; RETURNING &lt;SPAN style="color: #0000ff;"&gt;VALUE&lt;/SPAN&gt;&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt;rs_data&lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; ts_message&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;RAISING&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; cx_sy_itab_error&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHODS&lt;/SPAN&gt; has_next RETURNING &lt;SPAN style="color: #0000ff;"&gt;VALUE&lt;/SPAN&gt;&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt;rv_flag&lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; xsdboolean&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHODS&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;skip&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;IMPORTING&lt;/SPAN&gt; iv_count &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; i &lt;SPAN style="color: #0000ff;"&gt;DEFAULT&lt;/SPAN&gt; &lt;SPAN style="color: #3399ff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;PROTECTED&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;SECTION&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;DATA&lt;/SPAN&gt; mv_idx &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; sytabix&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;DATA&lt;/SPAN&gt; mv_size &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; sytabix&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;DATA&lt;/SPAN&gt; mt_list &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; tt_trace&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;SPAN style="color: #0000ff;"&gt;ENDCLASS&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A use case &lt;SPAN style="font-size: 10pt;"&gt;is the event handler of ALV Grid: I pass an iterator and the handler processes selected entries without having to know about the selection or additional validation logic. It is just a case of separation of concern.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;SPAN style="color: #0000ff;"&gt;CLASS&lt;/SPAN&gt; lcl_iterator IMPLEMENTATION&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHOD&lt;/SPAN&gt; constructor&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;CLEAR&lt;/SPAN&gt; mv_idx&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mt_list&lt;SPAN style="color: #800080;"&gt; = &lt;/SPAN&gt;it_messages&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;EM style="color: #808080;"&gt;" shared, never changed&lt;/EM&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mv_size&lt;SPAN style="color: #800080;"&gt; = &lt;/SPAN&gt;COND #&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;WHEN&lt;/SPAN&gt; iv_stop &lt;SPAN style="color: #0000ff;"&gt;IS&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;INITIAL&lt;/SPAN&gt; THEN &lt;SPAN style="color: #0000ff;"&gt;lines&lt;/SPAN&gt;&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt; mt_list &lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ELSE&lt;/SPAN&gt; iv_stop &lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;skip&lt;/SPAN&gt;&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt; iv_start - &lt;SPAN style="color: #3399ff;"&gt;1&lt;/SPAN&gt; &lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHOD&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;next&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;skip&lt;/SPAN&gt;&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt; &lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rs_data&lt;SPAN style="color: #800080;"&gt; = &lt;/SPAN&gt;mt_list[ mv_idx ]&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHOD&lt;/SPAN&gt; has_next&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rv_flag&lt;SPAN style="color: #800080;"&gt; = &lt;/SPAN&gt;boolc&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt; mv_idx &lt;SPAN style="color: #800097;"&gt;&amp;lt;&lt;/SPAN&gt; mv_size &lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHOD&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;skip&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ADD&lt;/SPAN&gt; iv_count &lt;SPAN style="color: #0000ff;"&gt;TO&lt;/SPAN&gt; mv_idx&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;SPAN style="color: #0000ff;"&gt;ENDCLASS&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;Reminder: a&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; new object must be created for each iteration. Access to the table index MV_IDX should be avoided. But if worst comes to the worst... &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;this ABAP criminal will avoid ABAP police infested blogs &lt;/SPAN&gt;&lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_emote jive_macro jiveImage" src="https://community.sap.com/1200/images/emoticons/happy.gif" style="font-size: 13.3333330154419px;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;JNN&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 Mar 2015 23:58:00 GMT</pubDate>
    <dc:creator>nomssi</dc:creator>
    <dc:date>2015-03-03T23:58:00Z</dc:date>
    <item>
      <title>Abap Iterating and Iterator Classes</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965194#M1893821</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;In the comments of the conversation &lt;A __default_attr="121440" __jive_macro_name="blogpost" class="jive_macro jive_macro_blogpost" data-orig-content="Top 10 ABAP crimes" href="https://community.sap.com/"&gt;&lt;/A&gt; a few of us were discussing the use of an iterators and iterator classes. Below I will add what has already been presented:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A _jive_internal="true" class="jiveTT-hover-user jive-username-link" data-avatarid="18748" data-externalid="" data-presence="null" data-userid="247841" data-username="fabioluiz.esperatipagoti" href="https://answers.sap.com/people/fabioluiz.esperatipagoti" style="font-size: 10.8000001907349px; color: #3778c7; background: #ffffff;"&gt;Fabio Pagoti&lt;/A&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
&lt;P style="font-size: 12px; color: #333333; background: #ffffff;"&gt;I have read about it but I had never used. What I usually do is just encapsulating an internal table inside a class and not modelling table rows as objects (I hope this was clear). In this case I'm not sure if the iterator class can be used and useful.&lt;/P&gt;

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P style="font-size: 12px; color: #333333; background: #ffffff;"&gt;&lt;A _jive_internal="true" class="jiveTT-hover-user jive-username-link" data-avatarid="44834" data-externalid="" data-presence="null" data-userid="24079" data-username="matthew.billingham" href="https://answers.sap.com/people/matthew.billingham" style="font-size: 10.8000001907349px; color: #3778c7; background: #ffffff;"&gt;Matthew Billingham&lt;/A&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
&lt;P style="font-size: 12px; color: #333333; background: #ffffff;"&gt;I have used iterators for particular complex data structures. Underneath was an internal table of references, and I used indexes to keep track. I could of course have looped through the internal table at the higher level instead of using an iterator, but due to the data complexity, I really didn't want to expose the internal table at that level.&lt;/P&gt;

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P style="font-size: 12px; color: #333333; background: #ffffff;"&gt;&lt;/P&gt;&lt;P style="font-size: 12px; color: #333333; background: #ffffff;"&gt;&lt;A _jive_internal="true" class="jiveTT-hover-user jive-username-link" data-avatarid="2950" data-externalid="" data-presence="null" data-userid="256978" data-username="joao.sousa2" href="https://answers.sap.com/people/joao.sousa2" style="font-size: 10.8000001907349px; color: #3778c7; background: #ffffff;"&gt;Joao Sousa&lt;/A&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;
&lt;P style="font-size: 12px; color: #333333; background: #ffffff;"&gt;I do in complex application (in my latest one I don't use loops except to deal with BAPIRET), because it's the way you code in C# and Java, and that way I can easily translate the code to C#. Basically for large modules I program as if I was coding in C#.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P style="font-size: 12px; color: #333333; background: #ffffff;"&gt;If you use Collections and HashMaps it's the only way to "loop", although I do miss the typed List&amp;lt;T&amp;gt; and HashMap&amp;lt;T,X&amp;gt;.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P style="font-size: 12px; color: #333333; background: #ffffff;"&gt;PS: Actually it's not the only way, there's the get_values_table or something &lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_macro jive_emote" src="https://community.sap.com/1200/images/emoticons/happy.gif"&gt;&lt;/SPAN&gt;.&lt;/P&gt;

&lt;/CODE&gt;&lt;/PRE&gt;&lt;PRE&gt;&lt;CODE&gt;
&lt;P style="font-size: 12px; color: #333333; background: #ffffff;"&gt;I use CL_OBJECT_MAP and CL_OBJECT_COLLECTION which are the equivalent to HashMap and List the problem is that these are not typed lists and so I have to rely on casts that the compiler doesn't check for correctness.&lt;/P&gt;
&lt;P&gt;&lt;/P&gt;
&lt;P style="font-size: 12px; color: #333333; background: #ffffff;"&gt;I usually write the type in the description of the return parameter of the method.&lt;/P&gt;

&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;A _jive_internal="true" class="jiveTT-hover-user jive-username-link" data-avatarid="54341" data-externalid="" data-presence="null" data-userid="983724" data-username="jeffrey.vandergraaf" href="https://answers.sap.com/people/jeffrey.vandergraaf" style="font-size: 10.8000001907349px; color: #3778c7; background: #ffffff;"&gt;Jeffrey Vander Graaf&lt;/A&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;&lt;OL style="font-size: 12px; color: #333333; background: #ffffff;"&gt;
&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 13.3333330154419px; font-family: inherit; background: transparent;"&gt;I used Iterator classes heavily in java and C#,&lt;/SPAN&gt; not in abap yet. I want to use them again. I relied heavily on array list, hash maps, lists, etc when programming in other languages.&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 10pt; font-family: inherit; background: transparent;"&gt;Restrictions...hmm, in java i can't critique, they are awesome. In abap, the primary hurdle would probably be generics. Abap does generics differently than java but I assume adding a constructor to initially set the type of object of the list would solve that. Adding a check to make sure objects of that type can only be added would be next. Iterator classes can be implemented from anywhere an object &lt;/SPAN&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 13.3333330154419px; font-family: inherit; background: transparent;"&gt;can be implement&lt;/SPAN&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 10pt; font-family: inherit; background: transparent;"&gt;. If I run into any other hurdles i'll let you know.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;LI&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 10pt; font-family: inherit; background: transparent;"&gt;Too many,&lt;/SPAN&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-size: 13.3333330154419px; font-family: inherit; background: transparent;"&gt; If I ever needed a place to hold multiple objects of the same type I'd use an iterator class. They provide a wide range of functionality for accessing a list of objects, and follows the object oriented design model. From what I was taught at University and experienced in the field, data structures such as link lists are essential.&lt;/SPAN&gt;&lt;/LI&gt;
&lt;/OL&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;What is everyone's opinion on iterator classes and the comments above?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here are some useful links to similar postings:&lt;/P&gt;&lt;P&gt;&lt;A __default_attr="31888" __jive_macro_name="blog" class="jive_macro jive_macro_blog" data-orig-content="ABAP Objects" href="https://community.sap.com/"&gt;&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Mar 2015 17:08:14 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965194#M1893821</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2015-03-03T17:08:14Z</dc:date>
    </item>
    <item>
      <title>Re: Abap Iterating and Iterator Classes</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965195#M1893822</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Jeffrey,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I routinely implement iterators for internal tables using local &lt;SPAN style="font-size: 10pt;"&gt;classes like&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #0000ff;"&gt;CLASS&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: courier; font-size: 10pt;"&gt; lcl_iterator &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;DEFINITION&lt;/SPAN&gt;&lt;SPAN style="color: black; font-family: courier; font-size: 10pt;"&gt; FRIENDS lif_unit_test&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;PUBLIC&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;SECTION&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHODS&lt;/SPAN&gt; constructor &lt;SPAN style="color: #0000ff;"&gt;IMPORTING&lt;/SPAN&gt; it_messages &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; tt_trace&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iv_start&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; sytabix &lt;SPAN style="color: #0000ff;"&gt;DEFAULT&lt;/SPAN&gt; &lt;SPAN style="color: #3399ff;"&gt;1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iv_stop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; sytabix OPTIONAL&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHODS&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;next&lt;/SPAN&gt; RETURNING &lt;SPAN style="color: #0000ff;"&gt;VALUE&lt;/SPAN&gt;&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt;rs_data&lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; ts_message&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;RAISING&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp; cx_sy_itab_error&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHODS&lt;/SPAN&gt; has_next RETURNING &lt;SPAN style="color: #0000ff;"&gt;VALUE&lt;/SPAN&gt;&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt;rv_flag&lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; xsdboolean&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHODS&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;skip&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;IMPORTING&lt;/SPAN&gt; iv_count &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; i &lt;SPAN style="color: #0000ff;"&gt;DEFAULT&lt;/SPAN&gt; &lt;SPAN style="color: #3399ff;"&gt;1&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;PROTECTED&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;SECTION&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;DATA&lt;/SPAN&gt; mv_idx &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; sytabix&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;DATA&lt;/SPAN&gt; mv_size &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; sytabix&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;DATA&lt;/SPAN&gt; mt_list &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; tt_trace&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;SPAN style="color: #0000ff;"&gt;ENDCLASS&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;A use case &lt;SPAN style="font-size: 10pt;"&gt;is the event handler of ALV Grid: I pass an iterator and the handler processes selected entries without having to know about the selection or additional validation logic. It is just a case of separation of concern.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;SPAN style="color: #0000ff;"&gt;CLASS&lt;/SPAN&gt; lcl_iterator IMPLEMENTATION&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHOD&lt;/SPAN&gt; constructor&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;CLEAR&lt;/SPAN&gt; mv_idx&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mt_list&lt;SPAN style="color: #800080;"&gt; = &lt;/SPAN&gt;it_messages&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;EM style="color: #808080;"&gt;" shared, never changed&lt;/EM&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; mv_size&lt;SPAN style="color: #800080;"&gt; = &lt;/SPAN&gt;COND #&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;WHEN&lt;/SPAN&gt; iv_stop &lt;SPAN style="color: #0000ff;"&gt;IS&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;INITIAL&lt;/SPAN&gt; THEN &lt;SPAN style="color: #0000ff;"&gt;lines&lt;/SPAN&gt;&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt; mt_list &lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ELSE&lt;/SPAN&gt; iv_stop &lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;skip&lt;/SPAN&gt;&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt; iv_start - &lt;SPAN style="color: #3399ff;"&gt;1&lt;/SPAN&gt; &lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHOD&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;next&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;skip&lt;/SPAN&gt;&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt; &lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rs_data&lt;SPAN style="color: #800080;"&gt; = &lt;/SPAN&gt;mt_list[ mv_idx ]&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHOD&lt;/SPAN&gt; has_next&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; rv_flag&lt;SPAN style="color: #800080;"&gt; = &lt;/SPAN&gt;boolc&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt; mv_idx &lt;SPAN style="color: #800097;"&gt;&amp;lt;&lt;/SPAN&gt; mv_size &lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHOD&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;skip&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ADD&lt;/SPAN&gt; iv_count &lt;SPAN style="color: #0000ff;"&gt;TO&lt;/SPAN&gt; mv_idx&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;SPAN style="color: #0000ff;"&gt;ENDCLASS&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;Reminder: a&lt;/SPAN&gt;&lt;SPAN style="font-size: 10pt;"&gt; new object must be created for each iteration. Access to the table index MV_IDX should be avoided. But if worst comes to the worst... &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;this ABAP criminal will avoid ABAP police infested blogs &lt;/SPAN&gt;&lt;SPAN __jive_emoticon_name="happy" __jive_macro_name="emoticon" class="jive_emote jive_macro jiveImage" src="https://community.sap.com/1200/images/emoticons/happy.gif" style="font-size: 13.3333330154419px;"&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 10pt;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;JNN&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Mar 2015 23:58:00 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965195#M1893822</guid>
      <dc:creator>nomssi</dc:creator>
      <dc:date>2015-03-03T23:58:00Z</dc:date>
    </item>
    <item>
      <title>Re: Abap Iterating and Iterator Classes</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965196#M1893823</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Nice implementation. Couple questions:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sections like:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-size: 12px; font-family: courier; color: black; background: #ffffff;"&gt;COND #&lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: inherit; color: #800097; background: transparent;"&gt;(&lt;/SPAN&gt; &lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: inherit; color: #0000ff; background: transparent;"&gt;WHEN&lt;/SPAN&gt; iv_stop &lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: inherit; color: #0000ff; background: transparent;"&gt;IS&lt;/SPAN&gt; &lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: inherit; color: #0000ff; background: transparent;"&gt;INITIAL&lt;/SPAN&gt; THEN &lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: inherit; color: #0000ff; background: transparent;"&gt;lines&lt;/SPAN&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: inherit; color: #800097; background: transparent;"&gt;(&lt;/SPAN&gt; mt_list &lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: inherit; color: #800097; background: transparent;"&gt;)&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; font-family: courier; color: black; background: #ffffff;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: inherit; color: #0000ff; background: transparent;"&gt;ELSE&lt;/SPAN&gt; iv_stop &lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: inherit; color: #800097; background: transparent;"&gt;)&lt;/SPAN&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: inherit; color: #800080; background: transparent;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; font-family: courier; color: black; background: #ffffff;"&gt;&lt;SPAN style="font-weight: inherit; font-style: inherit; font-family: inherit; color: #800080; background: transparent;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-size: 12px; font-family: courier; color: black; background: #ffffff;"&gt;&lt;SPAN style="color: #000000; font-style: inherit; background: transparent; font-size: 12px; font-family: courier; font-weight: inherit;"&gt;mt_list[ mv_idx ]&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Don't look like abap pieces of code. Inline conditionals aren't supported in abap to my knowledge and your table indexing looks like accessing the index of an array. Are these pieces of abap code that are supported in different version of SAP?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also have you thought about adding an initialize method to reset the count? It's through a method to a protected variable so it's a controlled touch to the index counter. &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Mar 2015 21:52:04 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965196#M1893823</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2015-03-04T21:52:04Z</dc:date>
    </item>
    <item>
      <title>Re: Abap Iterating and Iterator Classes</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965197#M1893824</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Jeffrey,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;you must read the ABAP &lt;/SPAN&gt;&lt;A _jive_internal="true" href="https://answers.sap.com/community/abap/blog/2013/07/22/abap-news-for-release-740" style="font-size: 13.3333330154419px;"&gt;news&lt;/A&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;No reset is needed if a new iterator is used for each transversal. I use the clone( ) method&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHODS&lt;/SPAN&gt; clone &lt;SPAN style="color: #0000ff;"&gt;IMPORTING&lt;/SPAN&gt; iv_start&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; sytabix &lt;SPAN style="color: #0000ff;"&gt;DEFAULT&lt;/SPAN&gt; &lt;SPAN style="color: #3399ff;"&gt;1&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iv_stop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; sytabix OPTIONAL&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PREFERRED &lt;SPAN style="color: #0000ff;"&gt;PARAMETER&lt;/SPAN&gt; iv_start&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RETURNING &lt;SPAN style="color: #0000ff;"&gt;VALUE&lt;/SPAN&gt;&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt;ro_iter&lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;TYPE&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;REF&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;TO&lt;/SPAN&gt; lcl_iterator&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;METHOD&lt;/SPAN&gt; clone&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ro_iter&lt;SPAN style="color: #800080;"&gt; = &lt;/SPAN&gt;&lt;SPAN style="color: #0000ff;"&gt;NEW&lt;/SPAN&gt; #&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; it_messages&lt;SPAN style="color: #800080;"&gt; = &lt;/SPAN&gt;mt_list&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iv_start&lt;SPAN style="color: #800080;"&gt; = &lt;/SPAN&gt;iv_start&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; iv_stop&lt;SPAN style="color: #800080;"&gt; = &lt;/SPAN&gt;COND #&lt;SPAN style="color: #800097;"&gt;(&lt;/SPAN&gt; &lt;SPAN style="color: #0000ff;"&gt;WHEN&lt;/SPAN&gt; iv_stop &lt;SPAN style="color: #0000ff;"&gt;IS&lt;/SPAN&gt; SUPPLIED THEN iv_stop&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ELSE&lt;/SPAN&gt; mv_size &lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt; &lt;SPAN style="color: #800097;"&gt;)&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P style="font-family: courier; color: black;"&gt;&amp;nbsp; &lt;SPAN style="color: #0000ff;"&gt;ENDMETHOD&lt;/SPAN&gt;&lt;SPAN style="color: #800080;"&gt;.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="font-size: 13.3333330154419px;"&gt;JNN&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 04 Mar 2015 23:02:50 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965197#M1893824</guid>
      <dc:creator>nomssi</dc:creator>
      <dc:date>2015-03-04T23:02:50Z</dc:date>
    </item>
    <item>
      <title>Re: Abap Iterating and Iterator Classes</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965198#M1893825</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Took a quick glance at blog and i'm excited. Right now I'm on 7.31 so i didn't know that 7.4 existed. I've only ventured into the SCN world over the last weekend and it's already helping quite a bit.&lt;/P&gt;&lt;P&gt;My apologises for questioning your code, it looked like a java hybrid with the inline conditional and table indexing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I like your implementation of the iterator class, I find iterators extremely useful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Do you happen to use the iterator with more advanced data structures such as hashmaps, arraylists, lists, etc?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Mar 2015 00:04:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965198#M1893825</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2015-03-05T00:04:11Z</dc:date>
    </item>
    <item>
      <title>Re: Abap Iterating and Iterator Classes</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965199#M1893826</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Jeffrey,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I added a comment on that blog post, but will duplicate it here. This is a nice blog post on this subject: &lt;A __default_attr="58802" __jive_macro_name="blogpost" class="jive_macro jive_macro_blogpost" data-orig-content="Become a JAVAPER - build your own ArrayList and Iterator" href="https://community.sap.com/" modifiedtitle="true" title="Become a JAVAPER - build your own ArrayList and Iterator"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Cheers,&lt;/P&gt;&lt;P&gt;Custodio&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Mar 2015 01:40:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965199#M1893826</guid>
      <dc:creator>custodio_deoliveira</dc:creator>
      <dc:date>2015-03-05T01:40:41Z</dc:date>
    </item>
    <item>
      <title>Re: Abap Iterating and Iterator Classes</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965200#M1893827</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hey &lt;SPAN style="color: #333333; font-size: 12px;"&gt;Custodio, &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-size: 12px;"&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-size: 12px;"&gt;That's a solid article. I just glanced at it quickly and from the looks of it, will be quite helpful.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-size: 12px;"&gt;Love the term JAVAPER, was never a fan of the ABAPER name, but i can do JAVAPER.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-size: 12px;"&gt;I'm currently implementing the java.util.logger package in abap so their interpretation of java code and data structure implementation should be useful. &lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The info is much appreciated bro,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Jeff&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 05 Mar 2015 17:35:34 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/abap-iterating-and-iterator-classes/m-p/10965200#M1893827</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2015-03-05T17:35:34Z</dc:date>
    </item>
  </channel>
</rss>

