Task Nesting and Locking (Magic xpa 4.x)
When calling a task or a program, the processing of the current view record is suspended until the call returns. The called task or program has access (for a program, if columns are passed as arguments) to all the current view record’s variables. Therefore, the called task or program may also update some of the displayed columns of the record. When using the On Modify locking strategy, the view record is locked immediately on the first change or after a complete column is accepted. If a called subtask or a program is about to change the current record, the current record should also be locked.
As subtasks and programs are complete units that can take some time to execute, other users should not be allowed to gain access to the current data view record and modify it while the subtask or program is executing. This would prevent writing the current record to the disk when the called subtask or program terminates. Therefore, the current record should be locked before executing the subtask or program. However, to avoid blocking access to other users, the current view record should not be locked before executing the subtask or program if the called subtask or program is not about to modify the current view record.
The Call operation’s Lock property lets you lock the record when a task or program is called.