SAP-LUW und Datenbank-LUW
Aus SAP-Wiki
Zur Navigation springenZur Suche springen
Siehe Basis.
Die kleinste Einheit, in der etwas auf der Datenbank fortgeschrieben wird, nennt sich LUW-Datenbank (LUW = Logical Unit of Work). Eine logisch zusammenhängende Einheit von Dialogschritten, deren Änderungen innerhalb einer einzigen Datenbank-LUW ausgeführt werden, wird als SAP-LUW bezeichnet.
Insert, Update, Modify, Delete
- Mit den Open SQL-Anweisungen INSERT, UPDATE, MODIFY und DELETE können Datenbankänderungen über mehrere Dialogschritte verteilt programmiert werden. Sie werden vor einem commit work jedoch nicht auf die Datenbank geschrieben.
- Das ist sinnvoll, wenn diese Operationen nur alle zusammen fortgeschrieben werden sollen oder gar nicht.
Expliziter und impliziter Commit
- Ein Programm kann einen expliziten Commit auslösen und damit die LUW schließen.
commit work.
- Im Programm kann auch ein impliziter Commit ausgelöst werden bei einem Dynprowechsel, der den Commit bewirkt
- man muss auch aufpassen, z. B. einen Funktionsbaustein aufzurufen, der einen Commit macht, wenn man das zu diesem Zeitpunkt noch nicht möchte.
Funktionsbaustein ABAP4_COMMIT_WORK
- Wird ein Programm Remote ausgeführt, kann der Commit work durch den Funktionsbaustein ABAP4_COMMIT_WORK ausgeführt werden.
Funktionsbaustein BAPI_TRANSACTION_COMMIT
- Bei BAPI-Funktionenbausteinen sollten man immer den Funktionsbaustein BAPI_TRANSACTION_COMMIT nutzen, da dieser auch den internen Puffer der BAPIs aktualisiert. Dies ist gerade bei erneuten Aufrufen eines BAPI-Funktionsbausteins relevant.
Rollback
- Um die angemeldeten Änderungen zu verwerfen (und es wurde noch kein Commit Work ausgeführt), kann der Befehl „Rollback work“ ausgeführt werden
- Eine Error-Message bewirkt ebenfalls implizit ein Rollback.
Rollback work.
Web-Links
- SAP-Hilfe: SAP-LUW
- https://archive.sap.com/discussions/thread/597427 Archive.sap.com: commit work und rollback-Diskussion (EN)]