How to customize Get Next Work in pega

We can customize GetNextWork (GNW) logic in pega to meet our business requirements. Pega will follow default GNW logic to prioritize and get the assignment for the user to work on. Sometimes we will have a requirement to change the prioritization work, simply we can adjust the assignment urgency value (pyUrgencyAssignAdjust this is being used in declare expression), we can manually adjust the assignment urgency.
However, if the requirement doesn't satisfy even after adjusting the assignment urgency manually. We have to look for other rules and customize them. Pega will run the below rules in order to perform GetNextWork logic. See rule availability for the below rules.

1. @baseclass.doUIAction - activity (Final)
2. Work-.GetNextWork - activity
3. Work-.getNextWorkObject - activity (Final)
  •     Activity Work-.findAssignmentInWorklist (Available)
                ListView - Assign-Worklist.GetNextWork (Available)
                            - Uses default getContent activity to retrieve assignments.
  •     Activity Work-.findAssignmentInWorkbasket (Available)
                ListView - Assign-WorkBasket.GetNextWork (Available)
                           - Uses custom get content activity (getContentForGetNextWork) to retrieve assignments.
4. Decision Tree - AssignGetNextWorkCriteria (Available)
5. Activity Assign- MoveToWorklist  - moves assignment to user's worklist
6. Activity Assign-OpenAndLockWork - Opens the assignment from the user worklist and locks it.
7. Harness Work- Perform harness which displays the assignment for the user to work on

We have two List View rules Assign-WorkList.GetNextWork and Assign-WorkBasket.GetNextWork . We can change the filter criteria, change the sorting order or join the assignment with a case and so, to get prioritization of work.
Sometimes if we customize the list view reports to satisfy one requirement, it may affect the other requirement. So if needed create separate variants for list view rules by circumstancing the list view rules. We can customize the decision tree Assign-. GetNextWorkCriteria where we can add our own WHEN rules to filter the results. This is the decision tree used to filter the results from List view results by applying two when rules (IsReadyToBeWorkedOn and HasBeenUpdatedByMeToday)
Assign-.IsReadyToBeWorkedOn           -  to check if the assignment is ready to be worked on.
Assign-.HasBeenUpdatedByMeToday  -  to check if the assignment is modified by the current operator and today.
By circumstancing this decision tree we can add our own when rules as a filter condition.
We can customize/override the below Rule System settings to meet our requirements. 

Pega-ProcessEngine GetNextWork_SkipSkillCheck  - enable or disable to check if the user has the skills required to perform the assignment. By default, it will be disabled means we are not skipping the skill check. If we enable it means, we are skipping the system not to check the skills.
Pega-ProcessEngine GetNextWork_SkipSkillCount - enable or disable for skipping skill count check.
Pega-ProcessEngine GetNextWork_SkipUnskilledAssignments - enable or disable for skipping unskilled assignments check.
Pega-ProCom GetNextWork_MoveAssignmentToWorklist - set to true or false. True - GetNextWork will move the workbasket assignments to the user's list. False - GetNextWork will keep workbasket assignments in the workbasket and not move them to the user's list.
Pega-ProCom GetNextWork_WorkBasketUrgencyThreshold -  this is being used by findAssignmentInWorkBasket activity, set positive integer above 0 to use this setting.

On the whole, we can customize get next work logic by customizing some of the rules.
  1. ListView - Assign-Worklist.GetNextWork 
  2. ListView - Assign-Worbasket.GetNextWork 
  3. Decision tree - Assign- GetNextWorkCriteria
  4. Rule-System-Setting GetNextWork_ * 
See here to know how the GetNextWork functionality works in pega.

1 comment: