wherecontains( values, array )
Receives one or more values and returns an array of indexes that indicate the position of the values within the array.
See also:
true
, instead of items that match a user-defined value.wherecontains()
function.Keyword | Type | Description |
---|---|---|
|
Any Type Array |
The values to find. |
|
Any Type Array |
The array in which the values are found. |
Integer Array
This function is useful for finding which items in a CDT array have the same value for a field.
You can then use that array of indexes as the index argument for the index()
function in order to pull the values for another field in that CDT array. This will give you all the values in the second field that have a matching value in the first field. An example is displayed below.
The arguments passed to both the values and array parameters must be of the same type. For example, you can not search through a Decimal Array with a values argument of type Integer.
You can not search through an array of groups or documents with their Integer ID values. Either cast the group/document array to an Integer, or cast the ID values to type group or document.
The types of values and array must be the same or Appian will return an error. For example, wherecontains(1, {1.2})
will not evaluate since values is an integer and array is a list of decimals.
When there is no match, the function returns an empty array.
1
wherecontains(20, {10, 20, 30})
Returns {2}
.
1
wherecontains(50, {10, 20, 30})
Returns {}
.
1
wherecontains({2, 1}, {1, 2, 2, 3})
Returns {1, 2, 3}
. Since 2
was found twice in the list, both indexes are returned along with the index of 1
. The indexes returned are in order of the values found in the array.
1
wherecontains({20, "b"}, {10, 20, "b"})
Returns {2, 3}
1
wherecontains(topaginginfo(1, 1), {topaginginfo(1, 1), topaginginfo(1, 2)})
Returns {1}
1
wherecontains(null, {"a", "", "b"})
Returns {2}
. Since ""
is equivalent to a null
text value, the second index is returned.
1
wherecontains(tointeger({}), {1, 2, 3})
Returns {}
.
index()
function1
index(pv!employees.firstName, wherecontains("Finance", pv!employees.department))
Returns the first names of all employees with their department field set to Finance
or an empty array if none have it set to Finance
.
Text values are case-sensitive.
Feature | Compatibility | Note |
---|---|---|
Portals | Compatible | |
Offline Mobile | Compatible | |
Sync-Time Custom Record Fields | Compatible | Can be used to create a custom record field that only evaluates at sync time. |
Real-Time Custom Record Fields | Incompatible | Custom record fields that evaluate in real time must be configured using one or more Custom Field functions. |
Process Reports | Compatible | |
Process Events | Compatible |
wherecontains() Function