Page 256 -
P. 256
250 M. Adams
Fig. 9.5 Work item status transition chart
initial status of all created instances, besides the first, is Fired (as only one work
item instance of each task may have Enabled status)
Deadlocked: When there are no enabled tasks in a net, and tokens still exist
in the net in places other than the final output condition, the net is said to be
deadlocked. When this occurs, the Engine will report the deadlock and remove
the case. Part of the reporting process is to determine where there are remaining
tokens in the net. For each condition where a token resides, the name of the task
on its outgoing arc is recorded in the process log. To facilitate this logging, each
of those tasks has a work item created with the status of Deadlocked,which is
actually a completed status type. To clarify, a work item is created and given this
status only to facilitate a logging event, immediately before the entire deadlocked
process is removed from the Engine
One point of possible confusion is the use of the term enabled, which has a
slightly different meaning depending on whether it is used in workflow net terms or
work item terms. In workflow net terms, a YAWL task is enabled if there is a token
in each of its input conditions (after taking its join decorator, if any, into account).
In the Engine, a work item has the status Enabled when it is available to be started.
Each time a task completes, a new work item is created and initialized with Enabled
status for each task that is newly enabled in the workflow net.
Every task definition contains a reference to the Custom Service that will be
responsible for processing it (or the Resource Service by default if none are speci-
fied). Each time a work item is created for a newly enabled task (with a decomposi-
tion) and assigned a status of Enabled, that enabled work item is “announced” to the
environment. That is, the Engine generates a “handleEnabledWorkItemEvent” and
propagates it to the Custom Service that is specified at design time as the listener