<?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: Methods with memory in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/methods-with-memory/m-p/3196303#M761620</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Rainer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You could use the keyword STATICS to define static local variables within your methods. &lt;/P&gt;&lt;P&gt;However, STATICS cannot be used within instance methods (see ABAP keyword documentation). Anyway the use of static local variables is not recommended.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would use a very simple approach to implement this requirement:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;(1) Define a static table type attribute which will store the names of the already called methods&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;(2) Create a static method which checks if the method has already been called&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The sample report &lt;STRONG&gt;ZUS_SDN_METHODS_WITH_MEMORY&lt;/STRONG&gt; show how to implement this requirement:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  ZUS_SDN_METHODS_WITH_MEMORY&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Description: class memorized method calls&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Link: https:||forums.sdn.sap.com/threa.jspa?messageID=4646956&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zus_sdn_methods_with_memory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_memory DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_memory DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TYPE-POOLS: abap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLASS-METHODS:&lt;/P&gt;&lt;P&gt;      static_method_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;      instance_method_1,&lt;/P&gt;&lt;P&gt;      instance_method_2,&lt;/P&gt;&lt;P&gt;      display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;    TYPES:&lt;/P&gt;&lt;P&gt;      ty_t_methods   TYPE STANDARD TABLE OF tmdir&lt;/P&gt;&lt;P&gt;                     WITH DEFAULT KEY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLASS-DATA:&lt;/P&gt;&lt;P&gt;      mt_methods    TYPE ty_t_methods.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLASS-METHODS:&lt;/P&gt;&lt;P&gt;      has_been_called&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          value(id_method)  TYPE seocpdname&lt;/P&gt;&lt;P&gt;        RETURNING&lt;/P&gt;&lt;P&gt;          value(rd_result)  TYPE abap_bool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DATA:&lt;/P&gt;&lt;P&gt;      mo_table    TYPE REF TO cl_salv_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_memory DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_memory IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_memory IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD static_method_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF ( has_been_called( 'STATIC_METHOD_1' ) = abap_false ).&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "static_method_1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD instance_method_1.&lt;/P&gt;&lt;P&gt;    IF ( has_been_called( 'INSTANCE_METHOD_1' ) = abap_false ).&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "instance_method_1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD instance_method_2.&lt;/P&gt;&lt;P&gt;    IF ( has_been_called( 'INSTANCE_METHOD_2' ) = abap_false ).&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "instance_method_2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD display.&lt;/P&gt;&lt;P&gt;    TRY.&lt;/P&gt;&lt;P&gt;        CALL METHOD cl_salv_table=&amp;gt;factory&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       LIST_DISPLAY   = IF_SALV_C_BOOL_SAP=&amp;gt;FALSE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       R_CONTAINER    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CONTAINER_NAME =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;            r_salv_table   = me-&amp;gt;mo_table&lt;/P&gt;&lt;P&gt;          CHANGING&lt;/P&gt;&lt;P&gt;            t_table        = mt_methods.&lt;/P&gt;&lt;P&gt;      CATCH cx_salv_msg .&lt;/P&gt;&lt;P&gt;    ENDTRY.&lt;/P&gt;&lt;P&gt;    CHECK ( me-&amp;gt;mo_table IS BOUND ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD me-&amp;gt;mo_table-&amp;gt;display( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "display&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD has_been_called.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  define local data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    DATA:&lt;/P&gt;&lt;P&gt;      ls_method    LIKE LINE OF mt_methods.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE mt_methods TRANSPORTING NO FIELDS&lt;/P&gt;&lt;P&gt;         WITH KEY table_line = id_method.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        BINARY SEARCH.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    IF ( syst-subrc = 0 ).&lt;/P&gt;&lt;P&gt;      rd_result = abap_true.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      rd_result = abap_false.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR: ls_method.&lt;/P&gt;&lt;P&gt;      ls_method-classname = 'LCL_MEMORY'.&lt;/P&gt;&lt;P&gt;      DESCRIBE TABLE mt_methods.&lt;/P&gt;&lt;P&gt;      ls_method-methodindx = syst-tfill + 1.&lt;/P&gt;&lt;P&gt;      ls_method-methodname = id_method.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND ls_method TO mt_methods.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   SORT mt_methods BY table_line.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "has_been_called&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_memory IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  go_memory   TYPE REF TO lcl_memory,&lt;/P&gt;&lt;P&gt;  go_table    TYPE REF TO cl_salv_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT go_memory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD go_memory-&amp;gt;static_method_1( ).&lt;/P&gt;&lt;P&gt;  CALL METHOD go_memory-&amp;gt;instance_method_2( ).&lt;/P&gt;&lt;P&gt;  CALL METHOD go_memory-&amp;gt;instance_method_1( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD go_memory-&amp;gt;display( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&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;  Uwe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 28 Dec 2007 21:47:09 GMT</pubDate>
    <dc:creator>uwe_schieferstein</dc:creator>
    <dc:date>2007-12-28T21:47:09Z</dc:date>
    <item>
      <title>Methods with memory</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/methods-with-memory/m-p/3196302#M761619</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;i have a class with several methods. Some of these methods should remember if they are called the first time or not. Of course i can add some protected/private attributes to put this infoirmation in, but isnt there another way of doing that?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Dec 2007 11:55:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/methods-with-memory/m-p/3196302#M761619</guid>
      <dc:creator>rainer_hbenthal</dc:creator>
      <dc:date>2007-12-28T11:55:26Z</dc:date>
    </item>
    <item>
      <title>Re: Methods with memory</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/methods-with-memory/m-p/3196303#M761620</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Rainer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You could use the keyword STATICS to define static local variables within your methods. &lt;/P&gt;&lt;P&gt;However, STATICS cannot be used within instance methods (see ABAP keyword documentation). Anyway the use of static local variables is not recommended.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would use a very simple approach to implement this requirement:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;(1) Define a static table type attribute which will store the names of the already called methods&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;(2) Create a static method which checks if the method has already been called&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The sample report &lt;STRONG&gt;ZUS_SDN_METHODS_WITH_MEMORY&lt;/STRONG&gt; show how to implement this requirement:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Report  ZUS_SDN_METHODS_WITH_MEMORY&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Description: class memorized method calls&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Link: https:||forums.sdn.sap.com/threa.jspa?messageID=4646956&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;*&amp;amp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT  zus_sdn_methods_with_memory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_memory DEFINITION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_memory DEFINITION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TYPE-POOLS: abap.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PUBLIC SECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLASS-METHODS:&lt;/P&gt;&lt;P&gt;      static_method_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    METHODS:&lt;/P&gt;&lt;P&gt;      instance_method_1,&lt;/P&gt;&lt;P&gt;      instance_method_2,&lt;/P&gt;&lt;P&gt;      display.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  PRIVATE SECTION.&lt;/P&gt;&lt;P&gt;    TYPES:&lt;/P&gt;&lt;P&gt;      ty_t_methods   TYPE STANDARD TABLE OF tmdir&lt;/P&gt;&lt;P&gt;                     WITH DEFAULT KEY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLASS-DATA:&lt;/P&gt;&lt;P&gt;      mt_methods    TYPE ty_t_methods.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CLASS-METHODS:&lt;/P&gt;&lt;P&gt;      has_been_called&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          value(id_method)  TYPE seocpdname&lt;/P&gt;&lt;P&gt;        RETURNING&lt;/P&gt;&lt;P&gt;          value(rd_result)  TYPE abap_bool.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    DATA:&lt;/P&gt;&lt;P&gt;      mo_table    TYPE REF TO cl_salv_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_memory DEFINITION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      CLASS lcl_memory IMPLEMENTATION&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CLASS lcl_memory IMPLEMENTATION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD static_method_1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF ( has_been_called( 'STATIC_METHOD_1' ) = abap_false ).&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "static_method_1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD instance_method_1.&lt;/P&gt;&lt;P&gt;    IF ( has_been_called( 'INSTANCE_METHOD_1' ) = abap_false ).&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "instance_method_1&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD instance_method_2.&lt;/P&gt;&lt;P&gt;    IF ( has_been_called( 'INSTANCE_METHOD_2' ) = abap_false ).&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "instance_method_2&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD display.&lt;/P&gt;&lt;P&gt;    TRY.&lt;/P&gt;&lt;P&gt;        CALL METHOD cl_salv_table=&amp;gt;factory&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       LIST_DISPLAY   = IF_SALV_C_BOOL_SAP=&amp;gt;FALSE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       R_CONTAINER    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       CONTAINER_NAME =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;          IMPORTING&lt;/P&gt;&lt;P&gt;            r_salv_table   = me-&amp;gt;mo_table&lt;/P&gt;&lt;P&gt;          CHANGING&lt;/P&gt;&lt;P&gt;            t_table        = mt_methods.&lt;/P&gt;&lt;P&gt;      CATCH cx_salv_msg .&lt;/P&gt;&lt;P&gt;    ENDTRY.&lt;/P&gt;&lt;P&gt;    CHECK ( me-&amp;gt;mo_table IS BOUND ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL METHOD me-&amp;gt;mo_table-&amp;gt;display( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "display&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  METHOD has_been_called.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  define local data&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    DATA:&lt;/P&gt;&lt;P&gt;      ls_method    LIKE LINE OF mt_methods.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    READ TABLE mt_methods TRANSPORTING NO FIELDS&lt;/P&gt;&lt;P&gt;         WITH KEY table_line = id_method.&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;        BINARY SEARCH.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;    IF ( syst-subrc = 0 ).&lt;/P&gt;&lt;P&gt;      rd_result = abap_true.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      rd_result = abap_false.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      CLEAR: ls_method.&lt;/P&gt;&lt;P&gt;      ls_method-classname = 'LCL_MEMORY'.&lt;/P&gt;&lt;P&gt;      DESCRIBE TABLE mt_methods.&lt;/P&gt;&lt;P&gt;      ls_method-methodindx = syst-tfill + 1.&lt;/P&gt;&lt;P&gt;      ls_method-methodname = id_method.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND ls_method TO mt_methods.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;   SORT mt_methods BY table_line.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDMETHOD.                    "has_been_called&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDCLASS.                    "lcl_memory IMPLEMENTATION&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;  go_memory   TYPE REF TO lcl_memory,&lt;/P&gt;&lt;P&gt;  go_table    TYPE REF TO cl_salv_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CREATE OBJECT go_memory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD go_memory-&amp;gt;static_method_1( ).&lt;/P&gt;&lt;P&gt;  CALL METHOD go_memory-&amp;gt;instance_method_2( ).&lt;/P&gt;&lt;P&gt;  CALL METHOD go_memory-&amp;gt;instance_method_1( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD go_memory-&amp;gt;display( ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&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;  Uwe&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 28 Dec 2007 21:47:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/methods-with-memory/m-p/3196303#M761620</guid>
      <dc:creator>uwe_schieferstein</dc:creator>
      <dc:date>2007-12-28T21:47:09Z</dc:date>
    </item>
  </channel>
</rss>

