in

Support Community

User Forums & Learning Materials for Integrify Workflow Products

Integrify BPM In Action

A practical discussion about taking control of your processes with Integrify

Handling Lots of Recipients: Dynamic Assigner vs. Recipient Rules

Introduction

Medium to large sized organizations will often have business processes that are used by many different people. An example would be a New Hire Request. If your company is segmented into many regions or divisions, the same approval tasks could have between five and over a hundred possible recipients. This article will compare the two methods of conditionally assigning recipients to a task. Those methods are, 1) Using Recipient Rules and 2) Using the Dynamic Assigner task.

Let us examine a portion of a typical new hire request:

The branch manager of a particular location will start the New Hire Request and fill out the New Hire Request Form. On the form there is a question asking what branch the manager is in. The branch location question is a drop down list that contains all the branch location cities and a branch number value associated with each city.

The branch manager will complete the form by answering some other questions about the position such as title and salary etc. Once the form is completed, the branch manager submits it and the next task in the flow is the Area Manager Approval. The area manager can either approve or deny the New Hire Request. Let us take a look at the first way to assign the approval to the appropriate area manager.

 

Using Recipient Rules

If the number of areas is not too big, say no more than ten, it probably makes sense to assign the correct area manager using Recipient Rules. In this case, each area manager is configured as a recipient for the Area Manager Approval task. Since we only want one of the area managers to actually receive and complete the approval with each request, we need to enter Recipient Rules for each recipient indicating in what circumstances they are to actually receive the Area Manager Approval task.

The Area Manager Approval's task recipients screen 

Recipient rules are defined by clicking on the link, "Rules" that is beside each recipient.

Here is what the Recipient Rules look like for Brian Allen who is the Area Manager for upstate New York

We see, that unless the Position Location question's value is either 631, 624, 613, or 628, Brian will not be assigned the Area Manager Approval Task. Each of those numbers represents a branch location somewhere in Brian's area.

For each recipient that we defined for the Area Manager Approval task, we need to add similar rules so that they are only set as the approver when the New Hire Request is coming from a branch in their region.

Configuring Recipient Rules is a straight forward way to handle the situation where you have multiple, optional recipients for a given task and there are business conditions which stipulate when the recipients are to be assigned.  Recipient Rules do not scale well to a large pool of potential recipients because it is very tedious to define them in great quantity and they are also a headache to maintain.

The alternative to Recipient Rules and the preferred method for handling large pools of optional task recipients is to use the Dynamic Assigner task.

Using the Dynamic Assigner

The Dynamic Assigner is available as an optional Integrify task plug-in. It performs a parameterized query against a database in order to retrieve a list of contact id's that will be matched against the Integrify users list. For each match that is found, that user will be assigned to the task. In this example, we will create a simple look-up table which contains the branch locations, the area, and regional manager associated with each branch.

Here is a snapshot of the lookup table

The drop-down list of branch locations in the initial form is filled from this table so we get the branch number as the value when a user selects a branch location. The other two columns in the table, area_mgr_id and regional_mgr_id contain the Integrify contact id's for the for those managers. We will configure the Dynamic Assigner task to look at this table, get the contact id's of the managers, and then assign those managers to their approval task.

Here is the new workflow with the addition of the Dynamic Assigner tasks :


Here is what the configuration for the Assign Area Mgr. Dynamic Assigner task looks like

The Dynamic Assigner is expecting a column named "CONTACT_ID" to be returned in the dataset and will use this value to match the appropriate contacts against the Integrify users table. In this example, only one result will be returned by the Dynamic Assigner because there is only one Area Manager per location. In other situations, the Dynamic Assigner may find multiple Integrify users with its query and all of those users would be assigned to the task.

 

 

Comparing the Pros and Cons of Each Method

Recipient Rules

Pros:

  • Simple, straightforward configuration
  • Great for small recipient pools
Cons:
  • Can take time to update every rule
  • Does not scale well for larger recipient pools 

 

Dynamic Assigner

Pros:

  • Scales great for larger recipient pools
  • Easy to update
  • Allows for lookup table
Cons:
  • Requires knowledge of SQL

 

Comments

 

FCMB said:

The dynamic assigner really works fine but it could be problematic when the query doesn't return any record; the task just grinds to a halt.

the work around could be to use the dynamic assigner against a stored procedure which would return a default contact_id when the recordset is empty.

October 31, 2007 6:28 AM
 

jpearce said:

The dynamic assigner will return a status of "failed" when no users are retrieved. Most tasks are transitioned based on a status of "completed", but you can create another branch when the assigner status is "failed"/

November 6, 2007 8:00 AM
Integrify Inc. 2007