ARTICLE
Management States in the Persistence Service
An object of a persistent class managed by the Persistence Service can
have one of seven different management states. The state of the object
affects what methods of the Persistence Service can be performed on it.
The methods of the interface
IF_OS_CA_INSTANCE provide information on the state of managed
objects.
The following constants of the type group
OSCON return the state of the object:
Constant Value State
OSCON_OSTATUS_NOT_LOADED 0 Representative object for a
persistent object, data not yet loaded from the database.
OSCON_OSTATUS_NEW 1The object is persistent and is newly
created.
OSCON_OSTATUS_LOADED 2The object is persistent and has been
loaded completely.
OSCON_OSTATUS_CHANGED 3The object is persistent and has been
changed.
OSCON_OSTATUS_DELETED 4The object is persistent and has been
deleted.
OSCON_OSTATUS_TRANSIENT 10The object is transient.
OSCON_OSTATUS_LOADING 12The object is being loaded at this
moment.
The states 0 to 4 describe persistent objects with a connection to the
database. An object in state 10 is managed by the Persistence Service
but has no connection to the database.
An object in state 12 is in transition to the state
OSCON_OSTATUS_LOADED . This state can be observed only in the method
INIT of the interface IF_OS_STATE
, so it will not be listed in the following tables.
The table below indicates the methods of the Persistence Service that
can be performed on objects in different states, and how they affect the
state of the managed object. The last line shows the effect of the
statement COMMIT WORK .
Method - 0 1 2 3 4
10
CREATE_PERSISTENT 13 exc exc exc 3
exc
DELETE_PERSISTENT -40444 exc
GET_PERSISTENT 22123 exc exc
GET_attribute exc 2133 exc 10
SET_attribute exc 3133 exc 10
REFRESH_PERSISTENT exc 0 exc 0 exc
exc exc
RELEASE exc - exc - exc exc
exc
CREATE_TRANSIENT 10 exc exc exc exc
exc exc
GET_TRANSIENT exc exc exc exc
exc exc 10
COMMIT WORK -0000-10
All methods (except GET_attribute and SET_attribute ) are
methods of the class actor. For simplicity�s sake, we have summarized
the class and interface methods by using typical names for them.
GET_attribute and SET_attribute are methods of the persistent
class.
The numbers reflect the management states. For example, the
DELETE_PERSISTENT method shifts a persistent object from the state 0,
2, 3, or 4 to the state 4.
The dash (-) indicates that an object of a persistent class is available
but cannot be managed. A situation like this may occur, for example, if
the system deletes a persistent object by passing a reference to the
DELETE_PERSISTENT method. The COMMIT WORK statement
deletes the object from the database and it is no longer managed.
However, it still exists in the internal session until all references to
it are also deleted.
As you can see from the table, the DELETE_PERSISTENT ,
GET_PERSISTENT , and REFRESH_PERSISTENT methods can work only
with persistent objects in a state from 0 to 4, while GET_TRANSIENT
can work only with transient objects in the state 10.
If you try to apply a method to a management state inappropriately, you
will trigger an exception exc .
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved