Application assignment resolution

Introduction

When a user needs to create an application, the system uses an assignment resolution query to determine which workflows are available, and who the approvers will be. 

Assignments are mod_approval activity instances, and they provide the context for applications associated with them. They also define who the approvers are for each approval level of their workflow.

Details

Determining which assignments are available requires three pieces of information:

  • The desired workflow type
  • The user's applicable job assignment, if any
  • The list of audiences the user belongs to

A series of lookups is performed for assignments in the desired workflow type that match the user's job assignment and/or audiences, and an application may be created on the closest match.

The closest match is defined as the oldest active, depth-first-matching assignment.

  • Oldest means the lowest record ID. There is a bias towards stability; you can't accidentally replace a similar assignment, you have to archive the previous active one.
  • Active means that the assignment is active, not in draft or archived. 
  • Depth-first-matching means that the organisation or position closest to those associated with the user's job assignment – either the actual organisation or position they hold, or the closest parent, looking up the hierarchy. 

If no organisation or position matches are found in the pool of available assignments, then an audience match is sought. So, the organisation hierarchy is preferable to the position hierarchy, which is preferable to an audience.

In practice, we recommend choosing either organisation or position for workflow assignments, and using audiences as a fallback for users without job assignments, or choosing audiences for assignments and avoiding hierarchies.

Why not let the user choose?

The goal was to create as little friction for applicants as possible. Creating different paths for choosing which workflow and assignment to create an application on is relatively straightforward.