TUTORIEL · QLIK SENSE
Maîtriser les variables dans Qlik
SET, LET, dollar-sign expansion, expressions, paramètres et Set Analysis : comprendre enfin ce que Qlik évalue réellement.
À quoi sert une variable ?
Une variable Qlik est un conteneur nommé qui peut stocker une valeur statique ou une définition de calcul. Elle permet de centraliser une information et de la réutiliser dans le script ou dans les expressions.
Au lieu d’écrire la même valeur ou la même expression partout, on lui donne un nom. Si elle change, on la modifie à un seul endroit.
Une variable est utile quand une valeur ou une logique doit être centralisée, paramétrée ou réutilisée.
Exemple · Premier exemple
| Variable | SET vSociete = 'SOSBI'; | Utilisation : $(vSociete) |
|---|
| Contenu | Valeur ou calcul |
|---|---|
| Création | Script ou interface Variables |
| Réutilisation | Script · expressions · titres · Set Analysis |
SET ou LET ?
SET affecte le texte situé à droite du signe égal. LET évalue d’abord l’expression, puis affecte le résultat à la variable.
SET garde la recette. LET calcule la recette et garde le résultat.
Cette différence explique une grande partie des comportements surprenants avec les variables.
Exemple
SET vA = 3+4; LET vB = 3+4; // $(vA) → 3+4 // $(vB) → 7
| SET | Stocke 3+4 |
|---|---|
| LET | Stocke 7 |
| Question à se poser | Texte ou résultat ? |
Comprendre $(vVariable)
La dollar-sign expansion remplace $(vVariable) par le contenu de la variable avant que l’expression finale soit interprétée.
Qlik remplace d’abord $(vCA) par son contenu, puis analyse l’expression obtenue.
Pour déboguer une variable, demande-toi toujours : « quel texte Qlik voit-il après expansion ? ».
Exemple
SET vCA = Sum(Montant); // Expression : $(vCA) // Qlik interprète finalement : Sum(Montant)
| Variable | vCA = Sum(Montant) |
|---|---|
| Expansion | $(vCA) |
| Expression finale | Sum(Montant) |
Variable avec ou sans =
Une définition qui commence par = peut être calculée avant son expansion. Une définition sans = peut au contraire servir de morceau d’expression à injecter.
Sum(Montant) peut être injecté comme expression. =Sum(Montant) représente une variable calculée : son résultat peut être développé avant le calcul de l’objet.
Ne mets pas = automatiquement devant toutes les variables : choisis selon l’usage recherché.
Exemple
// vCA contient : Sum(Montant) // vCAFixe contient : =Sum(Montant)
| vCA | Expression réutilisable |
|---|---|
| vCAFixe | Valeur calculée |
| Impact | Le contexte de calcul peut être différent |
Bien nommer ses variables
Une convention de nommage permet de comprendre immédiatement le rôle d’une variable. Le préfixe v est courant et lisible.
Le nom doit dire ce que contient la variable, pas seulement où elle est utilisée.
Exemple
LET vAnneeCourante = Year(Today()); SET vExprCA = Sum(Montant); LET vSeuilMarge = 0.25;
| Préfixe | v |
|---|---|
| Nom | Décrire le rôle |
| À éviter | v1 · test2 · toto |
Variables dans le script
Les variables sont très utiles pour centraliser des chemins, dates, paramètres de reload ou morceaux de script.
Pour les chemins et paramètres d’environnement, centraliser évite les remplacements manuels dispersés.
Exemple
LET vDateReload = Now(); SET vCheminQVD = lib://QVD/; VENTES: LOAD * FROM [$(vCheminQVD)Ventes.qvd] (qvd);
| Chemin | Centralisable |
|---|---|
| Date de reload | LET + Now() |
| Usage | Paramétrer le script |
Réutiliser une expression
Une variable peut contenir une expression complète et être réutilisée dans plusieurs visualisations.
Variables et Master Measures sont complémentaires, pas concurrentes.
Exemple
SET vExprMarge = Sum(Marge) / Sum(Montant); // Dans une mesure : Num($(vExprMarge), '0.0%')
| Variable | Bonne pour logique technique |
|---|---|
| Master Measure | Bonne pour bibliothèque métier |
| Choix | Dépend de la gouvernance |
Variables et Set Analysis
Les dollar-sign expansions sont très utilisées pour injecter une valeur calculée dans un élément de Set Analysis.
Qlik calcule d’abord l’expansion, injecte son résultat, puis interprète le Set Analysis.
Pour les chaînes et les dates, pense au format et aux guillemets attendus après expansion.
Exemple
LET vAnnee = Year(Today());
Sum({
<Annee={$(vAnnee)}>
} Montant)| 1 | Calcul / expansion |
|---|---|
| 2 | Injection dans le Set |
| 3 | Évaluation de l’expression |
$(=expression)
Une dollar-sign expansion peut contenir directement une expression. Dans ce cas, le contenu entre parenthèses commence par = et est évalué avant injection.
Si le calcul doit ignorer les sélections, son propre Set Analysis peut être nécessaire.
Exemple
Sum({
<Annee={$(=Max(Annee))}>
} Montant)| Syntaxe | $(=expression) |
|---|---|
| Exemple | $(=Max(Annee)) |
| Dépendance | Sélections courantes par défaut |
Chaînes, nombres et dates
Le résultat d’une expansion doit respecter la syntaxe attendue par l’expression finale. Les chaînes ont généralement besoin de quotes ; les dates doivent être formatées de façon compatible avec le champ.
Quand ça ne marche pas, écris à la main l’expression que tu penses obtenir et compare.
Exemple
SET vPays = France;
Sum({
<Pays={'$(vPays)'}>
} Montant)| Chaîne | Quotes autour de l’expansion |
|---|---|
| Nombre | Format numérique compatible |
| Date | Format compatible avec le champ |
Variables avec paramètres
Une variable peut utiliser des paramètres formels $1, $2, $3… et fonctionner comme un petit gabarit réutilisable.
Puissant, mais à réserver aux cas où le gain de réutilisation compense la complexité.
Exemple
SET vRatio = Sum($1) / Sum($2); // Utilisation : $(vRatio(Marge,Montant))
| Paramètres | $1 · $2 · $3 |
|---|---|
| Appel | $(vRatio(Marge,Montant)) |
| Intérêt | Gabarit d’expression |
Variables côté interface
Les variables peuvent aussi être créées et consultées depuis l’interface Variables de Qlik Sense. Une modification se répercute partout où la variable est utilisée.
Dans une application publiée, les possibilités d’édition dépendent du contexte et des contrôles disponibles.
Exemple
| vSeuil | 100000 | → utilisé dans plusieurs expressions et conditions |
|---|
| Création | Script ou interface |
|---|---|
| Modification | Répercutée dans les usages |
| Usage | Calculs et interactions |
Déboguer une variable
La méthode la plus fiable consiste à observer ce que l’expansion produit réellement. Décompose l’expression complexe en étapes simples.
1. Affiche la variable seule. 2. Vérifie son contenu. 3. Remplace mentalement $(v...). 4. Teste l’expression finale sans variable. 5. Réintroduis la variable.
L’éditeur d’expression peut afficher un aperçu des dollar-sign expansions, ce qui aide énormément.
Exemple
// Tester d'abord :
=$(vAnnee)
// Puis :
Sum({<Annee={$(vAnnee)}>} Montant)| Étape 1 | Vérifier la valeur |
|---|---|
| Étape 2 | Vérifier l’expansion |
| Étape 3 | Tester l’expression finale |
Les pièges classiques
Les erreurs les plus fréquentes viennent de SET/LET, du signe =, des quotes, du format des dates, d’une expansion calculée dans un contexte inattendu ou d’une variable devenue trop complexe.
Évite les chaînes de variables qui appellent des variables qui appellent encore d’autres variables sans nécessité.
Exemple
| Question réflexe | Que voit Qlik après expansion ? | → souvent la meilleure piste de diagnostic |
|---|
| SET/LET | Texte ≠ résultat |
|---|---|
| Quotes | Vérifier la syntaxe finale |
| Contexte | Sélections et état de l’objet |
Références Qlik
Ce tutoriel s’appuie sur la documentation officielle Qlik. Les exemples et explications SOSBI sont reformulés dans une progression pratique, du premier SET aux expansions paramétrées.