View this page in the latest version of Appian. none() Function Share Share via LinkedIn Reddit Email Copy Link Print On This Page Calls a rule or function that returns either true or false for each item in list by asking the question, "Do all items in this list yield false for this rule/function?" with the intent to discover if no items will yield true. Parameters none( 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 predicate evaluation. Returns Boolean Using the function The following sections cover important details about the none() function. Using the predicate parameter In the predicate parameter of none(), enter fn!functionName or a!functionName to reference an expression function, or rule!ruleName to reference a rule. Using the context parameter The context parameter lets you pass fixed parameters that stay the same for each list item. When the predicate parameter has more than two parameters, the context parameter provides the remaining ones. See Checking items with context for an example. Understanding results The none() function returns false as soon as the returned value of an evaluation yields true; otherwise, returns true. Empty and null lists yield true. Unsupported functions The none() function doesn't support a!forEach() in rules that you use as the predicate. Examples The following examples demonstrate the none() function. To experiment with examples, copy and paste the expression into an expression rule and click TEST RULE to see the output. Checking items in a list This example checks whether no items in a list are null or empty, using a!isNullOrEmpty as the predicate. 1 2 3 4 none( a!isNullOrEmpty, {1, 2, null, 3, null, 4} ) Returns false. Checking items in an empty list This example shows how none() behaves when the list parameter is empty. 1 2 3 4 none( a!isNullOrEmpty, {} ) Returns true. Checking 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. Checking items in a list with context This example uses the context parameter to pass a group into every evaluation of the predicate. 1 2 3 4 5 none( a!isUserMemberOfGroup, {"user1", "user2", "user3"}, cons!csaAdmins ) Returns false when user1 and user3 are members of the group referenced by cons!csaAdmins. The a!isUserMemberOfGroup() function has 3 parameters: username, groups, and matchAllGroups. The none() list corresponds to username, and the list of values provided in the context parameter are used as the next two parameters, groups and matchAllGroups. Checking items in a list with context for more than two parameters This example checks whether no user in a list belongs to all groups in a set. It passes two context values into a!isUserMemberOfGroup, which takes more than two parameters. 1 2 3 4 5 none( a!isUserMemberOfGroup, {"user1", "user2", "user3"}, {cons!allGroups, true} ) Returns false when user1 is a member of all the groups referenced in cons!allGroups. The a!isUserMemberOfGroup() function has 3 parameters: username, groups, and matchAllGroups. The none() list corresponds to username, and the list of values provided in the context parameter are used as the next two parameters, groups and matchAllGroups. Checking all items in a list with context for more than two parameters which accept lists This example uses merge() to pass list values through the context parameter, mapping each list to a predicate parameter. 1 2 3 4 5 none( a!isUserMemberOfGroup, {"user1", "user2", "user3"}, merge({cons!csaAdmins, cons!csaProfs}, {true, true}) ) Returns false when 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. Checking a list with a custom expression rule This example checks whether no dates in a list 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 none( rule!isDateLater, {date(1950, 2, 3), date(1950, 6, 23), date(1950, 5, 2)}, date(1950, 4, 7) ) Returns false. 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 Was this page helpful? SHARE FEEDBACK Loading...