Advanced Customisation: Dispositions

Disposition Maintenance

This screen is allows maintenance of the job dispositions that are used throughout the system. In some cases we may also refer to a job disposition as a job state.

Fields that can be changed:

Status Restrictions

Status restrictions can be used to determine which dispositions may be entered into which jobs and when they may be entered. They can be maintained in the Status Restrictions maintenance screen, which is available in Maintenance->Job->Status Restrictions, or from a short cut button in Disposition Maintenance.

We use status restrictions to enforce job work flow. For example, when a new dispatch job arrives into the system, we normally want it to be dispatched to an officer. Amongst other things, we'll then expect the officer to arrive on site, perform some tasks and then leave the site - in that order.

We don't want items being entered out of order, and we don't want required items to be missed. In addition, by knowing which items can occur at any point, GDS can offer people a shorter and more relevant list of dispositions to choose from.

The system achieves this by checking the status restriction list at each point where a new disposition may be entered. It looks at what state the job is currently in and works out what dispositions are allowed to come next.

When determining which dispositions can be used next, GDS starts at the top of the status restrictions list and works its way down in order, stopping at the first line that matches. The matching line has an 'allow' or 'disallow' value that determines whether the given disposition may be used. If GDS reaches the end of the list then it defaults to allowing the disposition. Once your setup is mature you are encouraged to put an all-matching 'disallow' line at the end of the list to change this behaviour.

In addition to 'allow' and 'disallow', there are two 'skip' options: the 'skip next' option is special in that if matched, GDS will skip processing the restriction line that follows and then carry on until it finds another matching line. The 'skip next disallow' option will skip all lines up to and including the next 'disallow' line, then will continue processing from the line after that. This allows you to set up default exclusions but pass certain combinations on for further checking.

Each restriction line has a number of fields in it. Only two are required: 'Index', which determines the ordering of the line, and 'Allow/Disallow/Skip next', which determines whether matches will be permitted at this point in the job. All of the other fields are optional - if left blank they will match all values. For each line, fill in only the fields that you want GDS to check.

The fields are:

Status restrictions are held in memory in each running copy of GDS for quick access. They are refreshed as a user logs in, so users currently logged into GDS will not see changes until they close GDS and log back in again. They'll also take effect after GDS automatically refreshes them, around every 30 minutes. A short-cut also exists: if a user selects View->System Status from the traffic menu, GDS will trigger a status restriction refresh in the background.

Status restrictions on the PDAs are assigned as each PDA logs in from the current set on the PDA server. The PDA server refreshes its status restriction set every 30 minutes, or can be forced to do so immediately by viewing View->System Status on the PDA server copy of GDS.

When setting up status restrictions, current best practise is to restrict based on the job type or customer using restriction groups at the top of the restriction list, then enforce the job flow and order using status restrictions further down. This way you can filter the available states based on the job type first, then still take advantage of the generic status ordering that applies to all jobs.

We also recommend that the very last status restriction be DISALLOW, with no conditions on it - that way if none of the prior rules have correctly matched then GDS will disallow the status. This stops us from seeing unexpected statuses in the list when operators are working with jobs.

Some example status restrictions:

Start status group=START, New status group=UNCON, Allow=Allow
Start status group=START, New status group=STANDDOWN, Allow=Allow
Start status group=UNCON, New status group=UNCON, Allow=Allow
Start status group=UNCON, New status group=CON, Allow=Allow
Start status group=UNCON, New status group=STANDDOWN, Allow=Allow
Start status group=CON, New status group=CON, Allow=Allow
Start status group=CON, New status group=ONSITE, Allow=Allow
Start status group=CON, New status group=STANDDOWN, Allow=Allow
Start status group=ONSITE, New status group=ONSITE, Allow=Allow
Start status group=ONSITE, New status group=OFFSITE, Allow=Allow
Start status group=OFFSITE, New status group=OFFSITE, Allow=Allow
Start status group=(blank), New status group=(blank), Allow=Disallow

A very basic job flow configuration. Allows a new job to be confirmed, then allows it to go onsite, then offsite and finally it can be closed. Note that we allow multiple dispositions to be entered in the UNCON, CON, ONSITE and OFFSITE groups (eg start=ONSITE, new=ONSITE allows us to move from one ONSITE state to another ONSITE state). We also allow stand-down, but only if the guard has not yet arrived on-site. Note that we have a 'default disallow' policy - if none of the other lines match, we eventually hit the Disallow line at the end, which filters out all unexpected status combinations.

Restriction group=NOISE, Allow=Skip disallow, Job type=NOISE
Restriction group=NOISE, Allow=Disallow, Job type=(blank)

Ensures that noise control dispositions are available for noise control jobs (subject to any later rules), but disallow them for any other type of job. Put this at the top of the restriction list so that it is seen before the other more general restrictions. Then in dispostion maintenance, add all noise-control-specific statuses to the NOISE restriction group. This will ensure that they only appear for noise control jobs.

Start status group=UNCON, New Status group CON, Customer=AB100, Supervisor=YES, Allow=Skip Disallow
Start status group=UNCON, New status group CON, Customer=AB100, Supervisor=NO, Allow=Disallow

Allow dispatch only by supervisor for this customer.

Status Groups

Because there are normally too many dispositions to list them all individually in the restriction list, we group the dispositions together based on when in the job flow they occur. Then we can restrict them based on the group each is in instead.

We group the dispositions by putting each disposition into a status group in Disposition Maintenance. You can define the status groups in Status Group Maintenance.

While you're welcome to use any groupings you wish, some of GDS's reporting functions require you to have groups set up so that certain things about jobs can be measured. To use these functions you'll need groups for some or all of:

Not all of these are necessarily required, depending on which things you wish to measure, but for typical GDS installations all will be present. Suggested group names are above, but you can use any names that you like. You can tell GDS about the groups you have created in User Options->Job Flow. You can also create additional status groups for other sequences that you want to track or restrict.

Restriction Groups

Restriction groups can be used to separate dispositions into groups related to the jobs they will likely occur in. Unlike Status Groups, they won't normally be related to the point in the work flow in which the disposition occurs - they'll normally be linked to job type or event instead.

For example, a security company performing noise control will likely have a set of dispositions related to noise control (e.g. 'excessive noise', 'warning served' and the like). A normal security guard performing an alarm attendance has no need for these dispositions, so by putting them in a 'NOISE' restriction group, and Disallowing dispositions from that group in non-noise jobs, you can ensure that they are seen only when needed.

Restriction Groups can be defined in Restriction Group Maintenance (a button in Disposition Maintenance). You can assign dispositions to restriction groups by setting the Restriction group field in Disposition Maintenance.

Restriction groups are also applied on the PDAs to filter the dispositions available to the guard. Note that the PDAs do have some elements of the job flow built into them (eg jobs are normally expected to be confirmed and the officer is expected to mark on-site and so on), as determined by the status tags. Restrictions mainly affect the list of dispositions the officer sees while on site.