Tutoriel Variables de session

Modifié par jhurst le 2021/04/21 10:01


Les variables de session sont un type spécial de variables de substitution dans DigDash Enterprise. Les autres types de variables sont les variables utilisateur (${user.<nomvariable>}), les variables date (${date.<format>}) et les variables serveur (${server.<nomvariable>}).

Syntaxe des variables de session : ${session.<nomvariable>}

Comme les autres variables, elles peuvent être utilisées pratiquement partout dans un flux : source de données, propriétés de visualisation, et propriétés du flux.

Elles sont substituées pendant le rafraîchissement du flux et du cube.

Ce document illustre une utilisation possible des variables de session.

Cycle de vie

La portée (scope) des variables de session est la session utilisateur.

Instanciation

Une variable de session est instanciée dés qu'un utilisateur se connecte, pour cette session uniquement (la valeur n'est pas partagée par plusieurs sessions).

La valeur initiale de la variable est une chaîne vide, mais s'il existe une variable d'utilisateur avec le même nom, alors la valeur initiale de la variable de session sera la valeur de la variable d'utilisateur.

Exemple:

Un utilisateur a un attribut mavariable défini à la valeur "test" :   ${user.mavariable} est "test"

En conséquence la valeur initiale de ${session.mavariable} est "test", alors que la valeur initiale d'une autre variable de session ${session.monautrevariable} est une chaîne vide.

Changement de valeur

Si la valeur d'une variable de session est changée pendant une session, le changement n'est visible que pour cette session. Les autres sessions conservent leur propre valeur pour cette variable.

Fin de vie

La variable de session est effacée quand la session est fermée.

Utilisation

Une variable de session peut être utilisée partout où une variable d'utilisateur peut l'être dans un flux, non-exhaustivement :

  • Sources de données : requêtes, chemins de fichiers, filtres de lignes, formules de mesures calculées et filtres, objectifs, groupes, etc.
  • Paramètres de visualisation : filtres d'axes, etc.
  • Paramètres de flux : Nom des entrées pour l'export

En fait, les variables de session sont très proches des variables d'utilisateur. La différence est qu'il est plus facile de changer temporairement la valeur d'une variable de session pendant la session d'un utilisateur.

Cela fait des variables de session un outil puissant lorsqu'elles sont couplées à des flux et des cubes qui sont rafraîchis à l'ouverture.

Le tutoriel suivant explique comment rafraîchir interactivement des flux avec des paramètres, en utilisant des variables de session et l'API Javascript de DigDash Enterprise.

Tutoriel : Rafraîchissement interactif d'un flux avec des paramètres

Dépendances

Ce tutoriel utilise :

  • Des liens de fichiers de source de données (WLNK)
  • Les options de programmation sur un flux et un modèles de données
  • La portlet « Éditeur » dans l'éditeur de tableaux de bord
  • L'appel d'une méthode de l'API Javascript DigDash depuis un hyperlien dans un tableau de bord

Contexte

Dans ce déploiement vous avez un ensemble de dossiers, chacun contenant un fichier CSV nommé data.csv. Tous les fichiers data.csv ont exactement le même format mais représentent plusieurs scénarios :

  • Scenario1
    • data.csv
  • Scenario2
    • data.csv
  • Scenario3
    • data.csv
  • etc.

L'ensemble des dossiers n'est pas figé et peut évoluer dans le futur.

Vous souhaitez que les utilisateurs puissent regarder différentes métriques de chaque scénarios (un à la fois) dans une page du tableau de bord.

Une solution possible est de concaténer tous les fichiers data.csv en une seule source de données, avec une colonne supplémentaire « scénario ». Cela créera un cube volumineux qui contient toutes les données de tous les scénarios.

L'inconvénient de cette approche est que le volume de données peut-être très important s'il y a beaucoup de données par scénario et/ou si le nombre de scénarios est grand. Le temps de rafraîchissement de ce cube sera très long pour cette source. Enfin, ce n'est pas optimal car les utilisateurs ne regarderont pas forcément tous les scénarios tous les jours.

Les variables de sessions peuvent aider à configurer une source de données et des flux en utilisant une variable qui définit le nom d'un scénario courant (ex : nom du dossier) et dont la valeur pourra être choisie par l'utilisateur lui-même. Ainsi un scenario ne sera rafraîchi que sur demande spécifique d'un utilisateur.

Configuration Utilisateurs

  1. Se connecter à la page de gestion des utilisateurs de DigDash Enterprise
  2. En bas de la colonne de gauche, ajouter une nouvelle variable utilisateur nommée scenarioVar.
  3. Définir sa valeur par défaut à "Scenario1".

Important : La création d'une variable utilisateur n'est prise en compte que lors de la prochaine connexion des utilisateurs. Donc si votre utilisateur est connecté dans la console d'administration, et/ou le tableau de bord ou son éditeur, vous devez le déconnecter puis le reconnecter avant de continuer ce tutoriel.

Configuration de la source de données

  1. Se connecter à la console d'administration DigDash. Rappel : Si vous y étiez déjà connecté, déconnectez-vous et reconnectez-vous pour prendre en compte la nouvelle variable d'utilisateur scenarioVar que vous venez de créer.
  2. Créer un nouveau serveur de documents qui pointe vers le dossier parent des dossiers de scénarios.
  3. Créer une nouvelle source de données de type fichier CSV
  4. Choisir le serveur de document que vous venez de créer
  5. Ajouter un nouveau document à ce serveur : Choisir l'option « Nouveau lien » dans la boite de dialogue, cliquer sur « Sélectionner » pour choisir la source du lien et choisissez un des fichiers data.csv.

    Le lien doit ressembler à : 12345678|Scenario1/data.csv

  6. Maintenant nous voulons que ce lien représente, non seulement data.csv du scénario1 mais data.csv de n'importe quel scénario :

    => Changer le lien en : 12345678|${session.scenarioVar}/data.csv

    Note : Ceci ne fonctionnera que si vous avez précédemment créé la variable utilisateur scenarioVar et défini sa valeur par défaut à un dossier de scénario existant. S'il y a un erreur à la création du lien, vous avez probablement raté l'étape de création de la variable utilisateur dans le paragraphe précédent. Notez aussi que la création d'une variable utilisateur n'est prise en compte que lors de la prochaine connexion de l'utilisateur.

  7. Le fichier data.csv de Scenario1 est chargé et prévisualisé (Scenario1 est la valeur par défaut de scenarioVar). Vous pouvez configurer la source de données comme d'habitude.

Important : Avant de terminer la configuration de la source de données, il faut programmer cette dernière pour qu'elle se rafraîchisse à l'ouverture (onglet Programmation dans le deuxième panneau de configuration de la source de données). Vous pouvez limiter la fréquence de rafraîchissement à une fois par jour.

Configuration du flux

Créer un nouveau flux utilisant la source de données précédemment créée.

Important : Comme pour la source de données, il faut programmer le rafraîchissement du flux à l'ouverture (onglet Programmation dans la fenêtre des propriétés du flux). Vous pouvez limiter la fréquence de rafraîchissement à une fois par jour.

Éditeur de Tableaux de bord

  1. Se connecter à l'éditeur de tableaux de bord
  2. Ajouter le nouveau flux sur une page blanche. Il devrait se rafraîchir et afficher les données générées depuis Scenario1/data.csv, parce que Scenario1 est la valeur par défaut de la variable utilisateur scenarioVar
  3. Éditer les propriétés de la portlet pour copier l'identifiant du flux dans le presse-papier

Maintenant nous voulons permettre à l'utilisateur de changer le nom du scenario courant. Pour cela nous allons créer un champ texte dans la page du tableau de bord où l'utilisateur pourra entrer le nom du scénario qu'il souhaite voir :

  1. Ajouter une nouvelle portlet « Éditeur » (contenu statique) à la page. Ce type de portlet permet d’ajouter des éléments statiques à une page de tableau de bord (titre, texte de description, image, etc.). Ici elle va nous permettre d’ajouter une interface de changement du scénario courant.
  2. Éditer l'éditeur et cliquer sur le bouton HTML pour éditer directement le HTML de l'éditeur
  3. Ajouter un champ texte, un bouton OK et le script Javascript pour les gérer en tapant le code HTML suivant (n'oubliez pas de remplacer l'identifiant correct du flux dans le Javascript ci-dessous, à la place de "FlowId") :
<input type="text" id="scenarioName" value=""></input>

<input type="button" value="OK" onclick="ddCtrl.setSessionAttribute('scenarioVar', document.getElementById('scenarioName').value);
 ddCtrl.refreshFlow('FlowId');"
></input>