Show/Hide Toolbars

There are certain conventions which must be followed in order to construct a valid, complete qualifier expression for a custom field of type Custom Object. In order to create your own qualifier, you must understand both the syntax and the possible data types for an expression.

Syntax

The following points describe the syntax of expressions for qualifiers in custom fields of the type Custom Object:

The syntax for paths is the same as in the fields where paths are created with Object Navigator, such as rule qualifiers added through the user interface. Namely, the expression you write in the Qualifier field essentially consists of object attributes, separated by periods.

The Qualifier field is case-sensitive. Object attributes must be typed exactly as they appear in Object Navigator (see Using Object Navigator) or using the reference tables in Object Model: Read This First plus the tables it points you to. Also, custom field names must be typed exactly as they are defined in the Custom Fields tab of the object definition.

There are two keywords that can be used when writing qualifiers. Always start a path with one of these keywords:

othis

Refers to the project the user selects in the custom field of type Custom Object. The left side of your expression always starts with this.

ocontainer

Refers to the record where the custom field of type Custom Object is located. Typically, the right side of your expression starts with container, unless you need to type in a literal value rather than identify an object attribute.

System fields are identified with the use of a path that identifies the object attribute, like this:

this.parent.parent.primaryKey

For complete examples of system fields in paths, see the Examples of Qualifiers for Custom Fields of the Type Custom Object table.

Custom fields are identified with the use of a path that includes the category tree position and custom field name in parentheses, like this:

this.detailList(FullTreePosition).detailNumbValueList(FieldName).detailValue

where FullTreePosition is the full tree position of the category under which the custom field is created, and FieldName is the name (not label) of the custom field itself.

Important: Make sure to type the full category tree position, NOT the name, of the category.

When identifying custom field values with a path, you must use the correct path based on the field type, as shown in the Syntax for Identifying Custom Field Values in Paths table. This is because the path changes slightly depending on the type of value you are identifying (number, date, list, and so on), as indicated in bold in the table.

For detailed examples of custom fields in paths, see the Examples of Qualifiers for Custom Fields of the Type Custom Object table.

Syntax for Identifying Custom Field Values in Paths

Custom field type

Path syntax to identify custom field value

Text

detailList(FullTreePosition).detailTextValueList(FieldName).detailValue

Memo Text

detailList(FullTreePosition).detailMemoValueList(FieldName).detailValue

Number

detailList(FullTreePosition).detailNumbValueList(FieldName).detailValue

Date

detailList(FullTreePosition).detailDateValueList(FieldName).detailValue

List (lookup items)

detailList(FullTreePosition).detailObjeValueList(FieldName).detailValue

Custom Object

detailList(FullTreePosition).detailObjfValueList(FieldName).detailValueFID

Important: detailValueFID is the primary key of the project record selected in the identified custom field.

Check-Box

detailList(FullTreePosition).detailNumbValueList(FieldName).detailValue

Important: Values for custom fields of the type check-box are stored as numbers, where checked=1 and not checked=0.

Involved

detailList(FullTreePosition).detailInvlValueList(FieldName).detailValue.contact.primaryKey

Important: This path identifies the primary key of the contact selected in the Involved custom field.

Data Types

When constructing an expression for a qualifier, you must ensure that the type of data identified by the path on each side of the expression is the same. For example, you cannot compare a name and a number or a primary key, a string and a decimal, a date and a complex type, or object.

The Data Types and Operators for Custom Fields of the Type Custom Object table lists the types of data that you can use in the Qualifier field of a custom field of type Custom Object. It also lists the operators that you can use in the expression for each data type. To find out the data type of a specific attribute, see Object Model: Read This First plus the additional reference tables this reference points you to.

It is important to understand that each side of your expression must identify one of these simple types of data values. Specifically, you cannot compare attributes marked as "bridges" in Object Model: Read This First (and the additional reference tables it points to). These values identify other records, rather than simple data values. For example, parent, createdBy, mainAssignee, and project are all bridges rather than simple data values.

Therefore, when you need to compare records, you must use one of the attributes of the record that is a simple data type and that uniquely identifies it. For example, if you want to compare a parent record to another parent or grandparent record, compare their primary keys. Similarly, if you want to compare a user to another user, compare the username (a text value). For other examples, see the Examples of Qualifiers for Custom Fields of the Type Custom Object table.

Data Types and Operators for Custom fields of the type Custom Object

Data type

Operator

Values

Examples

Text

=

Path that identifies a text value

A literal text value that you type manually in the Qualifier field

this.parent.name=container.name

this.currentPhaseType.uniqueCode=LITI

Number

=

<

>

<=

>=

Path that identifies a numeric value

A literal numeric value that you type manually in the Qualifier field

this.parent.primaryKey=container.parent.parent.primaryKey

this.parent.primaryKey=container.detailList(CLAM_AUTO).detailObjfValueList(Vehicle).detailValueFID

this.detailList(RESE).detailNumbValueList(AppraisalAmt).detailValue>=500000

Date


Path that identifies a date value

TODAY (typed manually in the Qualifier field)

TODAYX

For dates, > means after today and < means before today.

this.createdOn>=container.createdOn

this.closedOn=container.detailList(CLAM_AUTO).detailDateValueList(CompletionDate).detailValue

this.createdOn<=TODAY30

Lookup table item (from a system or custom lookup table)

=

Path that identifies a lookup item selected in a field

A full tree position of a lookup item that you type manually in the Qualifier field

For an explanation of how tree positions of lookup items are formed for custom lookup tables, see Custom Lookup Tables.

thisdetailList(CLAM_AUTO).detailObjeValueList(LossCode).detailValue=LOSS_ROOT_VDRE

Boolean (true/ false values)

=

Path that identifies a boolean value

true or false typed manually in the Qualifier field

this.isClosed=false