Code source wiki de Tutoriel Variables de session

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

Afficher les derniers auteurs
1 {{ddtoc/}}
2
3 ----
4
5 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>}**).
6
7 Syntaxe des variables de session : **${session.<nomvariable>}**
8
9 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.
10
11 Elles sont substituées pendant le rafraîchissement du flux et du cube.
12
13 Ce document illustre une utilisation possible des variables de session.
14
15 = Cycle de vie =
16
17 La portée (//scope//) des variables de session est la session utilisateur.
18
19 == Instanciation ==
20
21 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).
22
23 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.
24
25 Exemple:
26
27 (% class="box" %)
28 (((
29 Un utilisateur a un attribut **mavariable** défini à la valeur "//test//" :  **${user.mavariable}** est "//test//"
30 )))
31
32 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.
33
34 == Changement de valeur ==
35
36 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.
37
38 == Fin de vie ==
39
40 La variable de session est effacée quand la session est fermée.
41
42 = Utilisation =
43
44 Une variable de session peut être utilisée partout où une variable d'utilisateur peut l'être dans un flux, non-exhaustivement :
45
46 * Sources de données : requêtes, chemins de fichiers, filtres de lignes, formules de mesures calculées et filtres, objectifs, groupes, etc.
47 * Paramètres de visualisation : filtres d'axes, etc.
48 * Paramètres de flux : Nom des entrées pour l'export
49
50 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.
51
52 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.
53
54 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.
55
56 = Tutoriel : Rafraîchissement interactif d'un flux avec des paramètres =
57
58 == Dépendances ==
59
60 Ce tutoriel utilise :
61
62 * Des liens de fichiers de source de données (WLNK)
63 * Les options de programmation sur un flux et un modèles de données
64 * La portlet « Éditeur » dans l'éditeur de tableaux de bord
65 * L'appel d'une méthode de l'API Javascript DigDash depuis un hyperlien dans un tableau de bord
66
67 == Contexte ==
68
69 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 :
70
71 * Scenario1
72 ** data.csv
73 * Scenario2
74 ** data.csv
75 * Scenario3
76 ** data.csv
77 * etc.
78
79 L'ensemble des dossiers n'est pas figé et peut évoluer dans le futur.
80
81 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.
82
83 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.
84
85 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.
86
87 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.
88
89
90 == Configuration Utilisateurs ==
91
92 1. Se connecter à la page de gestion des utilisateurs de DigDash Enterprise
93 1. En bas de la colonne de gauche, ajouter une nouvelle variable utilisateur nommée **scenarioVar**.
94 1. Définir sa valeur par défaut à "Scenario1".
95
96 (% class="box warningmessage" %)
97 (((
98 //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.
99 )))
100
101 == Configuration de la source de données ==
102
103 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.
104 1. Créer un nouveau serveur de documents qui pointe vers le dossier parent des dossiers de scénarios.
105 1. Créer une nouvelle source de données de type fichier CSV
106 1. Choisir le serveur de document que vous venez de créer
107 1. 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**.(((
108 Le lien doit ressembler à : 12345678|Scenario1/data.csv
109 )))
110 1. Maintenant nous voulons que ce lien représente, non seulement **data.csv** du scénario1 mais **data.csv** de //n'importe quel// scénario :(((
111 ~=> Changer le lien en : 12345678|**${session.scenarioVar}**/data.csv
112
113 (% class="box infomessage" %)
114 (((
115 //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.
116 )))
117 )))
118 1. 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.
119
120 (% class="box warningmessage" %)
121 (((
122 //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.
123 )))
124
125 == Configuration du flux ==
126
127 Créer un nouveau flux utilisant la source de données précédemment créée.
128
129 (% class="box warningmessage" %)
130 (((
131 //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.
132 )))
133
134 == Éditeur de Tableaux de bord ==
135
136 1. Se connecter à l'éditeur de tableaux de bord
137 1. 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**
138 1. Éditer les propriétés de la portlet pour copier l'identifiant du flux dans le presse-papier
139
140 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 :
141
142 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.
143 1. Éditer l'éditeur et cliquer sur le bouton HTML pour éditer directement le HTML de l'éditeur
144 1. 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"//) :
145
146 {{code language="JAVASCRIPT"}}
147 <input type="text" id="scenarioName" value=""></input>
148
149 <input type="button" value="OK" onclick="ddCtrl.setSessionAttribute('scenarioVar', document.getElementById('scenarioName').value);
150 ddCtrl.refreshFlow('FlowId');"></input>
151 {{/code}}