¿Cómo obligar a Oracle BI 12c a crear tantas variables de sesión como necesite un programador?

El servidor Oracle BI 12c tiene una funcionalidad interesante para crear automáticamente un conjunto de variables de sesión sin especificar sus nombres en el nivel de sesión del usuario y sin describir explícitamente su número en el nivel del repositorio al autorizar una sesión de BI de un usuario determinado.

Creamos en el esquema en el que ingresamos desde la capa física la siguiente tabla:

USERID NAME VALUE ---------- ---------- --------------- weblogic level 11 weblogic status FULL-TIME Tom Kyte status PART-TIME Tom Kyte level 9 Tom Kyte flow cache 

Describiremos con más detalle una consulta que puede crear dinámicamente variables a nivel de sesión. Usamos la variable de sesión del sistema USER .


 SELECT NAME, VALUE FROM RW_SESSION_VARS WHERE USERID='VALUEOF(NQ_SESSION.USER)' 


Tenga en cuenta que no creamos nuevas variables, pero marque la casilla de verificación Inicialización en fila (no olvide desactivar la casilla de verificación Usar almacenamiento en caché).



Cree un panel con un solo campo de texto para ver las variables creadas.


 [b]@{biServer.variables['NQ_SESSION.USER']}[br/] @{biServer.variables['NQ_SESSION.level']}[br/] @{biServer.variables['NQ_SESSION.status']}[br/] @{biServer.variables['NQ_SESSION.flow']}[/b] 


Notamos que se crearon e inicializaron dos variables para el usuario de weblogic.


 [b]@{biServer.variables['NQ_SESSION.USER']}=>weblogic[br/] @{biServer.variables['NQ_SESSION.level']}=>11[br/] @{biServer.variables['NQ_SESSION.status']}=>FULL-TIME[br/] @{biServer.variables['NQ_SESSION.flow']}=> [/b] 


Notamos que el usuario Tom Kyte creó e inicializó tres variables.


 [b]@{biServer.variables['NQ_SESSION.USER']}=>Tom Kyte[br/] @{biServer.variables['NQ_SESSION.level']}=>9[br/] @{biServer.variables['NQ_SESSION.status']}=>PART-TIME[br/] @{biServer.variables['NQ_SESSION.flow']}=>cache[/b] 


La pregunta de cómo hacer tantas variables de sesión como necesite el programador, la recibimos del alumno del curso sobre cómo construir el repositorio Oracle BI 12c de nuestro Centro de capacitación.

La respuesta a la pregunta puede ser útil al crear un conjunto de variables de sesión para garantizar el funcionamiento de los objetos de un usuario autorizado determinado.

PD Dado que hasta el tutorial completo falta una tableta de la documentación,
ponlo debajo del gato.
Cómo elegir el tipo de variable del repositorio y acceder a ella.

Tipo
de variable


Sintaxis


Ejemplo


Sesión


@ {biServer.variables ['NQ_SESSION. nombre de variable ']}


@ {biServer.variables ['NQ_SESSION.USER']}


donde variablename es
el nombre de la variable de sesión, por ejemplo DISPLAYNAME.


Para
una lista de variables de sesión del sistema que puede usar, consulte "Acerca de
Variables de sesión del sistema "en Metadata Repository Builder's
Guía para Oracle Business Intelligence Enterprise Edition .


Repositorio


@ {biServer.variables. nombre variable }


@ {biServer.variables.prime_begin}


o


o


@ {biServer.variables [' variablename ']}


@ {biServer.variables ['prime_begin']}


donde variablename es
el nombre de la variable del repositorio, por ejemplo, prime_begin.



Presentación
o solicitud


@ {variables. nombre variable } [ formato ] {valor predeterminado }


@ {variables.MyFavoriteRegion} {EASTERN
REGIÓN


o


o


@ { scope .variables [' variablename ']}


@ {MyFavoriteRegion}


donde:


o


variablename es
el nombre de la presentación o variable de solicitud, por ejemplo,
MyFavoriteRegion.


@ {dashboard.variables ['MyFavoriteRegion']}


■ El formato (opcional) es
una máscara de formato que depende del tipo de datos de la variable, para
ejemplo #, ## 0, MM / DD / AA hh: mm: ss. (Tenga en cuenta que el formato no es
aplicado al valor predeterminado).


o


(opcional) el valor predeterminado es
una referencia constante o variable que indica un valor para ser usado si
la variable referenciada por variablename es
no poblado


(@ {myNumVar} [#, ## 0] {1000})


alcance identifica
Los calificadores para la variable. Debe especificar el alcance cuando un
La variable se utiliza en varios niveles (análisis, páginas del panel,
y paneles) y desea acceder a un valor específico. (Si usted
no especifique el alcance, entonces el orden de precedencia es
análisis, páginas de panel y paneles).


o


Nota: cuando
utilizando un indicador del tablero con una variable de presentación que puede
tienen múltiples valores, la sintaxis difiere según la columna
tipo. Múltiples valores están formateados en valores separados por comas
y por lo tanto, cualquier cláusula de formato se aplica a cada valor antes
estar unidos por comas.


(@ {variables.MyOwnTimestamp} [AA-MM-DD
hh: mm: ss] {)



o



(@ {myTextVar} {A,
B, C})


Global


@ {global.variables. nombre variable }


@ {global.variables.gv_date_n_time}


Source: https://habr.com/ru/post/459698/


All Articles