Expand my Community achievements bar.

Learn about Edge Delivery Services in upcoming GEM session
SOLVED

In Workflow all the users from same group has to approve the content for activating page

Avatar

Level 1

I have requirement where not just one but all the users from same group has to approve the content for activating page.

I have created a simple participant workflow.

Validate Content is participant step with group assigned.

In the OR split User of a group can reject(participant step) or Publish(process step - Activate Page)

The workflow should successfully activate a page only when all users of the group approve. Is this possible to do??

Currently If one user approves the workflow, page is getting activated. which should not happen.

1754061_pastedImage_0.png

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

In AEM workflow participant step, if a single assignee in a group completes the task then the task is considered completed. This is the default behavior.

You will have to build a custom solution for this requirement. One approach is to dynamically create a temporary group after each approval and assign all the remaining users who have not approved to that group. This will continue in loop until all users approve. This solution works but it is very messy because of the complexity and temporary groups getting created at each approval step.

If you have less number of users in a group then you can implement a sequential approval by implementing a process step which you can add after the approval step. The process step will track the number of approvals done. In case all approvals are done it will complete and move to the next step else it will route the workflow backwards to the approval step. The assignee of the approval step will have to be calculated dynamically as well. This works but again is complex and also it will slow down the overall business process of approvals. Since the approvals in this case can not happen in parallel but only in sequential mode.

You should check with your customer whether they can implement this as part of offline business process rather than doing it in AEM workflow. Like they can approve it offline and one of them can approve it in the system.

View solution in original post

3 Replies

Avatar

Correct answer by
Employee Advisor

In AEM workflow participant step, if a single assignee in a group completes the task then the task is considered completed. This is the default behavior.

You will have to build a custom solution for this requirement. One approach is to dynamically create a temporary group after each approval and assign all the remaining users who have not approved to that group. This will continue in loop until all users approve. This solution works but it is very messy because of the complexity and temporary groups getting created at each approval step.

If you have less number of users in a group then you can implement a sequential approval by implementing a process step which you can add after the approval step. The process step will track the number of approvals done. In case all approvals are done it will complete and move to the next step else it will route the workflow backwards to the approval step. The assignee of the approval step will have to be calculated dynamically as well. This works but again is complex and also it will slow down the overall business process of approvals. Since the approvals in this case can not happen in parallel but only in sequential mode.

You should check with your customer whether they can implement this as part of offline business process rather than doing it in AEM workflow. Like they can approve it offline and one of them can approve it in the system.

Avatar

Level 4

Though it can be achieved through customization, there is a risk of getting into performance issues since there needs to be some kind of polling until all the users approve/reject a payload. Would be best if you can split the requirement and delegate the action item to one person within the group and may be trigger a 3rd party Question poll(like slack or other APIs) request to create polls which exposes certain APIs to check the status of all users decision.