Techniques avancées : Référencer des valeurs stockées dans les variables

Supposons que vous souhaitiez créer une analyse dont le titre présente le nom de l'utilisateur courant. Vous pouvez faire cela par une référence à une variable.

Vous pouvez référencer plusieurs types différents de variables dans vos analyses, tableaux de bord et actions : session, modèle sémantique (référentiel), présentation, demande et global. Les auteurs de contenu peuvent définir eux-mêmes des variables globales, de présentation et de demande mais les autres types (session et modèle sémantique (référentiel)) sont définis pour vous dans le modèle sémantique.

Note: Oracle Analytics ne prend pas en charge les variables :user et :password dans les données d'identification de connexion à la source de données.

Type de variable Défini dans Défini par Informations supplémentaires

Session

  • Système

  • Non-système

Modèle sémantique

Auteurs de modèle de données

À propos des variables de session

Modèle sémantique (référentiel)

  • Dynamique

  • Statique

Modèle sémantique

Auteurs de modèle de données

À propos des variables de modèle sémantique (référentiel)

Présentation

Invites pour analyses et tableaux de bord

Auteurs de contenu

À propos des variables de présentation

Demande

Invites pour analyses et tableaux de bord

Auteurs de contenu

À propos des variables de demande

Variable globale

Analyses

Administrateurs

À propos des variables globales et Créer des variables globales

À propos des variables de session

Les variables de session sont initialisées lorsqu'un utilisateur se connecte.

Ces variables existent pour chaque utilisateur pour la durée de la session de navigation et expirent lorsque l'utilisateur ferme le navigateur ou se déconnecte. Il existe deux types de variable de session : système et non-système.

Variables de session du système

Il existe plusieurs variables de session du système que vous pouvez utiliser dans vos rapports et tableaux de bord.

Les variables de session du système comportent des noms réservés, de sorte que vous ne pouvez pas les utiliser pour d'autres types de variable.

Variable de session du système Description Exemple de valeur d'interrogation SQL (boîte de dialogue Variable)

PORTALPATH

Identifie le tableau de bord par défaut que l'utilisateur voit lorsqu'il se connecte (il peut modifier cette préférence après s'être connecté).

Pour afficher "mydashboard" lorsqu'un utilisateur se connecte :

 select ‘/shared/_portal/mydashboard’ from dual;

TIMEZONE

Spécifie le fuseau horaire par défaut de l'utilisateur lorsqu'il se connecte.

Le fuseau horaire de l'utilisateur est généralement alimenté à partir du profil de l'utilisateur. L'utilisateur peut modifier son fuseau horaire par défaut dans les préférences (Mon compte).

Pour définir le fuseau horaire lorsque l'utilisateur se connecte :

select ‘(GMT-08:00) Pacific Time (US & Canada)’ from dual;

DATA_TZ

Spécifie un décalage à partir du fuseau horaire initial des données.

Cette variable vous permet de convertir un fuseau horaire de façon que l'utilisateur puisse voir le fuseau approprié.

Pour convertir les données à l'heure normale de l'Est (HNE) :

select ‘GMT-05:00’ from dual;

Cet exemple signifie Heure de Greenwich (GMT) - 5 heures

DATA_DISPLAY_TZ

Spécifie le fuseau horaire d'affichage des données.

Pour afficher l'heure normale de l'Est (HNE) :

select ‘GMT-05:00’ from dual;

Cet exemple signifie Heure de Greenwich (GMT) - 5 heures

Variables de session non-système

Les variables de session non-système sont nommées et créées dans votre modèle sémantique.

Par exemple, votre modélisateur de données peut créer une variable SalesRegion qui initialise le nom de la région des ventes de l'utilisateur lorsqu'il se connecte.

À propos des variables de modèle sémantique (référentiel)

Une variable de modèle sémantique (référentiel) est une variable qui a une valeur unique à tout moment.

Les variables de modèle sémantique (référentiel) peuvent être statiques ou dynamiques. Une variable statique de modèle sémantique (référentiel) a une valeur qui est persistante et ne change que si l'administrateur la modifie. Une variable dynamique de modèle sémantique (référentiel) a une valeur qui est actualisée par les données retournées par les interrogations.

À propos des variables de présentation

Vous pouvez créer une variable de présentation lors de la création d'une invite de colonne ou de variable.

Type Description

Invite de colonne

Une variable de présentation créée dans le cadre d'une invite de colonne est associée à une colonne, et les valeurs qu'elle peut prendre proviennent des valeurs de la colonne.

Pour créer une variable de présentation dans le cadre d'une invite de colonne, dans la boîte de dialogue des nouvelles invites, vous devez sélectionner Variable de présentation dans le champ Définir une variable. Entrez un nom pour la variable dans le champ Nom de variable.

Invite de variable

Une variable de présentation créée dans le cadre d'une invite de variable est associée à n'importe quelle colonne, et vous définissez les valeurs qu'elle peut prendre.

Pour créer une variable de présentation dans le cadre d'une invite de variable, dans la boîte de dialogue des nouvelles invites, vous devez sélectionner Variable de présentation dans le champ Invite pour. Entrez un nom pour la variable dans le champ Nom de variable.

Une variable de présentation a comme valeur l'invite de la colonne ou de la variable à partir de laquelle elle a été créée. C'est-à-dire que chaque fois qu'un utilisateur sélectionne une ou plusieurs valeurs dans l'invite de colonne ou de variable, la valeur de la variable de présentation est réglée à la valeur ou aux valeurs sélectionnées par l'utilisateur.

À propos des variables de demande

Une variable de demande vous permet de remplacer la valeur d'une variable de session, mais seulement pendant la durée d'une demande à la base de données provenant d'une invite de colonne. Vous pouvez créer une variable de demande dans le cadre du traitement de la création d'une invite de colonne.

Vous pouvez créer une variable de demande dans le cadre du traitement de la création d'un des types d'invite de tableau de bord suivants :

  • Une variable de demande créée dans le cadre d'une invite de colonne est associée à une colonne, et les valeurs qu'elle peut prendre proviennent des valeurs de la colonne.

    Pour créer une variable de demande dans le cadre d'une invite de colonne, dans la boîte de dialogue des nouvelles invites, vous devez sélectionner Variable de demande dans le champ Définir une variable. Entrez le nom d'une variable de session à remplacer dans le champ Nom de variable.

  • Une variable de demande créée dans le cadre d'une invite de variable n'est associée à aucune colonne, et vous définissez les valeurs qu'elle peut prendre.

    Pour créer une variable de demande dans le cadre d'une invite de variable, dans la boîte de dialogue des nouvelles invites (ou la boîte de dialogue Modifier l'invite), vous devez sélectionner Variable de demande dans le champ Invite pour. Ensuite, entrez le nom de la variable de session à remplacer dans le champ Nom de variable.

Une variable de demande a comme valeur l'invite de la colonne à partir de laquelle elle a été créée. C'est-à-dire que chaque fois qu'un utilisateur sélectionne une valeur dans l'invite de colonne, la valeur de la variable de demande est réglée à la valeur sélectionnée par l'utilisateur. Toutefois, la valeur n'est valide qu'à partir du moment où l'utilisateur appuie sur le bouton Aller de l'invite, jusqu'à ce que les résultats soient retournés au tableau de bord.

Certaines variables de session du système (comme, USERGUID ou ROLES) ne peuvent pas être remplacées par des variables de demande. D'autres variables de session du système, comme DATA_TZ et DATA_DISPLAY_TZ (fuseau horaire), peuvent être remplacées si l'outil d'administration de modèle est configuré pour ce faire.

Seules les variables de demande de type chaîne de caractère et numérique sont prises en charge dans les valeurs multiples. Tous les autres types de données ne transmettent que la première valeur.

À propos des variables globales

Une variable globale est une colonne créée par la combinaison d'un type de données spécifique à une valeur. La valeur peut être une date, une date et une heure, un nombre, un texte et une heure.

La variable globale est évaluée au moment de l'exécution de l'analyse, et la valeur de la variable est remplacée de façon appropriée.

Seuls les utilisateurs disposant du rôle Administrateur de services BI peuvent gérer (ajouter, modifier et supprimer) des variables globales.

La boîte de dialogue de modification de la formule de colonne vous permet de créer une valeur globale lors du processus de création d'une analyse. La variable globale est ensuite enregistrée dans le catalogue et est rendue disponible pour toutes les autres analyses d'un système de client spécifique.

Créer des variables globales

Vous pouvez enregistrer un calcul en tant que variable globale, puis le réutiliser dans différentes analyses.

  1. Ouvrez l'analyse à modifier.
  2. Dans le volet Colonnes sélectionnées, cliquez sur Options à côté du nom de la colonne.
  3. Sélectionnez Modifier la formule pour afficher l'onglet Formule de colonne.
  4. Cliquez sur Variable et sélectionnez Variable globale.
  5. Cliquez sur Ajouter une nouvelle variable globale.
  6. Entrez la valeur pour le Nom. Par exemple, vg_region, date_et_heure_variable_globale, ou calc_rev_region_est_calc_vg.
    Le nom d'une variable globale doit être entièrement qualifié lors d'une référence à la variable. Ainsi, le préfixe "global.variables" est nécessaire. Par exemple, une variable globale servant à calculer les revenus s'affiche dans la boîte de dialogue Formule de colonne de la façon suivante :

    "Base Facts"."1- Revenue"*@{global.variables.vg_nomcomplet}

  7. Entrez des valeurs pour les champs Type et Valeur.
    • Si vous sélectionnez le type de données "Date et heure", entrez la valeur comme dans l'exemple suivant : 03/25/2004 12:00:00 AM
    • Si vous entrez une expression ou un calcul à titre de valeur, vous devez utiliser le type de données Texte, comme dans l'exemple suivant : "Base Facts"."1- Revenue"*3.1415
  8. Cliquez sur OK. La nouvelle variable globale est ajoutée à la boîte de dialogue Insérer une variable globale.
  9. Sélectionnez la nouvelle variable globale créée, puis cliquez sur OK. La boîte de dialogue Modifier la formule de colonne s'affiche avec la variable globale insérée dans le volet Formule de colonne. La case à cocher En-têtes personnalisés est automatiquement sélectionnée.
  10. Entrez un nouveau nom pour la colonne à laquelle vous avez affecté une variable globale afin de mieux décrire la variable.
  11. Cliquez sur OK.

Syntaxe pour la référence aux variables

Vous pouvez référencer des variables dans les analyses et les tableaux de bord.

La façon de référencer une variable dépend de la tâche que vous êtes en train d'accomplir. Pour les tâches qui présentent des champs dans une boîte de dialogue, vous devez spécifier seulement le type et le nom de la variable (et non la syntaxe complète). C'est le cas, par exemple, pour référencer une variable dans une définition de filtre.

Pour les autres tâches, comme référencer une variable dans une vue de titre, vous devez spécifier la syntaxe de la variable. La syntaxe utilisée dépend du type de variable, comme décrit dans le tableau suivant.

Type Syntaxe Exemple

Session

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

nomdelavariable est le nom de la variable de session, par exemple DISPLAYNAME.

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

Modèle sémantique (référentiel)

@{biServer.variables.nomdelavariable}

ou

@{biServer.variables['nomdelavariable']}

nomdelavariable est le nom de la variable, par exemple prime_begin

@{biServer.variables.debut_prime}

ou

@{biServer.variables['debut_prime']}

Présentation ou demande

@{variables.nomdelavariable}[format]{valeurpardefaut}

ou

@{étendue.variables['nomdelavariable']}

où :

nomdelavariable est le nom de la variable de présentation ou de la demande, par exemple MaRegionPreferee.

(Facultatif) format est un masque pour le format qui dépend du type de données de la variable, par exemple #,##0, MM/DD/YY hh:mm:ss. (Il est à noter que le format n'est pas appliqué à la valeur par défaut.)

(Facultatif) defaultvalue est une constante ou une variable de référence indiquant une valeur à utiliser si la variable référencée par variablename n'a pas de valeur.

etendue identifie les qualificatifs pour la variable. Vous devez spécifier l'étendue lorsqu'une variable est utilisée à plusieurs niveaux (analyses, pages de tableau de bord et tableaux de bord) et que vous souhaitez accéder à une valeur particulière. (Si vous ne spécifiez pas l'étendue, l'ordre de priorité sera le suivant : analyses, pages de tableau de bord et tableaux de bord.)

Lorsque vous utilisez une invite de tableau de bord avec une variable de présentation qui a plusieurs valeurs, la syntaxe diffère selon le type de colonne. Les valeurs multiples sont formatées avec le format séparé par la virgule. Ainsi, toutes les clauses de format sont appliquées à chaque valeur avant une jointure par une colonne.

@{variables.MaRegionPreferee}{REGION EST}

ou

@{dashboard.MyFavoriteRegion}{EASTERN REGION}

ou

@{dashboard.variables['MaRegionPreferee']}

ou

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

ou

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

ou

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

Variable globale

@{global.variables.nomdelavariable}

nomdelavariable est le nom de la variable globale, par exemple vg_région. Lors de la référence à une variable globale, vous devez utiliser un nom entièrement qualifié, comme dans l'exemple.

La convention d'attribution de nom pour les variables globales doit être conforme au langage de script ECMA pour JavaScript. Le nom ne doit pas dépasser 200 caractères ni contenir des espaces, des mots réservés ou des caractères spéciaux. Si vous ne connaissez pas les exigences du langage de script JavaScript, consultez une référence de tierce partie.

@{global.variables.vg_date_et_heure}

Vous pouvez aussi référencer des variables dans des expressions. Les instructions pour référencer des variables dans des expressions sont décrites dans les rubriques suivantes :

Variables de session

Vous pouvez utiliser les instructions suivantes pour référencer des variables de session dans des expressions.

  • Incluez la variable de session en tant qu'argument de la fonction VALUEOF.
  • Encadrez le nom de la variable par des guillemets doubles.
  • Précédez la variable de session par NQ_SESSION et par un point.
  • Encadrez NQ_SESSION par des guillemets doubles.
  • Encadrez la portion NQ_SESSION ainsi que le nom de la variable de session par des parenthèses.

Par exemple :

"Market"."Region"=VALUEOF("NQ_SESSION"."SalesRegion")

Variables de présentation

Vous pouvez utiliser les instructions suivantes pour référencer des variables de présentation dans des expressions.

Lorsque vous référencez une variable de présentation, utilisez la syntaxe suivante :

@{nomdelavariable}{valeurpardefaut}

variablename est le nom de la variable de présentation et defaultvalue (facultatif) est une constante ou une référence de variable indiquant une valeur à utiliser si la variable référencée par variablename n'est pas alimentée.

Pour convertir le type de la variable en une chaîne de caractères ou inclure plusieurs variables, encadrez la variable entière au moyen de guillemets simples, par exemple :

'@{user.displayName}'

Si le signe @ n'est pas suivi par {, il est traité comme un signe @. Lorsque vous utilisez une variable de présentation qui a plusieurs valeurs, la syntaxe diffère selon le type de colonne.

Utilisez la syntaxe suivante dans le code SQL pour le type de colonne spécifié afin de générer des énoncés SQL valides :

  • Texte — (@{nomdelavariable}['@']{'valeurpardefaut'})

  • Numérique — (@{nomdelavariable}{valeurpardefaut})

  • Date-heure — (@{nomdelavariable}{timestamp 'valeurpardefaut'})

  • Date (seulement la date) — (@{nomdelavariable}{date 'valeurpardefaut'})

  • Heure (seulement l'heure) — (@{nomdelavariable}{time 'valeurpardefaut'})

Par exemple :

'@{user.displayName}'

Variables de modèle sémantique (référentiel)

Vous pouvez utiliser les instructions suivantes pour référencer des variables de modèle sémantique (référentiel) dans des expressions.

  • Incluez la variable en tant qu'argument de la fonction VALUEOF.
  • Encadrez le nom de la variable par des guillemets doubles.
  • Référencez une variable statique de modèle sémantique (référentiel) en utilisant son nom.
  • Référencez une variable dynamique de modèle sémantique (référentiel) en utilisant son nom qualifié complet.

Par exemple :

CASE WHEN "Hour" >= VALUEOF("prime_begin") AND "Hour" < VALUEOF("prime_end") THEN 'Prime Time' WHEN ... ELSE...END