Page tree

Filter identifiers represent data access points in an expression at run time, pumping data into the expression. The system can compare filter identifiers against static literal values or against each other. This topic describes the following identifiers:

Primitive identifiers

Primitive identifiers can be of the following types:

  • Boolean
  • Integer
  • Decimal
  • String
  • IP address

Collection identifiers

Collection identifiers represent lists of values. Collections are evaluated by operators applied to each element in the collection in an iterative fashion. The successful evaluations are tallied, and the collection-specific operator uses that result as an input to its evaluation.

If a collection identifier is present without a collection-specific operator, the evaluation defaults to the ANY operator. The following expressions produce the same results:

post_param in ("debit","credit") any
post_param in ("debit","credit")

Map identifiers

Map identifiers represent lists of keys and their associated values. Also, each key can contain more than one value: a key can be associated to a collection instead of a single value. A common case is when URL query parameters are repeated in the URL. For example, results in a single key, id associated with the collection A,B,C.

If you do not provide a specific key for a map identifier, then the entire set of values for the entire map is returned as a single collection. If you provide a specific key, then only the values for that key are returned as a collection.

You must enclose a key name in double quotation marks and enclose the quoted identifier in parentheses at the end of the identifier, as follows: identifier("key").

Array identifiers

Array identifiers represent collections of values that are accessed by using an index value. If you use an array identifier and do not specify an index position, the identifier can be used as a collection. If you provide an index position, only that specific value is returned.

An index position must be a positive integer (including zero), and you must enclose it in square brackets and place it at the end of the identifier, as follows: identifier[integer].

The system can also index array identifiers from the last position backwards — that is, you can specify the second-to-last entry. Place the last keyword and a hyphen in the square brackets preceding the integer, as follows: identifier[last - integer].

Map array identifiers

Map array identifiers represent an array of maps. A typical example is the set of path parameters in a URL, in which each path element can contain several embedded parameters. The same parameter can appear in different path elements using different values.

These identifiers use a combination of array-specific and map-specific techniques to access the array and map contents. The identifier is followed by an optional index position and then by an optional key name, as follows: identifier[integer]("key").

Complex identifiers

A complex identifier represents a collection of related identifiers — for example, URLs. To use a complex identifier, you must specify a child identifier immediately after its parent, using a dotted notation, as follows: parent.child.

Related topics

Filter operators in the Expression Builder
Creating a filter with the Expression Builder