Cet article a été écrit sur un environnement Qlik Sense Client Managed (version August 2023)

Une demande récurrente et légitime des administrateurs de Qlik Sense Client Managed est d’être notifié lorsqu’une tâche de chargement de données est en erreur.

Il existe pléthores de solutions à ce manque, plus ou moins simples et plus ou moins chères. Aujourd’hui je vous propose la plus simple et la moins chère de toutes.

Cerise sur le gâteau, elle repose sur le standard Log4Net, qui repose sur des appenders, et nécessite un simple fichier de configuration ainsi qu’un serveur SMTP pour fonctionner.

Première étape

Pour commencer, il suffit de créer le fichier de configuration. Il doit s'appeler LocalLogConfig.xml et présenter la structure suivante :

<?xml version="1.0"?>
<configuration>
<appender name="sendMail" type="log4net.Appender.SmtpAppender">
<evaluator type="log4net.Core.LevelEvaluator">
<param name="threshold" value="ERROR"/>
</evaluator>
<param name="to" value="Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser." />
<param name="from" value="Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser." />
<param name="smtpHost" value="smtp.gmail.com" />
<param name="port" value="587" />
<param name="EnableSsl" value="true" />
<param name="Authentication" value="Basic" />
<param name="username" value="Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser." />
<param name="password" value="M0nM0t2P@ss3>" />
<param name="bufferSize" value="0" />
<param name="lossy" value="true" />
<param name="subject" value="Une tâche de chargement Qlik Sense a échoué" />
<layout type="log4net.Layout.PatternLayout">
<param name="conversionPattern" value=" Bonjour, %newline%newline La tâche de chargement %property{TaskName} a échoué. %newline Elle est associée à l'application '%property{AppName}' (%property{AppId}) %newline%newline Le message d'erreur attaché est le suivant:%newline '%message'%newline%newline Pour plus de détail: https://monserveur/qmc/tasks?ID=%property{TaskId} %newline%newline Bonne journée." />
</layout>
</appender>
<logger name="System.Scheduler.Scheduler.Slave.Tasks.ReloadTask">
<appender-ref ref="sendMail" />
</logger>
</configuration>

Libre à vous de le modifier à votre guise. Attention cependant, le HTML n’est pas supporté nativement. Si vous souhaitez utiliser ce format, il faut développer un appender personnalisé.

Deuxième étape

Il faudra ensuite disposer le fichier précédemment créé dans le dossier %ProgramData%\Qlik\Sense\Scheduler

Troisième étape

L’étape suivante est le redémarrage des services Qlik Sense. Cependant, l’action est nécessaire seulement pour le Scheduler et le ServiceDispatcher.

Quatrième étape

Dernière étape et probablement la plus simple : profiter !

Pour tester si cela fonctionne correctement, il suffit de créer une application avec un script défaillant. Vous pouvez, par exemple, supprimer une table existante et y associer une tâche de chargement puis la déclencher.

Si tout se passe bien, vous recevrez un e-mail avec la forme que vous avez choisi à la première étape :

À noter : une mauvaise configuration du fichier n'entraîne aucune erreur et aucun journal système n’est à votre disposition pour en vérifier la configuration. 

Il est aussi possible d’envoyer un e-mail à un channel Teams ou Slack pour ainsi recevoir la notification par ces moyens. 

Envie d’aller plus loin ? N’hésitez pas à vous renseigner sur les différents appenders disponibles. Retrouvez tous nos trucs et astuces ainsi que les nouveautés des éditeurs dans notre Wiki !

Nos consultants experts de Next Decision sont à votre écoute pour vous accompagner dans vos projets Contactez-nous !