How to involve task candidate groups automatically when the task is created in Alfresco Process Services

To add a candidate group as a participant you can do it easily thanks to the task listeners.

1. Add a task listener to your user task.
2. Set the task listener as ScriptTaskListener
3. Add the following code to the script section of the task listener:

def execution = task.getExecution();
def taskService = execution.getEngineServices().getTaskService();
List identityLinkList = taskService.getIdentityLinksForTask(task.getId());

for (int i = 0; i < identityLinkList.size(); i++) {
    def oneLink = identityLinkList.get(i);

    if (oneLink.getType() == "candidate" && oneLink.getGroupId() != null) {
        taskService.addGroupIdentityLink(task.getId(), oneLink.getGroupId(), "participant");
    }
}

Notes: the code is in Groovy but it can be converted to JavaScript easily with minor changes. Keep the semicolons at the end of the lines to avoid issues, because APS might wrap all the code into one line.

Leave a Reply

Your email address will not be published. Required fields are marked *