Ysance - Your Data in Action

    Suivre et analyser le taux d’utilisation d’applications QlikView

    [fa icon="calendar"] 28/02/08 18:42 / par Romain Chaumais

    Il m’a été demandé si Qlikview proposait une solution afin de monitorer les accès, par période, par utilisateur, par application.

    Cette fonctionnalité n’étant pas gérée coté serveur sur la version 7.XX, voici comment développer en quelques minutes un tel tableau de bord :

    Le log des sessions ouvertes lors du chargement d’une application QV depuis un client se trouve dans un fichier texte nommé « Sessions_2007.txt »contenu dans : C:Documents and SettingsAll UsersApplication DataQlikTechQVS et renouvelé chaque année.
    Par exemple : Sessions_2007, Sessions_2008 etc..

    Ci-dessous un script basique pour charger ce log sur 2007 et 2008 :

    Load [Exe Type],
    [Exe Version],
    year(date(Timestamp)) as Année,
    month(date(Timestamp)) as Mois,
    day(date(Timestamp)) as Jour,
    Document,
    TextBetween([Document], 'tdb', '.qvw') as Application, //on ne selectionne que les applications en production
    [Document Timestamp],
    [QlikView User],
    [Exit Reason],
    [Session Start],
    [Session Duration],
    [CPU spent (s)],
    [Bytes Received],
    [Bytes Sent],
    Calls,
    Selections,
    [Authenticated user],
    [Identifying user],
    [Client machine identification],
    [Serial number],
    [Client Type],
    [Secure Protocol],
    [Tunnel Protocol],
    [Server Port],
    [Client Address],
    [Client Port],
    [Experienced Performance],
    [Cal Type],
    [Cal Usage Count]
    FROM V:SOURCESessions_2007.log (utf8, txt, delimiter is 't', embedded labels)
    where left ([Document],25)='chemin-vers-le-repertoire-applicationsproductiontdb';

    Load [Exe Type],
    [Exe Version],
    //Timestamp,
    year(date(Timestamp)) as Année,
    month(date(Timestamp)) as Mois,
    day(date(Timestamp)) as Jour,
    Document,
    TextBetween([Document], 'tdb', '.qvw') as Application, //on ne selectionne que les applications en production
    [Document Timestamp],
    [QlikView User],
    [Exit Reason],
    [Session Start],
    [Session Duration],
    [CPU spent (s)],
    [Bytes Received],
    [Bytes Sent],
    Calls,
    Selections,
    [Authenticated user],
    [Identifying user],
    [Client machine identification],
    [Serial number],
    [Client Type],
    [Secure Protocol],
    [Tunnel Protocol],
    [Server Port],
    [Client Address],
    [Client Port],
    [Experienced Performance],
    [Cal Type],
    [Cal Usage Count]
    FROM V:SOURCESessions_2008.log (utf8, txt, delimiter is 't', embedded labels)
    where left ([Document],25)='chemin-vers-le-repertoire-applicationsproductiontdb';

    A noter deux traitements :
    -utilisation de la fonction date() pour découper le format YYYY/MM/DD en trois champs (année, mois, jour)
    -utilisation de la fonction TextBetween() pour filtrer les applications contenues dans le répertoire de production (facultatif), utilisée lors de la clause « where ».

    Une fois le script sauvegardé et chargé, reste à créer les objets de notre tableau de bord en ajoutant :

    -Les 4 list-boxes correspondant aux champs authenticated-user, Année, Mois, Application.

    -un tableau croisé dynamique, avec en dimensions les champs Année, Mois, Application et en expressions le champ Authenticated-user, ainsi qu’un comptage du nombre de sessions ouvertes « count([Session Start]) »

    -Et pourquoi pas un graphique ? on crée un chart, avec en dimensions les champs mois et authenticated-user, et une expression : « count([Session Start]) »

    Le tour est joué, vous saurez qui utilise quelle application, et quand !

    S'abonner au blog