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. R-17938 and 9/7/06
MARIK
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.
Default
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:
- A user clicks the Get Most Urgent
button. Your application can record the skills of this operator in
skill fields on the Work Settings tab
of the Operator ID form.
- The button click starts the standard activity
Work-.GetNextWork. This simple activity calls the
final standard activity Work-.GetNextWorkObject.
- The GetNextWorkObject examines a property
pyWorkBasketFirst for the user. This corresponds to
the Get from workbaskets first? checkbox on the
Work Settings tab. If true, it calls
the standard activity Work.findAssignmentinWorkbasket.
Otherwise, it calls the standard activity
Work-.findAssignmentinWorklist. B-22646
- The Work-.findAssignmentInWorkbasket activity
considers as candidates the assignments in workbaskets listed on
this tab for this operator. PROJ-424 If the Merge
workbaskets? checkbox is not checked, workbaskets are
searched in the order they appear on the Work
Settings 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.)
- If the Merge workbaskets? checkbox 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 checkbox
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)
- 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. BUG-6930 not
Work-.
- 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.
- 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".
Tuning 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.
- Finding the "best" assignment to work on next
requires a balance between examining and scoring many assignments
from many sources while avoiding unnecessary processing that can
affect system performance. Through settings and design, making the
Get Next Work process examine only dozens of candidate assignments
with varying property values is far better than examining thousands
of nearly identical candidate assignments.
- Ensure that the assignment urgency
(pyUrgencyAssign) is set to a meaningful value, as
this is a basis for sorting and prioritization. By default, a
standard Declare Expression rule computes this value based on work
object urgency and other criteria. For example, you can override
this to base the assignment urgency also on dollar amounts,
customer categories, specific assignments that are often on the
critical path, work object age, work types, and so on.
- If a user can access assignments from multiple applications and
work types, check that the computation of assignment urgency is
appropriate across the applications and work types. Comparability
— not fairness — is the objective; in some business
settings it may be appropriate to complete every assignment in the
CustomerOrder application before any assignments in the
ResearchingVeryOldRocks application.
- Confirm the settings of the Get from workbaskets
first? checkbox for affected operators.
- If some or all the assignments have skills that are designated
as required, ensure that the skills values in Operator ID instances
are correct for operators who do hold these skills. Confirm that
the skills are truly necessary to complete the assignment. (In flow
rules, you can use the standard routing activity
ToSkilledWorkBasket to send an assignment with
required or desired skills to a workbasket.) MARIK
10/18/06
- If workbaskets are searched, review the workbaskets for
operators and the order that they are listed. An assignment with
urgency 5 in the first-listed workbasket, if it meets all the
criteria, may be found and returned before an assignment with
urgency 99 in the second-listed workbasket.
- Override the System Settings rule
GetNextWork_WorkBasketUrgencyThreshold to identify a
minimum cutoff value for assignment urgency. This can speed the
entire operation by changing the order that candidates are
examined. First, it causes searches of only those assignments in a
workbasket that equal or exceed an urgency threshold; if none is
found that meet all the criteria, the next workbasket is searched.
Only after all the workbaskets are searched with no qualifying
assignment found are the workbaskets revisited to look for
assignments with lower urgency.(To simplify testing, you can supply
different cutoffs for different production levels.) B-20664 and
MARIK 10/18/06
- Review and override the decision tree rule tree
Assign-.GetNextWorkCriteria to add or modify criteria
appropriate to your operations. For example, your criteria may take
into account daily or weekly cutoff events. BUG-6930
- Copy and override the list value rules to change the 500 limit
on assignments examined, or to add additional selection
criteria.
- During testing and in production, note those situations in
which the algorithm you have implemented returns no assignments.
Where and how does the human operator look next for
assignments.
Overriding
GetNextWork activities
If 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:
- Work-.findAssignmentInWorkBasket
- Work-.findAssignmentInWorklist
- Work-.GetNextWorkObject — To bypass or
extend the entire capability described above
Use care to ensure that this feature continues to operate quickly,
returns only assignments that a user can complete, and are good
choices.
When 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. B-19878 See Pega Developer Network article
PRKB-16210 A database stored procedure can replace
the GetNextWork activity.
Enabling
back-to-back assignments
One 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:
- After this action Look for an assignment to
perform?
- If not found, look in other flows on this work
object?
- If not found, look in flows on the cover
object?
When enabled, this searching occurs automatically upon the
completion of the flow action, so GetNextWork processing does not
occur.
Integrated 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.
GRP-391
Concepts