Filter styr säkerhetsåtkomst till datavärden i en kub. Filter är den mest detaljerade formen av säkerhet som finns tillgänglig.
När du skapar ett filter tilldelar du en uppsättning begränsningar till särskilda kubceller eller ett intervall av celler. Du kan sedan tilldela filtret till användare eller grupper.
Din säkerhetsroll bestämmer om du kan skapa, tilldela, redigera, kopiera, ändra namn på eller ta bort filter:
Du kan skapa flera filter för en kub. Om du redigerar ett filter ärvs ändringar som görs av dess definition av alla användare av det filtret.
Vill du redigera ett filter i Redwood-gränssnittet, letar du upp fliken Filter genom att välja kuben och sedan välja sidan Anpassning. Sedan redigerar du filtret genom att klicka på filternamnet och göra ändringar i filterredigeraren. Vill du redigera en befintlig rad dubbelklickar du på den.
Vill du redigera ett filter i det klassiska webbgränssnittet går du till fliken Filter i Inspektion och redigerar filtret genom att klicka på filtrets namn och göra dina ändringar i filterredigeraren.
Du kan kopiera, ändra namn på eller ta bort ett filter genom att klicka på menyn Åtgärder till höger om filternamnet och välja ett alternativ.
När du har skapat filter tilldelar du dem till användare eller grupper.
Du kan skapa dynamiska filter baserat på externa källdata för att minska det antal filterdefinitioner som behövs.
@datasourceLookup
och variablerna $LoginUser
och $LoginGroup
. Dina externa källdata är en csv-fil eller en relationstabell. För relationskälldata kan du ladda .csv-filen till en relationstabell.Använd syntax för dynamiska filter för att skapa flexibla filter som du kan tilldela till flera användare och grupper.
Filterrader kan innehålla följande element som en del av sin definition, utöver medlemsuttryck.
$loginuser
Den här variabeln lagrar värdet för den inloggade användaren vid exekvering. Den kan användas i kombination med metoden @datasourcelookup
.
$logingroup
Den här variabeln lagrar värdet för alla grupper som den för tillfället inloggade användaren tillhör. Den inkluderar både direkta och indirekta grupper. När den används i kombination med metoden @datasourcelookup
slås varje grupp upp individuellt mot datakällan.
@datasourcelookup
Den här metoden hämtar poster från en datakälla.
Syntax
@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
Parameter | Beskrivning |
---|---|
dataSourceName |
Namnet på den externa datakälla som definieras i Essbase. För en datakälla på applikationsnivå ska applikationsnamnet och en punkt anges som prefix i namnet. |
columnName |
Namnet på den datakällkolumn som ska genomsökas efter ett visst columnValue. |
columnValue |
Det värde som du vill söka efter i columnName. |
returnColumnName |
Namnet på den datakällkolumn som en lista över värden ska returneras från. |
Beskrivning
Ett @datasourcelookup-anrop motsvarar följande SQL-fråga:
select returnColumnName from dataSourceName where columnName=columnValue
@datasourcelookup slår upp den angivna datakällan och söker efter poster där columnName innehåller columnValue. Om du för columnValue anger $loginuser
så söker den här metoden efter poster där columnName innehåller den inloggade användarens namn.
Essbase bildar filterdefinitionen genom att kombinera listelementen som en kommaavgränsad sträng. Om någon post innehåller specialtecken, blanksteg eller endast siffror omsluts den av citattecken.
Exempel
Placera parametrarna inom citattecken.
Följande anrop slår upp en global datakälla och returnerar en lista över lagernamn där Mary är lageransvarig.
@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")
Följande anrop slår upp en datakälla på applikationsnivå och returnerar en lista över lagernamn där den inloggade användaren är lageransvarig.
@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")
Följande anrop slår upp en datakälla på applikationsnivå och returnerar en lista över lagernamn där lageravdelningen matchar någon av grupperna som den inloggade användaren tillhör.
@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")
Om den inloggade användaren tillhör 3 grupper returnerar metoden @datasourcelookup
ovan alla matchande kolumnvärden för varje grupp.
Använd följande allmänna arbetsflöde när du vill skapa dynamiska filter.
Det här arbetsflödet för dynamiska filter förutsätter att du redan har en kub och behörighetstilldelade användare och grupper.
I det klassiska webbgränssnittet använder du sektionen Filter i databasgranskningen.
$loginuser
, variabeln $logingroup
och metoden @datasourcelookup
efter behov.Följande dynamiska filter fungerar med kuben benämnd Efficient.UserFilters, som finns i galleriet som en exempelmall.
Om du vill lära dig hur du skapar och använder det här dynamiska filtret ska du ladda ned arbetsboksmallen, Efficient_Filters.xlsx
, från sektionen Tekniskt i galleriet och följa README-instruktionerna i arbetsboken. Galleriet är tillgängligt i sektionen Filer i webbgränssnittet för Essbase.