Mise à jour Energy Management Module (JOOL) 1.3.14
Nouvelle table de Variables Globales, Corrections
Dans le configurateur, on peut désormais trouver un onglet “Variables Globales” permettant de stocker des valeurs utilisables partout sur la plateforme en appellant leurs noms de variables.
Le bouton “ajouter une variable” rajoute une ligne au tableau, et celle-ci contient une colonne “Variable”, une colonne “Valeur”, une icone de poubelle pour supprimer la ligne, et une case à cocher “Secret” qui permet de masquer la valeur associée (details plus loin à ce sujet).
A. Récupération de ces valeurs dans du code JQL (globalvalue)
Pour récupérer une valeur de cette table n’importe où dans la plateforme, il suffit d’utiliser la syntaxe suivante:
globalvalue("KEY")
KEY étant le nom de la variable désirée. Dans l’exemple ci-dessus, la syntaxe globalvalue("Value_1") renverra la valeur “A” associée au nom de variable “Value_1”
B. Envoyer directement un élément sur un serveur SFTP
Les variables globales peuvent aussi server à stocker un identifiant et un mot de passe pour accéder à un serveur SFTP et y deposer un CSV ou un PDF généré par la plateforme.
Dans ce cas, il faut que la colonne “Variable” contienne la concatenation suivante:
Username@serveraddress
Par exemple, pour un utilisateur “Durand” qui accèderait au serveur SFTP “sftp.metron.com”, il faudrait que la Variable dans la table s’appelle Durand@sftp.metron.com
La colonne “Valeur” devra quant à elle contenir le mot de passe d’accès au serveur SFTP concerné. On doit dans ce cas cocher la case “secret” pour cacher le mot de passe.
Une fois cette valeur rendue secrete, impossible de la récupérer en clair, que ce soit en décochant la case ou en tentant de l’appeler via la fonction “globalvalue()”
L’envoi sur le SFTP se fera alors dans le code JQL via la fonction suivante:
sendsftp("KEY"; item_to_send)
“Key” indique ici donc le nom de la variable globale, en l’occurence toutes les infos nécessaires à la plateforme pour identifier le serveur et l’utilisateur qui va tenter de s’y connecter.
La fonction sendsftp va ensuite aller récupérer le mot de passe de connexion dans le champ “Valeur” de la table et le fournira au serveur pour y deposer l’objet “item_to_send”
Cet objet peut quant à lui être n’importe quel csv ou pdf généré par une formule JQL
Ex: sendsftp("Durand@sftp.metron.com"; htmlreport("REF_REPORT").topdf("report.pdf"))
Ex: sendsftp("Durand@sftp.metron.com"; worksheet("REF_WORKSHEET").tocsv("table.csv"))
C. Envoyer un élément sur un serveur SFTP avec autentification par fingerprint
Dans le cas où le serveur SFTP demande une autentification par fingerprint, il suffit de rajouter une ligne supplémentaire dans la table, qui aura le même nom de variable que pour la connexion au serveur, mais avec le suffixe “_SSHkey”. La colonne valeur contiendra le fingerprint necessaire à la connexion.
La fonction sendsftp sera alors capable d’aller récupérer les valeurs nécessaires pour la connexion au serveur.
Exemple: avec la variable ci-dessous, il est possible de se connecter automatiquement à un serveur SFTP pour y deposer un fichier (csv ou pdf) généré par la plateforme.
La fonction d’envoi sera alors par exemple
sendsftp("lht@sftp.server.com"; htmlreport("REF_REPORT").topdf("report.pdf"))
Exemple: si le serveur demande en plus une autentification par fingerprint, il faudra ajouter une seconde ligne dans la table
La fonction d’envoi sera inchangée, et c’est la fonction sendsftp qui ira retrouver le fingerprint nécessaire en se basant sur la clé renseignée pour l’utilisateur/serveur
sendsftp("lht@sftp.server.com"; htmlreport("REF_REPORT").topdf("report.pdf"))
CORRECTIONS
Lors de la jonction de plusieurs tables en JQL, utilisant la fonction .join ou .joinmulti, il ne faut pas que les tables jointes aient des colonnes portant le même nom sous peine d’échec de la jonction des tables.
Dans le cas du .joinmulti, si l’on ne prenait pas garde à ce point, on pouvait avoir des situations problématiques où certaines colonnes étaient décalées par rapport à leurs titres.
Bien que la situation ne soit pas censée arriver, cette situation où les colonnes se décalaient, renvoyant les valeurs de la colonne d’à côté, a été corrigée.