Como forçar o Oracle BI 12c a criar quantas variáveis ​​de sessão o programador precisa?

O servidor Oracle BI 12c possui uma funcionalidade interessante para criar automaticamente um conjunto de variáveis ​​de sessão sem especificar seus nomes no nível da sessão do usuário e sem descrever explicitamente seu número no nível do repositório ao autorizar uma sessão de BI de um determinado usuário.

Criamos no esquema no qual inserimos a partir da camada física a seguinte tabela:

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

Vamos descrever com mais detalhes uma consulta que pode criar dinamicamente variáveis ​​no nível da sessão. Usamos a variável de sessão do sistema USER .


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


Observe que não criamos novas variáveis, mas marque a caixa de seleção Inicialização em linha (não esqueça de desmarcar a caixa de seleção Usar armazenamento em cache).



Crie um painel com um único campo de texto para visualizar as variáveis ​​criadas.


 [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] 


Percebemos que duas variáveis ​​foram criadas e inicializadas para o usuário da 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] 


Percebemos que o usuário Tom Kyte criou e inicializou três variáveis.


 [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] 


A questão de como criar quantas variáveis ​​de sessão o programador precisa, recebemos do aluno do curso sobre a construção do repositório Oracle BI 12c do nosso Centro de Treinamento.

A resposta para a pergunta pode ser útil ao criar um conjunto de variáveis ​​de sessão para garantir a operação dos objetos de um determinado usuário autorizado.

PS Como até o tutorial completo está faltando um tablet da documentação,
colocá-lo sob o gato.
Como escolher o tipo da variável de repositório e acessá-la.

Tipo
da variável


Sintaxe


Exemplo


Sessão


@ {biServer.variables ['NQ_SESSION. nome da variável ']}


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


onde nome da variável é
o nome da variável da sessão, por exemplo, DISPLAYNAME.


Para
uma lista de variáveis ​​de sessão do sistema que você pode usar, consulte "Sobre
Variáveis ​​de sessão do sistema "no Metadata Repository Builder
Guia para Oracle Business Intelligence Enterprise Edition .


Repositório


@ {biServer.variables. nome da variável }


@ {biServer.variables.prime_begin}


ou


ou


@ {biServer.variables ['nome da variável ']}


@ {biServer.variables ['prime_begin']}


onde nome da variável é
o nome da variável do repositório, por exemplo, prime_begin.



Apresentação
ou pedido


@ {variáveis. nome da variável } [ formato ] {valor padrão }


@ {variable.MyFavoriteRegion} {ORIENTAL
REGIÃO}


ou


ou


@ { scope .variables ['nome da variável ']}


@ {MyFavoriteRegion}


onde:


ou


■ nome da variável é
o nome da variável de apresentação ou solicitação, por exemplo,
MyFavoriteRegion.


@ {dashboard.variables ['MyFavoriteRegion']}


formato (opcional) é
uma máscara de formato dependente do tipo de dados da variável, por
exemplo #, ## 0, MM / DD / AA hh: mm: ss. (Observe que o formato não é
aplicado ao valor padrão.)


ou


(opcional) valor padrão é
uma referência constante ou variável indicando um valor a ser usado se
a variável referenciada pelo nome da variável é
não preenchido.


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


escopo identifica
os qualificadores para a variável Você deve especificar o escopo quando um
A variável é usada em vários níveis (análises, páginas do painel,
e painéis) e você deseja acessar um valor específico. (Se você
não especifique o escopo, a ordem de precedência é
análises, páginas de painel e painéis.)


ou


Nota: quando
usando um prompt do painel com uma variável de apresentação que pode
tem vários valores, a sintaxe difere dependendo da coluna
tipo. Vários valores são formatados em valores separados por vírgula
portanto, qualquer cláusula de formato é aplicada a cada valor antes de
sendo juntado por vírgulas.


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



ou



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


Global


@ {variáveis ​​globais. nome da variável }


@ {global.variables.gv_date_n_time}


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


All Articles