Comportement des filtres dans les rôles
Vous pouvez combiner différents filtres définis pour être appliqués sur la même vue.
Lorsque vous utilisez plusieurs conditions et prédicats dans les rôles, gardez à l'esprit ceci :
- Les prédicats Or, And et Not peuvent désormais être utilisés.
- Le prédicat Not ne fonctionne pas s'il existe plusieurs conditions.
- Lorsque plusieurs conditions sont définies, le prédicat or ou and utilisé sur la dernière condition, ne l'est pas pour combiner des conditions.
- Les prédicats sont appliqués aux conditions selon leur ordre de séquence. Par exemple, si quatre conditions C1, C2, C3, C4 sont définies dans l'ordre suivant :
C1 and C2 or C3 and C4 none
Les prédicats sont appliqués aux conditions de cette manière : (((C1 and C2) or C3) and C4).
- Lors de la définition d'une condition, la valeur de type String peut être saisie avec ou sans guillemets doubles.
Par exemple, un utilisateur ou une utilisatrice a deux rôles assignés RoleFinance et RoleLogistics successivement. Ces rôles ont différents filtres sur la même Vue ProductFamily de l'entité ProductFamily.
Les filtres du premier rôle RoleFinance sont définis avec deux conditions C1 et C2 comme suit :
XPath | Operator (Opérateur) | Valeur | Prédicat | Alias de la condition |
---|---|---|---|---|
ProductFamily/Id | > | "3" | and | C1 |
ProductFamily/ChangeStatus | Contains (Contient) | "Pending" | or | C2 |
Les filtres du second rôle RoleLogistics sont définis avec deux conditions C3 et C4, comme suit :
XPath | Operator (Opérateur) | Valeur | Prédicat | Alias de la condition |
---|---|---|---|---|
ProductFamily/Id | < | "5" | and | C3 |
ProductFamily/ChangeStatus | Contains (Contient) | "Completed" | Aucun | C4 |
Les filtres des deux rôles sont combinés pour donner (((C1 and C2) or C3) and C4).
Lorsqu'un utilisateur ou une utilisatrice a les deux rôles RoleFinance et RoleLogistics assignés et effectue une requête sur les données avec la vue ProductFamily, aucune donnée n'est retournée car le statut de modification de la famille de produits ne peut être Pending et Completed en même temps.