Value Identifiers are one of the following:
- A Data Dictionary Name, e.g. DESCRIPTION or DATE_CREATED
- A Data Dictionary Name, qualified with a Layout Name, e.g. ADD_PROBLEM.DESCRIPTION
- A User ID, e.g. BILL.SMITH
- A User Role, e.g. ADMIN or QA
- A Special Value as defined on this page.
These must be upper case, and must match the internal name of the respective value. Value Identifiers are interpreted first as a Data Dictionary Name, then User ID, and then User Role unless an IDENT: is specified. Rule values are expressions of the form:
- ‘Value’ β Values can be quoted or left unquoted if their interpretation is unambiguous β i.e. there are no embedded spaces, etc. If this is a lookup field (typically this is a field with a display type of LIST, TAB, or POPUP) this will be treated as the Display title and verified against the database
- Special values are what their name implies: a placeholder for a value the system will provide. These are values, such as USER or SYSDATE. See this page for a full list of special values
- DD_NAME β A Data Dictionary name may be used to reference the value associated with that data element, such as ASSIGNED_TO. Data Dictionary names may be used on either side of the operator. Data dictionary names should always be expressed in uppercase.
- (link name).DD_NAME β A link name may be specified before a DD_NAME to reference the value contained in a related issue. The link name must be specified in a Link Directive
- Qualifiers – Complex identifiers consist of an optional link expression, a DD_NAME followed by one or more qualifiers. Qualifiers are properties, such as {is external}, or conditions, such as {changed}. They may also be complex conditions, as {changed_from:’value’}, where ‘value’ is interpreted as a simple value. See this page for a list of qualifiers
-
IDENT:βValueβ β This is a special form, used to force evaluation of an identifier as a specific type. For example, this can be used to force evaluation of a value as a User ID if there happens to be a Data Dictionary entry with the same value. Use one of the following forms:
- EMAIL to specify an email address
- USER to specify a User ID
- ROLE to specify a User Role
Comparison of Field Values
The internal and external representations of fields vary across their display type. When fields within rule expressions are compared (using relational operators such as “<“, “>”, “!=”, or “=”), the field values are coerced into objects that are appropriate or capable of comparison. The coercions used in rules are defined in the following:
- LIST β LIST : display titles in the default locale are compared as strings. Includes aliased lists
- LIST β TEXTFIELD: display title of list value in default locale is compared to the TEXTFIELD
- LIST β DATE: the display title of the list value is parsed as a date and compared to DATE field as Calendar object
- LIST β DAY: same as LIST β DATE
- LIST β NUMBER: the display title of the list value is parsed as a double (floating point) and compared to the NUMBER field as a Double object
- LIST β DECIMAL: the display title of the list value is parsed as a decimal and compared to DECIMAL field as a BigDecimal object
- LIST β CURRENCY: the display title of the list value is parsed as a currency and compared to CURRENCY field as a BigDecimal object
- LIST β USER: the display title of the list value is compared to the display name of the USER field as Strings
- TEXTFIELD β TEXTFIELD: the text field values are compared as Strings
- TEXTFIELD β DATE: the text field value is parsed as a date and compared to the DATE field as a Calendar object
- TEXTFIELD β DAY: same as TEXTFIELD β DATE
- TEXTFIELD β NUMBER: the text field value is parsed as a double and compared to the NUMBER field as a Double object
- TEXTFIELD β DECIMAL: the text field value is parsed as a decimal and compared to the DECIMAL field as a BigDecimal object
- TEXTFIELD β CURRENCY: the text field value is parsed as a currency and compared to the CURRENCY field as a BigDecimal object
- TEXTFIELD β USER: the text field value is compared to the display name of the USER field as Strings
- DATE β DATE: the DATE fields are compared as Calendar objects
- DATE β DAY: same as DATE β DATE
- DATE β NUMBER: unequal
- DATE β DECIMAL: unequal
- DATE β CURRENCY: unequal
- DATE β USER: unequal
- DAY β DAY: same as DATE β DATE
- DAY β NUMBER: unequal
- DAY β DECIMAL: unequal
- DAY β CURRENCY: unequal
- DAY β USER: unequal
- NUMBER β NUMBER: compared as double (floating point) numbers
- NUMBER β DECIMAL: the DECIMAL field value is converted to BigDecimal, and then Double, then the fields are compared as double (floating point) numbers
- NUMBER β CURRENCY: same as NUMBER-DECIMAL
- NUMBER β USER: unequal
- DECIMAL β DECIMAL: the DECIMAL field values are compared as BigDecimal objects
- DECIMAL β CURRENCY: same as DECIMAL-DECIMAL
- DECIMAL β USER: unequal
- CURRENCY β CURRENCY: same as DECIMAL-DECIMAL
- CURRENCY β USER: unequal
- USER β USER: the user display names are compared