Call Phantom Tasks
A phantom task is a closed task with a window not in focus (Close Task Window=No). You can open a phantom task by triggering the corresponding Call operation defined in a handler. Phantom tasks can also be called from a program, public program, or expression.
When clicking a phantom task window, the engine scans for the corresponding Call operation in parent and ancestor task handlers, and goes to the handler with the corresponding Call operation.
The engine scans the following handlers:
-
Control Prefix
-
Control Verification
-
Control Suffix
-
System
-
User Event
-
Internal Event
System, User, and Internal events can be defined with either control-specific or not control-specific handlers. The engine scans for handlers located in the phantom’s parent or ancestor tasks from bottom to top.
To find the corresponding handler, the following three conditions must evaluate to True:
-
The handler property is enabled.
-
The Call operation corresponds to the Phantom task.
-
The Block condition is not a Block Loop.
Note: Block Loops are always evaluated as False.
If no valid Call operation is located, the engine stays on the last selected control and does not open the phantom task.
If the corresponding Call operation is found in a handler that is not control-specific, the engine only triggers the event to activate the Call operation for the phantom task. After the phantom task is executed, the engine resumes to the regular behavior of the current event as defined in the Event repository.
If the conditions evaluate to True for the Call operation in a control handler, the engine moves to that control and executes the corresponding Call operation for the phantom task.
If the corresponding operation is located in the Control Prefix handler, the engine executes the Call operation and parks on that control. If the corresponding Call operation is found in the Control Verification or Control Suffix handlers, the engine executes the Call operation and parks on the next control.