Filters

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:

  • Als u de rol 'Applicatiebeheer' hebt, kunt alle filters voor alle gebruikers of groepen beheren. Filters zijn niet op u van toepassing.
  • Als u de rol 'Database bijwerken' hebt, kunt u filters beheren voor de applicaties die u hebt gemaakt.
  • Als u de rol 'Databasebeheer' hebt, kunt u filters beheren binnen uw applicaties of kubussen.
  • Als u de rol 'Databasetoegang' (standaard) hebt, hebt u leestoegang tot de gegevenswaarden in alle cellen, behalve wanneer de toegang verder is beperkt met filters.

Filters maken

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.

  1. Navigeer naar de filtereditor.

    In de Redwood interface:

    1. Open de applicatie op de pagina Applicaties en open vervolgens de database (kubus).
    2. Klik op Aanpassing en klik op Filters.

    In de klassieke webinterface:

    1. Vouw de applicatie uit op de pagina Applicaties.
    2. Start het inspectieprogramma vanuit het menu 'Acties', rechts van de kubusnaam.
    3. Selecteer het tabblad Filters.
  2. Klik op Toevoegen.
  3. Geef de naam van een filter op in het tekstvak Filternaam.
  4. Klik in de filtereditor op Toevoegen.
  5. Klik onder Toegang op het dropdownmenu en gebruik dit om een toegangsniveau te selecteren.
    • Geen: er kunnen geen gegevens worden opgehaald of bijgewerkt.

    • Lezen: er kunnen gegevens worden opgehaald, maar niet bijgewerkt.

    • Schrijven: er kunnen gegevens worden opgehaald en bijgewerkt.

    • MetaRead: er kunnen metagegevens (dimensie- en onderdeelnamen) worden opgehaald en bijgewerkt.

      Het toegangsniveau 'MetaRead' overschrijft alle andere toegangsniveaus. Extra gegevensfilters worden afgedwongen binnen bestaande MetaRead-filters. Filteren op onderdeelcombinaties (met AND-relaties) is niet van toepassing op MetaRead. Met MetaRead wordt elk onderdeel afzonderlijk gefilterd (met een OR-relatie).

  6. Selecteer de rij onder Onderdeelspecificatie en voer onderdeelnamen in. Klik vervolgens op Versturen Afbeelding van het Redwood filterpictogram 'Versturen'..

    U kunt op afzonderlijke onderdelen of op onderdeelcombinaties filteren. De filtergegevens kunnen bestaan uit dimensie- of onderdeelnamen, aliasnamen, onderdeelcombinaties, onderdeelsets die zijn gedefinieerd door functies, of namen van vervangingsvariabelen die worden voorafgegaan door een ampersand (&). Gebruik komma's om meerdere vermeldingen van elkaar te scheiden.

  7. Maak zo nodig extra rijen voor het filter.

    Als filterrijen overlappen of conflicteren, krijgen meer gedetailleerde specificaties voor kubusgebieden voorrang op minder gedetailleerde specificaties, en krijgen minder strenge toegangsrechten voorrang op strengere toegangsrechten. Geeft u een gebruiker bijvoorbeeld leestoegang tot 'Werkelijk' en schrijftoegang tot 'Jan', dan heeft de gebruiker schrijftoegang tot 'Jan Werkelijk'.

  8. Klik op Valideren om te controleren of het filter geldig is.
  9. Klik op Opslaan.

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.

Efficiënte dynamische filters maken

U kunt dynamische filters maken op basis van externe brongegevens, om het aantal benodigde filterdefinities te verminderen.

In plaats van een set hardgecodeerde gegevenstoegangsfilters te beheren voor veel gebruikers, kunt u de toegang tot kubuscellen van externe brongegevens dynamisch filteren op basis van onderdeel- en gebruikersnamen.
U doet dit met behulp van de syntaxis van dynamische filterdefinities, waaronder de methode @datasourceLookup en de variabelen $LoginUseren $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.

Syntaxis voor dynamische filters

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.

Workflow voor het maken van dynamische filters

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.

  1. Identificeer een bron van gegevens, of dat nu een bestand of een relationele bron is.
  2. Definieer de verbinding en de gegevensbron in Essbase, op algemeen niveau of applicatieniveau.
  3. Maak filters op kubusniveau,
    • Navigeer in de Redwood interface naar de kubus, kies Aanpassing en kies vervolgens Filters.
    • Gebruik in de klassieke webinterface de sectie Filters van het database-inspectieprogramma.

  4. Definieer filterrijen voor elk filter met behulp van de syntaxis voor dynamische filters om de variabele $loginuser, de variabele $logingroup en de methode @datasourcelookup te gebruiken.
  5. Wijs de filters toe aan gebruikers of groepen.
  6. Als u het filter aan een groep hebt toegewezen, wijst u de groep toe aan de applicatie die wordt gefilterd.
    • Navigeer in de Redwood interface naar de applicatie, kies Aanpassing en kies vervolgens Rechten.
    • Gebruik in de klassieke webinterface de sectie Rechten van het inspectieprogrammam van de applicatie.

Voorbeeld van een dynamisch filter

Het volgende dynamische filter werkt met de kubus Efficient.UserFilters, die in de galerij beschikbaar is als voorbeeldsjabloon.


Dynamisch filter met drie rijen waarmee MetaRead-toegang wordt verleend aan de ingelogde gebruiker

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.