Filtrele controlează accesul de securitate la valorile de date dintr-un cub. Filtrele sunt cea mai granulară formă de securitate disponibilă.
Când creaţi un filtru, desemnaţi un set de restricţii pt. anumite celule ale cubului sau pt. un interval de celule. Puteţi asigna filtrul utilizatorilor sau grupurilor.
Propriul dvs. rol de securitate stabileşte dacă puteţi crea, asigna, edita, copia, redenumi sau şterge filtre:
Puteţi crea mai multe filtre pt. un cub. Dacă editaţi un filtru, modificările efectuate asupra definiţiei acestuia sunt moştenite de toţi utilizatorii filtrului respectiv.
Consultaţi Controlul accesului la celulele bazei de date utilizând filtre de securitate.
Pentru a edita un filtru în interfaţa Redwood, găsiţi fila Filtre selectând cubul şi apoi selectând pagina Personalizare. Apoi editaţi filtrul făcând clic pe numele său şi efectuând modificările dorite în editorul de filtre. Pentru a edita un rând existent, faceţi dublu clic în rândul respectiv.
Pentru a edita un filtru în interfaţa web clasică, accesaţi fila Filtre din inspector şi editaţi filtrul făcând clic pe numele său şi efectuând modificările în editorul de filtre.
Puteţi să copiaţi un filtru, să-l redenumiţi sau să-l ştergeţi, printr-un clic în meniul Acţiuni, în dreapta numelui filtrului, iar apoi prin alegerea uneia dintre opţiuni.
După crearea filtrelor, trebuie să le asignare la utilizatori sau grupuri.
Puteţi crea filtre dinamice pe baza datelor sursă externe pt. a reduce numărul de definiţii de filtre necesare.
@datasourceLookup
şi variabilele $LoginUser
şi $LoginGroup
. Datele dvs. sursă externe sunt un fişier .csv sau un tabel relaţional. Pentru datele sursă relaţionale, puteţi încărca fişierul .csv într-un tabel relaţional.Utilizaţi sintaxa cu filtre dinamice pt. a crea filtre flexibile pe care să le puteţi asigna mai multor utilizatori şi mai multor grupuri.
Rândurile de filtre pot conţine următoarele elemente ca parte din definiţie, în plus faţă de expresiile pt. membri.
$loginuser
Această variabilă stochează valoarea utilizatorului conectat curent la runtime. Poate fi utilizată împreună cu metoda @datasourcelookup
.
$logingroup
Această variabilă stochează valoarea tuturor grupurilor cărora le aparţine utilizatorul conectat în acel moment. Ea include şi grupuri directe, şi grupuri indirecte. Când este utilizată împreună cu metoda @datasourcelookup
, fiecare grup este comparat individual cu sursa de date.
@datasourcelookup
Această metodă preia înregistrări dintr-o sursă de date.
Sintaxă
@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
Parametru | Descriere |
---|---|
dataSourceName |
Numele sursei de date externe, definit în Essbase. Pentru o sursă de date la nivel de aplicaţie, prefixaţi numele cu numele aplicaţii şi un punct. |
columnName |
Numele coloanei Sursă de date, pt. a căuta o anumită columnValue. |
columnValue |
Valoarea de căutat în columnName. |
returnColumnName |
Numele coloanei Sursă de date, din care se returnează o listă de valori. |
Descriere
O apelare @datasourcelookup este echivalentă cu următoarea interogare SQL:
select returnColumnName from dataSourceName where columnName=columnValue
@datasourcelookup caută în sursa de date specificată şi caută înregistrările în care columnName conţine columnValue. Dacă specificaţi columnValue ca $loginuser
, această metodă va căuta înregistrări în care columnName conţine numele utilizatorului conectat momentan.
Essbase formează rândul definiţiei filtrului prin combinarea elementelor din listă ca şir separat prin virgulă. Dacă o înregistrare conţine caractere speciale, spaţii sau doar numere, acestea sunt incluse între ghilimele.
Exemple
Includeţi parametrii între ghilimele.
Următoarea apelare caută o sursă de date globală şi returnează o listă de nume de magazine, unde Mary este managerul magazinului.
@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")
Următoarea apelare caută o sursă de date la nivel de aplicaţie şi returnează o listă de nume de magazine, unde utilizatorul conectat momentan este managerul magazinului.
@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")
Următoarea apelare caută o sursă de date la nivel de aplicaţie şi returnează o listă de nume de magazine al căror nume corespunde oricăruia din grupurile cărora le aparţine utilizatorul conectat în acel moment.
@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")
Dacă utilizatorul conectat în acel moment aparţine de 3 grupuri, metoda @datasourcelookup
de mai sus returnează toate valorile de coloane care se potrivesc cu fiecare grup.
Utilizaţi următorul workflow general pt. crearea filtrelor dinamice.
Acest workflow pt. filtre dinamice presupune că aveţi deja un cub şi aţi alocat utilizatori şi grupuri.
În interfaţa web clasică, utilizaţi secţiunea Filtre a inspectorului bazei de date.
$loginuser
, variabila $logingroup
, şi metoda @datasourcelookup
dacă este necesar.Următorul filtru dinamic funcţionează cu cubul denumit Efficient.UserFilters, disponibil în galerie ca şablon eşantion.
Pentru a afla cum să creaţi şi să aplicaţi acest filtru dinamic, descărcaţi şablonul registrului de calcul, Efficient_Filters.xlsx
, din secţiunea Tehnic a galeriei şi urmaţi instrucţiunile din fila README a registrului. Galeria este disponibilă în secţiunea Fişiere a interfeţei web Essbase.