... AND WAIT
Executes a database commit and thus closes a logical
processing unit or Logical Unit of Work ( LUW ) (see also
Transaction processing ). This means that
all database changes are made irrevocable and cannot be reversed with
ROLLBACK WORK and
all database locks are released.
COMMIT WORK also
cancels all existing locks (see SAP locking
concept ) if no update requests exist,
closes all open database cursors (see
OPEN CURSOR ) and
resets the time slice counter to 0.
COMMIT WORK belongs to the Open SQL
Return code value
The SY-SUBRC is set to 0.
All subroutines called with PERFORM ... ON COMMIT
are processed in the LUW concluded by the COMMIT WORK
command. All V1 update requests specified in CALL FUNCTION
... IN UPDATE TASK are also executed in one LUW . When
all V1 update requests have been successfully concluded, the
V2 update requests ("update with start delayed") are processed,
each in one LUW . Parallel to this, the function
modules specified in CALL FUNCTION ... IN BACKGROUND TASK are
each executed in one LUW per destination.
COMMIT WORK commands processed within CALL DIALOG
- execute a database commit (see above),
- close all open database cursors,
- reset the time slice counter and
- call the function modules specified by CALL FUNCTION IN
BACKGROUND TASK in the CALL DIALOG processing.
However, subroutines and function modules called with PERFORM ...
ON COMMIT or CALL FUNCTION ... IN UPDATE TASK in the CALL
DIALOG processing are not executed in the calling transaction until
a COMMIT WORK occurs.
Since COMMIT WORK closes all open database cursors, any
attempt to continue a SELECT loop after a COMMIT WORK
results in a runtime error. For the same reason, a
FETCH after a COMMIT WORK on the
now closed cursors also produces a runtime error. You must therefore
ensure that any open cursors are no longer used after the COMMIT
With batch input and CALL TRANSACTION ... USING
, COMMIT WORK successfully
concludes the processing.
... AND WAIT
The addition ... AND WAIT makes the program wait
until the type V1 updates have been completed.
The return code value is set as follows:
SY-SUBRC = 0
The update was successfully performed.
SY-SUBRC <> 0
The update could not be successfully performed.
COMMIT_IN_POSTING : COMMIT WORK is not allowed in the
© SAP AG 1996