ROLLBACK WORK closes the current
SAP LUW and opens a new one.
This cancels all changes requests made by the current SAP LUW. To do this,
ROLLBACK WORK carries out the following actions:
PERFORM ON ROLLBACK.
PERFORM ON COMMIT.
After the statement
ROLLBACK WORK is completed, the event TRANSACTION_FINISHED
from the system class CL_SYSTEM_TRANSACTION_STATE is triggered, whereby the parameter KIND has the value of the constant CL_SYSTEM_TRANSACTION_STATE=>ROLLBACK_WORK.
All open database cursors
in the database connections concerned are closed during
ROLLBACKs, which means that a runtime error occurs when the system attempts to continue a
SELECTloop after a
ROLLBACK. For the same reason, a FETCH after a
ROLLBACKon the cursor that is now closed also causes a runtime error. Make sure that cursors that are still open are no longer used after the
sy-subrcis always zero. You do not need to query whether
sy-subrcis not equal to zero after
ROLLBACKmust not be used during the update (
CALL FUNCTION ...IN UPDATE TASK) or during the execution of subroutines that were registered using
PERFORM ... ON COMMITor
PERFORM ... ON ROLLBACK.
ROLLBACK WORKmust not be executed in units or LUWs that are managed by transactional RFC calls (bgRFC, tRFC, or qRFC).
ROLLBACK WORKstatement is executed implicitly if a message of type A is handled by the addition
error_messagewhen calling a function module with