Behaviors of filters in roles
You can combine different filters that are defined to be applied to the same view.
Pay attention to the following when using multiple conditions and predicates in roles:
- The predicates Or, And, and Not are now available for use.
- The Not predicate does not work if there are multiple conditions.
- When multiple conditions are defined, the or or and predicate on the last condition is not used to combine conditions.
- The predicates are
applied to the conditions according to their sequential order. For example, if four
conditions C1, C2, C3, C4 are defined in the following
order:
C1 and C2 or C3 and C4 none
The predicates are applied to the conditions in this way (((C1 and C2) or C3) and C4).
- The value of the String type can be entered with or without double quotes when defining a condition.
For example, a user is assigned two roles RoleFinance and RoleLogistics successively, which have different filters on the same view ProductFamily of the entity ProductFamily.
The filters in the first role RoleFinance are defined with two conditions C1 and C2 as follows:
XPath | Operator | Value | Predicate | Condition Alias |
---|---|---|---|---|
ProductFamily/Id | > | "3" | and | C1 |
ProductFamily/ChangeStatus | Contains | "Pending" | or | C2 |
The filters in the second role RoleLogistics are defined with two conditions C3 and C4 as follows:
XPath | Operator | Value | Predicate | Condition Alias |
---|---|---|---|---|
ProductFamily/Id | < | "5" | and | C3 |
ProductFamily/ChangeStatus | Contains | "Completed" | none | C4 |
The filters from the two roles are combined to be (((C1 and C2) or C3) and C4).
When a user having the two roles RoleFinance and RoleLogistics queries data with the view ProductFamily, since the change status of a product family cannot be Pending and Completed at the same time, no data will be returned.