Rapport de stage de fin d'etudes Application web de E-commerce
Kallel rapport final.pdf
1. I
J’autorise l’étudiant à faire le dépôt de son rapport de stage en vue d’une soutenance.
Encadrant professionnel, Mlle
MEJRI Khaoula.
Signature et cachet
J’autorise l’étudiant à faire le dépôt de son rapport de stage en vue d’une soutenance.
Encadrant académique, Mr LABBANE Walid.
Signature
2. II
Dédicaces
Mes chers parents Tarek & Samira
Mes deux sœurs adorables Salma & Hend
Ma chère femme magnifique Sabrine, ma vie, mon amour éternel
Mes Frères Walid & Sami
Mes deux anges Yasmine & Céline
Ma deuxième Famille : Chokri, Faten, Amen, Mima...
En témoignage de ma reconnaissance pour leurs sacrifices durant mes années d’étude. Qu'ils récoltent maintenant le
fruit de leur patience et de leur amour.
Je leur dédie ce travail en reconnaissance de tous les sacrifices qu'ils ont consentis pour maréussite.
Que ce travail soit l'expression de ma grande affection et un témoignage de mon profond attachement.
A l’âme de ma grand-mère Douja qui me manque énormément
A ma grand-mère Jamila que j’aime trop
A toute ma famille
A l’âme de mon ami Youssef
A tous mes amis
J’espère par ce modeste travail avoir répondu à laconfiance qu'ils m'ont accordée.
3. III
Remerciements
Je tiens tout d’abord à remercier M.Walid Labbane mon encadrant à Esprit pour son
engagement à mon égard, son écoute, sa disponibilité, ses orientations et ses remarques
constructives pour mener ce travail dans les meilleures conditions.
Je tiens à remercier tout particulièrement et à témoigner toute ma reconnaissance à Mon
encadrant à la société Mme. Khaoula Mejri pour l'aide qu'elle m’a apporté, pour sa patience et
son encouragement à finir ce travail. Son œil critique m’a été très précieux pour structurer ce
travail et pour améliorer la qualité des différentes sections.
Je remercie également tous les membres de la société « TIMSOFT » pour leur accueil et leurs
idées constructives durant ces mois au sein de leur établissement.
Je remercie vivement tous les membres de jury pour l'honneur qu'ils me font en jugeant et
examinant mon travail et tout mon effort. Enfin, je me trouve très reconnaissant à toutes les
enseignantes et tous les enseignants du département informatique d’ESPRIT, pour leurs efforts
et leur accompagnement au cours de mes études.
Aussi mes remerciements à tous ceux qui ont contribué de près ou de loin à l'élaboration de ce
travail, qu’ils veuillent bien trouver ici l'expression de nos salutations les plus distinguées.
4. IV
Résumé
Ce projet a été réalisé au sein de TIMSOT pour le client LC WAIKIKI dans le domaine de la
vente au détail.
Ce projet consiste à mettre en place un système de configuration de Data Warehouse et de
reporting.
Ce dernier nous a permis dans un premier temps de générer des fichiers intégrables par l’ERP
Cegid Business Retail de CEGID.
Il nous a aussi permis de générer des tableaux de bord selon les besoins de notre client.
Mot clés : Talend,QlikSense,Reporting,Datawarehouse,SQLserver
Abstract
This project was realized within TIMSOT for the customer LC WAIKIKI in the retail sale field.
This project involves setting up a Data Warehouse configuration and a reporting system.
This last allowed us initially to generate files integrable by the CEGID’sCegid Business Retail
ERP.
It also allowed us to generate dashboards according to the needs of our client.
Mot clés : Talend,QlikSense,Reporting,Datawarehouse,SQLserver
5. V
Liste des abréviations
ETL : Extract Transform Load
DW : DataWarehouse (entrepôt de données)
ERP : Enterprise Resource Planning
BD : Base de Données
BI : Business Intelligence
ODS : Operating Data Store
SGBD : Système de Gestion de Base de Données
CRM : Customer Relationship Management
CBR : Cegid Business Retail
6. VI
Table des matières
Dédicaces..................................................................................................................................II
Remerciements ...................................................................................................................... III
Liste des figures ....................................................................................................................... X
Liste des tableaux ................................................................................................................XIII
Introduction Générale.............................................................................................................. 1
Chapitre I : Cadre général du projet ..................................................................................... 3
1. Organisme d’accueil........................................................................................................... 4
1.1. Présentation de TIMSOFT .......................................................................................... 4
1.2. L’organigramme de TIMSOFT ................................................................................... 6
2. Contexte du projet .............................................................................................................. 7
2.1. Enjeux du projet .......................................................................................................... 7
2.2. Problématique.............................................................................................................. 7
2.3. Étude de l’existant.......................................................................................................7
2.4. Solution Proposée........................................................................................................ 8
3. Méthodologie de travail......................................................................................................9
3.1. Etude comparative des méthodologies ........................................................................ 9
3.1.1. L’approche de Kimball......................................................................................... 9
3.1.2. L’approche d’Inmon........................................................................................... 10
3.2. La méthodologie adaptée........................................................................................... 11
Chapitre II : Analyse et spécification des besoins ............................................................... 14
1. Planification du projet ...................................................................................................... 15
2. Identification des Besoins.................................................................................................16
2.1. Besoins fonctionnels..................................................................................................16
2.2. Besoins non fonctionnels........................................................................................... 16
3. Environnement technique du travail................................................................................. 17
7. VII
3.1. Stockage des données................................................................................................ 17
3.2. Intégration des données ............................................................................................. 18
3.3. Analyse de données et Reporting .............................................................................. 19
3.4. Scrapping des données .............................................................................................. 21
Chapitre III : Identification et description des données.................................................... 23
1. Identification des sources de données (Input) ..................................................................24
1.1. Fichier TO ................................................................................................................. 24
1.2. Fichier RO ................................................................................................................. 26
1.3. Fichier INV................................................................................................................ 27
1.4. Fichier TO_*_Product INV_*_Product ....................................................................29
2. Extraction des données.....................................................................................................30
3. Format des fichiers intégrables par l’ERP CBR (Output)................................................ 32
3.2. Fichier TO ................................................................................................................. 32
3.2. Fichier RO ................................................................................................................. 33
3.3. Fichier INV................................................................................................................ 34
3.4. Fichier TO PRODUCT & INV PRODUCT.............................................................. 35
Chapitre IV : Génération des outputs et développement de l’ETL...................................41
1. Business Model ................................................................................................................ 42
2. Préparation des données ...................................................................................................43
3. Génération des Outputs ....................................................................................................44
3.1. Fichier TO & RO....................................................................................................... 44
3.2. Fichier INV................................................................................................................ 45
3.3. Fichier «TO_PRODUCT » et « INV_PRODUCT »................................................. 46
3.4. Rassemblement des Jobs ........................................................................................... 47
4. Intégration des données....................................................................................................47
4.1. Extraction des données.............................................................................................. 47
4.1.1. TO_ETL ............................................................................................................. 47
4.1.2. RO_ETL ............................................................................................................. 48
8. VIII
4.1.3. PRODUCT_ETL................................................................................................ 49
4.1.4. Geographie_ETL................................................................................................ 50
Chapitre V : Création du Datawarehouse et Migration des données................................ 52
1. Conception du modèle physique ...................................................................................... 53
1.1. Magasin de données « Facture » ............................................................................... 53
2. Préparation des dimensions .............................................................................................. 54
2.1. Dimension Catégorie.................................................................................................54
2.2. Dimension Groupe.....................................................................................................55
2.3. Dimension produit.....................................................................................................56
2.4. Dimension StoreCible ............................................................................................... 57
2.5. Dimension Transfert..................................................................................................58
2.6. Dimension Temps...................................................................................................... 59
3. La Table de Fait « Facture »............................................................................................. 59
4. Journalisation Talend........................................................................................................ 60
5. Migration de données vers Qlik Sense ............................................................................. 62
Chapitre VI : Restitution des données................................................................................. 63
1. Spécification de l’application utilisateur.......................................................................... 64
2. Les Feuilles d’application.................................................................................................64
2.1. Suivi des Transferts ...................................................................................................64
2.2. Suivi des Boutiques...................................................................................................65
2.3. Feuilles d’application Suivi de la fréquence des transferts ....................................... 65
2.4. Feuilles d’application Suivi des Produits ..................................................................66
2.5. Feuilles application Gestion des Produits par tranche d’âge.....................................67
3. Développement de l’application utilisateur...................................................................... 67
3.1. Feuille d’accueil ........................................................................................................ 67
3.2. Suivi des Transferts ...................................................................................................68
3.3. Suivi des Boutiques...................................................................................................69
3.4. Suivi de la fréquence des transferts........................................................................... 70
9. IX
3.5. Suivi des Produits transférés ..................................................................................... 71
3.6. Suivi des Produits transférés par tranche d’âge......................................................... 71
Conclusion Générale .............................................................................................................. 73
Annexes ...................................................................................................................................74
Annexe A : génération des fichiers logs et Stats & creation du fichier «
emailDetails.properties »...................................................................................................... 75
Annexe B : Les étapes de migration des données ................................................................ 76
Annexe C : Automatisation ..................................................................................................79
Webographie........................................................................................................................... 82
10. X
Liste des figures
Figure 1 : Les Clients de TIMSOFT .......................................................................................... 6
Figure 2 : Organigramme de TIMSOFT .................................................................................... 6
Figure 3 : Représentation schématique de l’approche de Kimball........................................... 10
Figure 4 : Représentation schématique de l’approche d’Inmon............................................... 11
Figure 5 : Cycle de vie d’un projet décisionnel de Kimball..................................................... 13
Figure 6 : Diagramme de Gantt................................................................................................ 15
Figure 7 : Logo de SQL Server ................................................................................................ 18
Figure 8 : Le Quadrant magique de Gartner pour l’intégration des données 2018[4] ............. 18
Figure 9 : Logo de Talend........................................................................................................ 19
Figure 10 : comparatif des principaux logiciels d’aide à la décision [5] .................................19
Figure 11 : Logo de Qlik Sense................................................................................................ 21
Figure 12 : Logo d’Octoparse ..................................................................................................22
Figure 13 : Exemple d’un fichier TO.XML ............................................................................. 25
Figure 14 : Exemple d’un fichier RO.XML............................................................................. 26
Figure 15 : Exemple d’un fichier INV.XML ........................................................................... 27
Figure 16 : Exemple d’un fichier TO_*_PRODUCT.XML .................................................... 29
Figure 17 : Exemple d’un fichier INV_*_PRODUCT.XML................................................... 29
Figure 18 : Configuration des paramètres de l’outil Octoparse ............................................... 31
Figure 19 : Résultat d’extraction des données ......................................................................... 31
Figure 20 : Fichier XML .......................................................................................................... 32
Figure 21 : Business Model du projet décisionnel ...................................................................42
Figure 22 : Base de données ODS............................................................................................ 43
Figure 23 : Base de données ODS ‘Talend’............................................................................. 43
Figure 24 : Le Job d’output du Fichier TO .............................................................................. 44
Figure 25 : Composant « tMap » (RO) .................................................................................... 45
Figure 26 : Figure représentative du JOB (INV)...................................................................... 45
Figure 27 : Figure représentative du Job «TO_PRODUCT » et « INV_PRODUCT .............. 46
Figure 28 : Exemple du résultat d’un fichier output généré..................................................... 46
Figure 29 : Rassemblement des Jobs........................................................................................ 47
11. XI
Figure 30 : Configuration « tMap » du fichier TO...................................................................48
Figure 30 : Configuration « tMap » du fichier RO ..................................................................49
Figure 31 : Configuration « tMap » du fichier PRODUCT ..................................................... 50
Figure 32 : Configuration « tMap » des données du scrapping ............................................... 50
Figure 33 : Constructeur d’expression ‘Géographie’............................................................... 51
Figure 34 : Schéma de l’entrepôt de données .......................................................................... 54
Figure 35 : Job d’alimentation de la dimension « Dim _Catégorie » ...................................... 55
Figure 36 : Composant tMap du Job Dim_Categorie............................................................... 55
Figure 37 : Partie du job d’alimentation de la dimension «Dim_Groupe» .............................. 55
Figure 38 : Composant tMap du Job Dim_Groupe..................................................................56
Figure 39 : Partie du job d’alimentation de la dimension Dim_Produit ..................................56
Figure 40 : Composant tMap du Job Dim_Produit ..................................................................57
Figure 41 : Partie du job d’alimentation de la dimension Dim_StoreCible............................. 57
Figure 42 : Composant tMap du Job Dim_StoreCible............................................................. 58
Figure 43 : Partie du job d’alimentation de la dimension Transfert......................................... 58
Figure 44 : Composant tMap du Job Dim_Transfert ............................................................... 59
Figure 45 : Alimentation de la Table fait «Fact_Facture» ....................................................... 59
Figure 46 : Composant tMap du Job «Fact_Facture» .............................................................. 60
Figure 47 : Job envoie mail...................................................................................................... 61
Figure 48 : configuration du composant « tSenMail».............................................................. 61
Figure 49 : Configuration des relations entre les tables........................................................... 62
Figure 50 : Suivi des Transferts ............................................................................................... 64
Figure 51 : Suivi des boutiques................................................................................................ 65
Figure 52 : Suivi des boutiques................................................................................................ 66
Figure 53 : Suivi des Produits ..................................................................................................66
Figure 54 : Suivi des Produits par tranche d’âge .....................................................................67
Figure 55 : Feuille d’accueil.....................................................................................................68
Figure 56 : Suivi des Transferts ............................................................................................... 69
Figure 57 : Suivi des Boutiques ............................................................................................... 70
Figure 58 : Suivi de la fréquence des transferts ....................................................................... 70
Figure 59 : Suivi des Produits ..................................................................................................71
Figure 60 : Suivi des Produits transférés par tranche d’âge..................................................... 72
Figure 61 : Options de journalisation Talend........................................................................... 75
Figure 62 : Fichier emailDetails.properties.............................................................................. 76
12. XII
Figure 63 : Connexion aux sources de données ....................................................................... 76
Figure 64 : Création de la connexion ....................................................................................... 77
Figure 65 : Affichage des données après la connexion............................................................ 77
Figure 66 : Interface des associations dans Qlik Sense............................................................ 78
Figure 67 : Résultat d’association des tables ........................................................................... 79
Figure 68 : Construire un job ...................................................................................................80
Figure 69 : Planification d’une tache Windows....................................................................... 81
13. XIII
Liste des tableaux
Tableau 1 : Tableau comparatif de l'approche Inmon et Kimball............................................ 12
Tableau 2 : Tableau des avantages et inconvénients des deux approches................................ 12
Tableau 3 : Tableau comparatif des outils de stockages de données ....................................... 17
Tableau 4 : La structure du fichier TO.XML........................................................................... 25
Tableau 5 : La structure du fichier RO.XML........................................................................... 27
Tableau 6 : La structure du fichier INV.XML ......................................................................... 28
Tableau 7 : La structure du fichier INV_*_PRODUCT.XML................................................. 30
Tableau 8 : Description du fichier TO...................................................................................... 33
Tableau 9 : Description du fichier RO ..................................................................................... 34
Tableau 10 : Description du fichier INV.................................................................................. 35
Tableau 11 : Description de la forme FN1C1 .......................................................................... 35
Tableau 12 : Description de la forme FN1C2 .......................................................................... 36
Tableau 13 : Description de la forme LA1C1.......................................................................... 37
Tableau 14 : Description de la forme LA2C1.......................................................................... 37
Tableau 15 : Description de la forme DI1C1 ........................................................................... 37
Tableau 16 : Description de la forme DI2C1 ........................................................................... 38
Tableau 17 : Description de la forme DI3C1 ........................................................................... 38
Tableau 18 : Description de la forme ARDC1......................................................................... 39
Tableau 19 : Description de la forme REFC1.......................................................................... 40
Tableau 20 : Description de la forme SPEC1........................................................................... 40
14. 1
Introduction Générale
De nos jours, l’informatique décisionnelle (qui désigne l’ensemble des technologies
permettant aux entreprises d’analyser les données au profit de leurs prises de décisions) est
considérée comme une importante approche pour l’évolution d’une entreprise.
Pour aider les décideurs à prendre les décisions, l’analyse de données peut être très
utile. Il est nécessaire de faire usage à une large variété d’outils et de technologies pour faire la
collection et l’analyse des données. C’est la Business Intelligence.
Les grandes quantités de données accumulées des systèmes d’informations des
entreprises ne deviennent des informations pertinentes que si elles répondent à des questions
bien précises sur l’entreprise.
Pour faire la décision, les décideurs ont besoin d’indicateurs de performance (KPI) afin d’être
aidés dans leurs choix.
L’informatique décisionnelle a pour démarche de connaître, mesurer, prévoir et agir
dans le seul objectif de préciser la stratégie de l’entreprise.
Dans ce contexte, la Société de Service Informatique ‘TIMSOFT’, un acteur dynamique dans
le secteur de l’informatique décisionnelle, a pris les devants et propose une solution BI pour
son client LCWAIKIKI.
C’est dans ce cadre que s'inclut ce projet de fin d’étude, qui consiste à mettre en place
et configurer un entrepôt de données & un système de Reporting.
Ce présent rapport s’organise sur cinq chapitres principaux.
Le premier chapitre « Cadre Général du Projet » contient une présentation de
l’organisme d’accueil, une vision sur le sujet ainsi qu’une étude de la partie existante et la
solution proposée. Il englobe aussi une partie consacrée à la méthodologie de travail.
Le deuxième chapitre « Analyse et spécification des besoins » présente l’environnement
et les outils de travail suivi par l’identification des besoins fonctionnels et non fonctionnels.
15. 2
Le troisième chapitre « Identification & description des données » consiste à la
présentation des fichiers d’entrée donnés et les formats des fichiers de sortie intégrable par
l’ERP CEGID.
Le quatrième chapitre « Conception, développement de l’ETL & génération des
Outputs » il comporte les différentes phases afin de pouvoir développer l’ETL et générer les
fichiers de sortie intégrable par la base CBR.
Le dernier chapitre « Entrepôt de données & Reporting » présente le travail effectué
pour la réalisation de la solution. Il comporte également les tables de dimensions et de faits
crées & les principales Dashboard et résultats obtenus durant le projet.
17. Chapitre I : Cadre générale du projet
4
Introduction
Le premier chapitre du rapport est consacré à la présentation de l’organisme d’accueil,
et les domaines d’activités. Ensuite nous passons à décrire la problématique qui nous a mené à
réaliser le projet, l’étude de l‘existant, la solution proposée, et enfin le choix de la méthodologie
de travail.
1. Organisme d’accueil
1.1. Présentation de TIMSOFT
Fondée en 2003, TIMSOFT est un chef de file tunisien qui assure la distribution
exclusive des produits CEGID (Société spécialisée dans l'édition de logiciels de gestion et de
systèmes d'information pour les entreprises et les entrepreneurs) en Tunisie.
C’est une société assez dominante dans le domaine de l’intégration et le déploiement des
solutions de gestion, dans tous les secteurs, pour garantir à ces clients des coûts et des délais
maîtrisés dans la réalisation et l’installation des projets informatiques, ce qui garantit à ces
derniers une évolution accélérée et un processus optimisé. De ce fait, elle les accompagne dans
leur croissance.
La société TIMSOFT ne cesse d'augmenter, elle a élargi ses opérations au-delà des
frontières tunisiennes avec l’ouverture de bureaux en France et au Maroc, permettant de
présenter ses services de conseil dans plus de 20 pays africains, européens et du Moyen-Orient.
En complément des progiciels, TIMSOFT propose un service complet et de proximité :
Conduite de projets complexes et intégrés, de l’avant-vente à la mise en œuvre opérationnelle.
Conseil dans la mise en place des plates-formes systèmes et réseaux et orientation vers les
nouvelles technologies répondant aux prérequis CEGID.
Formation et transfert des compétences sur site pour permettre à l’utilisateur de tirer rapidement
profit de ses progiciels.
18. Chapitre I : Cadre générale du projet
5
Hotline dédiée et assistance spécialisée par métier pour répondre aux attentes des clients.
L’équipe de TIMSOFT représente l’un de ses points forts, elle dispose 35 experts répartis sur
3 départements :
Le Département Commercial et Marketing (DCM) : structuré de manière à renforcer
la relation avec les clients et d’avoir un meilleur suivi des diverses transactions avec ces
derniers.
Le Département Technique : Recrutés pour leurs performances techniques et leur passion
pour les nouvelles technologies, les membres du Département Technique (DT) s'engagent à
offrir un service de qualité dès le premier contact et jusqu'au déploiement complet de la
solution.
Le Département Ressources Humaines : garantit l’évolution des diverses équipes et
assure la culture d’entreprise ainsi que le respect des valeurs de la société, il applique une
politique de formation continue notamment en matière de communication afin de répondre
au mieux aux exigences de ses clients.
A ce jour, TIMSOFT est leader du secteur Retail en Tunisie. Fort de cette réussite, la société
est en train d'accélérer sa croissance sur les autres secteurs d'activité.
TIMSOFT s’est constitué un écosystème riche, dont chaque acteur lui apporte une
expertise métier à forte valeur ajoutée, pour être toujours à la pointe de la technologie et
répondre aux besoins évolutifs de ses clients.
Le principal atout de TIMSOFT est la satisfaction de ses clients d’où elle englobe
toutes les notions nécessaires pour exercer une réelle et pragmatique activité professionnelle
adaptée au secteur d’activité du client. Elle agit en spécialiste et apporte à l'entreprise les
meilleurs outils pour une vision globale et en temps réel de son activité. De plus, les équipes
TIMSOFT apportent maîtrise et coordination pour accompagner chaque entreprise au
quotidien et à chaque étape de son activité.
Dans la première figure, nous présentons quelques clients de TIMSOFT
19. Chapitre I : Cadre générale du projet
6
Figure 1 : Les Clients de TIMSOFT
1.2. L’organigramme de TIMSOFT
La figure 2 représente l’organigramme de TIMSOFT. [1]
Figure 2 : Organigramme de TIMSOFT
20. Chapitre I : Cadre générale du projet
7
2. Contexte du projet
2.1. Enjeux du projet
De nombreux bénéfices pour l’entreprise peuvent être récoltés des programmes de
business intelligence. Ces bénéfices donnent la possibilité d’accélérer et de perfectionner la
prise de décision.
Ils permettent aussi l’optimisation des processus internes, la génération de nouveaux
revenus, l’augmentation de l’efficience d’exploitation et la prise d’avantage sur la
concurrence.
Les systèmes d’informatique décisionnelle aident également les entreprises à repérer les
problèmes qui doivent être résolus et à identifier les tendances du marché.
2.2. Problématique
« Réduire les dépenses » est l’un des conseils pour faire la bonne gestion d’argent
pour l’entreprise, dans ce contexte TIMSOFT utilise BLUEWAY qui est un outil de
manipulation et d’intégration de fichiers payant. Son coût mensuel peut atteindre plus que
10 Milles euro, ainsi TIMSOFT doit rechercher les moyens de rationalisation sans
compromettre la qualité et l'impact.
Dans le cadre de la mise en place de CEGID BUSSINESS RETAIL chez le client
LCWAIKIKI qui est un client de TIMSOFT, et pour suivre la stratégie proposée auparavant,
les fichiers en Input et les données venant des différentes sources externes (CRM, données
de marchés, fichiers clients, inventaires etc…) paraissent incompatibles et non intégrables
avec la base CEGID.
Cependant, Pour avoir une vision globale de son activité LCWAIKIKI espère consolider et
exploiter toutes ses données.
2.3. Étude de l’existant
L’outil Blueway utilisé par TIMSOFT assure la transformation et l’intégration des
données après leur téléchargement depuis le serveur FTP du fournisseur puis passant par ces
étapes :
Traiter le fichier réceptionné.
21. Chapitre I : Cadre générale du projet
8
Intégrer les fichiers traités dans la base CBR.
Sauvegarder les fichiers originaux sur le disque Local (Ces fichiers seront sauvegardés par
type de fichier et par jour en ajoutant dans le nom de fichier la date et l’heure).
Cependant aucun module BI n’est désormais consommé par notre client.
2.4. Solution Proposée
Lors de l’exécution du job, les fichiers disponibles sur le serveur FTP vont être
téléchargés, stockés, puis transformés. Nos inputs vont être sauvegardés dans une première
base pour assurer la traçabilité, on parle ici de l’étape EL (Extract-Load).
Ensuite on passe à la deuxième étape qui est la génération des outputs en format «. Txt »
intégrable par l’ERP CBR de CEGID.
Le scénario d’exécution comprend les étapes suivantes :
Téléchargement des fichiers disponibles.
Stockage des données dans une base.
Traitement immédiat des fichiers.
La génération des fichiers intégrables par CEGID (CBR).
Dans une deuxième phase, nous aspirons à offrir une solution de Business
Intelligence générique et configurable pour notre client LCWIKIKI. Notre mission durant le
stage est présentée dans les tâches suivantes :
Comprendre le processus d'affaires au sein de TIMSOFT pour réussir à répondre aux
besoins désirés.
Analyser les données existantes et les besoins.
Concevoir le module BI, ses différentes dimensions et faits.
Charger des données dans les structures existantes.
Générer des rapports.
22. Chapitre I : Cadre générale du projet
9
3. Méthodologie de travail
3.1. Etude comparative des méthodologies
En général, un projet BI est différent des autres projets informatiques en termes de matière
de précision lors de la restitution des données d’une entreprise et de matière de performance
lors de la création des Dashboard. Par conséquence nous somme dans l’obligation
d’implémenter une méthodologie autre que celles du développement des systèmes
transactionnels dont on peut citer quelques exemples :
Approche en V
Approche dite classique (en cascade)
Approche en spirale
Cependant les experts s’accordent sur le fait que ces approches ne répondent pas parfaitement
aux besoins d’implantation des systèmes décisionnels, ils ont alors défini d’autres approches
dont on cite :
L’approche Bottom-Up de Ralph Kimball
L’approche Top-Down de Bill Inmon
L’approche Hybride.
3.1.1. L’approche de Kimball
Ralph Kimball a préparé un procédé pour concevoir un entrepôt qui, en son temps, était
novateur : le modèle dimensionnel.
Sa méthodologie a été bien utilisée pour la réalisation des projets de l’entrepôt de données
et de business intelligence dans les différents domaines.
Kimball discerne les tâches de création d’entrepôts entre trois spécialisations du monde de
l’intelligence d’affaires :
L’environnement technique
Les données
Les applications analytiques
23. Chapitre I : Cadre générale du projet
10
Figure 3 : Représentation schématique de l’approche de Kimball
Le chemin technique qui est orienté vers le choix et la configuration des outils utilisés
pour les entrepôts. Aussi c’est dans ce chemin que se définit l’architecture technique,
et donc l’ensemble des éléments matériels et logiciels formant l’environnement d’un
entrepôt.
Le chemin des données qui est emprunté par les programmeurs qui modélisent les
magasins de données et acheminent les données des systèmes sources vers ces
magasins.
Le chemin pour le développement d’applications analytiques, c’est prévu pour les
développeurs de rapports, d’analyses et de tableaux de bord typiquement dans des
logiciels prévus pour la consommation de données analytiques.
Ces trois chemins sont intégrés au moment du déploiement c’est à dire en fin de projet. Et
ce processus complet est répété pour chaque nouveau magasin de données demandé par les
utilisateurs.
3.1.2. L’approche d’Inmon
Inmon définit l’entrepôt de données comme un référentiel centralisé pour l'ensemble
de l'entreprise. Cet entrepôt stocke les données au plus bas niveau de détail. Et des dépôts
de données dimensionnels sont ensuite créés à partir de cet entrepôt.
24. Chapitre I : Cadre générale du projet
11
Figure 4 : Représentation schématique de l’approche d’Inmon
Il définit alors l'entrepôt de données dans les termes suivants :
1. Orienté sujet : les données de l'entrepôt de données sont organisées de manière à ce
que tous les éléments de données relatifs au même événement ou objet du monde
réel soient liés.
2. Variante temporelle : les modifications apportées aux données de la base de données
sont suivies et enregistrées, des rapports peuvent ainsi être générés afin d’indiquer
les modifications dans le temps.
3. Non volatile : les données de l'entrepôt de données ne sont jamais écrasées ni
supprimées. Une fois validées, les données sont statiques, en lecture seule et
conservées pour les futurs rapports.
4. Intégré : la base de données contient des données provenant de la plupart ou de la
totalité des applications opérationnelles d'une organisation et rend ces données
cohérentes. [2]
3.2. La méthodologie adaptée
Kimball Inmon
Les datamarts sont implémentés de
façon incrémentale et intégrée en
utilisant les dimensions conformes
L'entrepôt de données utilise un modèle
normalisé et les datamarts utilisent des
données dimensionnelles orientés sujet
Commence par la conception du modèle
dimensionnel pour les datamarts
Commence par la conception du modèle
de l'entrepôt de données
25. Chapitre I : Cadre générale du projet
12
Les datamarts peuvent fournir une vue
entreprise ou processus
L’entrepôt de données contient les
données atomiques et les datamarts les
données agrégées
L’architecture est composée d’un staging
area et de datamarts alors que l'entrepôt
de données physique n’existe pas
L’architecture est composée d’un staging
area permanent, d’un entrepôt de données
et de datamarts dépendants
Les datamarts contiennent les données
atomiques et agrégées
L’entrepôt de données est orienté
entreprise et les datamarts sont orientés
processus
Les utilisateurs peuvent effectuer des
requêtes sur l'entrepôt de données et les
datamarts
Tableau 1 : Tableau comparatif de l'approche Inmon et Kimball
Le tableau comparatif nous montre une opposition effective des deux modèles. Cependant
aucun d’entre eux n’est à privilégier. Alors le choix de la meilleure approche dépendra de
l’activité de l’entreprise ainsi que de ses objectifs à long et court terme sur le plan décisionnel.
Avantages inconvénients des 2 approches
Kimball Inmon
Approche Buttom-Up : Commence
par la conception du
modèle dimensionnel pour
les
Datamarts
Top-Down : Commence
par la conception du
modèle de
l’entrepôt de données
Durée de mise en œuvre Court Long
Construction du modèle Rapide Couteux en temps
Cout Cout initial modéré Cout initial élevé
Intégration des données Par domaine métier Au niveau d’entreprise
Tableau 2 : Tableau des avantages et inconvénients des deux approches
26. Chapitre I : Cadre générale du projet
13
D’après les résultats, nous pouvons remarquer que l’approche Bottom-Up est plus
rentable en termes de temps.
Et par conséquent, l’approche de Ralph Kimball nous semble être la plus adéquate,
vu que nous optons pour un mode de gestion basé sur la réactivité et la coopération, la
méthodologie suivante peut nous fournir une solution adéquate aux besoins de notre client
avec bonne organisation de travail.
Figure 5 : Cycle de vie d’un projet décisionnel de Kimball
Conclusion
Ce chapitre introductif nous a permis d’essayer de détailler le cadre général du projet
en présentant l’entreprise, la solution que nous allons développer et la méthodologie qu’on a
adopté pour la réalisation du projet.
28. Chapitre II : Analyse et spécification des besoins
15
Introduction
L’analyse des besoins métiers est primordiale pour les projets informatiques, dans le
but de réussir les opérations de conception et de développement.
Pour comprendre le contexte du système, il est essentiel de passer par la phase de spécification
des besoins fonctionnels et non fonctionnels et faire l’étude des outils techniques utilisés.
En effet nous allons planifier le projet, présenter et définir les besoins métiers et les outils
techniques.
1. Planification du projet
Pour représenter visuellement l’état d’avancement du projet des différentes activités, le
diagramme de Gantt qui est un outil efficace et souvent utilisé en gestion de projet peut nous
être utile.
La planification du projet est décrite par la Figure ci-dessous qui représente le digramme de
GANTT.
Figure 6 : Diagramme de Gantt
29. Chapitre II : Analyse et spécification des besoins
16
2. Identification des Besoins
2.1. Besoins fonctionnels
Le besoin fonctionnel représente les services offerts à l’utilisateur et met en évidence
les fonctions techniques et les fonctions de services.
Les besoins que notre solution doit satisfaire sont :
Traitement d’informations
Extraction des données depuis le serveur FTP du client
Garantir un bon traitement des fichiers
Conserver les nouvelles données dans une base intermédiaire
Exclure la redondance des données
Génération des fichiers de sortie intégrables par CEGID (CBR)
Conception et mise en place d’un Entrepôt de Données afin de gérer les informations
pertinentes
Restitution des données et l’élaboration des tableaux de bord
Suivi des traitements effectués entre les dépôts et les boutiques
2.2. Besoins non fonctionnels
Pour une meilleure qualité et plus de fiabilité, notre solution doit respecter des
contraintes supplémentaires qui décrivent l’aspect technique, esthétique et ergonomique pour
sa réalisation et son bon fonctionnement. Ces besoins sont appelés les besoins non fonctionnels
que nous avons dégagé quelques-uns :
Convivialité : l’interface graphique de l’application doit être simple et conviviale
puisqu’elle présente le premier contact entre la solution et l’utilisateur.
Rapidité : il est nécessaire que le temps de réponse ne soit pas lent, et la durée d’exécution
et du traitement soit rapide.
Évolutivité : la solution reste ouverte avec la possibilité d’ajout d’autres modules afin de
l’améliorer.
30. Chapitre II : Analyse et spécification des besoins
17
3. Environnement technique du travail
Nous citons ci-dessous les environnements logiciels sur lesquels se base la réalisation de
notre projet :
Stockage de données : SQL Server
ETL : Talend Data Intégration
Reporting : Qlik Sense
3.1. Stockage des données [3]
-Service Web ✓ ✓ ✓
-Support XML ✓ ✕ ✓
-Compression des
données
✕ ✕ ✓
-Administration aisée ✓ ✓ ✓
-Open source ✕ ✓ ✓
-Grande base de
données.
Pour plus de 200Go
et plus 300
utilisateurs, les
écarts de
performances sont
visibles par rapport
à d’autre SGBD
✓ ✕ ✕
-Supporte les 4
niveaux d’isolation
transactionnelle de
la norme SQL
✓ ✕ ✓
Tableau 3 : Tableau comparatif des outils de stockages de données
31. Chapitre II : Analyse et spécification des besoins
18
SQL Server et MySQL deux des plus connues bases de données relationnelles du
marché SGBDR :
MySQL est un choix pour les environnements multiplateformes d’où la base fonctionne sur les
systèmes d’exploitation Windows, Linux et UNIX. D’autre part, SQL Server est aussi un
excellent choix pour les DSI ayant déjà opté pour du Windows.
Vu ses différents avantages, on a opté pour SQL Server pour le stockage des données.
Figure 7 : Logo de SQL Server
3.2. Intégration des données
Talend est un ETL (Extract Transform and Load) qui a comme fonctionnalité :
Extraction des données d’une source
Modification de ces données
Recharge des données vers une destination
La source et la destination des données peuvent être une base de données, un service web, Un
fichier csv. Et bien d’autres…
Figure 8 : Le Quadrant magique de Gartner pour l’intégration des données 2018[4]
32. Chapitre II : Analyse et spécification des besoins
19
D’après la figure précédente, Talend a fait partie des 4 leaders et a été considéré comme
un concurrent lourd pour Oracle, SAP, SAS.
Talend est un outil puissant, varié et open source qui permet de créer des flux (représente
l’action de transfert des données d’une source vers une autre) à l’aide des interfaces graphiques
et qui offre plus de 6000 composants.
Lors de la création des flux, un code Java auto-généré qui aide à la maintenance et au débogage
des Jobs avec beaucoup de simplicité et de rapidité avec la possibilité de compilation.
Cet outil d’intégration offre un large choix de connecteurs et de bases de données relationnelles
comme : oracle, Microsoft SQL Server, Postgre SQL, MySQL, etc...
Figure 9 : Logo de Talend
3.3. Analyse de données et Reporting
On peut trouver de nombreux logiciels de ‘Data visualisation’ sur le marché, mais ce n’est pas
aussi facile de choisir le meilleur.
Ceci est un tableau fourni par (datanalyse.fr) qui compare les différents logiciels d’aide à la
décision.
Figure 10 : comparatif des principaux logiciels d’aide à la décision [5]
33. Chapitre II : Analyse et spécification des besoins
20
D’après le tableau comparatif illustré dans la page précédente, on constate que Qlik
Sense occupe une place importante dans le classement avec ses concurrents.
Qlik Sense est une nouvelle génération d’applications de visualisation de données en libre-
service qui permet la création facile des visualisations interactives et flexibles, qui aident à
l’exploration et à la découverte.
QlikView a lancé un nouvel outil appelé Qlik Sense, conçu pour fournir des
fonctionnalités de visualisation de données en libre-service et de veille stratégique aux
particuliers et aux entreprises. Qlik Sense repose sur le même moteur d'indexation de données
associatives QIX que QlikView, mais Qlik Sense offre une interface utilisateur simplifiée, des
visualisations par drag-and-drop et la possibilité de charger des données sans modifier
manuellement les scripts.
Qlik Sense Desktop (similaire à l'édition personnelle de QlikView) permet de partager
des applications de visualisation et des tableaux de bord sans restriction de licence. Les
utilisateurs peuvent désormais partager des fichiers entre eux ou les télécharger sur le cloud,
où ils peuvent être consultés n’importe où sur les ordinateurs et les appareils mobiles. Qlik
Sense vise à promouvoir la découverte et la visualisation rapides de données et à faciliter le
partage des analyses sur divers périphériques.
Qlik Sense est conçu dès le départ pour la BI autonome sur de nombreux périphériques.
Avec Sense, les utilisateurs pourront se développer directement sur le serveur au lieu de devoir
gérer un seul fichier entre plusieurs développeurs. Vous pouvez même développer des
applications Qlik Sense complètes sur un iPad ou une tablette. La conception réactive de Sense
signifie qu’une seule application se redimensionnera elle-même sur votre téléphone, votre
tablette ou votre ordinateur portable sans avoir à développer des interfaces utilisateur
spécifiques pour chaque facteur de forme.
Chargement rapide des données
Le chargement de données dans Qlik Sense peut être aussi simple que de faire glisser
un fichier ou un jeu de données dans l'application sur laquelle vous travaillez. En fonction des
informations de colonne et d'en-tête que vous sélectionnez, Qlik Sense générera
automatiquement un script pour charger les données dans votre application.
34. Chapitre II : Analyse et spécification des besoins
21
Exploration de données, découverte et visualisation
Qlik Sense fournit une interface épurée pour créer des applications d'exploration, de
découverte et de visualisation de données. Qlik Sense fournit un grand choix de graphiques, de
tableaux et de visualisations.
Collaboration et communication
La narration de données est une nouvelle fonctionnalité de Qlik Sense qui permet aux
utilisateurs de créer des présentations et de partager des informations. Les utilisateurs peuvent
prendre des instantanés de données et de visualisations, ajouter du texte et des graphiques et
créer des présentations qui renvoient à des applications interactives, le tout dans Qlik Sense.
Lorsque les utilisateurs ont fini d'analyser les données et d'organiser leurs constatations, ils ont
la possibilité de partager leurs fichiers directement avec d'autres utilisateurs ou de les
télécharger sur Qlik Cloud. Les applications sur Qlik Cloud sont accessibles sur les ordinateurs,
les tablettes et les smartphones via une URL publique.
Nous avons opté pour l’outil Qlik Sense pour faire le Reporting et l’analyse de notre Solution
Business Intelligence.
Figure 11 : Logo de Qlik Sense
3.4. Scrapping des données
Afin de compléter les données manquantes, on a fait recours à l’outil Octoparse qui est un
extracteur de données Web puissant et facile à utiliser, auquel des centaines de milliers de
personnes et d’entreprises ont fait confiance puisqu’il donne la possibilité de transformer
n'importe quel site Web en tableau de données ou en API avec plusieurs points et clics sur des
éléments de données.
35. Chapitre II : Analyse et spécification des besoins
22
Il s’agit du canal Octoparse qu’on doit maîtriser pour créer nos propres ensembles de données.
Figure 12 : Logo d’Octoparse
Conclusion
Dans ce chapitre, nous avons analysé et spécifié les besoins fonctionnels ainsi que les
besoins non fonctionnels. Ensuite nous avons identifié l’environnement du travail et les
technologies adoptées pour garantir la réalisation du projet.
37. Chapitre III : Identification et description des données
24
Introduction
La phase de compréhension et d’identification des données permet d’identifier les
données à analyser et de faire le lien entre les données et leurs significations d’un point de
vue métier. D’autre part, la compréhension des fichiers d’entrées nous facilitera sans doute la
réalisation de notre solution afin de mieux traiter les données.
Dans ce chapitre, nous allons identifier et décrire les types de sources des données et leurs
formats et nous présenterons ainsi les spécifications dont l’ERP CBR demande pour la reprise
de ces dernières.
1. Identification des sources de données (Input)
Nous avons identifié 5 types de sources de données qui seront utilisées dans une phase
ultérieure à la phase ETL après les avoir télécharger depuis le serveur FTP du client.
Les types de fichiers sont :
Fichier « TO_*.XML »
Fichier « RO_*.XML »
Fichier « INV_*.XML »
Fichier « TO_*_Product.XML »
Fichier « INV_*_Prodcut.XML »
1.1. Fichier TO
Le fichier source « TO » est nommé : TO_*.XML
Le fichier ‘TO’ est un fichier XML, qui mentionne les transferts émis d’un stock à une
boutique. Voici un exemple d’un fichier TO.XML illustré par la figure 13 dans la page
suivante :
38. Chapitre III : Identification et description des données
25
Figure 13 : Exemple d’un fichier TO.XML
Voici un tableau pour mieux comprendre la structure du fichier :
Champs Description
ExpeditionID Identifiant de l’expédition
FromStore Code du stock
ToStore Code de la boutique
ExpeditionDate Date d’expédition
ItemID Identifiant du produit
Barcode Code à barre du produit
price Prix
Quantity Quantité
Amount Somme
Tableau 4 : La structure du fichier TO.XML
39. Chapitre III : Identification et description des données
26
1.2. Fichier RO
Le fichier source « RO » est nommé : RO_*.XML
Le fichier ‘RO’ est un fichier XML, qui mentionne les transferts reçus d’un stock à une
boutique.
Voici un exemple d’un fichier RO.XML :
Figure 14 : Exemple d’un fichier RO.XML
La structure du fichier ci-dessus est bien clarifiée dans le tableau suivant :
Champs Description
InvoiceID Identifiant de la facture d’achat
ReceptionID Identifiant de réception
ExpeditionID Identifiant d’expédition
FromStore Code du stock
ToStore Code de la boutique
ExpeditionDate Date d’expédition
ReceptionDate Date de réception
ApproveDate Date d'approuvé
ItemID Identifiant du produit
Barcode Code à barre
40. Chapitre III : Identification et description des données
27
Price Prix
Quantite Quantité
Amount Somme
Tableau 5 : La structure du fichier RO.XML
1.3. Fichier INV
Le fichier source « INV » est nommé : INV_*.XML
Le fichier ‘INV’ est un fichier XML, qui décrit la facture générée d’un transfert entre un stock
et une boutique.
Voici un exemple d’un fichier INV.XML :
Figure 15 : Exemple d’un fichier INV.XML
41. Chapitre III : Identification et description des données
28
Le tableau suivant clarifie la structure de fichier XML ci-dessus :
Champs Description
InvoiceID Identifiant de la facture d’achat
CompanyName Nom de la Compagnie
InvoiceDate Date de la facture d’achat
ReceptionDate Date de réception
CustomsDeclarationDate Date de déclaration en douane
DocumentStatus Statut du document
UpdateTime Temps de mise à jour
PriceCode Code de prix
Currency Devise
FromStore Code du stock
ToStore Code de la boutique
UserName Nom d’utilisateur
Exchange Échange
InvoiceExpeditionID Numéro d'expédition de facture
ExpeditionID Identifiant d’expédition
TargetStore Magasin cible
ReceptionID Identifiant de réception
CostPriceParity Parité des coûts
InvoIceItemID Identifiant d'article de facture
ItemID Identifiant du produit
Barcode Code à barre
Quantite Quantité
Price Prix
SellingPrice Prix de vente
Amount Somme
OriginCountryCode Code du pays d'origine
Tableau 6 : La structure du fichier INV.XML
42. Chapitre III : Identification et description des données
29
1.4. Fichier TO_*_Product INV_*_Product
Les deux fichiers source « TO_PRODUCT » & « INV_PRODUCT » sont nommés :
TO_*_PRODUCT.XML et INV_*_PRODUCT.XML
Les fichiers sont de type XML et décrivent les produits transférés d’un Stock à une boutique.
Figure 16 : Exemple d’un fichier TO_*_PRODUCT.XML
Figure 17 : Exemple d’un fichier INV_*_PRODUCT.XML
43. Chapitre III : Identification et description des données
30
Une description des deux fichiers est mentionnée dans le tableau ci-dessous :
Champs Description
ProductID Identifiant du produit
ProductName Nom du produit
SpecialCode Code special
ItemClassCode Code de classe d'article
ItemClass Classe d'article
MerchSubGroup Sous-groupe
MerchSubGroupName Nom du sous-groupe
ItemID Identifiant du produit
ProductID Identifiant du produit
Barcode Code à barre
Color Couleur
ColorName Nom de couleur
Size Taille
Size2 Taillle2
FirstPriceWithVAT Premier prix avec TVA
VATRATE TAUX DE TVA
PriceWithVAT Prix avec TVA
Material Matériel
Tableau 7 : La structure du fichier INV_*_PRODUCT.XML
2. Extraction des données
Pour avoir la liste complète des boutiques de notre client LCWaikiki seulement en
Tunisie, l’outil Octoparse nous a permis d’extraire les données de ces derniers.
Après avoir configuré les paramètres, indiqué le site web d’où on va extraire les données
et défini le processus d’extraction, on termine cette première étape par appuyer sur « Start
extraction » comme mentionné dans la figure 18 présente dans la page suivante.
44. Chapitre III : Identification et description des données
31
Figure 18 : Configuration des paramètres de l’outil Octoparse
Une fois le traitement commence, les résultats d’extraction s’affichent comme indiqué dans la
figure ci-dessous :
Figure 19 : Résultat d’extraction des données
Afin d’enregistrer le résultat obtenu, un export des données est obligatoire.
Par conséquent, on a choisi le format Excel pour stocker les informations obtenues.
La figure dans la page suivante nous explique ce qui précède :
45. Chapitre III : Identification et description des données
32
Figure 20 : Fichier XML
3. Format des fichiers intégrables par l’ERP CBR (Output)
3.2. Fichier TO
Le fichier « TO » est nommé : Transfert_Emis_TO (id) < date sous le format
YYYYMMDD>.TXT. En Output, ce fichier se décrit sous le format suivant :
Champs Position Longueur Description
Préfixe 1 6 « TEMC1 »
RefInterne 7 35 InvoiceID
RefExterne 42 35 ExpeditionID
EtabEmet 77 5 ETAB_FROMSTORE: « select
MDE_ETABLISSEMENT as
LCW_ETAB_TOSTORE2 from
METABDEPOT where
MDE_DEPOT=’
LCW_DEP_ FROMSTORE2’ »
Dep_emetteur 82 5 DEP_FROMSTORE: « select
GDE_DEPOT as
LCW_DEP_FROMSTORE2 from
DEPOTS
Where GDE_CHARLIBRE2
= ’FromStore’ »
46. Chapitre III : Identification et description des données
33
ETAB_dest 87 5 ETAB_TOSTORE: « select
MDE_ETABLISSEMENT as
LCW_ETAB_TOSTORE2 from
METABDEPOT where
MDE_DEPOT=’
LCW_DEP_TOSTORE2’ »
Dep_Dest 92 5 DEP_TOSTORE: « select GDE_DEPOT
as LCW_DEP_TOSTORE2 from
DEPOTS
Where GDE_CHARLIBRE2 =’
ToStore’ »
Date_exp 100 8 dateexp
Barcode 108 13 Barcode
Quantite 121 4 Quantite
Price 125 12 Price
Tableau 8 : Description du fichier TO
3.2. Fichier RO
Le fichier « RO » est nommé : Transfert_Reçu_RO_ (id) < date sous le format
YYYYMMDD>.TXT.
En Output, ce fichier se décrit sous le format suivant :
Champs Position Longueur Description
Préfixe 1 6 « TREC1 »
RefInterne 7 35 InvoiceID
RefExterne 42 10 ReceptionID
REF_suivi 52 10 ExpeditionID
EtabEmet 62 4 ETAB_FROMSTORE (même travail
que sur TO)
47. Chapitre III : Identification et description des données
34
Dep_emetteur 66 4 DEP_FROMSTORE (même travail que
sur TO)
ETAB_dest 70 5 ETAB_TOSTORE (même travail que
sur
TO)
Dep_Dest 75 5 DEP_TOSTORE (même travail que sur
TO)
Date_emi 83 8 dateexp
Date_resp 93 10 daterecep
Date_valide 103 10 dateapv
Barcode 116 13 Barcode
Quantite 129 4 Quantite
Price 133 12 Price
Tableau 9 : Description du fichier RO
3.3. Fichier INV
Le fichier « INV » est nommé : Facture_INV_ (id) < date sous le format
YYYYMMDD>.TXT.
En Output, ce fichier se décrit sous le format suivant :
Champs Position Longueur Description
Préfixe 1 6 « ALFC1 »
InvoiceID 7 5 InvoiceID
InvoiceExpID 42 6 InvoiceExpeditionID
48. Chapitre III : Identification et description des données
35
ExpID 77 5 ExpeditionID
FromStore 112 4 FromStore
ToStore 122 4 ToStore
TargetStore 132 4 TargetStore
ReceptionID 142 4 ReceptionID
InvoiceDate 152 10 dateinv
ReceptionDate 160 10 daterecep
Barcode 168 13 Barcode
Qte 181 4 Qte
Price 191 12 Price
Currency 203 3 Currency
Tableau 10 : Description du fichier INV
3.4. Fichier TO PRODUCT & INV PRODUCT
Le fichier « TO_Product » est nommé : Article_To_ (id) < date sous le format
YYYYMMDD>.TXT.
Le fichier « INV_Product » est nommé : Article_To_ (id) < date sous le format
YYYYMMDD>.TXT.
Chaque fichier aura un seul output qui se compose de plusieurs formes comme indiquent les
tableaux suivants :
Champs Position Longueur Description
Préfixe 1 6 « FN1C1 »
Code 7 3 MershSubGroup (2 premier caractères)
Libelle 10 70 MershSubGroupName
Tableau 11 : Description de la forme FN1C1
49. Chapitre III : Identification et description des données
36
Champs Position Longueur Description
Préfixe 1 6 « FN2C1 »
Code 7 3 A calculer : si l’abrege existe dans la
base (table CHOIXEXT) => code de la
base
"SELECT YX_CODE as
LCW_Code_LA2 from CHOIXEXT
where YX_TYPE =’LA2’ and
YX_LIBELLE =
‘MershSubGroupName’ and
YX_ABREGE = ‘MershSubGroup’ "
Si n’existe pas : (voir req1)
Ajouter ligne dans la table CHOIXEXT
avec le nv code : (voir req 2)
Libelle 10 100 MershSubGroupName
Abrege 110 17 MershSubGroup
Tableau 12 : Description de la forme FN1C2
Champs Position Longueur Description
Préfixe 1 6 « LA1C1 »
Code 7 3 A calculer : si l’abrège existe dans la
base (table CHOIXEXT) => code de la
base
"SELECT YX_CODE as
LCW_Code_LA1 from CHOIXEXT
where YX_TYPE =’LA1’ and
YX_LIBELLE = ‘ItemClass and
YX_ABREGE = ‘ItemClassCode "
Si n’existe pas : (voir req3)
Ajouter ligne dans la table CHOIXEXT
avec le nv code : (voir req 4)
50. Chapitre III : Identification et description des données
37
Libelle 10 100 ItemClass
Abrege 110 17 ItemClassCode
Tableau 13 : Description de la forme LA1C1
Champs Position Longueur Description
Préfixe 1 6 « LA2C1 »
Code 7 3 A calculer : si l’abrège existe dans la
base (table CHOIXEXT) => code de la
base
"SELECT YX_CODE as
LCW_Code_LA2
From CHOIXEXT where YX_TYPE
=’LA2’ and
YX_LIBELLE =
‘MershSubGroupName’ and
YX_ABREGE = ‘MershSubGroup’ "
Si n’existe pas : (voir req1)
Ajouter ligne dans la table CHOIXEXT
avec le nv code : (voir req 2)
Libelle 10 100 MershSubGroupName
Abrege 110 17 MershSubGroup
Tableau 14 : Description de la forme LA2C1
Champs Position Longueur Description
Préfixe 1 6 « DI1C1 »
Size 7 3 Size
Tableau 15 : Description de la forme DI1C1
51. Chapitre III : Identification et description des données
38
Champs Position Longueur Description
Préfixe 1 6 « DI2C1 »
Size2 7 3 Size2
Tableau 16 : Description de la forme DI2C1
Champs Position Longueur Description
Préfixe 1 6 « DI3C1 »
Color 7 3 Color
ColorName 10 35 ColorName
Tableau 17 : Description de la forme DI3C1
Champs Position Longueur Description
Préfixe 1 6 « ARDC1 »
Code
Article
7 10 ProductID
Libelle
Article
17 70 ProductName
Texte
Libre1
87 10 SpecialCode
Famille
NIV1
97 3 2 premier caracteres du
« MershSubGroup »
52. Chapitre III : Identification et description des données
39
Famille
NIV2
100 3 Select YX_CODE from CHOIXEXT
where
YX_TYPE= ‘LA2’ and
YX_LIBELLE = MershSubGroupName
and YX_ABREGE=MershSubGroup
TLibre1 103 3 A calculer (code LA1) (req 3)
TLibre2 106 3 A calculer (code LA2) (req 1)
Size 109 15 Size
Size2 124 15 Size2
color 139 15 color
colorName 154 35 colorName
PVTTC 189 12 PriceWithVat
Prix initial 201 12 FirstPriceWithVat
Materiel 213 100 Materiel
Tableau 18 : Description de la forme ARDC1
Champs Position Longueur Description
Préfixe 1 6 « REFC1 »
Code Article 7 10 ProductID
Libelle
Article
17 70 ProductName
Size 87 15 Size
53. Chapitre III : Identification et description des données
40
Size2 102 15 Size2
color 117 15 color
colorName 132 35 colorName
Reference 167 13 ItemID / Barcode
Tableau 19 : Description de la forme REFC1
On insère 2 lignes de préfixe « REFC1 » pour chaque article :
Une ligne avec référence=Barcode et une autre avec référence=Item ID
Champs Position Longueur Description
Préfixe 1 6 « SPEC1 »
Product ID 7 10 Product ID
Libelle 17 70 Product Name
SpecialCode 87 15 SpecialCode
Tableau 20 : Description de la forme SPEC1
Conclusion
Dans ce chapitre nous avons identifié les sources de données. Nous avons réussi à
analyser et décrire les différents types de format de données pour les alimenter et les
transformer afin qu’elles soient bien exploitées.
54. Chapitre IV : Génération des outputs et développement de l’ETL
41
Chapitre IV :
Génération des outputs et développement
de l’ETL
55. Chapitre IV : Génération des outputs et développement de l’ETL
42
Introduction
Dans ce chapitre, nous présenterons en premier lieu notre business modèle, par la suite
nous allons attaquer la phase relative à la génération des outputs et nous finirons par la
conception de l’ETL.
Dans ce chapitre, on va faire une description détaillée de l’intégration de chaque type de
données.
1. Business Model
Le business Model c'est le point de départ, l'idée originale qui permet à une entreprise
de se démarquer de la concurrence et d'espérer pouvoir gagner de l'argent.
A travers lequel, l’entrepreneur peut également répondre à un besoin sans jamais parvenir à
trouver un moyen de le monétiser. Il est très utile pour les différents types de projet
spécialement les projets d'intégration de données ou il nous permettra de bien présenter les
besoins. Ces besoins seront par la suite traduits facilement en process techniques.
Tel qu’il est décrit par la figure suivante, nous avons essayé de diviser les parties qui composent
notre projet en plusieurs sous parties (jobs).
Figure 21 : Business Model du projet décisionnel
56. Chapitre IV : Génération des outputs et développement de l’ETL
43
2. Préparation des données
Avant d’entamer la phase de l’ETL, il est primordial de stocker les données pour garder
une traçabilité avant de les traiter.
Dans cette partie nous allons présenter les différentes tables dont nous avons besoin tout au
long de cette phase.
Dans les figures ci-dessous, Les tables sont bien présentées et identiques à celles des données
initiales.
Figure 22 : Base de données ODS
Figure 23 : Base de données ODS ‘Talend’
57. Chapitre IV : Génération des outputs et développement de l’ETL
44
3. Génération des Outputs
3.1. Fichier TO & RO
Afin de générer un fichier qui correspond au besoin déjà mentionné dans le chapitre qui
précède, nous avons passé par différentes étapes.
La figure ci-dessous présente le processus parcourus :
Figure 24 : Le Job d’output du Fichier TO
Les étapes de ce processus commencent tout d’abord par une connexion à la table
ODS relative au fichier TO, par la suite, nous avons utilisé le composant « TflowToiterate »
qui permet de boucler sur les éléments du sous-job auquel il est attaché.
Le composant « tMap » est le responsable de la transformation des données initiales et peut
diriger les données à partir d'une ou plusieurs source(s) et vers une ou plusieurs destination(s).
Dans le cas du fichier TO, le composant tMap reçoit plus qu’une source : La table To de l’ODS
et deux autres entrées relatives à la base CEGID. Après la transformation faite par ce
composant, un fichier output est généré comme résultat du traitement réalisé.
Ce fichier est nommé : « Transfert_Emis_To_ (id) _date.txt »
58. Chapitre IV : Génération des outputs et développement de l’ETL
45
Les mêmes étapes se répètent dans un autre Job qui correspond au « fichier RO », la seule
différence se fait au niveau du composant tMap, et plus précisément dans ces champs :
EtabEmet, Dep_emetteur, ETAB_dest, Dep_Dest.
Le résultat de ces derniers dépend à chaque fois du Job exécuté.
Le fichier output du Job «RO_OUTPUT » sera nommé : « Transfert_Recu_Ro_ (id) _date.txt
».
Figure 25 : Composant « tMap » (RO)
3.2. Fichier INV
Cette figure présente le Job responsable de la génération du fichier output relatif au
fichier INV.
Le composant tMap du Job reçoit une seule entrée qui est la table INV de la base
ODS. D’autre part, il est relié à un seul composant de sortie (tFileOutputpositional).
Le fichier d’output sera nommé « Facture_INV_ (id) _date.txt »
Figure 26 : Figure représentative du JOB (INV)
59. Chapitre IV : Génération des outputs et développement de l’ETL
46
3.3. Fichier «TO_PRODUCT » et « INV_PRODUCT »
Les deux jobs «TO_PRODUCT_OUTPUT » et « INV_PRODUCT_OUTPUT » passent
par les mêmes étapes, et produisent un seul output chacun d’eux. Contrairement aux jobs
responsables à la génération des outputs des fichiers précédents, le fichier de sortie se compose
de plusieurs formes telles qu’ils sont décrits dans le cahier de charge.
Figure 27 : Figure représentative du Job «TO_PRODUCT » et « INV_PRODUCT
Les deux fichiers « INV_ (id) _PRODUCT.xml » et «TO_ (id) _PRODUCT.xml » seront par
la suite nommé par :
« Article_INV_ (id) _date.txt » et « Article_TO_ (id) _date.txt »
La figure ci-dessous nous montre un exemple d’un fichier output généré
« Article_TO_(id)_date.txt »
Figure 28 : Exemple du résultat d’un fichier output généré
60. Chapitre IV : Génération des outputs et développement de l’ETL
47
3.4. Rassemblement des Jobs
Dans ce Job, nous allons rassembler tous les autres Jobs afin de finaliser la phase de
génération des outputs après avoir traité et intégré chaque type de données.
Figure 29 : Rassemblement des Jobs
4. Intégration des données
L’ETL (Extraction, Transformation et Chargement) est Parmi les phases les plus
importantes dans notre processus. Ce dernier permettra comme son nom l’indique, l’extraction
des données à partir de l’ODS. Ensuite, d’effectuer différents changements afin de rendre les
données exploitables et homogènes dans la phase suivante.
Pour obtenir de bons résultats, les données doivent être intègres dont les changements peuvent
être : de simples transformations d’inversion des signes de valeur par exemple ou bien des
transformations complexes ou le traitement nécessite plusieurs étapes et plusieurs composants
de traitements sous TALEND, pour pouvoir finalement charger les données alors transformées
et intégrées dans les différentes tables de notre entrepôt.
4.1. Extraction des données
4.1.1. TO_ETL
Le Job TO_ETL consiste d’abord à faire des transformations sur les données déjà
stockées dans la table TO de la base LCWODS ensuite les stocker dans la table TO_ETL de
la base LCWETL.
Ces Transformations se font au niveau du composant du Job concerné « tMap » qui est
présenté dans la figure illustrée dans la page suivante :
61. Chapitre IV : Génération des outputs et développement de l’ETL
48
Figure 30 : Configuration « tMap » du fichier TO
A l’aide du composant « tMap » nous avons réussi alors à réaliser :
Les modifications des noms des champs et de les traduire aussi à la langue
Française
La modification des différents types de :
- DateExpedition de String à Datetime (YYYY_MM_dd)
- Prix de « String » à « Float »
- Quantité de String à « integer »
- Montant de String à « Float »
4.1.2. RO_ETL
Le Job RO_ETL consiste d’abord à faire des transformations sur les données déjà
stockées dans la table RO de la base LCWODS ensuite les stocker dans la table RO_ETL
de la base LCWETL.
Ces Transformations se font au niveau du composant du Job concerné « tMap » qui est
présenté dans la figure illustrée dans la page suivante :
62. Chapitre IV : Génération des outputs et développement de l’ETL
49
Figure 30 : Configuration « tMap » du fichier RO
A l’aide du composant « tMap » nous avons réussi alors à réaliser :
Les modifications des noms des champs et de les traduire aussi à la langue
Française
La modification des différents types de :
- DateExpedition de String à Datetime (YYYY_MM_dd)
- DateReception de String à Datetime (YYYY_MM_dd)
- DateApprouvee de String à Datetime (YYYY_MM_dd)
- Prix de « String » à « Float »
- Quantité de String à « integer »
- Montant de String à « Float »
4.1.3. PRODUCT_ETL
Le Job RO_ETL consiste d’abord à faire des transformations sur les données déjà
stockées dans la table RO de la base LCWODS ensuite les stocker dans la table RO_ETL
de la base LCWETL.
Ces Transformations se font au niveau du composant du Job concerné « tMap » qui est présenté
dans la figure présentée dans la page suivante :
63. Chapitre IV : Génération des outputs et développement de l’ETL
50
Figure 31 : Configuration « tMap » du fichier PRODUCT
A l’aide du composant « tMap » nous avons réussi alors à réaliser :
Les modifications des noms des champs et de les traduire aussi à la langue
Française
La modification des différents types de :
- Prix de « String » à « Float »
4.1.4. Geographie_ETL
Figure 32 : Configuration « tMap » des données du scrapping
Au niveau du job qui concerne les transformations sur la table « Géographie » dans la
base « LCWODS » Nous avons ajouté la colonne « Code » à travers le composant « tMap »
qui sert à affecter le code spécifique de chaque boutique selon la localisation.
La figure qui suit présente le code d’affectation des codes à travers le constructeur d’expression
64. Chapitre IV : Génération des outputs et développement de l’ETL
51
Figure 33 : Constructeur d’expression ‘Géographie’
Conclusion
Au cours de ce chapitre, nous avons réussi à générer les outputs selon des formats bien
définies et intégrables par l’ERP CEGID et à développer l’ETL pour le traitement et
l’intégration des données.
Dans le chapitre suivant, nous allons entamer la partie relative à la création de l’entrepôt de
données.
65. Chapitre V : Création du Datawarehouse et migration des données
52
Chapitre V :
Création du Datawarehouse et
Migration des données
66. Chapitre V : Création du Datawarehouse et migration des données
53
Introduction
Avant de Passer à la phase de Reporting qui est la phase finale pour un projet Business
Intelligence, nous devons sans doute passer par l’étape de création d’entrepôt de données.
Dans ce chapitre nous allons créer des tables de faits et de dimensions avant d’atteindre notre
objectif final qui est la création des rapports.
1. Conception du modèle physique
Comme indiqué dans les parties qui précédent, nous allons établir un modèle en étoile. Dans
cette phase nous allons déposer les modèles des magasins de données que nous allons fournir.
1.1. Magasin de données « Facture »
Le modèle ci-dessous se focalise essentiellement sur le transfert des produits entre les
dépôts et les différentes boutiques ‘LCWIKIKI’. Notre table de faits « facture » sera reliée
avec les dimensions qui représentent des axes d’analyse : Catégorie, Produit, Temps,
Transfert, Groupe, Géographie, dépôt, Store Cible
67. Chapitre V : Création du Datawarehouse et migration des données
54
Figure 34 : Schéma de l’entrepôt de données
2. Préparation des dimensions
Maintenant nous allons commencer la phase d’alimentation après avoir définit les
dimensions qui nécessitent dans la phase d’identification de dimensions.
2.1. Dimension Catégorie
La figure illustrée dans la page suivante présentera l’exemple d’alimentation de la dimension
« Dim _Catégorie ».
68. Chapitre V : Création du Datawarehouse et migration des données
55
Figure 35 : Job d’alimentation de la dimension « Dim _Catégorie »
Dans le job « Dim_Categorie » nous avons fait recours à la table « Product_ETL » de
la base de données LCWETL pour pouvoir construire la dimension « Dim_Categorie » comme
nous montre La Figure ci-dessus.
Les champs qu’on a utilisés dans la création de la dimension sont : « Categorie » et «
Code Catégorie » comme indiqué dans la figure suivante.
Figure 36 : Composant tMap du Job Dim_Categorie
2.2. Dimension Groupe
La figure suivante présentera l’exemple d’alimentation de la dimension « Dim _Groupe ».
Figure 37 : Partie du job d’alimentation de la dimension «Dim_Groupe»
69. Chapitre V : Création du Datawarehouse et migration des données
56
Dans le job « Dim_Groupe » nous avons fait recours à la table « Product_ETL » de la
base de données LCWETL pour pouvoir construire la dimension « Dim_Groupe » comme nous
montre La Figure ci-dessus.
Les champs qu’on a utilisés dans la création de la dimension sont : « Groupe » et « NomGroupe
» comme indiqué dans la figure suivante.
Figure 38 : Composant tMap du Job Dim_Groupe
2.3. Dimension produit
La figure suivante présentera l’exemple d’alimentation de la dimension « Dim _Produit ».
Figure 39 : Partie du job d’alimentation de la dimension Dim_Produit
Dans le job « Dim_Produit » nous avons fait recours à la table « Product_ETL » de la
base de données LCWETL pour pouvoir construire la dimension « Dim_Produit » comme nous
montre La Figure ci-dessus.
Les champs qu’on a utilisés dans la création de la dimension sont indiqués dans la figure
illustrée dans la page suivante.
70. Chapitre V : Création du Datawarehouse et migration des données
57
Figure 40 : Composant tMap du Job Dim_Produit
2.4. Dimension StoreCible
La figure suivante présentera l’exemple d’alimentation de la dimension « Dim _StoreCible ».
Figure 41 : Partie du job d’alimentation de la dimension Dim_StoreCible
Dans le job « Dim_StoreCible » nous avons fait recours à la table «RO_ETL » de la
base de données LCWETL pour pouvoir construire la dimension « Dim_StoreCible » comme
nous montre La Figure ci-dessus.
Les champs qu’on a utilisés dans la création de la dimension sont indiqués dans la figure
présentée dans la page suivante.
71. Chapitre V : Création du Datawarehouse et migration des données
58
Figure 42 : Composant tMap du Job Dim_StoreCible
2.5. Dimension Transfert
La figure suivante présentera l’exemple d’alimentation de la dimension « Dim _Transfert ».
Figure 43 : Partie du job d’alimentation de la dimension Transfert
Dans le job « Dim_Transfert » nous avons fait recours à la table «TO_ETL » de la base
de données LCWETL pour pouvoir construire la dimension « Dim_Transfert » comme nous
montre La Figure ci-dessus.
Les champs qu’on a utilisés dans la création de la dimension sont indiqués dans la figure
suivante.
72. Chapitre V : Création du Datawarehouse et migration des données
59
Figure 44 : Composant tMap du Job Dim_Transfert
2.6. Dimension Temps
Afin de construire la dimension Temps, nous avons exécuté une requête SQL qui à
générer la table de cette dimension.
3. La Table de Fait « Facture »
La dernière étape de transformation va être consacrée pour effectuer les chargements au
niveau de la table de faits. Pour bien comprendre cette étape nous allons prendre l’exemple des
transformations effectuées pour la réalisation de la table de fait facture qui sera schématisée par
la figure ci-dessous.
Figure 45 : Alimentation de la Table fait «Fact_Facture»
73. Chapitre V : Création du Datawarehouse et migration des données
60
Figure 46 : Composant tMap du Job «Fact_Facture»
Au niveau du job responsable de la création de la table de fait, le composant « tMap »
nous a permis de :
- Transformer et diriger les données
-Etablir les relations entre les dimensions
-créer les mesures
4. Journalisation Talend
Talend nous donne la possibilité de suivre l’état d’exécution de nos jobs réalisés, d’avoir
une bonne gestion de notre projet et de garder une traçabilité sur l’exécution.
La journalisation de Talend permet la génération de deux fichiers qui sont :
Logs : qui est généré en cas d’échec d’exécution et qui contient les détails de chaque opération
et la cause de l’erreur.
Stats : qui est généré lors de chaque exécution d’un job pour nous informer de l’état de
l’exécution.
Une configuration sous Talend est requise pour avoir les fichiers logs et Stats.
(Annexe)
La figure illustrée dans la page suivante nous montre le job qu’on a préparé qui est responsable
de l’envoi d’un mail qui contient les fichiers de journalisation suite à l’exécution d’un job.
74. Chapitre V : Création du Datawarehouse et migration des données
61
Figure 47 : Job envoie mail
◦ Le composant « tFileInputProperties » nous a permis de pointer sur le fichier «
emailDetails.properties » qu’on a créé pour faciliter la connexion du job avec le mail.
◦ Le composant « tSetGlobalVar » nous a permis de créer des variables globales qui seront
utilisées au niveau du composant « tSendMail ».
◦ Le composant « tSendMail » que sa configuration sera la suivante
Figure 48 : configuration du composant « tSenMail»
75. Chapitre V : Création du Datawarehouse et migration des données
62
Dans la figure ci-dessus nous avons configuré le composant d’envoi du mail on ajoutant le
destinataire, l’expéditeur, le sujet, le message, les pièces jointes à envoyer…
5. Migration de données vers Qlik Sense
Après avoir exécuté nos Jobs et alimenté nos tables, il ne nous reste que d’entamer la
dernière phase de notre projet.
La migration de données stockées dans les tables de SQL server vers notre outil de «Reporting»
Qlik Sense.
La figure ci-dessous nous montre une des étapes de migration des données.
Figure 49 : Configuration des relations entre les tables
Cette étape consiste à relier les tables de fait et de dimensions selon le la conception du model
physique qui est un modèle en étoile comme mentionné dans les parties précédentes.
Les autres différentes étapes sont mentionnées dans l’annexe.
Conclusion
Après avoir préparé la partie modélisation dimensionnelle pour bien identifier les grandes
phases de notre projet, nous avons effectué plusieurs changements nécessaires afin
d’homogénéiser et d’unir les données. Pour pouvoir par la suite alimenter notre entrepôt de
données.
Dans le chapitre suivant, nous allons attaquer la phase de restitution des données.
76. Chapitre V : Création du Datawarehouse et migration des données
63
Chapitre VI :
Restitution des données
77. Chapitre VI : Restitution des données
64
Introduction
Tout au long du chapitre précédent, nous avons essayé d’éclaircir les étapes de
préparation de données tout en détaillant le modèle à implémenter au niveau de notre solution.
Dans ce chapitre, nous allons exposer les maquettes à réaliser et présenter les différents tableaux
de bord réalisés et qui répondent aux besoins de notre client.
1. Spécification de l’application utilisateur
Pour garantir la satisfaction du client et réaliser facilement les tableaux de bord, il faut
passer certainement par cette étape.
Nos objectifs pendant cette phase sont d’analyser la structure du tableau de bord et d’avoir une
idée et une vision claire sur le résultat de la solution.
2. Les Feuilles d’application
2.1. Suivi des Transferts
Ce tableau de bord permet aux décideurs de visualiser les moyennes des temps
d’approuvé et de réponse des boutiques, les produits les plus transférés selon les boutiques, par
catégorie et groupe.
Figure 50 : Suivi des Transferts
78. Chapitre VI : Restitution des données
65
2.2. Suivi des Boutiques
La figure ci-dessous présente la maquette du Dashboard suivi des boutiques par
localisation, temps de réponse, temps d’approuvé.
Cette maquette nous présente aussi les boutiques qui ont un manque des produits et les
boutiques qui font des transferts plus que les autres.
Figure 51 : Suivi des boutiques
2.3. Feuilles d’application Suivi de la fréquence des transferts
La maquette illustrée dans la page suivante présente le tableau de bord qui permet aux
décideurs de visualiser la fréquence des transferts au cours du temps.
79. Chapitre VI : Restitution des données
66
Figure 52 : Suivi des boutiques
2.4. Feuilles d’application Suivi des Produits
Ce tableau de bord permet aux décideurs de visualiser les produits transférés en fonction
de la couleur, de la catégorie et du matériel.
Figure 53 : Suivi des Produits
80. Chapitre VI : Restitution des données
67
2.5. Feuilles application Gestion des Produits par tranche d’âge
Ce tableau de bord permet aux décideurs de visualiser les tailles des produits transférés
en fonction de la couleur, de la catégorie et du matériel.
Figure 54 : Suivi des Produits par tranche d’âge
3. Développement de l’application utilisateur
La dernière étape de notre projet consiste à développer l’application utilisateur qui nous
donne la possibilité de résumer tout ce qui précède en se basant sur l’étude de l’existant qu’on
a fait, les technologies à utiliser et les besoins du client déjà spécifiés précédemment.
La réalisation des différents tableaux de bord durant cette phase sera faite avec l’outil Qlik
Sense qui assure le dynamisme des résultats.
3.1. Feuille d’accueil
Pour faciliter la navigation entre les tableaux de bords, une feuille d’accueil a été créée
permettant à l’utilisateur d’avoir une idée visible et claire sur les thèmes analysés.
Chaque thème est représenté par un bouton qui nous dirige vers le tableau de bord convenable.
La figure représentant l’interface d’accueil est illustrée dans la page suivante.
81. Chapitre VI : Restitution des données
68
Figure 55 : Feuille d’accueil
3.2. Suivi des Transferts
La partie suivante sera consacrée pour la présentation en détails du tableau de bord « Suivi
Transfert ». La feuille du suivi de transfert nous permettant de :
• Suivre le temps d’approuvé (qui est la différence entre la date d’approuvé et la date de
réception) par boutique, groupe, catégorie et produit.
• Suivre le temps de réponse moyen des transferts (qui est la différence entre la date
d’expédition et la date de réception) par boutique, groupe, catégorie et produit.
• Afficher la liste des boutiques et les utiliser en tant que filtre.
• Afficher la liste des dépôts et des Boutiques cible et les utiliser en tant que filtre.
• Afficher la liste des catégories en tant que filtre.
• Afficher la liste des groupes en tant que filtre.
• Visualiser les produits les plus transférés représenté par une Pie charte.
• Visualiser le prix total des produits transférés
• Visualiser les prix par unité
82. Chapitre VI : Restitution des données
69
Figure 56 : Suivi des Transferts
3.3. Suivi des Boutiques
La partie suivante sera consacrée pour la présentation en détails du tableau de bord « Suivi
Boutique ». La feuille du suivi des boutiques nous permettant de :
• Suivre le temps de réponse moyen des transferts (qui est la différence entre la date
d’expédition et la date de réception) par boutique, groupe, catégorie et produit.
• Suivre le temps de réponse le plus élevé des transferts
• Suivre le temps d’approuvé le plus élevé des transferts
• Suivre les transferts Émis et Reçus
• Suivre la somme de temps de réponse par jour
• Suivre la somme de durée d’approuvé par jour
• Afficher les Top3 boutiques source représentées par un bar chart.
• Afficher les Top3 boutiques cible représentées par un bar chart.
• Afficher la localisation des boutiques dans une carte géographique.
83. Chapitre VI : Restitution des données
70
Figure 57 : Suivi des Boutiques
3.4. Suivi de la fréquence des transferts
La partie suivante sera consacrée pour la présentation en détails du tableau de bord «
Suivi de la fréquence des transferts ». La feuille du suivi de Produit nous permettant de :
• Suivre le prix total des produits transférés.
• Suivre le nombre total des produits transférés.
• Suivre le nombre de couleurs des produits transférés.
• Visualiser le nombre total des produits transférés au cours du temps par une graphique en
courbe.
• Visualiser le prix total des produits transférés au cours du temps par une graphique en courbe.
• Visualiser la fréquence de nombre de couleurs au cours du temps.
• Afficher la liste des dates d'expédition en tant que filtre.
Figure 58 : Suivi de la fréquence des transferts
84. Chapitre VI : Restitution des données
71
3.5. Suivi des Produits transférés
La partie suivante sera consacrée pour la présentation en détails du tableau de bord «
Suivi des Produits transférés ». La feuille du suivi de Produit nous permettant de :
• Suivre le nombre de catégories total, par couleur, matériel et produit.
• Suivre le nombre de catégorie moyen par transfert de chaque produit, couleur et/ou matériel.
• Suivre le nombre de produits total, par couleur, catégorie et matériel.
• Suivre le nombre de produit moyen par transfert de chaque catégorie, couleur et/ou matériel
• Visualiser les couleurs des produits les plus transférés représenté par une Pie charte.
• Visualiser les catégories les plus transférées représenté par une Pie charte.
• Visualiser les produits les plus transférés représenté par une Pie charte.
• Afficher la liste des matériels des produits en tant que filtre.
Figure 59 : Suivi des Produits
3.6. Suivi des Produits transférés par tranche d’âge
La partie suivante sera consacrée pour la présentation en détails du tableau de bord «
Suivi des Produits transférés par tranche d’âge ». La feuille du suivi de Produit nous
permettant de :
• Suivre le nombre de catégories total, par couleur, matériel et taille.
• Suivre le nombre de produit moyen par transfert de chaque taille, couleur et/ou matériel.
85. Chapitre VI : Restitution des données
72
• Suivre le nombre de produits total, par couleur, taille et matériel.
• Visualiser les couleurs des produits les plus transférés représenté par un graphique en
barres.
• Visualiser les tailles les plus transférées représenté par un graphique en barres.
• Afficher la liste des matériels des produits en tant que filtre.
Figure 60 : Suivi des Produits transférés par tranche d’âge
Conclusion
Dans ce chapitre nous avons résumé brièvement les phases de mise en œuvre du projet
tout en présentant les différentes maquettes réalisées.
Par la suite, nous avons aussi exposé les tableaux de bord réalisés tout en les illustrant
par des captures d’écran des principales taches de la solution.
86. 73
Conclusion Générale
Ce stage s’inscrit dans le cadre du projet de fin d’études effectué au sein de la Société
TIMSOFT en vue de l’obtention du diplôme national d’ingénieur en Informatique.
Ce projet a comme objectif global la mise en place d’un système d’aide à la décision qui couvre
l’activité de commerce de détail essentiellement.
Pour la réalisation de cette solution nous nous sommes appuyés dans une première phase
primordiale sur la compréhension des données pour assurer l’avancement.
Dans une deuxième phase nous avons traité les données tout en passant par les trois phases :
extraction, transformation et chargement des données dans l’entrepôt des données.
Pour finir, nous avons abouti aussi à générer des tableaux de bord interactifs, clairs et
détaillés.
Cette expérience m’a permis d’appréhender les méthodologies en vigueur dans le monde
professionnel. De plus, elle m’a également permis d’assimiler l’importance de la gestion du
temps et les délais dans la gestion des projets ainsi que d’apprendre comment être réactif face
aux problèmes rencontrés.
Techniquement, j’ai appris à utiliser de nouveaux logiciels comme TALEND, SQL
Server et Qlik Sense. Ainsi que de nouvelles notions dans les bases de données et je me suis
perfectionné dans la réalisation des tableaux de bords.
Ce stage m’a aidé bien évidemment, à avoir une vision globale des processus
informatiques dédiés à la prise de décision. Cette connaissance que je compte utiliser à bon
escient, me conforte dans mes choix de carrière et alimente mon ambition de continuer dans
cette voie.
Et pour clore ce rapport, j’ai le plaisir d’annoncer que TIMSOFT m’a finalement
proposée un pré embauche, je suis ravi de la confiance que l’on m’a accordée durant ce stage
et je continuerais l’aventure avec eux bien volontiers si possible.
88. 75
Annexe A : génération des fichiers logs et Stats & creation du
fichier « emailDetails.properties »
Voici les étapes de la configuration :
1. Aller à : Fichier > Éditer les propriétés du Projet pour activer l’option de journalisation des
projets
2. Sélectionner Paramètres du Job > Stats Logs
3. Sélectionner les options qui permettent la manipulation des statistiques et des logs
4. Sélectionner l’option d’enregistrement des logs dans des fichiers externes et saisir leurs
noms et extensions.
La figure ci-dessous présente les différentes options sélectionnées.
Figure 61 : Options de journalisation Talend
Nous avons choisi d’envoyer les fichiers de journalisation stats_file.xls et logs_file.xls
par mail, pour un meilleur suivi des Jobs.
De ce fait, on a créé un fichier « emailDetails.properties » qui contient les détails du mail qui
sera envoyé après l’exécution du job « envoi mail ».
89. 76
La figure ci-dessous représente le fichier « emailDetails.properties » :
Figure 62 : Fichier emailDetails.properties
Annexe B : Les étapes de migration des données
Il faut connecter tout d’abord l’application de Qlik sense avec la base de données
«lCW_DW» qui se trouve sous Microsoft SQL Server.
Figure 63 : Connexion aux sources de données
90. 77
L’étape suivante consiste à saisir les informations de connexion avec la base.
Figure 64 : Création de la connexion
Les données s’affichent lors de la connexion avec la base de données.
Figure 65 : Affichage des données après la connexion
91. 78
L’étape suivante consiste à relier les tables de fait et de dimensions selon le la
conception du model physique qui est un modèle en étoile comme mentionné dans les parties
précédentes.
Figure 66 : Interface des associations dans Qlik Sense
92. 79
Figure 67 : Résultat d’association des tables
Annexe C : Automatisation
Dans cette phase nous allons passer par des étapes pour automatiser et programmer un
Job qui contient tout le processus du travail du projet et englobe tous les Jobs.
Pour ce faire nous devons suivre ces étapes :
1. Clic droit sur le job « Processus automatisation » et sélectionnez « Construire le Job »
2. Générer le fichier .bat Windows
93. 80
Figure 68 : Construire un job
3. Le fichier .bat sera créé dans la destination désirable
4. Création de la tâche planifiée sous Windows