È possibile creare filtri dinamici basati su dati di origine esterna per ridurre il numero delle definizioni di filtro necessarie.
@datasourceLookup e le variabili $LoginUser e $LoginGroup. I dati di origine esterna sono disponibili in un file csv o in una tabella relazionale. Per i dati di origine relazionale, è possibile caricare il file .csv in una tabella relazionale.Utilizzare la sintassi dei filtri dinamici per creare filtri flessibili che potranno essere assegnati a più utenti e gruppi.
Le righe dei filtri possono contenere gli elementi riportati di seguito nella definizione, oltre alle espressioni membro.
$loginuser
Questa variabile memorizza il valore dell'utente collegato corrente in runtime. Può essere utilizzata insieme al metodo @datasourcelookup.
$logingroup
Questa variabile memorizza il valore di tutti i gruppi al quale appartiene l'utente collegato corrente. Include sia i gruppi diretti che i gruppi indiretti. Quando viene utilizzata insieme al metodo @datasourcelookup, ogni gruppo viene esaminato individualmente rispetto all'origine dati.
@datasourcelookup
Questo metodo consente di recuperare i record da un'origine dati.
Sintassi
@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
| Parametro | Descrizione |
|---|---|
| dataSourceName |
Nome dell'origine dati esterna definita in Essbase. Per un'origine dati a livello di applicazione, anteporre il nome dell'applicazione e un punto come prefisso al nome. |
| columnName |
Nome della colonna dall'origine dati da cercare per la variabile columnValue specificata. |
| columnValue |
Valore da cercare in columnName. |
| returnColumnName |
Nome della colonna dell'origine dati da cui restituire una lista di valori. |
Descrizione
Una chiamata @datasourcelookup è equivalente alla query SQL seguente:
select returnColumnName from dataSourceName where columnName=columnValue
@datasourcelookup esamina l'origine dati specificata e cerca i record in cui columnName contiene columnValue. Se si specifica columnValue come $loginuser, questo metodo cercherà i record in cui columnName contiene il nome dell'utente collegato corrente.
Essbase forma la riga di definizione del filtro combinando gli elementi della lista come stringa separata da virgole. Se un record qualsiasi contiene caratteri speciali, spazi o solo numeri, questi elementi vengono racchiusi tra virgolette.
Esempi
Racchiudere i parametri tra virgolette.
La chiamata seguente esamina un'origine dati globale e restituisce la lista dei nomi di negozio (store) di cui Mary è la responsabile.
@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")
La chiamata seguente esamina un'origine dati a livello di applicazione e restituisce la lista dei nomi di negozio (store) di cui l'utente collegato corrente è il responsabile.
@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")
La chiamata seguente esamina un'origine dati a livello di applicazione e restituisce la lista dei nomi di negozio (store) in cui il reparto corrisponde a uno qualsiasi dei gruppi ai quali appartiene l'utente collegato.
@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")
Se l'utente collegato appartiene a 3 gruppi, il metodo @datasourcelookup indicato in alto restituirà tutti i valori colonna corrispondenti per ciascun gruppo.
Per creare i filtri dinamici utilizzare il workflow generale riportato di seguito.
Per questo workflow di filtri dinamici si suppone che l'utente disponga già di un cubo e abbia eseguito il provisioning di utenti e gruppi.
$loginuser e $logingroup e il metodo @datasourcelookup in base alle esigenze.Il filtro dinamico seguente funziona con il cubo Efficient.UserFilters, disponibile nella galleria come modello campione.

Per ulteriori informazioni sulle modalità di creazione e applicazione di questo filtro dinamico, scaricare il modello di cartella di lavoro Efficient_Filters.xlsx dalla sezione Tecnico della galleria e attenersi alle istruzioni README della cartella di lavoro. La galleria è disponibile nella sezione File dell'interfaccia Web di Essbase.