Table des matières


Qlik avec Integrix

Qlik by Infodata

Integrix en Qlik Sense

Comment fonctionne la chaîne Integrix - QlikSense ?

  1. Les bases de données de production des différents modules Integrix sont exécutées sur votre serveur D3/Universe (aka. Prod).
  2. au sein, de ce système Prod, il y a l'outil ETL 1)
    • ETL va convertir les données du format Multivalué (NF2) 2) au format normalisé NF 3)) qui va permettre une exploitation avec les outils standards de la BI 4).
      Au cours de cette Extraction / transformation, les données cryptiques de Integrix sont rendues humainement lisible. ex: 1/0 → Oui/Non.
    • ETL va ensuite charger les données dans un système de base de données relationnelles de type SQL (mysql, oracle, db2, …) (aka. DW 5) et ce afin d'exposer les données au départ d'un point central.
      En effet, de part sa configuration, le DW permet de regrouper les données de Prod issues de plusieurs environnements homogènes ou hérérogènes (plusieurs instance de Accountix, plusieurs instance de Stockix, …) mais aussi il permet de regrouper plusieurs instances d'Integrix (plusieurs serveurs Integrix travaillant pour un groupe multi-société par exemple)!.
    • selon une planification définie, ETL maintien à jour les données de Prod vers DW.
  3. Le serveur QlikSense est planifié pour rafraîchir les données chargées dans les Qlikapp
    • une première phase (0 sql) va simplement lire les données dans le DW et les convertir au format Qlik de base
    • une deuxième phase (1 qvd) va d'une part simplifier le modèle en fusionnant certaines tables mais aussi enrichir le modèle en y ajoutant des champs calculés, des calendriers, et peut être des données issues de sources secondaires telles que fichiers Texte, fichier Excel, autres base de données , …
    • une troisème phase (Qlikapp) charge les données enrichies dans la Qlikapp qui sera exploitée par l'utilisateur.
    • cette structure en trois phase permet de traiter les données de différents modèle (stockix, garagix, accountix, savix, … ) séparément et ensuite permet de fournir une Qlikapp personnalisée qui intègre des données de plusieurs modules distincts. exemple : lq Qlikapp Garagix exploite les données de Garagix et de Stockix.
  4. La/les Qikapp sont dès lors mises à disposition des utilisateurs soit via QlikSenseServer soit via un export et un réimport en QlikSense Desktop.

Qlikapp Integrix

Comment est structurée une Qlikapp sur Integrix ?

XX représente le module applicatif au sein de Integrix (AC = Accountix, SX = Savix, ME = Medix, …)

répertoire xx_init

xx_init est un répertoire de stockage situé dans le serveur QlikSense, répertoire Qvd/ xx_init.

fichier excel xx_ici.xlsx

On y trouvera un fichier Excel (xx_ici.xslx) qui contiendra des valeurs propre au sites d'exploitation.

Ces valeurs seront contenues dans des ongles excel et structurés en 'Tableau' avec entête.

L'onglet Variables contient les colonnes Variable et Expression ; ces valeurs seront chargées dans les qlikapp 0/1/app afin de fournir des variables propres au site. Une variable peut référencer une constante de valeur ou une expression de filtre, de sélection,…

Chaque module Integrix possède son xx_ici.xlsx et doit être considéré lors de la mise en oeuvre du site.

Cette méthode permet de mettre à disposition du site des Qlipapp générique propre au module integrix standard et de les personnaliser.

qilkapp xx 0 sql

qlikapp xx 1 qvd

qlikapp xx Dft/Site


convention

Les conventions de nomination des champs.

Afin de comprendre les données à disposition pour créer les vues dans qlikSense, nous avons adopté une convention de nomage des champs.

Les champs peuvent contenir des espaces et des caractères spéciaux.

On utilisera le codage 'CamelCase' : une majuscule veut dire un nouveau mot.

les préfixes

Les préfixes permettent de comprendre la nature du champs :

les constantes

les variables

Pour distinguer les variables nous adoptons la convention suivante :


calendrier

Les détail de l'extension 'Calendar' - qui porte la déclinaison des Dates en différentes valeurs.

Il est important de bien comprendre que :

Le tableau ci-dessous illustre les valeurs obtenues selon les déclinaisons évoqués.

Les explications

Sufixe Description Exemple de valeur humaine
Year le format Année 2018, 2015, 1992
Quarter le format Trimestre Q1, Q2, Q3, Q4
Month le format Mois jan,..,juil.,…
Week le format Semaine W1, W5,…W52
Year+Periode
YearQuarter le format Année avec le format Trimestre 2015-Q1, 2018-Q3, …
YearMonth le format Année avec le format Mois 2015-jan., 2018-juil., …
YearWeek le format Année avec le format Semaine 2015-Q1, 2018-Q3, …
xxxAGO calcule le nombre absolu de ? entre la date et Today()
YearsAgo le nombre d'année entière qui séparent today() de la date de référence 0,1,2,3, …
(ex : 2018-2016→2)
QuartersAgo le nombre de trimestre qui séparent today() de la date de référence -1,-2,-999 ,0,1,2,3,…,999
MonthsAgo le nombre de mois qui séparent today() de la date de référence -1,-2,-999 ,0,1,2,3,…,999
WeeksAgo le nombre de semaine qui séparent today() de la date de référence -1,-2,-999 ,0,1,2,3,…,999
xxxRelNo calcule le nombre relatif de ? entre la date et Today() ;
ne tient pas compte de l'année dans le calcul
QuarterRelNo le nombre de trimestre relatif qui séparent today() et la date de référence -3,-2,-1,0,1,2,3
MonthRelno le nombre de mois relatif qui séparent today() et la date de référence -11,..,0,..11
WeekRelno le nombre de semaine relatives qui séparent today() et la date de référence -51,..,0,..,51
is _ In?TD flag Vrai/Faux si la date de référence est dans ? et ⇐ à today()
is_InYTD is In Year To Date est vai (1) si le numéro du jour (1..352) de la date de référence est < = au numéro du jour de today() dans tenir compte de l'année 1/0
is_InQTD is In Quarter To Date est vai (1) si le trimestre (1..4) de la date de référence est < = au trimestre de Today() sans tenir compte de l'année. 1/0
is_InMTD is In Month To Date est vai (1) si le mois (1..12) de la date de référence est < = au mois de Today() sans tenir compte de l'année. 1/0
is_InWTD is In week To Date est vai (1) si la semaine (1..53) de la date de référence est < = à la semaine de Today() sans tenir compte de l'année. 1/0
is_InCurr?TD flag Vrai/Faux si la date de référenc est dans ? courante ; courant est défini par today()
is_InCurrYTD is In current Year to Date est vrai (1) si la date de référence est dans la même année que today() et < = today() en tenant compte de l'année 1/0
is_InCurrMTD is In current Year to Date est vrai (1) si la date de référence est dans le même mois que today() et < = today() en tenant compte de l'année et du mois 1/0
is_InPrev?TD flag Vrai/Faux si la date de référenc est dans ? précédente; précédente est défini par today()
is_InPrevYTD is In current Year to Date est vrai (1) si la date de référence est dans l'année précédente à today() et < = today() en tenant compte de l'année précédente 1/0
is_InPrevMTD is In current Year to Date est vrai (1) si la date de référence est dans le même mois que today() dans l'année précédente à today() et < = today()
en tenant compte de l'année précédente et du mois
1/0

Les exemples

3)
NF : Normal Form : https://fr.wikipedia.org/wiki/Forme_normale_(bases_de_donn%C3%A9es_relationnelles
6) , 7)
QVD : Qlik View Data