Filtre riadia zabezpečenie prístupu k hodnotám dát v kocke. Filtre predstavujú najpodrobnejšiu formu zabezpečenia, ktorá je k dispozícii.
Keď vytvárate filter, určujete množinu obmedzení konkrétnych buniek kocky alebo rozsahu buniek. Potom môžete filter priradiť k používateľom alebo skupinám.
Vaša vlastná rola zabezpečenia určuje, či môžete filtre vytvárať, priraďovať, upravovať, kopírovať, premenovávať alebo odstraňovať.
Pre kocku môžete vytvoriť viacero filtrov. Ak upravujete filter, úpravy uskutočnené v jeho definícii zdedia všetci používatelia tohto filtra.
Pozrite si časť Kontrola prístupu k bunkám databázy pomocou filtrov zabezpečenia.
Ak chcete upraviť filter v rozhraní Redwood, vyhľadajte kartu Filtre tak, že vyberiete kocku a potom vyberiete stránku Prispôsobenie. Potom upravte filter tak, že kliknete na názov filtra a vykonáte zmeny v editore filtrov. Ak chcete upraviť existujúci riadok, dvakrát kliknite na príslušný riadok.
Ak chcete upraviť filter v klasickom webovom rozhraní, v inšpektorovi prejdite na kartu Filtre a upravte filter tak, že kliknete na názov filtra a vykonáte zmeny v editore filtrov.
Filter môžete kopírovať, premenovať alebo odstrániť tak, že kliknete na ponuku Akcie napravo od názvu filtra a vyberiete príslušnú voľbu.
Keď vytvoríte filtre, priraďte ich k používateľom alebo skupinám.
Môžete vytvoriť dynamické filtre založené na externých dátových zdrojoch na zníženie počtu potrebných definícií filtrov.
@datasourceLookup
a premenných $LoginUser
a $LoginGroup
. Externý dátový zdroj je súbor .csv alebo relačná tabuľka. Pre relačný dátový zdroj môžete načítať súbor .csv do relačnej tabuľky.Syntax dynamického filtra slúži na vytváranie flexibilných filtrov, ktoré možno priraďovať k viacerým používateľom a skupinám.
Riadky filtra môžu ako súčasť definície spolu s výrazmi členov obsahovať nasledujúce prvky.
$loginuser
Táto premenná uchováva hodnotu aktuálneho prihláseného používateľa v runtime. Možno ju použiť v spojení s metódou @datasourcelookup
.
$logingroup
Táto premenná ukladá hodnotu všetkých skupín, do ktorých patrí aktuálne prihlásený používateľ. Zahŕňa priame aj nepriame skupiny. Pri použití v spojení s metódou @datasourcelookup
sa každá skupina jednotlivo vyhľadáva v dátovom zdroji.
@datasourcelookup
Táto metóda vyvoláva záznamy z dátového zdroja.
Syntax
@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
Parameter | Popis |
---|---|
dataSourceName |
Názov externého dátového zdroja definovaného v Essbase. V prípade názvu dátového zdroja na úrovni aplikácie použite ako prefix názov aplikácie a bodku. |
columnName |
Názov stĺpca dátového zdroja, v ktorom sa má vyhľadávať daný parameter columnValue. |
columnValue |
Hodnota, ktorá sa má vyhľadávať v stĺpci columnName. |
returnColumnName |
Názov stĺpca dátového zdroja, z ktorého sa má vrátiť zoznam hodnôt. |
Popis
Volanie metódou @datasourcelookup je rovnocenné nasledujúcemu dopytu SQL:
select returnColumnName from dataSourceName where columnName=columnValue
Metóda @datasourcelookup prehľadá daný dátový zdroj a vyhľadá záznamy, v ktorých columnName obsahuje columnValue. Ak zadáte hodnotu columnValue ako $loginuser
, táto metóda vyhľadá záznamy, v ktorých columnName obsahuje meno momentálne prihláseného používateľa.
Essbase vytvorí riadok s definíciou filtra skombinovaním prvkov zo zoznamu do reťazca oddeleného čiarkami. Ak nejaký záznam obsahuje špeciálne znaky, medzery alebo len čísla, budú ohraničené úvodzovkami.
Príklady
Ohraničte parametre úvodzovkami.
Nasledujúce volanie prehľadá globálny dátový zdroj a vráti zoznam názvov obchodov, v ktorých je Mary vedúcou obchodu.
@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")
Nasledujúce volanie prehľadá dátový zdroj na úrovni aplikácie a vráti zoznam názvov obchodov, v ktorých je aktuálne prihlásený používateľ vedúcim obchodu.
@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")
Nasledujúce volanie prehľadá dátový zdroj na úrovni aplikácie a vráti zoznam názvov obchodov, v ktorých oddelenie obchodu zodpovedá ktorejkoľvek zo skupín, do ktorých patrí prihlásený používateľ.
@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")
Ak prihlásený používateľ patrí do 3 skupín, uvedená metóda @datasourcelookup
vráti všetky zhodné hodnoty stĺpcov pre každú skupinu.
Nasledujúci všeobecný tok činností použite na vytváranie dynamických filtrov.
Tento tok činností dynamických filtrov predpokladá, že už máte kocku a poskytovaných používateľov a skupiny.
V klasickom webovom rozhraní použite sekciu Filtre v inšpektorovi databázy.
$loginuser
, premennej $logingroup
a metódy @datasourcelookup
.Nasledujúci dynamický filter možno použiť s kockou s názvom Efficient.UserFilters, ktorá je k dispozícii v galérii ako vzorová šablóna.
Ak chcete zistiť, ako vytvoriť a použiť tento dynamický filter, stiahnite si šablónu zošita Efficient_Filters.xlsx
zo sekcie Technical v galérii a postupujte podľa pokynov README v zošite. Galéria je k dispozícii v sekcii Súbory webového rozhrania Essbase.