Persistent Object Service – Example

By | April 22, 2009 | ABAP Objects, OO Concepts | 14,052 | 0

Shows how to use the Persistent object in the Application.

Previously, we have seen Persistent Object Services – Basics. Today we will see how to use the Persistent Object services in the test application. You can find all these under ABAP Objects.

To use the persistent objects, we need to:
Get the Agent Object by accessing the public attribute AGENT in the agent class.
For Read access, get the persistent object by using the GET_PERSISTENT method of the agent object. To create entry using the persistent objects, we need to use the CREATE_PERSISTENT method of the agent object.

Lets see it by example. For demo purpose, we will use the class CL_SPFLI_PERSISTENT.

Code Snippet to show the use of the Persistent Object

*&---------------------------------------------------------------------*
*& Shows how to use the Persistent Service to work with Persistent
*&  objects to get data and create entries.
*&---------------------------------------------------------------------*
*
REPORT  ztest_persistent.
*
DATAlo_spfli_a  TYPE REF TO ca_spfli_persistent,   " Actor Class
      lo_spfli_c  TYPE REF TO cl_spfli_persistent,   " Persistent Class
      lo_exc      TYPE REF TO cx_root.               " Exception
*
DATAla_cityfrom TYPE spfli-cityfrom.
*
START-OF-SELECTION.
*
* Get the Agent
  lo_spfli_a ca_spfli_persistent=>agent.
*
***** Reading the Entry
  TRY.
*     Get the Persistent object for key
      lo_spfli_c lo_spfli_a->get_persistent(
                      i_carrid 'AA'
                      i_connid '0017' ).
*
*     Print the CITYFORM, if the persistent object is created
      IF lo_spfli_c IS BOUND.
        la_cityfrom lo_spfli_c->get_cityfrom).
        WRITE'City From:'la_cityfrom.
*
*     Write: No data message
      ELSE.
        WRITE'No data found'.
      ENDIF.
*
*   Exception handling
    CATCH cx_root INTO lo_exc.
      MESSAGE lo_exc TYPE 'S'.
  ENDTRY.
  CLEARlo_spfli_a,
         lo_spfli_c.
*
***** Creating the Entry
* Get the Agent (same agent object due to Singleton)
  lo_spfli_a ca_spfli_persistent=>agent.
*
  TRY.
*     Get the Persistent object for key
      lo_spfli_c lo_spfli_a->create_persistent(
                      i_carrid 'ZZ'
                      i_connid '0017' ).
*
*     set the CITYFROM
      lo_spfli_c->set_cityfrom'NY' ).
*
*   Exception handling
    CATCH cx_root INTO lo_exc.
      MESSAGE lo_exc TYPE 'S'.
  ENDTRY.
*
* Required to coommit the changes to database
  COMMIT WORK.

You can check the standard program DEMO_CREATE_PERSISTENT.

Some facts:
- Singleton Design pattern is used for the Agent object in the agent class.
- We need to call the COMMIT WORK in order to update our changes into the database table
- If the entry doesn’t exist in the database than resulting object of method GET_PERSISTENT would not be bound.

Like It? Share!!

Don't miss an Update

Get notified of the new post, right into your inbox

Naimesh Patel{272 articles}

I'm SAP ABAP Consultant for more than a decade. I like to experiment with ABAP especially OO. I have been SDN Top Contributor.
Follow :

Explore all of his 272 articles.

Load comments

Comments on this Post are now closed. If you have something important to share, you can always contact me.

You seem to be new here. Subscribe to stay connected.