Hi all,
Hope life is good on the Activiti side.
I have been working with workflow management for a few months and I now realize that there are more actors that the only candidates and assignees. Adding the concept of owner adds a lot of flexibility but also some complexity. I'm reading, gathering information, and trying to clarify the different concepts.
I did found in the manual and in the forum, a lot of very useful information. I do still have questions though.
Bellow is a little summary of what I think is the default organisation of the actors. By posting it, I'm hopping to provide a context around the questions that are in italic.
Thanks in advance for your help.
A candidate user
= a potential owner
Owner sounds like a better word than assignee for candidates. Am I right to think like this ?
A candidate group
= a group of potential owner
An assignee
Setting a new assignee = reassigning the task
The assignee is the human performer, the one who has to complete the task (Only one user can be assigned as human performer to the task).
He can
- Delegate the task. Only if the task doesn't have any owner yet?
- Resolve a task. Is there a condition such as "only if the task has a owner" or "only if the task is pending" ?
If the assignee and the owner are the same, does the action also completes the task ?
- Complete a task
An owner
Setting a new owner = transferring the ownership
The owner is responsible for the task: It means
- He could be the human performer (= the assignee). By setting the owner, do I set the assignee ?
- He can delegate the task to another user (can we talk about reassignment ?).
Special note about the life cycle of a delegated task
If using task delegation, we have to consider the delegationState, that can be null, "pending" or "resolved".
Delegating a task sets the delegationState to "pending".
When an owner delegates the task to a user-A, the user-A becomes the new assignee. Can user-A complete the delegated task or can he only resolve it ?
When an assignee delegates the task to a user-A, the assignee becomes the new owner (This is why I'm asking if it's only possible if no owner is yet set)
Resolving the task set the delegationState to "resolved" obviously. It also set the assignee with the actual owner.