Les filtres contrôlent l'accès sécurisé aux valeurs de données dans un cube. Ils représentent la forme de sécurité la plus granulaire disponible.
Lorsque vous créez un filtre, vous désignez un jeu de restrictions dans des cellules de cube particulières ou dans un intervalle de cellules. Vous pouvez alors affecter le filtre à des utilisateurs ou à des groupes.
Votre propre rôle de sécurité détermine si vous pouvez créer, affecter, modifier, copier, renommer ou supprimer des filtres :
Vous pouvez créer plusieurs filtres pour un cube. Si vous modifiez un filtre, les modifications apportées à sa définition sont héritées par tous les utilisateurs de ce filtre.
Voir Contrôle de l'accès aux cellules de base de données à l'aide de filtres de sécurité.
Pour modifier un filtre dans l'interface Redwood, localisez l'onglet Filtres en sélectionnant le cube, puis en sélectionnant la page Personnalisation. Vous pouvez alors modifier le filtre en cliquant sur son nom et en apportant des modifications dans l'Éditeur de filtres. Pour modifier une rangée existante, cliquez deux fois sur cette rangée.
Pour modifier un filtre dans l'interface Web classique, allez à l'onglet Filtres de l'inspecteur, puis modifiez le filtre en cliquant sur son nom et en apportant vos modifications dans l'éditeur de filtres.
Vous pouvez copier, renommer ou supprimer un filtre en cliquant sur le menu Actions à droite du nom du filtre et en sélectionnant une option.
Après avoir créé des filtres, vous devez les affecter à des utilisateurs ou groupes.
Vous pouvez créer des filtres dynamiques basés sur des données sources externes pour réduire ainsi le nombre de définitions de filtre nécessaires.
@datasourceLookup
et les variables $LoginUser
et $LoginGroup
. Les données sources externes sont un fichier CSV ou une table relationnelle. Pour des données sources relationnelles, vous pouvez charger le fichier .csv dans une table relationnelle.Utilisez la syntaxe de filtre dynamique pour créer des filtres flexibles que vous pouvez affecter à plusieurs utilisateurs et groupes.
Les rangées de filtre peuvent contenir les éléments suivants dans leur définition, en plus des expressions de membre.
$loginuser
Cette variable stocke la valeur de l'utilisateur actuellement connecté à l'exécution. Elle peut être utilisée avec la méthode @datasourcelookup
.
$logingroup
Cette variable stocke la valeur de tous les groupes auxquels appartient l'utilisateur actuellement connecté. Elle inclut les groupes directs et indirects. Si elle est utilisée avec la méthode @datasourcelookup
, chaque groupe est consulté individuellement par rapport à la source de données.
@datasourcelookup
Cette méthode extrait les enregistrements à partir d'une source de données.
Syntaxe
@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
Paramètre | Description |
---|---|
dataSourceName |
Nom de la source de données externe définie dans Essbase. Pour une source de données au niveau de l'application, ajoutez le nom de l'application et une période comme préfixe du nom. |
columnName |
Nom de la colonne de la source de données pour rechercher la valeur columnValue indiquée. |
columnValue |
Valeur à rechercher dans columnName. |
returnColumnName |
Nom de la colonne de la source de données à partir de laquelle la liste de valeurs est retournée. |
Description
Un appel @datasourcelookup est équivalent à l'interrogation SQL suivante :
select returnColumnName from dataSourceName where columnName=columnValue
@datasourcelookup consulte la source de données indiquée et recherche les enregistrements dans lesquels columnName contient columnValue. Si vous spécifiez columnValue comme $loginuser
, cette méthode recherche les enregistrements dans lesquels columnName contient le nom de l'utilisateur actuellement connecté.
Essbase forme la définition de filtre en combinant les éléments de la liste comme chaîne séparée par des virgules. Si un enregistrement contient des caractères spéciaux, des espaces ou uniquement des chiffres, il est automatiquement entouré par des guillemets.
Exemples
Entourez les paramètres par des guillemets.
L'appel suivant consulte une source de données globale et retourne la liste des noms de magasins, où Mary est le gestionnaire du magasin.
@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")
L'appel suivant consulte une source de données au niveau de l'application et retourne la liste des noms de magasins, où l'utilisateur actuellement connecté est le gestionnaire du magasin.
@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")
L'appel suivant consulte une source de données au niveau de l'application et retourne la liste des noms de magasins, où le rayon de magasin correspond à l'un des groupes auquel appartient l'utilisateur actuellement connecté.
@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")
Si l'utilisateur connecté appartient aux 3 groupes, la méthode @datasourcelookup
ci-dessus retourne toutes les valeurs de colonne correspondantes pour chaque groupe.
Utilisez le flux de travail général suivant pour créer des filtres dynamiques.
Ce flux de travail de filtres dynamiques suppose que vous ayez déjà un cube et que vous ayez provisionné les utilisateurs et les groupes.
Dans l'interface Web classique, utilisez la section Filtres de l'inspecteur de la base de données.
$loginuser
, la variable $logingroup
et la méthode @datasourcelookup
, le cas échéant.Le filtre dynamique suivant fonctionne avec le cube nommé Efficient.UserFilters, disponible dans la galerie comme exemple de modèle.
Pour apprendre à créer et à appliquer ce filtre dynamique, téléchargez le modèle de classeur, Efficient_Filters.xlsx
, à partir de la section Technique de la galerie, et suivez les instructions du fichier README dans le classeur. La galerie est disponible dans la section Fichiers de l'interface Web d'Essbase.