Free cookie consent management tool by TermsFeed

reject() Function

On This Page

Calls a predicate for each item in a list, rejects any items for which the returned value is true, and returns all remaining items.

Parameters

reject( predicate, list, context )

Keyword Type Description

predicate

Function, Rule, or Data Type Constructor

Expression that returns a Boolean (true or false).

list

Any Type Array

List of elements that the predicate iterates through.

context

Any Type Array

Variable number of parameters passed directly into each function evaluation.

Returns

Any Type Array

Using the function

The following sections cover important details about the reject() function.

Using the predicate parameter

In the predicate parameter of reject(), enter fn!functionName or a!functionName to reference an expression function, or rule!ruleName to reference a rule.

Using rules or functions with multiple arguments

To use rules or functions that take more than two arguments, use the merge() function. For example, given a rule g(x, y, z), reduce(rule!g, i, merge({a, b, c}, {d, e, f})) returns g(g(g(i, a, d), b, e), c, f).

Unsupported functions

The reject() function doesn't support a!forEach() in rules that you use as the predicate.

Examples

The following examples demonstrate the reject() function.

To experiment with examples, copy and paste the expression into an expression rule and click TEST RULE to see the output.

Rejecting items in a list

This example rejects null and empty values from a list using a!isNullOrEmpty as the predicate.

1
2
3
4
reject(
  a!isNullOrEmpty,
  {1, 2, null, 3, null, 4}
)

Returns {1, 2, 3, 4}.

Rejecting items with context

To help demonstrate how the context parameter works in looping expressions, let's look at an example.

Imagine you're building an expression that uses looping to analyze group membership in your application. You have four Group constants configured in the following ways:

Constant Group(s) referenced Group membership
cons!csaAdmins CSA Administrators user1, user3
cons!csaProfs CSA Professors user1, user2, user4, user5, user6, user7
cons!csaBuilding1 CSA Building 1 user1, user2, user3, user5, user6, user7
cons!allGroups CSA Adminstrators, CSA Professors, CSA Building 1 See above

The following expressions reference these constants to show how context works when checking items in a list.

Note:  These examples reference constants from another environment and will error if you try to use them in yours. Use them as a reference only.

Rejecting items in a list with context

This example uses the context parameter to pass fixed values into each evaluation of the predicate.

1
2
3
4
5
reject(
  a!isUserMemberOfGroup,
  {"user1", "user2", "user3"},
  cons!csaAdmins
)

Returns {"user2"} when user1 and user3 are members of the group referenced by cons!csaAdmins. a!isUserMemberOfGroup has 3 parameters: username, groups, and matchAllGroups. The reject() list corresponds to username, and the list of values provided in the context parameter are used as the next two parameters, groups & matchAllGroups.

Rejecting items in a list with context for more than 2 parameters

1
2
3
4
5
reject(
  a!isUserMemberOfGroup,
  {"user1", "user2", "user3"},
  {cons!allGroups, true}
)

Returns {"user2", "user3"} when only user1 is a member of all the groups referenced in cons!allGroups. a!isUserMemberOfGroup has 3 parameters: username, groups, and matchAllGroups. The reject() list corresponds to username, and the list of values provided in the context parameter are used as the next two parameters, groups & matchAllGroups.

Rejecting items in a list with context for more than 2 parameters which accept lists

1
2
3
4
5
reject(
  a!isUserMemberOfGroup,
  {"user1", "user2", "user3"},
  merge({cons!csaAdmins, cons!csaProfs}, {true, true})
)

Returns {"user2", "user3"}. In this case, only user1 is a member of the groups referenced in cons!csaAdmins and cons!csaProfs. The merge() function maps the list values to the correct parameters in this example.

Rejecting items in a list with a custom expression rule

This example rejects dates that are later than a reference date. It uses a helper rule, rule!isDateLater(value, referenceDate), which is defined as:

1
ri!value > ri!referenceDate

Example filter:

1
2
3
4
5
reject(
  rule!isDateLater,
  {date(1950, 2, 3), date(1950, 6, 23), date(1950, 5, 2)},
  date(1950, 4, 7)
)

Returns {2/3/1950}

Feature compatibility

The table below lists this function's compatibility with various features in Appian.
Feature Compatibility Note
Portals Compatible
Offline Interfaces 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 Incompatible

Cannot be used to configure a process report.

Process Events Partially compatible

If autoscale is enabled, can be used to configure a supported process event node (such as a start event or timer event).

Process Autoscaling Compatible

Can be used in autoscaled processes.

Event Consumer Filter Conditions Compatible

Can be used in filter conditions.

Event Consumer Event Handlers Compatible

Can be used in event handler expressions.

Feedback