Background

A field is a nugget of information that need to be tracked.  Normally, fields represent columns in a table in a database.  Under the workflow system, we use the term "field" to refer to information in a meta sense.  A workflow field is actually defined in a row in a table called Field, and represented in a row in a table called MatterField.  This enable the workflow system to store and track each nugget of information that enters the system, as well as enabling administrators to expand the system without programming.

Fields are maintained via the Administration - Fields link.

Field Information

Each master field consists of the following:

Repeatability

It is possible to reuse fields in more than one task.  For instance, we may have a field called Sale Date which we want to appear in 3 different tasks (Sale Preparation, Sale Bid, Results of Sale).  You must determine whether each of these tasks may have their own Sale Date, or if updating one Sale Date should update all of them.  Possible values are:

If you change the repeatability of a field, you must synchronize existing matters.  For example, if a field defined as once per process is changed to once per task, the synchronize function will ensure that additional MatterField rows are added to the MatterField table.  Likewise, if a field defined as once per task is changed to once per process, all but one of the MatterField rows will be deleted.

Field Types

Field types detemine the type of information that may be entered into a field.   The first several types simpy control the input form field used on a task screen (as well as some javascript code which enforces types like dates and money). 

Text
Paragraph
Date
Money
Integer
Percent %
Number
Checkbox
Hidden (you cannot see it)
Lookup Table
Drop Down
URL (any web object)

The last type, Lookup Table, provides a drop-down list of values from a SQL view, which must correspond precisely with the Lookup table in SQL.  That is, for each lookup table XXXXXX, there must be a view named "vXXXXXX" which include as fields XXXXXXID and XXXXXX, which will be used to populate the drop-down list.

For example, if Organization is a lookup table, it must also:

  1. be an entry in the Lookup table (Lookup - Lookup Tables)
  2. have a corresponding view called vOrganization
  3. vOrganization must have two columns, name OrganizationID and Organization

 

HTML Fields

HTML Fields can be used to display user defined content where normally you would see the field. Useful if you want more than the standard task update screen but don't want to design a custom page. A useful tool is to use twin_object functionality.

Custom Matter Search Routine

There is a standard search routine used to find matters. You can build a customised or optimised routine for each searchable field. This requires a stored procedure (base it on cmattersearch). When the user selects the field, this routine is called instead of the standard routine. In addition to making the searches faster, custom routines can be used to search multiple fields for the same value or return custom values to the mattersearch page. The standard search routines uses a like clause. Optimised search can use the = clause which can be much quicker. You can set-up a field whose only purpose is as a place marker for the search routine.