Fields

eTraxis allows you to specify in a template what data must be provided for each state of your workflow. Each piece of data is a field, which is linked to particular state. When user creates a record, he is requested for values for all fields linked to initial state. If user moves a record to another state, then he is requested for values for all fields linked to this state. So please note, that if a record never was in some state, then the record doesn't have fields of this state yet. Thus, when user modifies a record, he's able to change current value of any field, which already exists in the record.

eTraxis has also one predefined field, which is present in every created record − "Subject". This is a string of text with maximum length of 250 characters. The field is implied as brief description of a record, and displayed in the list of records among other record attributes.

Field types

Since the data may vary in their nature, eTraxis provides several predefined types of fields:

When you are creating new fields in your template, first of all you are requested for type of new field. When type is specified, several additional things are requested, depends on the chosen type as described further. Also most of field types are related to "required" option and to default value. The "required" option specifies whether the field can be empty, i.e. has no value at all. When user creates a record, modifies a record, or changes a state, he will be forced to enter value for all fields marked as required. All other fields are optional and their values may be bypassed.

Also you can specify optional description of the field, which will appear as a tooltip when information icon is clicked (see screenshot below). You can use BBCode in the description text.

Screenshot

Besides described attributes, you can also specify for any field, whether a separator should be added. Separator is a horizontal line, which will be displayed after the field. It's a cosmetic item, that allows to group fields of the same state when the state has too many fields.

All fields of the same state are displayed in specified order. Each newly created field is put to the end of fields list by default. You can change order of existing fields if you would like.

Default value

When user creates new record, he is requested for all fields of the initial state. If some field has default value specified in its template, then this field is filled in with this value by default, otherwise the field is empty. User can either change the default value, or keep it as provided.

The same situation takes place when user moves a record to new state − he is requested for values for all fields related to new state. A template can be defined in a way when it's able to move a record to some state several times during its life cycle. And default values are used only when a record goes to a state first time. All other times the record returns to the same state, current field values will be reused instead of default ones.

Number fields

Field of "number" type can contain only integer values. When creating new field of this type you have to specify range of allowed values. The widest possible range of allowed values is from −1000000000 (a milliard) to +1000000000. Default value is optional and can be either empty or any integer from specified range.

Screenshot

Decimal fields

Field of "decimal" type can contain fixed-point values. When creating new field of this type you have to specify range of allowed values. The widest possible range of allowed values is from −9999999999.9999999999 to +9999999999.9999999999. Default value is optional and can be either empty or any decimal from specified range.

Screenshot

String fields

Field of "string" type can contain sequence of characters. When creating new field you have to specify maximum allowed length of field values, which can be up to 250. Default value is optional and can be either empty or any string which length is not greater than specified maximum.

Screenshot

For string fields you can also specify following three optional attributes:

  • PCRE to check field values,
  • search PCRE to transform field values,
  • replace PCRE to transform field values.

First PCRE is a Perl-compatible regular expression, that will check values being entered in the field. Two other PCRE are to update entered values (e.g. format entered phone numbers) and must be used together. Please note that provided PCRE pattern will be put between "/" characters, so you have to escape any "/" character in your pattern. Also "i", "s", and "u" modifiers will be automatically applied.

For example, you can specify the following pattern as a "checking PCRE" if you need a field, which will be used to enter phone numbers in "000-000-0000" format:

(\d{3})-(\d{3})-(\d{4})

Another example is for field values transformation. Let's assume, you want to display entered phone numbers from previous example in "(000) 000-0000" format. You can specify the (\d{3})-(\d{3})-(\d{4}) pattern as a "search PCRE" (it contains 3 subpatterns bounded by round brackets), and ($1) $2-$3 pattern as a "replace PCRE", where $x is a way to address subpattern.

Detailed description of PCRE is out of scope of this documentation. Please refer to PCRE manuals, or just skip these three PCRE options keeping them empty.

Multilined text fields

The purpose of "multilined text" type is clear from its name. When creating new field of this type you have to specify maximum allowed length, which can be up to 4000. Default value is optional and can be either empty or any text which length is not greater than specified maximum. As for string fields described above, you can also specify same three optional PCRE-attributes.

Screenshot

Check box fields

Field of "check box" type is a trigger which can have one of two possible values − on or off. You have to specify only default value of such field.

Screenshot

List fields

Field of "list" type is a set of user-defined items. Any list item consists of two parts − number and name. Number is an integer value of range from 1 to 2147483647 (231−1) and is used to sort and search records. Name is a string up to 50 characters length and is displayed to user when one works with field of this type. To create new field of this type you have to specify set of list items. When enumerating list items please put each item on separated line in format of number name (space separated). Default value is optional and can be either empty or number of any specified item.

Screenshot

Record fields

Field of "record" type can contain only identifier of another existing record. You have to specify only whether the field is required.

Screenshot

Date fields

Field of "date" type can contain only date values. When creating new field you have to specify range of allowed values. The widest range of allowed values is from −2147483648 (−2311) to 2147483647 (231−1). This value means offset in amount of days from current date. For example, having range specified from 0 to 7, user will be able to enter any date between "6/18/2009" and "6/25/2009" if he tries to enter a value on "6/18/2009". Default value is optional and can be either empty or any integer value from the specified range.

Screenshot

Duration fields

Field of "duration" type can contain only values in format "hh:mm". When creating new field of this type you have to specify range of allowed values. The widest range of allowed values is from "0:00" to "999999:59". Default value is optional and can be either empty or any value from specified range. This type of field doesn't imply time of a day − it's only duration, which can be measured as amount of hours and minutes (e.g. fourty two and half hours can be expressed as "42:30"), or as amount of minutes and seconds (the measurement units of the particular field are completely up to you).

Screenshot

Permissions

Each field, except built-in "Subject", has access permissions, which can be specified for existing groups and system roles as one of following:

  • none,
  • read-only,
  • read and write.
Screenshot

Permission to read-only means that members of a group can view this field and its current value, but cannot change the value when record is being modified. Please note, this restriction is ignored when record is being moved to the state with this field − in this case values of all state's fields will be requested.

Permission to read and write allows to members of a group to change current value of the field when record is being modified.

Permission named "none" makes the field hidden for members of a group. This restriction is also ignored when record is being moved to the state with this field.

Please note, when you created new field all existing local project groups are given permissions to read and write automaticaly, while all existing global groups remain with no permissions to this field.