Puede crear filtros dinámicos basados en datos de fuentes externas para reducir el número de definiciones de filtro necesarias.
@datasourceLookup
y las variables $LoginUser
y $LoginGroup
. Los datos de origen externo son un archivo csv o una tabla relacional. En el caso de los datos de origen relacionales, se puede cargar el archivo.csv en una tabla relacional.Utilice la sintaxis de filtro dinámico para crear filtros dinámicos que pueda asignar a varios usuarios y grupos.
Las filas del filtro pueden contener los siguientes elementos como parte de su definición, además de las expresiones de miembro.
$loginuser
Esta variable almacena el valor del usuario actual con sesión iniciada en tiempo de ejecución. Puede utilizarse en combinación con el método de @datasourcelookup
.
$logingroup
Esta variable almacena el valor de todos los grupos a los que pertenece el usuario conectado actualmente. Incluye grupos directos e indirectos. Si se utiliza en combinación con el método @datasourcelookup
, cada grupo se busca de manera individual en el origen de datos.
@datasourcelookup
Este método recupera los registros de un origen de datos.
Sintaxis
@datasourcelookup (dataSourceName, columnName, columnValue, returnColumnName)
Parámetro | Descripción |
---|---|
dataSourceName |
Nombre del origen de datos externo definido en Essbase. Para un origen de datos a nivel de aplicación, agregue al nombre un prefijo con el nombre de la aplicación y un punto. |
columnName |
Nombre de la columna de origen de datos para buscar un columnValue determinado. |
columnValue |
Valor que buscar en columnName. |
returnColumnName |
Nombre de la columna de origen de datos desde la que devolver una lista de valores. |
Descripción
Una llamada de @datasourcelookup equivale a la siguiente consulta de SQL:
select returnColumnName from dataSourceName where columnName=columnValue
@datasourcelookup busca el origen de datos determinado y los registros en los que columnName contenga columnValue. Si especifica columnValue como $loginuser
, este método buscará registros en los que columnName contenga el nombre del usuario con sesión iniciada actualmente.
Essbase forma la fila de definición de filtro combinando los elementos de la lista en una cadena separada por comas. Si algún registro contiene caracteres especiales, espacios o solo números, aparecerá entre comillas.
Ejemplos
Indique los parámetros entre comillas.
La siguiente llamada busca un origen de datos global y devuelve una lista de nombres de almacén en los que aparece Mary como gestor de almacén.
@datasourceLookup("StoreManagersDS","STOREMANAGER","Mary","STORE")
La siguiente llamada busca un origen de datos a nivel de aplicación y devuelve una lista de nombres de almacén en los que el usuario con sesión iniciada actualmente aparece como gestor de almacén.
@datasourceLookup("Sample.StoreManagersDS","STOREMANAGER","$loginuser","STORE")
La siguiente llamada busca un origen de datos a nivel de aplicación y devuelve una lista de nombres de almacén en los que el departamento de tienda coincide con alguno de los grupos a los que pertenece el usuario conectado.
@datasourceLookup("Sample.StoreManagersDS","STORE_DEPARTMENT","$logingroup","STORE")
Si el usuario conectado pertenece a 3 grupos, el método anterior @datasourcelookup
devuelve todos los valores de columna que coincidan para cada grupo.
Utilice el siguiente flujo de trabajo general para crear filtros dinámicos.
Este flujo de trabajo de filtros dinámicos asume que ya dispone de un cubo, así como de usuarios y grupos aprovisionados.
$loginuser
, la variable $logingroup
y el método de @datasourcelookup
según sea necesario.El siguiente filtro dinámico funciona con el cubo denominado Efficient.UserFilters, disponible en la galería como plantilla de ejemplo.
Para aprender a crear y aplicar este filtro dinámico, descargue la plantilla del libro de trabajo Efficient_Filters.xlsx
en la sección Técnico de la galería, y siga las instrucciones README en el libro de trabajo. La galería está disponible en la sección Archivos de la interfaz web de Oracle Analytics Cloud – Essbase.