Free cookie consent management tool by TermsFeed

Configure Record Type Filters

This page describes the difference between sync filters and default filters, and how to apply them to your record type.

Overview

After choosing the source of your record type, you may decide that you don't need all the data from your source, or that you want to exclude certain data to prevent end users from viewing it. From the record type, you can add filters that exclude source data that does not meet the specified criteria.

Depending on whether your record type has data sync enabled, the way you filter source data will vary:

  • If you have a synced record type, you can apply sync filters to only sync data that meets specific conditions.

  • If you have an unsynced record type, you can apply default filters to only allow certain records to appear in the record list and views based on the conditions you specify.

These options are not applicable to record types that use a web service as the source (synced or unsynced). Instead, you can use the record data source expression to conditionally filter out records.

Sync filters

Note:  In the latest version of Appian, existing source filters are now called sync filters.

When you enable data sync on your record type, you can apply sync filters to specify which data is synced and available in the record type. Sync filters allow you to exclude unnecessary data, and even work with data sources that would otherwise cause your record type to exceed the synced row limit.

For example, let's say you have a database with 6 million rows of support case data. To sync and access all of this data, you could create two different record types: the Open Case record type and the Closed Case record type. Both record types would point to the same database, but they each use a sync filter so that they only sync cases with a specific status.

You can add sync filters when you configure the source of a record type, or anytime after configuring the source by navigating to the Data Model page of the record type. The sections below explain how to add sync filters after the source of the record type has been configured.

To add a sync filter, use one of the following options:

  • Basic mode: Apply multiple syncs filters joined by an AND union.
  • Expression mode: Apply more complex filters by entering an expression containing a!queryLogicalExpression().

Basic mode

Basic mode allows you to easily set up filters using three criteria: Field, Condition, and Value.

To add a sync filter using Basic mode:

  1. In your record type, go to Data Model.
  2. Under SYNC FILTERS, click ADD FILTERS.
  3. In the Configure Sync Filters dialog, leave the default selection Basic.
  4. Click ADD SYNC FILTER.
  5. Configure the following properties:

    Property Action
    Field Select a source field to filter by. Only source types that can be converted to Appian types appear in the dropdown.
    Condition Select the operator to apply to the filter.
    Value Use the context menu next to the field to select how you want to pass the value into the filter. The options in this menu change based on the data type of the field selected. You can enter a static value or enter an expression.
  6. Click ADD SYNC FILTER to add additional filters. Multiple filters are combined using the AND operator.
  7. Select the Ignore Filters with Empty Values checkbox to skip filters that have empty an Value. See a!queryLogicalExpression() for more information.
  8. Click TEST FILTER to validate your filter conditions.
  9. Click to delete a filter.
  10. Click OK.
  11. Click SAVE CHANGES.

Expression mode

Expression mode allows you to create more complex filters. You can switch to expression mode at any time during your filter configuration. For example, if you want to use OR to combine filters instead of AND, simply create all of your filters in Basic mode, then switch to Expression mode and change AND to OR for the a!queryLogicalExpression() operator parameter.

When configuring sync filters in expression mode, you must use a list of a!queryFilter() or a!queryLogicalExpression().

To configure a sync filter using Expression mode:

  1. In your record type, go to Data Model.
  2. Under SYNC FILTERS, click ADD FILTERS.
  3. In the Configure Sync Filters form, select Expression.
  4. In the expression editor, enter an expression that returns a list of a!queryFilter() or a!queryLogicalExpression().

    Note:  Sync filters do not support the now() or loggedinuser() function, or any object references called from the rule! or cons! domain.

  5. Click TEST FILTER to validate your filter conditions.
  6. Click OK.
  7. Click SAVE CHANGES.

For example, the following sync filter expression would only sync opportunities that have a status of active and an opportunity level of either "Must have" or "Should have". Any data that does not meet these filter conditions will not be synced in Appian.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
  /*
  (Has a status of "Active" AND has an opportunity level of "Must have" OR "Should have")
  */
  a!queryLogicalExpression(
    operator: "AND",
    logicalExpressions: {
       a!queryLogicalExpression(
        operator: "AND",
        filters: a!queryFilter(
           field: "status",
           operator: "=",
           value: "Active")
      ),
       a!queryLogicalExpression(
         operator: "OR",
         filters: {
          a!queryFilter(field: "opportunityLevel", operator: "=", value: "Must have"),
          a!queryFilter(field: "opportunityLevel", operator: "=", value: "Should have")
         }
       )
    }
  )

Default filters

When your record type does not have data sync enabled, you can use default filters to specify which records appear in the record list and views based on the conditions you specify.

When a record is filtered out by a default filter:

  • The record does not show up in the record list.
  • The record is not returned in queries on that record type.
  • Users may not access the views on the record.

Each default filter defines a condition that must be true for a record to display in the list. If you have multiple conditions, the record must meet all conditions in order to display.

For example, in a Case record type, you may want case managers to view all customer support cases, but you only want support engineers to see the cases that are assigned to them. Using a default filter, you could create a filter condition that states if a logged in user is a member of the Support Engineers group, only return cases assigned to the logged in user; Otherwise, return all customer support cases.

Tip:  If your record type has data sync enabled, you can use record-level security to achieve this same use case.

To create a default filter, use one of the following options:

  • By Field: Allows you to apply multiple default filters joined by an AND union.
  • Expression: Allows you to apply more complex filters by entering an expression containing a list of a!queryFilter() or a!queryLogicalExpression().

By field

Creating filters by field allows you to easily set up filters using three criteria: Field, Operator, and Value. Multiple filters are combined using the AND operator.

To create a default filter by field:

  1. In your record type, go to Source & Default Filters.
  2. Keep the default selection of By Field.
  3. Click on New Default Filter.
  4. Click the Field dropdown and select the record field that you want to set as the default filter.
  5. Select the appropriate comparison from the Operator dropdown.
  6. Enter the value for the comparison in the Value field. This is an expression field, so encase text values in quotes.
  7. Click OK.
  8. Click SAVE CHANGES.

Expression

Creating filters using an expression allows you to create more complex filters. When configuring sync filters in Expression mode, you must use an expression containing a list of a!queryFilter() or a!queryLogicalExpression().

To create a default filter using an expression:

  1. In your record type, go to Source & Default Filters.
  2. Select Expression.
  3. In the expression editor, enter an expression that returns a list of queryFilter or queryLogicalExpression.
  4. Click OK.
  5. Click SAVE CHANGES.

For example, the following default filter expression returns cases that are either assigned to the logged in user, or cases that are not assigned to the "Global Users" group but are either Urgent or High priority:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
   /*
   (Assigned to User OR (NOT Assigned to "Global Users" AND (priority="Urgent" OR priority="High")))
   */
  if(a!isUserMemberOfGroup(loggedInUser(),cons!CASE_GROUP_GLOBAL_VIEWERS),
    {},
    a!queryLogicalExpression(
      operator: "OR",
       logicalExpressions: {
         a!queryLogicalExpression(
           operator: "AND",
           filters: a!queryFilter(
            field: "userName",
            operator: "=",
            value: loggedInUser())
        ),
         a!queryLogicalExpression(
          operator: "AND",
           logicalExpressions: {
             a!queryLogicalExpression(
              operator: "AND",
              filters: a!queryFilter(
                field: "userName",
                 operator: "<>",
                value: cons!CASE_ADMIN_DB_KEY_1)
            ),
            a!queryLogicalExpression(
               operator: "OR",
               filters: {
                 a!queryFilter(field: "priority", operator: "=", value: "Urgent"),
                a!queryFilter(field: "priority", operator: "=", value: "High")
              }
             )
           }
        )
      }
    )
  )

Feedback