Use of Conditions in YAWL
Let's see what happens to offered workitems after a condition. Will one of the offered workitems be withdrawn when the other one is started?
Tasks A and B can be offered to a participant. The participant starts A. B is immediately removed from the workitem list. The case finishes as expected.
What happens, if we let the engine automatically start workitems for A and B for the same participant? A or B is chosen at random by the engine. The other is immediately removed from the workitem list.
This example shows that conditions are in fact useful features of YAWL workflows. Unlike an XOR-split that “decides” which of the following tasks will be activated, here the activation depends on who first starts the task.
We can also contruct a net where tasks can be executed an arbitrary number of times:
Or in parallel: