Automatiser la distribution de rapports tout en gardant une supervision centralisée est le Saint Graal de tout administrateur BI. Pourtant, coordonner les rechargements de données Qlik Sense avec les exécutions NPrinting nécessite souvent des planifications horaires rigides et risquées. Et si l'application Qlik Sense donnait elle-même le feu vert à NPrinting une fois ses données parfaitement rechargées ? C'est tout à fait possible grâce à l'API REST de NPrinting.

Laissez-vous guider étape par étape dans cet article : nous détaillons le script de chargement et les prérequis nécessaires pour connecter ces deux environnements et automatiser vos flux de bout en bout.

Quels sont les avantages pour vos rapports NPrinting ?

Il est possible de lancer des tâches NPrinting directement depuis des applications Qlik Sense. Cela se fait par le biais d’appels API depuis le script chargement Qlik Sense.Pour rappel, NPrinting est la solution de reporting avancée de l'écosystème Qlik, qui permet de concevoir, de générer et de distribuer automatiquement des rapports statiques (PDF, Excel, PowerPoint, etc.) à partir de vos données.

Le fait d’exécuter les tâches NPrinting directement depuis des applications Qlik Sense peut avoir plusieurs avantages :

  • Centralisation de la supervision des tâches : plus besoin de passer par NPrinting pour analyser les logs et gérer l’exécution des tâches, il est possible de superviser les tâches directement depuis la même interface sur la QMC (Qlik Management Console)
  • Ordonnancement en cascade du rechargement de données des applications Qlik Sense et des exécutions de tâches NPrinting : l’exécution NPrinting n’a pas besoin de se faire à un horaire fixe mais peut être faite dès que l’application Qlik Sense qui alimente le rapport NPrinting a été rechargée
  • Éviter l’envoi de rapports NPrinting vides ou faux : grâce à l’ordonnancement des tâches, il est possible de bloquer le chargement du rapport NPrinting si la tâche Qlik Sense liée au rapport est tombée en erreur ou n’a pas fonctionné correctement (en lien avec un problème de connexion ou de script par exemple). Cela permet d’éviter d’envoyer des rapports complètement vides ou avec des données non rechargées

Les prérequis pour la communication de Qlik Sense avec NPrinting

Afin de pouvoir exécuter les tâches NPrinting depuis Qlik Sense, il faudra ouvrir le port 4993 : c’est le port par défaut utilisé par l’API REST de NPrinting.

Le script de chargement de l'application Qlik Sense

Le script proposé ici comporte 3 sections :

1 - Création de variables pour préparer l’environnement

Ordonnancer Qlik Sense et NPrinting : le guide pour automatiser vos rapports

  • v_Nom_Engine_Server : Elle récupère le nom du serveur Qlik Sense qui exécute le script.
  • v_Nom_App_Doc: Elle récupère le nom de l’application Qlik Sense qui exécute le script.
  • v_Nom_App : Elle récupère le nom de l’application Qlik Sense qui exécute le script avec un nettoyage de la valeur pour supprimer les crochets.
  • v_ID_App : Elle récupère l’ID technique de l’application Qlik Sense qui exécute le script.
  • v_Date_Execution : Elle génère un horodatage de la date et l’heure de l’exécution du script au format AAAAMMJJHHMMSS.
  • v_ID_NP_Task : Elle stock la valeur de l’ID technique de l’application QlikNprinting qui est lancée depuis QlikSense.
  • v_URL_NP_Task : Elle construit dynamiquement l’URL de la requête API NPrinting qui servira à exécuter la tâche par la combinaison de l’adresse du serveur ainsi que l’ID de la tâche NPrinting renseignée dans la variable précédente.

Les fonctions TRACE permettent d’afficher les valeurs des variables dans les logs, ce qui est très utile pour le débogage.

2 - Connexion à NPrinting - Récupération du cookie de session (jeton d’authentification)

Ordonnancer Qlik Sense et NPrinting : le guide pour automatiser vos rapports

Dans cette deuxième section, l’objectif est de récupérer le cookie de session. Cette étape est nécessaire pour réaliser la dernière permettant d’exécuter la tâche NPrinting.

  • LIB TO CONNECT TO ‘Nom API’ : Il faut renseigner le nom de la connexion NPrinting API GET
  • SQL SELECT ... FROM JSON "_response_header" : On récupère le champ set-cookie qui contient le jeton de connexion.
  • [_response_header] : Une table temporaire est créée pour stocker le résultat de la requête.
  • v_Cookie_Brut : Cette variable permet de récupérer la ligne d’entête à l’aide de la fonction Peek().
  • v_Cookie_Session : Cette variable permet de détourer la valeur de la variable précédente afin d’en extraire uniquement le cookie de session.
  • DROP TABLE : La table est supprimée afin de nettoyer l’application et de libérer la mémoire RAM de Qlik Sense

3 - Exécution de la tâche NPrinting

Ordonnancer Qlik Sense et NPrinting : le guide pour automatiser vos rapports

  • LIB TO CONNECT TO ‘Nom API’ : Il faut renseigner le nom de la connexion NPrinting API POST
  • SQL SELECT … WITH CONNECTION (...) : Le script va forcer le connecteur REST à modifier les paramètres grâce à l’instruction WITH CONNECTION. Les paramètres pris en compte sont les variables vPublshTaskURLNP et vCookie préalablement créées. En envoyant cette requête, l'API NPrinting reçoit l'ordre et le jeton valide. Elle démarre immédiatement la tâche en tâche de fond côté NPrinting.
    • URL "$(v_URL_NP_Task)" : Lecture de la variable créée dans la première section et qui contient l’URL de la requête API Nprinting permettant l'exécution de la tâche
    • HTTPHEADER "cookie" "$(v_Cookie_Session)" : Lecture de la variable créée dans la section précédente et contenant la valeur du cookie de session
  • [_post_items] : On charge dans cette table la réponse de confirmation envoyée par NPrinting lors de l’exécution de la tâche. Le message indique généralement que la tâche est “En cours / En attente”.
  • DROP TABLE : La table est supprimée afin de nettoyer l’application et de libérer la mémoire RAM de Qlik Sense

Automatisez la publication de vos rapports NPrinting via Qlik Sense

Vous l'aurez compris, faire communiquer Qlik Sense et NPrinting via l'API REST offre un gain de contrôle indéniable. L'implémentation de ce script en trois étapes (préparation, authentification et exécution) vous permet de mettre en place une véritable automatisation en cascade, simple et robuste. Il ne vous reste plus qu'à paramétrer vos connexions REST et à intégrer ce bout de code à la fin de vos scripts de chargement pour dire définitivement adieu aux envois de rapports erronés !

Vous recherchez des consultants certifiés Qlik ? Besoin d'être accompagné dans vos projets Qlik ? Next Decision est là ! Contactez-nous !