Back Forward Maximizing user productivity with GetNextWork

Concepts and terms

 zzz Show all 

Each time a user completes an assignment, your application can select and provide another assignment for that user to work on next. By choosing the best, most appropriate assignment to work on next, your application can promote user productivity, timeliness of processing, and customer satisfaction.

If your application does not provide automated support for this choice, a user can arbitrarily or intentionally choose an assignment to work on next that does not contribute as directly to organizational objectives. While every assignment needs to be completed eventually, the order that users process work is an important factor in the management of service operations.

Process Commander provides an easily tuned set of facilities that match users to open assignments. These facilities consider user authority, skills, and urgency of the work object. Much of the sorting and selection occurs through efficient SQL operations on the PegaRULES database.

 zzzDefault behavior

In most situations, users are directed to click the  Get Most Urgent   button on the navigation panel of the Process Work workspace. This button starts an activity that can examine the contents of worklists, workbaskets, and other factors to retrieve an assignment. (The button may also appear on a confirmation form, and may have a different text label.)

If you have implemented no customizations or parameter settings, Process Commander performs the following internal operations:

  1. A user clicks the  Get Most Urgent   button. Your application can record the skills of this operator in skill fields on the Work Access tab of the Operator ID form.
  2. The button click starts the standard activity Work-.GetNextWork. This simple activity calls the final standard activity Work-.GetNextWorkObject.
  3. The GetNextWorkObject examines a property pyWorkBasketFirst for the user. This corresponds to the Get from workbaskets first? check box on the Work Access tab. If true, it calls the standard activity Work.findAssignmentinWorkbasket. Otherwise, it calls the standard activity Work-.findAssignmentinWorklist.
  4. The Work-.findAssignmentInWorkbasket activity considers as candidates the assignments in workbaskets listed on this tab for this operator. If the Merge workbaskets? check box is not checked, workbaskets are searched in the order they appear on the Work Access tab. (The standard list view rule Assign-Workbasket.GetNextWork.ALL returns up to 500 assignments, sorted in decreasing order by assignment urgency — property Assign-.pxUrgencyAssign.)
  5. If the Merge workbaskets? check box is checked, the algorithm changes. All assignments in all listed workbaskets are assembled into a single list that is then sorted by declining pxUrgencyAssign. If the Use all workbasket assignments in user's work group check box is selected, the list of candidates is all assignments in any workbasket for which the Work Group field (on the Workbasket tab of the Workbasket form) is the same as the Work Group field of this operator (as set on the Operator tab)
  6. The standard decision tree Assign-.GetNextWorkCriteria is applied to each assignment found, highest urgency first. Any assignments that have a pyActionTime in the future, those that require skills (pxSkillsRequired) that the current operator does not hold, assignments already worked on by this operator today (a local action), and those that cannot be locked (and so may be in use by others) are dropped as candidates.
  7. Searching ends when it finds the first surviving assignment if any that meets all the criteria. The GetNextWork activity creates and populates the newAssignPage page, moves the assignments to the user's worklist and locks the work object. If the System Setting rule GetNextWork_
    MoveAssignmentToWorklist
    is true, the selected assignment is moved to the user's worklist.
  8. If none is found, Steps 4 to 7 above are repeated but using the Work-.findAssignmentinWorklist activity and the standard list view Assign-Worklist.GetNextWork.All.

If the property pyWorkBasketFirst is false for this operator, the search examines the worklist before workbaskets.

The standard activities described above are part of the Process Engine API.

This processing ignores Error: assignments (problem assignments); they are never selected as "most urgent".

 zzzTuning the default behavior

Several settings can be adjusted to adapt the above processing to specific needs of your application and your business operations, without creating new activities. If you create or override standard rules, place the new rules in a RuleSet and version that is available to all appropriate users.

 zzzOverriding GetNextWork activities

Advanced featureIf your algorithm for finding open assignments differs in major ways from those provided by standard rules, you can override these standard activities with others specific to each work pool or work type:

Use care to ensure that this feature continues to operate quickly, returns only assignments that a user can complete, and are good choices.

AdvancedWhen required, your GetNextWork activity can call a database stored procedure to locate the best assignment for the worker to work on next. Set the Applies To key part of your GetNextWork activity to match the container class of a class group. See Pega Developer Network article PDNPRKB-16210 A database stored procedure can replace the GetNextWork activity.

 zzzEnabling back-to-back assignments

TipOne work object may at any time have multiple open assignments and multiple flow executions in process. If a user completes an assignment for work object W-22534 and others exist, it is usually natural and productive for that user to work next on other assignments for the same work object (or for the cover) if there are any.

If your application may produce such multiple open assignments, consider whether they can be performed by the same operators. To promote such back-to-back assignments, select these fields on the Action tab of the Flow Action form when feasible:

When enabled, this searching occurs automatically upon the completion of the flow action, so GetNextWork processing does not occur.

 zzzIntegrated work management

When you install and operate the optional Integrated Work Manager product, GetNextWork processing occurs across all the work source systems. This ensures that the user receives the most appropriate assignment to work on next across multiple applications.

Definition back-to-back assignment, Integrated Work Manager, skill, urgency
Related topics User portal basics — Using the Process Work workspace
Standard rules Atlas — Standard Activities — Process Engine API
Atlas — Standard System Setting rules

UpConcepts