CALL FUNCTION - IN UPDATE TASK
CALL FUNCTION update_function IN UPDATE TASK
[EXPORTING p1 = a1 p2 = a2 ...]
[TABLES t1 = itab1 t2 = itab2 ...].
This statement registers the update function module specified in
update_function must be a character-like field, which contains the name of an
update function module in uppercase letters during execution of the statement.
The function module is not executed immediately, but is scheduled for execution in a special work process (update work process) or, if
local updates are enabled,
in the current work process. To do this, the name of the function module and the actual parameters passed
are saved to the database tables VBMOD and VBDATA,
which are managed by VBHDR. If the statement is executed during the update task, the addition
IN UPDATE TASK is ignored.
If the statement
SET UPDATE TASK LOCAL is executed before registration of an update function module in the current
SAP LUW, registration takes place in the
ABAP memory rather than on the database, and for the current work process.
The actual execution is triggered by the statement COMMIT
WORK. The formal parameters of the function module receive the values of the actual parameters
from the database table VBLOG. A function module that is registered more than once is also executed
more than once with the associated parameter values. If, during the execution of the current program,
COMMIT WORK is not executed after the registration of a function
module, then the function module is not executed and the associated entries are deleted from the corresponding
database tables when the program ends. The statement
ROLLBACK WORK deletes all previous registrations for the current SAP LUW.
sy-subrc system field is undefined after the statement
CALL FUNCTION ... IN UPDATE TASK is executed.
During the processing of an update function module in the update work process, the statements
SUBMIT, CALL DIALOG,
COMMIT WORK, and
ROLLBACK WORK, as well as all other statements that create a database commit, must not be executed.
- Any database commits or database rollbacks that occur within the update cancel the update.
- If an error occurs during the update, the update work process executes a database rollback, logs this in the corresponding database tables, and notifies the user whose entries created the entries by SAPMail. After the cause of the error has been resolved, the canceled entries can be updated again.
- When handling the registration entries in the database tables, note that they are subject to the regular administration rules for a database LUW. For example, the database LUW is ended by a database rollback, then all registration entries of the current database LUW are deleted.
When an update function modules is registered using CALL FUNCTION ... IN UPDATE
TASK, the relevant data is exported internally to a data cluster using
EXPORTand is imported again when executing the function module with
IMPORT. If the data types of the exported actual parameters do not match the typing of the formal parameter of the function module, the exceptions documented in
IMPORTmay be raised.
... EXPORTING p1 = a1 p2 = a2 ...
... TABLES t1 = itab1 t2 = itab2 ...
TABLES have the same
syntax and meaning as in the
parameter_list of the general function module call, except that for
reference variables or data objects that contain reference variables can be specified as actual parameters.
When passing internal tables with non-unique table keys, the order of the duplicate rows in relation to these keys is not retained.
of the general function module call may be specified, but they are ignored during the execution. The additions for dynamic parameter passing are not allowed.