Ansicht
Dokumentation
DB_ROLLBACK - Rollback Work über EXEC SQL - Roll-out findet nicht statt
BAL_S_LOG - Application Log: Log header data ABAP Short ReferenceDiese Dokumentation steht unter dem Copyright der SAP AG.
Funktionalität
Es wird ein Datenbank-Rollback auf der aktuell gültigen Datenbankverbindung per Native SQL durchgeführt.
Im Normalfall ist dies die Standardverbindung (auch Default-Verbindung genannt) zur zentralen Datenbank
des AS ABAP Systems. Es ist jedoch zu beachten, dass die aktuell für Native SQL Anweisungen gültige Datenbankverbindung durch folgende EXEC SQL Anweisungen global gesetzt werden kann:
EXEC SQL.
CONNECT TO con
ENDEXEC.
EXEC SQL.
SET CONNECTION con
ENDEXEC.
Wenn also vor dem Aufruf der Funktion DB_ROLLBACK die aktuell gültige Native SQL Datenbankverbindung
mittels dieser Kommandos auf eine sekundäre Datenbankverbindung gesetzt wurde, dann wird der
Rollback auf dieser Datenbankverbindung ausgeführt und nicht auf der Standardverbindung des AS
ABAP. Dies kann u.U. zu unerwünschten Effekten in der Transaktionslogik führen, die inkonsistente Daten nach sich ziehen.
Durch Setzen des optionalen Parameters IV_DEFAULT = abap_true (Defaultwert ist abap_false) kann
ein Datenbank-Rollback auf der Standardverbindung erzwungen werden, unabhängig davon, wie die aktuelle Native SQL Verbindung gerade gesetzt ist.
Der Datenbank-Rollback bewirkt, dass
1) die laufende Datenbanktransaktion beendet und alle dort durchgeführten Datenbankänderungen verworfen werden
2) alle offenen Datenbank-Cursor implizit geschlossen werden
3) alle in der laufenden Transaktion angeforderten Datenbanksperren freigegeben werden.
Im Gegensatz zur Anweisung ROLLBACK WORK in Open SQL schließt der Aufruf von DB_ROLLBACK die
aktuelle SAP LUW nicht ab, d.h. die an das Ende einer SAP LUW gekoppelten Ereignisse (siehe Dokumentation zu ROLLBACK WORK) werden nicht ausgelöst.
Nach erfolgreicher Durchführung des Datenbank-Rollback wird jedoch das Ereignis DB_TRANSACTION_FINISHED
der Klasse CL_DBI_TRANSACTION_STATE ausgelöst, wobei der Parameter KIND auf den Wert CL_DBI_TRANSACTION_STATE=>GC_ROLLBACK gesetzt wird.
Beispiel
Hinweise
Weiterführende Informationen
#####################################################################################################################################################################################
Parameter
IV_DEFAULTAusnahmen
Funktionsgruppe
SYDBCL_GUI_FRONTEND_SERVICES - Frontend Services SUBST_MERGE_LIST - merge external lists to one complete list with #if... logic for R3up
Diese Dokumentation steht unter dem Copyright der SAP AG.
Length: 2657 Date: 20240523 Time: 142431 sap01-206 ( 57 ms )