sapdev logo background
sapdev logo sapdev logo
Comments

ABAP ROLLBACK Statement syntax, information and example SAP source code



Return to Statement index



ROLLBACK WORK

Short Reference

ABAP Syntax ROLLBACK WORK.

What does it do? The statement 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:
Executes all subroutines registered using
PERFORM ON ROLLBACK .

Deletes the registrations of all subroutines registered using PERFORM ON COMMIT .

Triggers an internal event in the
Object Services that makes sure that the attributes of persistent objects are initialized.

Deletes all update function modules registered using CALL FUNCTION ... IN UPDATE TASK
from the VB... database tables and deletes all transactional remote function calls registered using CALL FUNCTION ... IN BACKGROUND TASK|UNIT from the database tables ARFCSSTATE and
ARFCSDATA .

Removes all SAP locks set in the current program for which the formal parameter _SCOPE of the lock function module was set to the value 2.

Triggers a database rollback that also ends the current database LUW .

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 .

Latest notes: All open database cursors
in the database connections concerned are closed during ROLLBACK
s, which means that a runtime error occurs when the system attempts to continue a SELECT loop after a ROLLBACK . For the same reason, a FETCH after a ROLLBACK on 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 ROLLBACK
.

After a ROLLBACK statement, sy-subrc is always zero. You do not need to query whether sy-subrc is not equal to zero after ROLLBACK .

ROLLBACK must not be used during the
update ( CALL FUNCTION ...IN UPDATE TASK ) or during the execution of subroutines that were registered using PERFORM ... ON COMMIT or PERFORM ... ON ROLLBACK .

The statement ROLLBACK WORK must not be executed in units or LUW s that are managed by
transactional RFC calls ( bgRFC , tRFC , or qRFC ).

The ROLLBACK WORK statement is executed implicitly if a message of type A is handled by the addition error_message when calling a function module with CALL FUNCTION .



Runtime Exceptions
Non-catchable Exceptions

Reason for error: ROLLBACK WORK is not permitted within a FORM
that is called with PERFORM ... ON COMMIT
or PERFORM ... ON ROLLBACK .
Runtime error: ROLLBACK_IN_PERFORM_ON_COMMIT
Reason for error: ROLLBACK WORK is not permitted within an update.
Runtime error: ROLLBACK_IN_POSTING
Documentation extract taken from SAP system, � Copyright SAP AG. All rights reserved




RETURN
SCAN




comments powered by Disqus