How to assign a case to workgroup members and restrict access for people outside the given workgorup?
I have a simple requirement which I stumble upon.
Once a case is created in our case type it should be assigned to a specific team based on the location contained of the case. For example if a case for Location A is created only Location A members should be able to take actions on the case. Other members (like Location B members, for example) should not have access to take actions on Location A case. It's not a specific user assignment, so any of the users from the case's location should be able to take it and act on it.
So, what we have done so far:
- Each location has it's own work group and work queue. The work queue name is with a prefix (ex.: COMPANY:LocationA, COMPANY:LocationB, etc.) and the work group follows a suffix convention (ex.: LocationA@COMPANY, LocationB@Company, etc.)
- Once the case reaches the first assignment step in the flow, it is assigned to a work queue dynamically based on the location contained in the case. Like this:
- Users have a custom role build on top of PegaRULES:User4 role that restricts their access to the respective case type class.
- The work group and work queue setup is pretty straight forward - work groups are assigned to the location work queue. Work queue is assigned to the organization structure and work group respectively. There are no contacts names or role restrictions added in the work queue itself.
Following this I have two questions:
- How can I restrict the users from Workgroup A from opening assignments of Workgroup B?
- Is the above dynamic queue assignment acceptable approach?
I've tried different scenarios, however I'm still unable to achieve a case to be restricted only to the operator's workgroup assignment.
I tried that approach with a custom when rule for the Assign- class. The when rule was with the following condition: assignPage.pxAssignedOperatorID.pyWorkGroup = OperatorID.pyWorkGroup (as in the OOTB rule pxAssignedToMyWorkGroup).
I also tried with the condition .pxWorkGroup = OperatorID.pyWorkGroup.
Both did not work, and I think I have something wrong in the assignment process itself.The outcome of both when conditions was that the users were able to open and act on the assignments regardless of the location.