Ansicht
Dokumentation

ABENOS_PERSISTENCE_STATE - OS PERSISTENCE STATE

ABENOS_PERSISTENCE_STATE - OS PERSISTENCE STATE

PERFORM Short Reference   SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up  
Diese Dokumentation steht unter dem Copyright der SAP AG.
SAP E-Book

- Verwaltungszustände im Persistenzdienst

Ein vom Persistenzdienst verwaltetes Objekt einer persistenten Klasse kann sieben verschiedene Verwaltungszustände haben. Der Zustand hat Einfluss auf die Ausführbarkeit der Methoden des Persistenzdiensts. Informationen zum Zustand verwalteter Objekte liefern die Methoden des Interfaces IF_OS_CA_INSTANCE.

Die Zustände werden durch folgende Konstanten der Typgruppe OSCON wiedergegeben:

Konstante Wert Status
OSCON_OSTATUS_NOT_LOADED 0 Hülle für ein persistentes Objekt, noch keine Daten von der Datenbank geladen.
OSCON_OSTATUS_NEW 1 Das Objekt ist persistent und neu erzeugt.
OSCON_OSTATUS_LOADED 2 Das Objekt ist persistent und vollständig geladen.
OSCON_OSTATUS_CHANGED 3 Das Objekt ist persistent und wurde geändert.
OSCON_OSTATUS_DELETED 4 Das Objekt ist persistent und gelöscht.
OSCON_OSTATUS_TRANSIENT 10 Das Objekt ist transient.
OSCON_OSTATUS_LOADING 12 Das Objekt wird geladen.

Die Zustände 0 bis 4 beschreiben persistente Objekte mit Verbindung zur Datenbank. Ein Objekt im Zustand 10 unterliegt zwar der Verwaltung des Persistenzdiensts, hat aber keinen Anschluss zur Datenbank.

Ein Objekt im Zustand 12 befindet sich im Übergang nach OSCON_OSTATUS_LOADED. Dieser Zustand ist nur in der Methode INIT des Interfaces IF_OS_STATE beobachtbar und daher im folgenden nicht mehr aufgeführt.

Die folgende Tabelle zeigt, welche Methoden des Persistenzdiensts auf welche Zustände anwendbar sind und welchen Einfluss sie auf den Zustand eines verwalteten Objekts haben. In der letzten Zeile wird die Auswirkung der Anweisung COMMIT WORK gezeigt.

Methode - 0 1 2 3 4 10
CREATE_PERSISTENT 1 1 exc exc exc 3 exc
DELETE_PERSISTENT - 4 0 4 4 4 exc
GET_PERSISTENT 2 2 1 2 3 exc exc
GET_attribute exc 2 1 2 3 exc 10
SET_attribute exc 3 1 3 3 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 - 0 0 0 0 - 10

Alle Methoden bis auf GET_attribute und SET_attribute sind Methoden des Klassenakteurs. Der Einfachheit halber sind Klassen- und Interfacemethoden hier unter ihrem typischen Namen zusammengefasst. GET_attribute und SET_attribute sind Methoden der persistenten Klasse selbst.

Die Zahlen geben die Verwaltungszustände wieder. Beispielsweise überführt die Methode DELETE_PERSISTENT ein persistentes Objekt aus den Zuständen 0, 2, 3 und 4 in den Zustand 4.

Der Strich (-) steht hier für ein Objekt der persistenten Klasse, das zwar vorhanden sein kann aber nicht verwaltet wird. Eine solche Situation kann beispielsweise auftreten, wenn ein persistentes Objekt gelöscht wird, indem der Methode DELETE_PERSISTENT eine Referenz übergeben wird. Nach der Anweisung COMMIT WORK ist das Objekt auf der Datenbank gelöscht und wird nicht mehr verwaltet, besteht aber weiterhin in der internen Sitzung, solange nicht sämtliche Referenzen darauf gelöscht werden.

Aus den Tabellen ist ersichtlich, dass die Methoden DELETE_PERSISTENT, GET_PERSISTENT und REFRESH_PERSISTENT nur mit persistenten Objekten im Zustand 0 bis 4 arbeiten können, während GET_TRANSIENT nur mit transienten Objekten im Zustand 10 arbeiten kann.

Jeder Versuch, eine Methode auf einen Verwaltungszustand anzuwenden, für den sie nicht geeignet ist, führt zu einer Ausnahme exc.






TXBHW - Original Tax Base Amount in Local Currency   BAL Application Log Documentation  
Diese Dokumentation steht unter dem Copyright der SAP AG.

Length: 10161 Date: 20240523 Time: 094031     sap01-206 ( 78 ms )