Need of persistent object

Hi Gurus.,
     I am little bit confused over Persistent Objects.. Y we need to use Persistent Objects.. Is it equal to Enquee/Dequee process of normal abap ..
Regards.,
S.Sivakumar

Persistent objects were introduced in ABAP OO in order to replace physical data manipulation via open SQL statements by more abstract OO-typical GET and SET methods for a persistent data object. Has nothing to do with Dequeue/Enqueue.
I recommend reading chapter 3 of [Next Generation ABAP Development|http://www.sappress.com/product.cfm?account=&product=H1986] for the full story.
Greetings
Thomas

Similar Messages

  • Switch between transient and persistent objects?

    Hi Folks,
    I'm Re: transient object to persistent to ask this type of question, but couldn't find an answer.
    Using persistent classes, does anyone know an elegant way to convert a transient object to a persistent one and vice versa? There is no standard functionality provided that I can see, and cloning the object results in clashing keys.
    What am I trying to accomplish?
    I need an object instance which <i>may</i> exist in the DB and if not, it <i>may</i> need to be saved for future use. I'm using a table with key fields K1 and K2 and the app will ask for an object instance using the full key K1+K2.
    If the object doesn't find a DB record for K1K2 then it should instantiate itself with values for K1blank. Here is where I'm considering transient in order to provide the app with default functionality defined in record K1+blank.
    If a write access occurs to a transient object then is should become persistent and the K1+K2 record be created.
    Any ideas appreciated.
    Cheers,
    Mike

    Hi Mike,
    I written something similar working on Persistent Objects.
    The only point of attention is that you cannot create a new persistent while a transient is resident in memory.
    This is checked by the OS system during the creation of a new persistent:
    in method CREATE_PERSISTENT of Basis Class, there is a check on the existing object:
    * Precondition   : No object exists with the given business key, neither
    *                  in memory nor on database.
    So, you can create a new transient, fill it with the values you need and then pass this values to the agent to create a new persistent, but only after releasing the existing transient (because they will have the same key).
    I've solved the problem like this:
    METHOD flush.
    "IMPORTING value(im_transient) TYPE REF TO zcl_liquidate_daily_bo
    "IMPORTING value(im_commit) TYPE xfeld
    "IMPORTING value(im_agent) TYPE REF TO zca_liquidate_daily_bo
    "RETURNING value(re_persistent) TYPE REF TO zcl_liquidate_daily_bo
    "--> raised by event PERNR_PROCESSED
      DATA: s_dip_liq TYPE zhr_tm_dip_liq.
      s_dip_liq-zpernr    = im_transient->get_employee_no( ).
      s_dip_liq-zsocmat   = im_transient->get_matricola_legale( ).
      s_dip_liq-zdataev   = im_transient->get_event_date( ).
      s_dip_liq-zcodev    = im_transient->get_event_type( ).
      s_dip_liq-zdescev   = im_transient->get_event_descr( ).
      s_dip_liq-zmotev    = im_transient->get_event_reasn( ).
      s_dip_liq-zmeseall  = im_transient->get_mese_allineamento( ).
      s_dip_liq-zannoall  = im_transient->get_anno_allineamento( ).
    * // Invalidate the transient before create the persistent!
      im_agent->if_os_factory~release( im_transient ).
      CLEAR im_transient.
      IF im_commit EQ abap_true.
        TRY.
    re_persistent =
    im_agent->create_persistent( EXPORTING i_anno_allineamento = s_dip_liq-zannoall
                                                   i_mese_allineamento = s_dip_liq-zmeseall
                                                   i_employee_no       = s_dip_liq-zpernr
                                                   i_event_date        = s_dip_liq-zdataev
                                                   i_event_type        = s_dip_liq-zcodev
                                                   i_event_descr       = s_dip_liq-zdescev
                                                   i_event_reasn       = s_dip_liq-zmotev
                                                   i_matricola_legale  = s_dip_liq-zsocmat ).
          CATCH cx_os_object_existing.
        ENDTRY.
        COMMIT WORK AND WAIT.
      ENDIF.
    ENDMETHOD.
    This method is called inside a loop on a table that containes references to transient objects.
    For each object I perform some tasks, and if all it's ok I raise the event PERNR_PROCESSED, which automatically calls this method FLUSH, transferring the transient to the persistent.
    Return Object is the new persistent, which will be passed back to the internal table, changing the content from the transient to the new persistent.
    Hope this helps,
    Roby.

  • Problem with Persistent Object as Reference Attribute of Persistent Object

    Hello All,
    I have a problem with a persistent class that contains a reference attribute to another persistent class.  I can write the reference object attribute to the DB but when I read the reference attribute back from the DB the object is null.  Allow me to explain...
    I have two tables; one is a data table with one key field of type OS_GUID, the second is a mapping table with several business key fields and two further fields; an instance GUID and a class identifier GUID.  The data table is used to contain all the data for an object.  The mapping table is used to hold a relationship between the GUID assigned in the data table and the business key.  The mapping table has been structured in this way by following the help here:
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/df/e785a9e87111d4b2eb0050dadfb92b/frameset.htm
    and the field mapping in persistent class for the mapping table has been mapped following the help here:
    http://help.sap.com/saphelp_erp2005vp/helpdata/en/06/f23c33638d11d4966d00a0c94260a5/frameset.htm
    The code I use to create entries in the data and mapping table is:
    <-snip->
      DATA:
        gv_blank_data_guid TYPE REF TO zcl_ps_data,
        gv_data_guid       TYPE        os_guid,
        go_data_ps         TYPE REF TO zcl_ps_data,
        go_data_agent      TYPE REF TO zca_ps_data,
        go_data_map_ps     TYPE REF TO zcl_ps_data_map,
        go_data_map_agent  TYPE REF TO zca_ps_data_map,
        go_exc             TYPE REF TO cx_root.
      go_data_agent = zca_ps_data=>agent.
      go_data_map_agent = zca_ps_data_map=>agent.
      TRY.
    Check if there's already data with the business key on the DB
          go_data_map_ps = go_data_map_agent->get_persistent(
                             i_data_ref     = iv_data_ref
                             i_action       = iv_action ).
    ... if there is then exit.
          EXIT.
        CATCH cx_root INTO go_exc.
      ENDTRY.
      TRY.
    Create the data...
          go_data_ps = go_data_agent->create_persistent(
                           i_root_guid = gv_blank_data_guid
                           i_req_date  = iv_req_date ).
          TRY.
    ... finally, write the new data to the data business key map table
              go_data_map_ps = go_data_map_agent->create_persistent(
                                 i_data_ref     = iv_data_ref
                                 i_action       = iv_action
                                 i_data_guid    = go_data_ps ).    "note1
            CATCH cx_root INTO go_exc.
          ENDTRY.
        CATCH cx_os_object_not_found.
      ENDTRY.
      COMMIT WORK.
    <-snip->
    The fact that it is possible to pass the object GO_DATA_PS in the call to GO_DATA_MAP_AGENT (the line that I've put the comment "note1" on) indicates to me that the reference to the data persistent object can be written to the DB by the mapping persistent object.  After executing the above code the mapping table object and class identifier fields are populated.  Also, if multiple entries are written to the tables then the class identifier field in the mapping table is always the same and the object ID is different as expected.
    However, the problem I have is if I read an object from the DB using the business key with the following code:
    <-snip->
      DATA:
        gv_req_date        type        datum,
        gv_data_guid       TYPE        os_guid,
        go_data_ps         TYPE REF TO zcl_ps_data,
        go_data_agent      TYPE REF TO zca_ps_data,
        go_data_map_ps     TYPE REF TO zcl_ps_data_map,
        go_data_map_agent  TYPE REF TO zca_ps_data_map,
        go_exc             TYPE REF TO cx_root.
      go_data_agent = zca_ps_data=>agent.
      go_data_map_agent = zca_ps_data_map=>agent.
      TRY.
    Read data mapping with the business key
          go_data_map_ps = go_data_map_agent->get_persistent(
                             i_data_ref     = iv_data_ref
                             i_action       = iv_action ).
    ... then read the data.
          TRY.
              CALL METHOD go_data_map_ps->get_data_guid
                RECEIVING
                  result = go_data_ps.
            CATCH cx_os_object_not_found.
          ENDTRY.
        CATCH cx_root INTO go_exc.
      ENDTRY.
    <-snip->
    At no point during this code are the attributes of the object of the persistent class for the data table populated with the contents of the fields of the data table referenced as the attribute of the mapping table.  To clarify, when viewing the object in the debugger all the attributes of the mapping object that are simple table fields are populated with the values of the fields of in the mapping table, however, the attributes of the object that represents the persistent class for the data table are not populated with the fields of the data table.  I had hoped that by reading the mapping table object the data object would automatically be populated.  Is there another step I need to perform to populate the data object?
    I'm sorry if the above is hard to follow.  Without being able to provide screenshots it's difficult to explain.
    If someone has managed to store references to persistent objects in a table and then read the references back could you list the steps you went through to create the persistent classes and include the code that reads the objects please?  The code I have almost works, I must be just missing some subtle point...
    Thanks in advance,
    Steve.

    Hi Andrea,
    The iObject being replicated at item level for Service Complaints is the SAP standard behaviour.
    Generally we raise complaint refering to some sales or service issues. In your scenario you are trying to create a complaint based on an iObject, then you have to mention the corresponding product details. I dont see any business requirement not to copy the iObject product at the item level.
    If you want it then I think only you have to write a Z program for it.
    Hope this helps!
    Regards,
    Chethan

  • Hashtable with persistent object as key and collection as value

    I am trying to use a Hastable with a persistent object as the key and a
    collection as the value. A long time ago, Abe White said:
    "Kodo currently does not support a map in which the keys are persistent
    objects and the values are collections. I think your best bet would be
    to create an intermediate class that has a 1-1 relation to the "key" and
    a collection of persistent objects for the "value". Then keep a
    collection of these intermediate objects. You could use jdoPostLoad and
    jdoPreStore to hash/unhash the collection of intermediate objects to/from
    a Map if you need to."
    So I made an intermediate class, which gave me a Hashtable with a persistent
    object as the key and another for the value. Then the one for the value
    contains the collection. This works but I'm wondering about the
    performance, would this method be slower?
    Also it was said that version 3.0 would support this. I'm curious if this
    is available in 2.5 or if it's still planned for 3.0.
    Thanks
    Michael

    I'm observing massive performance problems but I didn't think it could be
    caused by this intermediary object but maybe that is the problem. For
    example if I start a transaction to delete everything (with 3,000 records
    which in turn has 3,000 records which in turn has 2 lists each) theprogram
    crashes before it can finish the transaction. I then put in some loops to
    delete 100 records at a time and this runs but it took over an hour to
    delete the 3,000 records.
    Do you have any other ideas of how to improve the performance? Are there
    any alternatives?I solved the performance problem. I was storing web page content (all the
    HTML) in a String which by default is in the default-fetch-group. I had
    been thinking this was using lazy-loading but it wasn't. So I put
    default-fetch-group=false for this property and now the performance is
    great. It makes sense because it was retrieving approximately 5k of text
    for each record! When deleting 3,000 records this comes out to be 14 megs.
    Moral of the story: Use the default-fetch-group wisely!!

  • Collection of non-persistent objects

    Greetings
    Is it possible to persist a Collection of non-persistent objects through the
    kodo externalization feature? The non-persistent objects themselves are
    externalizable, but I don't know how I would go about persisting a
    Collection of them.
    ..droo.

    If you store them in some sort of externalized form in a single column it is
    easy - just use externalization framework to ext and de-ext them to anf from
    string. Couple of caveats you need to be aware of If your collection objects
    are mutable:
    1. You need to durty your collection field so it get prsisted on commit
    2. on rollback Kodo will restore you collection content but not collection
    member content. If they are mutable you will have to make their class
    persistent with mapping "none" so they participate in transaction
    "Drew Lethbridge" <[email protected]> wrote in message
    news:BD0B44BF.544%[email protected]..
    Greetings
    Is it possible to persist a Collection of non-persistent objects throughthe
    kodo externalization feature? The non-persistent objects themselves are
    externalizable, but I don't know how I would go about persisting a
    Collection of them.
    .droo.

  • Use of Ref and Persistent Objects

    Hi,
    I am using OTT and I have created a sub class for the OTT generated class
    i.e.,
    class A:public PObject//OTT generated
    class B:public A//created by me
    for Class B I need to write a static function queryKey() which will return a pointer to persistent object of class B,
    i.e.,
    B* B::queryKey(Number c,Number d);
    I have implemented it something like this...
    B* B::queryKey(      OCCI_STD_NAMESPACE::string c,
                        oracle::occi::Number d,
                        oracle::occi::Number e)
         Statement *stmt=NULL;
         ResultSet *rset=NULL;
         CCPDKey *handle=0;
         try
              string query="SELECT REF(a) FROM ";
              query=query+tableName+ (" a WHERE C=:1 AND D=:2 AND E=:3 ");
              stmt=conn-&gt;createStatement(query);
              stmt-&gt;setString(1,c);
              stmt-&gt;setNumber(2,d);
              stmt-&gt;setNumber(3,e);
              rset=stmt-&gt;executeQuery();
              if(rset-&gt;next())
                   Ref &lt; B &gt; r1(rset-&gt;getRef(1));
                   handle=r1.ptr();
         catch(...)
              stmt-&gt;closeResultSet (rset);
         conn-&gt;terminateStatement (stmt);
              throw;
         stmt-&gt;closeResultSet (rset);
    conn-&gt;terminateStatement (stmt);
         return handle;
    Is this the correct way of doing it,
    Will the persistent object pointed by handle get destroyed as the scope of Ref i.e.,r1 ends..?
    If so, what is the correct way of doing it..?
    I need this method to return a B*.
    If the way I have used is correct,Do I need to delete the variable handle once I am done using it..?I saw in "Using OCCI: Best Practices" that the persistent object should not be deleted unless you are doing rollback.
    I am new to OCCI and i am confused
    Please help
    Ajey

    In the function B::queryKey(), the Ref<B> variable will go out of scope at the end of the if {} statement and the Ref will be unpinned. So, the "handle" object pointer variable will be pointing to an object that could be freed anytime by the garbage collector.
    Can you change your design to return a Ref<B> from B::queryKey()? If you want to return the object pointer directly then you will have to manage pining/unpining of the object. With Refs, the pining/unpining is transparently managed by OCCI and with the "->" operator you can write code which is the same as with the object pointer.
    Thanks,
    Shankar

  • Error : the class does not match the class of the persisted object

    Hi I am new to Java.. I got an exception "the class does not match the class of the persisted object for cl = java.util.Vector : __SUID = -2767605614048989439, getSUID(cl) = 1".. What it implies? I got Serialized stream and Object from Web Server.. How to resolve this Exception? I nead to Deserialize this stream...

    ArulPrabhu wrote:
    Friend... I agree with u... Every thing Ok... I am not having the option to make change on the server side... I call a webrequest for the URI - "http://www.nseindia.com/chartdata?mkttype=N&series=EQ&symbol=RPOWER&charttype=ONLINE_STOCK".. From that i got response as Serialized Object Stream... Which is the data made available to all through their applet "Chart".. But i need it for my Custom Project.. I know the Structure of class they have serialized... Is their any chance to parce Data from that Stream..
    Three words.
    You are doomed.
    Whatever you end up doing will not be serialization. It will be reverse engineering of a old (dead) format that could go all pear shaped on you when you least expect it. One of the worst problems in using a solution where you reverse engineer, try and guess hackery your way through a proprietary semi (or totally) undocumented format is that it is really impossible to test your code with any degree of certainty. Does your code actually work? Or does it only work because you haven't seen some totally unexpected (but legal for the format) format yet?
    Get the producer to produce XML instead of "serialized" data. This is a much better route for you to go down.
    If you decide to keep on your path then grab a DataInputStream and go somewhere else because you'll have to figure out the format of another languages serialized data on a place that isn't this site.

  • How can i get the unitOfWork or the persisting object in to my listener???.

    hi,
    i have a listener class which extends SessionEventAdapter ....as shown below
    public class MyLister extends SessionEventAdapter{
    public void postCommitUnitOfWork(SessionEvent event) {
    System.out.println("POST COMMIT OF WORK");
    // How can i get the unitOfWork or the persisting object in to my listener???
    Another class makes use of this listener by adding the listener into a getEventManager() of a session ....
    public final class AetbProcessStatusClient {
    public static final void main(String[] args)
    {  Project project =   
    XMLProjectReader.read("META- INF/AetbProcessStatus.xml",
    Thread.currentThread().getContextClassLoader());
    DatabaseSession session = project.createDatabaseSession();
    MyLister myListener = new MyLister();
    session.getEventManager().addListener(myListener);
    session.login();
    UnitOfWork uow = session.acquireUnitOfWork();
    uow = session.acquireUnitOfWork();
    Vector vec =
    (Vector)uow.executeQuery("SQFunctionIdProcessStatus", AetbProcessStatus.class);
    AetbProcessStatus processStatus = new AetbProcessStatus();
    processStatus = (AetbProcessStatus)vec.get(0);
    processStatus.setRunStat('E');
    processStatus.setProgramSeqNo(10);
    uow.commit();
    now my question --> How can i get the unitOfWork or the persisting object in to my listener???....
    ie the object "processStatus" into my listener

    The SessionEvent's session (getSession()), should be the UnitOfWork. You can access the UnitOfWork or UnitOfWorkImpl methods to access the objects in the unit of work. getUnitOfWorkChangeSet() will return the changes made in the UnitOfWork.
    -- James : http://www.eclipselink.org

  • Need to persist data in JVM...

    Hi,
    I have a requirement in my project where once the user logs in, the database is queried and some information
    related to the user is retrieved and stored in JVM.So the number of hits to the database is decreased.
    The requirement in detail :
    This is Simple Cart-Shopping application.
    There is a UI which displays various products which one can view and purchase.
    *1)Once the user logs in he can view the various products.*
    *2)There are restriction which decides which products that particular user can purchase,*
    although a user can view all the products listed in the store.
    *3)Every time a user clicks on a product, database is queried to retrieve access info for the user on that product.*
    *4)If a user has proper access only then he can purchase the product.*
    Presently the database is queried in all the four steps explained above.
    I intend to :
    Hit database once user logs in and retrive information regarding the access levels of the user for all products listed in the store.
    Persist this info in JVM(serialization or by other means...).
    Now for any further access info, the persisted objects will provide the data.
    This reduces the database hits.
    Other details :
    App Server - Jboss
    Database - oracle
    Expected Concurrent users - 2000 - 3000
    Please provide your suggestions as to what should be the ideal approach.
    regards,
    Abhishek.

    Hi,
    The valueHolder class is a name a suggested and it is used in axis webservice implementation to hold the value by refrence ( array ) which is an implemetaion (if I still remember ) of the wsdl array type
    Even Spring is using this type of pattern to hold a constructor argument as an inner static class for another class.
    Ex:
    import java.util.HashMap;
    import java.util.Map;
    public class  ValueHolder {
         private static final Map<String, Information> valueHolder = new HashMap<String, Information>();
         public static void addValue(String userId, Information info) {
              valueHolder.put(userId, info);
         public static Information getValue(String userId) {
              return valueHolder.get(userId); // check for none existing userId to avoid null returned value
         public void cleanOnEvent(){
               * Clean on certain occation if the heap size gets into certain point etc.. or other
               *  predefined conditions etc..
              valueHolder.clear();
    }Regards,
    Alan Mehio
    London,UK

  • In which situation I need to active objects after transport

    Hi Experts,
        I'm wondering in which situation I need to active object after transport?  In some cases, I have to active transformation, DTP, infoobject, multiprovider....  Does any one make a conclusion of that?
        thanks in advance.
    Eric

    Sometimes, because of impact of a transport some other objects will be deactivated, then we need to manuaaly activate the objects after transport.
    Also, sometimes transport after import process could not be able to activate the objects, then also we have to activate them manually.
    Or suppose, you have moved and infoobject, due to which some other objects become inactive (where ever infoobjects is being used), then we have to activate them manually, if you dont want to transport them.

  • Need to send object instances over the network

    I found no other way to implement a switch case to cast objects on both sides to solve my problem.
    Basically I need to send objects over a network protocol based on XML, the object is sent inside XML
    converted in base64, overall encoding of XML is utf-8.
    Let's suppose in my network there are 2 peers connected via socket.
    I have multiple instances of different types on both peers but I want to keep these instances
    synchronized. If something changes on side A, side B must receive that instance and replace
    it in the correct place (just one way, from A to B).
    When I receive such instance on B I want to cast it to it's proper instance
    of it's proper type and I am scratching my head on how could I implement this without some
    sort of unique ID table and switch case.
    If I had 1 instance per type could it be done easily?
    But I need to keep in synch many instances per type.
    Is there any dynamic casting that I can trigger based on some type/instanceID information
    I could send along the object?

    I found no other way to implement a switch case to cast objects on both sides to solve my problem.
    Basically I need to send objects over a network protocol based on XML, the object is sent inside XML
    converted in base64, overall encoding of XML is utf-8.
    Let's suppose in my network there are 2 peers connected via socket.
    I have multiple instances of different types on both peers but I want to keep these instances
    synchronized. If something changes on side A, side B must receive that instance and replace
    it in the correct place (just one way, from A to B).
    When I receive such instance on B I want to cast it to it's proper instance
    of it's proper type and I am scratching my head on how could I implement this without some
    sort of unique ID table and switch case.
    If I had 1 instance per type could it be done easily?
    But I need to keep in synch many instances per type.
    Is there any dynamic casting that I can trigger based on some type/instanceID information
    I could send along the object?

  • Cloning persistent objects

    Does anyone know if ABAP Persistent Objects support cloning?
    I can clone the object using a SYSTEM-CALL (though I'd rather not), however that would still mean breaking the rules to set the object key to a new value.
    At the moment the only solution appears to be creating a new persistent or transient object via the agent and manually assigning the attributes.

    Thanks Uwe. I knew about the SYSTEM-CALL but in this case it does not help.
    My problem is that the object key of a persistent object does not appear to be easily modified even from within the object. I want to clone the object and then modify the key to avoid insert collisions.
    So far as I can see there is no simple way of modifying the business key of a persistent object.
    For now I've implemented IF_OS_CLONE~CLONE in a public method of my persistent object, created a new persistent object and manually assigned the attributes. Unfortunately the code will have to be modified whenever a new attribute is added.

  • Equality between primitive and persistent objects

    Folks,
    I have discovered by chance that the KODO Query implementation allows me
    to test for equality between an Integer and a persistent object. This is
    actually phenomenally useful because it allows me to easily work around
    some really inefficient auto-generated SQL (see below).
    I couldn't find anything about this feature in the JDO specs. Is it
    accidental? Is it supported, or likely to disappear in future versions?
    Dave Syer.
    # 'bean' is an object already loaded from the persistence store
    javax.jdo.JDOHelper.getObjectId(bean)Bean-101
    # it has one mutable property, which is persistence capable
    # and also a read-only property which is the database id
    # (Integer) of the property:
    javax.jdo.JDOHelper.getObjectId(bean.getProperty())Property-371
    bean.getPropertyId()371
    # get an extent for querying (pm is the PersistenceManager)
    ex=pm.getExtent(Bean,0)# First do a query on property...
    qu=pm.newQuery(ex);
    qu.declareParameters("Property id1");
    qu.setFilter("property == id1")# ...generates SQL with additional unnecessary(?) Cartesian join
    # to PROPERTY table:
    res=qu.execute(bean.getProperty())# resulting SQL:
    # SELECT t0.PROPERTY_ID, t0.PROPERTY_ID FROM BEAN t0, PROPERTY t1
    # WHERE (t0.PROPERTY_ID = 371 AND t0.PROPERTY_ID =
    # t1.PROPERTY_ID)
    # Now do a query on propertyId (Integer)...
    qu=pm.newQuery(ex);
    qu.declareParameters("java.lang.Integer id1");
    qu.setFilter("propertyId == id1")# ...but parameter value is allowed to be a Property -- magically
    # turned into an integer when the SQL is generated:
    res=qu.execute(bean.getProperty())# resulting SQL:
    # SELECT t0.PROPERTY_ID, t0.PROPERTY_ID FROM BEAN t0 WHERE
    # t0.PROPERTY_ID = 371

    It is accidental and unsupported.Is there any other way to get round the 'unnecessary join' issue that I
    mentioned briefly in my original posting? In a real world example, I was
    able to improve performance of a single query by a factor of 100 (and my
    DB experts tell me there was no way to optimise indexes or anything at the
    RDBMS level and achieve the same result).
    DAve.

  • Persistent objects - base table syntax error

    I've created a persistent object for a ztable, then the customer has asked me to change the counter field from numc 3 to numc 5, and also remove a field  I've done this, and activated and adjusted the table in SE14.
    Now, in SE24, I've gone in and adjusted the persistence mapping.  When I activate the persistent class, I now get a syntax error in the base class, because it's still referring to components of the old table structure.
    When we change the structure of the underlying table, do we have to delete and recreate the persistence classes?  Is there a "repair" option?
    ( It seems it would be useful to have a tool that would generate a basic persistent class directly from a table ).
    matt

    Hi Matt,
    There is no repair option.  As far as I'm aware the persistence class builder function doesn't recognise changes to data types unfortunately.  In similar circumstances I've solved the problem by deleting and recreating the class.  It's not ideal but at least it's a quick process.
    Regards,
    Steve.

  • Updation of persistent object

    Hi,
    I'm using objects persistence. I've created a persistent class and using this for storing data in an index cluster table to use the stored data afterwards.
    I've created methods for creating persistent object (using export to database), delete object and read object (using import to database).
    But i'm not getting how to use update of existing stored object.
    Any help would be appreciated.
    Regards
    Rajesh

    Persistent objects were introduced in ABAP OO in order to replace physical data manipulation via open SQL statements by more abstract OO-typical GET and SET methods for a persistent data object. Has nothing to do with Dequeue/Enqueue.
    I recommend reading chapter 3 of [Next Generation ABAP Development|http://www.sappress.com/product.cfm?account=&product=H1986] for the full story.
    Greetings
    Thomas

Maybe you are looking for

  • Send Mail to Customer while saving the Sales Order

    Dear Friends, My Requirment is to send the mail to Customer automaticaly when create any Sales Order. While sending the mail given three points reqired. 1.     Send the attachment of Order Conformation along with the mail. 2.     There must be The ti

  • Error in Copying Company COde

    Hello All, Through SPRO, when I am trying to copy company code 0001 to 9999 (with currency USD), I am getting following error ""Enter numeric values only The value "12 " was entered in the field "REICHWEITE". This is not possible because it is a nume

  • IMessage from iPhone 5 not working to iPad 2 internationally

    Hi there, I am hoping someone can help me with clarifying why iMessage from my wife (iPhone 5, iOS 6.1.3, currently in South Africa) is not working to me (iPad2, iOs 6.1.3) at the moment.  She is unable to send to me, but experiences no problems in s

  • Repeat the execution of one pl. sequence for different filters (proc. chain

    Hello experts we have a planing sequence which is designed to handle one value of the characteristic "plan" in the filter. In one special case we have to execute the sequence for all values of the characterisitc "plan". In this special case we start

  • What is the name of the CD drive?

    I'm taking an online graduate course, and they have sent me a CD-ROM with a audio lecture and accompanying slide presentations. The preferences part of the online BlackBoard class environment prompts you to identify the cd drive on the computer to ma