Filtre styrer sikkerhedsadgang til dataværdier i en kube. Filtre er den mest finkornede form for sikkerhed, der er tilgængelig.
Når du opretter et filter, angiver du et sæt begrænsninger for bestemte kubeceller eller et bestemt interval af celler. Du kan derefter tildele brugere eller grupper filteret.
Din egen sikkerhedsrolle bestemmer, om du kan oprette, tildele, redigere, kopiere, omdøbe eller slette filtre:
Du kan oprette flere filtre for en kube. Hvis du redigerer et filter, nedarves modifikationer af dets definition til alle brugerne af det pågældende filter.
Se Styring af adgang til databaseceller ved hjælp af sikkerhedsfiltre.
Find fanen Filtre ved at vælge kuben og derefter vælge siden Tilpasning for at redigere et filter i Redwood-interfacet. Rediger derefter filteret ved at klikke på filternavnet og foretage ændringerne i filtereditoren. Dobbeltklik i en række for at redigere en eksisterende række.
Gå til fanen Filtre i fremviseren for at redigere et filter i det klassiske webinterface, og rediger filteret ved at klikke på filternavnet og foretage ændringerne i filtereditoren.
Du kan kopiere, omdøbe eller slette et filter ved at klikke på menuen Handlinger til højre for filternavnet og angive et valg.
Efter oprettelse af filtre skal du tildele dem til brugere eller grupper.
Du kan oprette dynamiske filtre på basis af eksterne kildedata for at reducere antallet af nødvendige filterdefinitioner.
@datasourceLookup
og variablerne $LoginUser
og $LoginGroup
. Dine eksterne kildedata er en csv-fil eller en relationstabel. For relationskildedata kan du indlæse csv-filen i en relationstabel.Brug dynamisk filtersyntaks til at oprette fleksible filtre, som du kan tildele flere brugere og grupper.
Filterrækker kan ud over medlemsudtryk indeholde følgende elementer som en del af deres definition.
$loginuser
Denne variabel gemmer værdien for den bruger, der p.t. er logget på, under runtime. Den kan bruges sammen med metoden @datasourcelookup
.
$logingroup
Denne variabel gemmer værdien af alle de grupper, som den bruger, der p.t. er logget på, tilhører. Den omfatter både direkte og indirekte grupper. Når den bruges sammen med metoden @datasourcelookup
, bliver hver gruppe slået op individuelt i datakilden.
@datasourcelookup
Denne metode henter records fra en datakilde.
Syntaks
@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
Parameter | Beskrivelse |
---|---|
dataSourceName |
Navnet på den eksterne datakilde, der er defineret i Essbase. Hvis det er en datakilde på applikationsniveau, skal du bruge applikationsnavnet og et punktum som præfiks. |
columnName |
Navnet på den datakildekolonne, hvor der skal søges efter en given columnValue. |
columnValue |
Den værdi, der skal søges efter i columnName. |
returnColumnName |
Navnet på den datakildekolonne, hvorfra der skal returneres en liste over værdier. |
Beskrivelse
Et @datasourcelookup-kald svarer til følgende SQL-forespørgsel:
select returnColumnName from dataSourceName where columnName=columnValue
@datasourcelookup slår den givne datakilde op og søger efter records, hvor columnName indeholder columnValue. Hvis du angiver columnValue som $loginuser
, søger denne metode efter records, hvor columnName indeholder navnet på den bruger, der p.t. er logget på.
Essbase udformer filterdefinitionsrækken ved at kombinere listeelementerne som en kommasepareret streng. Hvis en record indeholder specialtegn/mellemrum eller kun tal, omsluttes de af anførselstegn.
Eksempler
Sæt parametrene i anførselstegn.
Følgende kald slår en global datakilde op og returnerer en liste over lagernavne, hvor Mary er lageransvarlig.
@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")
Følgende kald slår en datakilde på applikationsniveau op og returnerer en liste over lagernavne, hvor den bruger, der p.t. er logget på, er lageransvarlig.
@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")
Følgende kald slår en datakilde på applikationsniveau op og returnerer en liste over lagernavne, hvor lagerafdelingen matcher enhver af de grupper, som den bruger, der p.t. er logget på, tilhører.
@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")
Hvis den bruger, der er logget på, tilhører 3 grupper, returnerer ovenstående @datasourcelookup
-metode alle de matchende kolonneværdier for hver gruppe.
Brug det følgende generelle workflow til oprettelse af dynamiske filtre.
Dette workflow med dynamiske filtre antager, at du allerede har en kube og provisionerede brugere og grupper.
Brug sektionen Filtre i databasefremviseren i det klassiske webinterface.
$loginuser
, variablen $logingroup
og metoden @datasourcelookup
ved hjælp af syntaksen for dynamiske filtre.Det følgende dynamiske filter fungerer sammen med kuben Efficient.UserFilters, der er tilgængelig i galleriet som eksempelskabelon.
Du kan lære at oprette og anvende dette dynamiske filter ved at downloade projektmappeskabelonen Efficient_Filters.xlsx
fra sektionen Teknisk i galleriet og følge README-instruktionerne i projektmappen. Du finder galleriet i sektionen Filer i Essbase-webinterfacet.