Task phases provide a standard way to track the progress of a task from start to finish. The task phases are often used as the basis for worker statuses, which control what options are available to the user, but are not necessarily identical.
Not all task workers will use all phases. In particular, there are different phases for standalone tasks (without a partner), and for the owner and partner tasks in a collaborative process.
The table below describes the phases and their applicability. Active indicates that this is an active state. The S, O and P columns indicate use of the phase in a standalone task, and for the owner and partner view of a collaborative task.
|initial||The task has been created and is in an initial state.||•||•||•|
|prepare||The task is being prepared, for example setting instructions or other content.||•||•||•|
|assign||The task is in the process of being assigned to a partner. The progress of the assignment is recorded by the assignment status. At the owner end, assignment activity may take place through other phases; having a separate phase allows assignment to take place before indicating the task is ready. At the partner end, the assign phase allows the partner to agree to or decline a task.||•||•||•|
|wait||The task cannot be started because its start dependencies have not been met.||•||•||•||•|
|ready||The task is ready to start.||•||•||•||•|
|progress||The task is in progress.||•||•||•||•|
|submit||The task has been submitted by a partner.||•||•||•|
|redo||The task has been sent back to the partner for rework.||•||•||•|
|complete||The task is complete.||•||•||•|
|cancel||The task has been cancelled. For a partner in a collaborative process, the assignment status is used to determine the reason for the cancellation, which could be a recall, a decline, or a refer.||•||•||•|
|info||This is for information only.||•|
As well as the phases, tasks keep track of a hold indicator. This can be applied to any active task as a reminder that the task should not be performed at the moment. The task components use the hold indicator when building a status for a task worker, by suffixing the phase with "Hold", e.g. "readyHold".
Tasks also keep track of an assignment status. This is separate from the phase, and is used to keep track of whether the work has been assigned to a partner. This is covered in Collaborative tasks.
The Task Script provides methods to manage phase changes and the Task step type provides a taskAction option which can be used to maintain task phases.
Processes may use statuses to subdivide the phases. For example, some processes might use multiple statuses within the progress phase to control a complex activity, or have a close status after completion to prevent changes to the task.