De toegang tot gegevenswaarden in een kubus wordt beheerd met behulp van filters. Filters zijn de meest nauwkeurige vorm van beveiliging die beschikbaar is.
Wanneer u een filter maakt, wijst u een set beperkingen toe aan bepaalde kubuscellen of aan een reeks cellen. U kunt het filter vervolgens aan gebruikers of groepen toewijzen.
Uw eigen beveiligingsrol bepaalt of u filters kunt maken, toewijzen, bewerken, kopiëren, hernoemen of verwijderen:
U kunt meerdere filters voor een kubus maken. Als u een filter bewerkt, worden de wijzigingen van de definitie overgenomen door alle gebruikers van dat filter.
Zie voor meer informatie: Toegang tot databasecellen beheren met beveiligingsfilters.
Om een filter in de Redwood interface te bewerken, zoekt u het tabblad 'Filters' door de kubus te selecteren en vervolgens de pagina 'Aanpassing'. Bewerk vervolgens het filter door op de filternaam te klikken en uw wijzigingen in de filtereditor door te voeren. Om een bestaande rij te bewerken, dubbelklikt u in die rij.
Om een filter in de klassieke webinterface te bewerken, gaat u naar het tabblad 'Filters' in het inspectieprogramma. Hier kunt u het filter bewerken door op de filternaam te klikken en uw wijzigingen in de filtereditor door te voeren.
U kunt een filter kopiëren, hernoemen of verwijderen door te klikken op het menu 'Acties' rechts van de filternaam en een optie te kiezen.
Nadat er filters zijn gemaakt, wijst u ze toe aan gebruikers of groepen.
U kunt dynamische filters maken op basis van externe brongegevens, om het aantal benodigde filterdefinities te verminderen.
@datasourceLookup
en de variabelen $LoginUser
en $LoginGroup
. Uw externe brongegevens bevinden zich in een CSV-bestand of relationele tabel. Voor relationele brongegevens kunt u het CSV-bestand in een relationele tabel laden.Met de syntaxis voor dynamische filters kunt u flexibele filters maken en deze toewijzen aan verschillende gebruikers en groepen.
Behalve onderdeeluitdrukkingen kunnen filterrijen de volgende elementen bevatten als onderdeel van hun definitie.
$loginuser
In deze variabele wordt tijdens runtime de waarde van de huidige ingelogde gebruiker opgeslagen. De variabele kan worden gebruikt in combinatie met de methode @datasourcelookup
.
$logingroup
In deze variabele wordt de waarde opgeslagen van alle groepen waartoe de huidige ingelogde gebruiker behoort. Dit kunnen zowel directe als indirecte groepen zijn. Wanneer u deze variabele gebruikt in combinatie met de methode @datasourcelookup
, wordt elke groep afzonderlijk opgezocht in de gegevensbron.
@datasourcelookup
Met deze methode worden records uit een gegevensbron opgehaald.
Syntaxis
@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
Parameter | Beschrijving |
---|---|
dataSourceName |
De naam van de in Essbase gedefinieerde externe gegevensbron. Laat voor een gegevensbron op applicatieniveau de naam voorafgaan door de naam van de applicatie en een punt. |
columnName |
De naam van de gegevensbronkolom waarin naar een bepaalde columnValue moet worden gezocht. |
columnValue |
De in columnName te zoeken waarde. |
returnColumnName |
De naam van de gegevensbronkolom waaruit een waardelijst moet worden geretourneerd. |
Beschrijving
Een aanroep van @datasourcelookup is equivalent aan de volgende SQL-zoekvraag:
select returnColumnName from dataSourceName where columnName=columnValue
Met @datasourcelookup wordt de opgegeven gegevensbron opgezocht en gezocht naar records waarin columnName de waarde columnValue bevat. Als u columnValue opgeeft als $loginuser
, wordt met deze methode gezocht naar records waarin columnName de naam van de momenteel ingelogde gebruiker bevat.
In Essbase wordt de filterdefinitierij gevormd door de lijstelementen te combineren in een door komma's gescheiden string. Als een record speciale tekens of spaties bevat, of alleen uit cijfers bestaat, wordt het ingesloten in aanhalingstekens.
Voorbeelden
Plaats de parameters tussen aanhalingstekens.
Met de volgende aanroep wordt een algemene gegevensbron opgezocht en wordt een lijst geretourneerd met namen van winkels waar Mary de winkelmanager is.
@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")
Met de volgende aanroep wordt een gegevensbron op applicatieniveau opgezocht en wordt een lijst geretourneerd met namen van winkels waar de momenteel ingelogde gebruiker de winkelmanager is.
@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")
Met de volgende aanroep wordt een gegevensbron op applicatieniveau opgezocht en wordt een lijst geretourneerd met namen van winkels waarvan de afdeling van de winkel overeenkomt met de groep(en) waartoe de ingelogde gebruiker behoort.
@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")
Als de ingelogde gebruiker tot 3 groepen behoort, retourneert met de bovenstaande @datasourcelookup
-methode alle overeenkomende kolomwaarden voor elke groep.
Gebruik de volgende algemene workflow om dynamische filters te maken.
In deze workflow voor dynamische filters wordt aangenomen dat u al een kubus hebt en dat u gebruikers en groepen hebt gefaciliteerd.
Gebruik in de klassieke webinterface de sectie Filters van het database-inspectieprogramma.
$loginuser
, de variabele $logingroup
en de methode @datasourcelookup
te gebruiken.Het volgende dynamische filter werkt met de kubus Efficient.UserFilters, die in de galerij beschikbaar is als voorbeeldsjabloon.
Als u wilt weten hoe u dit dynamische filter kunt maken en toepassen, downloadt u de werkboeksjabloon Efficient_Filters.xlsx
uit de sectie Technisch van de galerij en volgt u de README-instructies in het werkboek. De galerij is beschikbaar in de sectie Bestanden van de webinterface van Essbase.