How does the check box Update the Task if existing (otherwise add incremental number) and Task Iteration in a Workflow Task Type node work together?
Task Iteration in WebCenter 14.1
Two types of Task iteration have been added in WebCenter 14.1:
Iterate tab: Allows to iterate over a (multi-value) Attribute just like the Project Creation node.
Assignee: Iterate over the members of a Role or Group, depending on the option Assign To which contains One of Role, All of Role - One per Group or All of Role for Role assignee, and One of Group or All of Group for Group assignee.
Both can result in one or more Tasks being created when a token hits the node. They can also be combined. The order of iteration in that case is:
First the (unique) iteration values of the Iterate tab are calculated. One can distinguish between multiple Tasks by adding the Iterator Value Smart Name to the Task name. For example: If you have languages such as Dutch and English as iterator values, you can use "Translate [Iterator Value]" as Task Name which will result in Tasks "Translate Dutch" and "Translate English".
Then the iteration over the Assignee is done. For example, if you assign the translate Tasks to "Role A" (with USER1 and USER2 assigned to the Role) using setting All of Role in the example above, four Tasks are created:
"Translate Dutch" assigned to USER1
"Translate Dutch_1" assigned to USER2
"Translate English" assigned to USER1
"Translate English_1" assigned to USER2
Combining with "Update the Task if existing"
The following sequence is applied if the Update the Task if existing (otherwise add incremental number) check box is enabled:
First of all, a Task that belongs to the parent Workflow with that Task Name is looked up:
If it already exists, that one is updated.
If it does not exist yet, a new one is created.
In case the Iterate option is used with the Iterator Value Smart Name in the Task Name, the same iteration is performed again and the corresponding Tasks are created/updated depending on whether they exists already or not. If the Iterator Value was not used in the Task Name, the same Task is updated multiple times.
It is not recommended to enable the Update the Task if existing (otherwise add incremental number) check box if multiple Tasks are created as a result of any iteration because it might give unexpected results.
Examples of possible issues:
If you enable the check box in a later stage of the Workflow (same settings as example above):
"Translate Dutch" will be set to in progress again, assigned to USER2 (!!!)
"Translate English" will be set to in progress again, assigned to USER2 (!!!)
"Translate Dutch_1" and "Translate English_1" will stay on Completed, because "Translate Dutch" and "Translate English" are updated twice:
First "Translate Dutch" is assigned to USER1.
Then because of the Assignee iteration, a second update happens and the same Task "Translate Dutch" is assigned to USER2 because the Task with the name "Translate Dutch" (at that moment assigned to USER1 because of the first step) already exists.
Comparable "unexpected" situations occur for Assignee iteration (either only Assignee iteration or combination with Iterate tab) or Iterate iteration without using the Iterator Value in the Task name.