Comment forcer Oracle BI 12c à créer autant de variables de session qu'un programmeur en a besoin?

Le serveur Oracle BI 12c possÚde des fonctionnalités intéressantes pour créer automatiquement un ensemble de variables de session sans spécifier leurs noms au niveau de la session utilisateur et sans décrire explicitement leur nombre au niveau du référentiel lors de l'autorisation d'une session BI d'un utilisateur donné.

Nous créons dans le schéma dans lequel nous entrons à partir de la couche physique le tableau suivant:

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

Nous dĂ©crirons plus en dĂ©tail une requĂȘte qui peut crĂ©er dynamiquement des variables de niveau session. Nous utilisons la variable de session systĂšme USER .


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


Notez que nous ne créons pas de nouvelles variables, mais cochez la case Initialisation par ligne (n'oubliez pas de décocher la case Utiliser la mise en cache).



Créez un tableau de bord avec un seul champ de texte pour afficher les variables créées.


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


Nous remarquons que deux variables ont été créées et initialisées pour l'utilisateur 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] 


On remarque que l'utilisateur Tom Kyte a créé et initialisé trois 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 question de savoir comment créer autant de variables de session que le programmeur a besoin, nous a reçu de l'étudiant du cours sur la construction du référentiel Oracle BI 12c de notre centre de formation.

La rĂ©ponse Ă  la question peut ĂȘtre utile lors de la crĂ©ation d'un ensemble de variables de session pour assurer le fonctionnement des objets d'un utilisateur autorisĂ© donnĂ©.

PS Depuis le tutoriel complet, une tablette de la documentation est manquante,
mettez-le sous le chat.
Comment choisir le type de la variable de référentiel et y accéder.

Tapez
de variable


Syntaxe


Exemple


Séance


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


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


oĂč variablename est
le nom de la variable de session, par exemple DISPLAYNAME.


Pour
une liste des variables de session systùme que vous pouvez utiliser, voir "À propos de
Variables de session systĂšme "dans Metadata Repository Builder's
Guide pour Oracle Business Intelligence Enterprise Edition .


DépÎt


@ {biServer.variables. variablename }


@ {biServer.variables.prime_begin}


ou


ou


@ {biServer.variables [' variablename ']}


@ {biServer.variables ['prime_begin']}


oĂč variablename est
le nom de la variable de référentiel, par exemple, prime_begin.



Présentation
ou demande


@ {variables. variablename } [ format ] { defaultvalue }


@ {variables.MyFavoriteRegion} {EASTERN
RÉGION}


ou


ou


@ { scope .variables [' variablename ']}


@ {MyFavoriteRegion}


oĂč:


ou


■ variablename est
le nom de la variable de prĂ©sentation ou de requĂȘte, par exemple,
MyFavoriteRegion.


@ {dashboard.variables ['MyFavoriteRegion']}


■ le format (facultatif) est
un masque de format dépendant du type de données de la variable, par
exemple #, ## 0, MM / JJ / AA hh: mm: ss. (Notez que le format n'est pas
appliqué à la valeur par défaut.)


ou


■ (facultatif) la valeur par dĂ©faut est
une référence constante ou variable indiquant une valeur à utiliser si
la variable référencée par variablename est
non peuplé.


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


■ la portĂ©e identifie
les qualificatifs de la variable. Vous devez spécifier la portée lorsqu'un
est utilisée à plusieurs niveaux (analyses, pages de tableau de bord,
et tableaux de bord) et vous souhaitez accéder à une valeur spécifique. (Si vous
ne spécifiez pas la portée, alors l'ordre de priorité est
analyses, pages de tableau de bord et tableaux de bord.)


ou


Remarque: lorsque
en utilisant une invite de tableau de bord avec une variable de présentation qui peut
avoir plusieurs valeurs, la syntaxe diffĂšre selon la colonne
type. Plusieurs valeurs sont formatées en valeurs séparées par des virgules
et par conséquent, toute clause de format est appliquée à chaque valeur avant
ĂȘtre rejoint par des virgules.


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



ou



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


Global


@ {global.variables. variablename }


@ {global.variables.gv_date_n_time}


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


All Articles