Gestion des erreurs dans un script QlikView

Il est possible d’utiliser des variables systèmes afin de traiter des erreurs dans un script.

La variable ErrorMode permet de déterminer quelle action devra être effectuée par QlikView si une erreur est rencontrée au cours de l’exécution du script. La valeur par défaut (1) interrompt l’exécution du script et l’erreur est affichée à l’utilisateur. En positionnant la variable à 0, l’erreur est ignorée et en la positionnant à 2, l’exécution du script est interrompu mais l’erreur n’est pas affichée à l’utilisateur.

SET ErrorMode=2;

La variable ScriptError, renvoie le code d’erreur de la dernière instruction exécutée. Les principaux codes d’erreur sont les suivants :
1 – Pas d’erreur
2 – Erreur générale
3 – Erreur de syntaxe
4 – Erreur générale ODBC
5 – Erreur générale OLEDB
8 – Fichier non trouvé
9 – Base de données non trouvée

Il est donc possible de tester la valeur de cette variable pour effectuer une action particulière. On peut par exemple interrompre le script si après une instruction si une erreur a eu lieu.

IF ScriptError <> 1 THENEXIT SCRIPTENDIF;

La variable ScriptErrorCount renvoie le nombre total d’instructions qui ont causé des erreurs au cours de l’exécution du script. On peut donc interrompre le script quand un certain nombre d’erreurs est rencontré.

Astuce : équivalent d’un CASE dans une instruction LOAD

L’instruction CASE n’existe pas et lorsque l’on souhaite tester les valeurs d’un champ dans un LOAD, il faut encapsuler des fonctions If() ce qui complexifie la lecture du code :

Employés:
LOAD If(Office=1,’Bureau 1′, If(Office=2,’Bureau 2′, If(Office=3, ‘Bureau 3′, If(Office=4, ‘Bureau 4′, ‘Bureau 5′)))),

Il est possible d’utiliser une table de mappage pour simplifier l’écriture :

Map_Office:
MAPPING LOAD * INLINE [
    Code, Libellé
    1, Bureau 1
    2, Bureau 2
    3, Bureau 3
    4, Bureau 4
    5, Bureau 5
];

Employés:
LOAD ApplyMap(‘Map_Office‘,Office) AS Office,

Astuce : équivalent d’un IN dans une clause WHERE d’une instruction LOAD

Dans la clause WHERE d’un LOAD, il n’existe pas d’instruction IN et, en fonction du nombre de valeurs, il peut être fastidieux d’écrire la clause de restriction avec des OR :

WHERE Title = ‘President’ OR Title = ‘Account Manager’ OR Title = ‘Sales Manager’

Il est tout à fait possible de remplacer avantageusement le IN par la fonction MATCH qui effectue la comparaison avec une liste de valeurs :

WHERE Match(Title,’President’, ‘Account Manager’, ‘Sales Manager’)

Nouvelles fonctionnalités QlikView : la BI 2.0

Vous connaissez obligatoirement QlikView, l’éditeur de Business Intelligence aux 50% de croissance annuels ! Arrivée sur le marché français en 2007, la société QlikTech a beaucoup fait parler d’elle au niveau mondial grâce à une fonctionnalité unique : l’analyse associative en mémoire. Derrière ce terme barbare se cachent deux concepts simples et révolutionnaires qui ont fait le succès de la plateforme QlikView au point que l’éditeur annonce aujourd’hui plus de 25000 clients dans le monde.

  • L’analyse associative est aujourd’hui le principe de fonctionnement qui rend QlikView unique par rapport à ses concurrents : les données sont chargées dans un modèle vectoriel qui permet de mettre en relation toutes les données. Ainsi, dès qu’un utilisateur sélectionne (« filtre ») une donnée dans QlikView, toutes les informations qui lui sont rattachées de façon directe ou indirecte sont elles aussi filtrées. La porte d’entrée d’une analyse peut alors être aussi bien un client qu’un chiffre d’affaires ou une donnée géographique, les possibilités de découverte et d’analyse des données sont donc nombreuses pour l’utilisateur.
  • L’analyse en  mémoire – concept d’ailleurs repris par les autres éditeurs de Business Intelligence – permet, elle, de monter les données dans la RAM du serveur afin d’accélérer les temps de traitement. Ainsi, QlikView est capable de traiter plusieurs millions de données tout en proposant des temps de réponse de l’ordre de la seconde. « Je clique, je vois ».

Mais QlikView ne s’est pas arrêté là : la version 11 de l’outil, sortie fin 2011, a elle aussi réservé son lot de nouveautés. Encore une fois, la R&D de l’éditeur s’est différenciée du marché existant pour proposer des fonctionnalités novatrices notamment pour améliorer l’expérience utilisateur. Sessions collaboratives et fils de discussions permettent aux utilisateurs de travailler en coopération, c’est ce que l’éditeur appelle la « Business Discovery Collaborative ». 

  • Avec les sessions collaboratives, finies les interminables explications ou séries d’impressions écran pour se faire comprendre. Cette fonctionnalité permet à n’importe quel utilisateur qui dispose d’un accès à une plateforme QlikView d’initialiser une session qui permettra à d’autres collaborateurs de visualiser en même temps que lui son application. Tous peuvent collaborer, via écran distant, à la même session de travail : les données sont mises à jour de part et d’autre dès qu’un utilisateur effectue une sélection.
  • Les fils de discussions sont eux aussi un moyen de faciliter l’analyse des utilisateurs et le partage de connaissances. Ils permettent simplement de poser une question sur un élément d’une application QlikView. La note est alors rattachée à une colonne d’un tableau ou un graphique. L’avantage, c’est que l’utilisateur peut associer un favori qui permettra à un utilisateur plus avancé de se remettre dans l’état d’analyse pour répondre correctement à l’interrogation.

Avec ces deux nouveautés, QlikView ouvre la porte de la BI 2.0, à l’image des acteurs du web que sont Google, Facebook ou Twitter qui ont permis le passage du statique au collaboratif. D’ailleurs QlikView propose, avec la version 11, des fonctionnalités mobiles très intéressantes…

Nous en parlerons dans un prochain article, stay tuned !

Suivre

Recevez les nouvelles publications par mail.

Rejoignez 77 autres abonnés

%d blogueurs aiment cette page :