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