Projet 1 : RiskMetrix Conversion

Documents pareils
TP2_1 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

TP2 DE BUSINESS INTELLIGENCE ISIMA ZZ3 F3

Introduction aux outils BI de SQL Server Tutoriel sur SQL Server Integration Services (SSIS)

Thibault Denizet. Introduction à SSIS

Introduction à la B.I. Avec SQL Server 2008

BIRT (Business Intelligence and Reporting Tools)

CATALOGUE DE FORMATIONS BUSINESS INTELLIGENCE. Edition 2012

Sage 100 CRM Guide de l Import Plus avec Talend Version 8. Mise à jour : 2015 version 8

Travail de diplôme 2011 Business Intelligence Open Source SpagoBI/Talend Résumé

Département Génie Informatique

Procédure d'installation complète de Click&Decide sur un serveur

Bases de Données Avancées

Construction d un EDD avec SQL 2008 R2. D. Ploix - M2 Miage - EDD - Création

Notre processus d embauche

Business Intelligence avec SQL Server 2012

SQL Server 2012 Implémentation d'une solution de Business Intelligence (Sql Server, Analysis Services...)

Business Intelligence avec SQL Server 2012 Maîtrisez les concepts et réalisez un système décisionnel

MYXTRACTION La Business Intelligence en temps réel

Fournir un accès rapide à nos données : agréger au préalable nos données permet de faire nos requêtes beaucoup plus rapidement

Business Intelligence avec SQL Server 2014 Maîtrisez les concepts et réalisez un système décisionnel

Sauvegarde des bases SQL Express

L INTELLIGENCE D AFFAIRE DANS LA VIE QUOTIDIENNE D UNE ENTREPRISE

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Sauvegarde et Restauration d un environnement SAS

N Cour Exam Thème Durée New Installing and Configuring Windows Server J New Administering Windows Server J

Corrigé de l'atelier pratique du module 6 : Transfert de données

OMGL6 Dossier de Spécifications

Utiliser SQL Server 2008 R2 Reporting Services comme source de donne es pour Microsoft Excel

MS PROJECT Prise en main. Date: Mars Anère MSI. 12, rue Chabanais PARIS E mail : jcrussier@anere.com Site :

SQL Serveur Programme de formation. France Belgique Suisse - Canada. Formez vos salariés pour optimiser la productivité de votre entreprise

MANUEL D'INSTALLATION SUR WINDOWS 2003/2008 SERVER

BD51 BUSINESS INTELLIGENCE & DATA WAREHOUSE

Didacticiel Études de cas. Description succincte de Pentaho Data Integration Community Edition (Kettle).

Whitepaper. Méthodologie de création de rapports personnalisés SQL Server Reporting Services

SHAREPOINT PORTAL SERVER 2013

Table des Matières. Pages 3-4. A propos d emblue. Page 5. L environnement emblue. Création d une campagne d marketing. Pages 6-15.

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

Plan. Excalibur. Les opérations sur données. SQL or not SQL? Backups. Inter opérabilité

Business Intelligence avec Excel, Power BI et Office 365

Créer un publipostage avec Word 2007.

et Groupe Eyrolles, 2006, ISBN :

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

PerSal Manuel d installation

SQL SERVER 2008, BUSINESS INTELLIGENCE

BUSINESS INTELLIGENCE. Une vision cockpit : utilité et apport pour l'entreprise

1. Installation du Module

Service Systèmes et Réseaux

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Configuration de SQL server 2005 pour la réplication

Guide de démarrage Tradedoubler. Manuel éditeur / affilié

10. Base de données et Web. OlivierCuré

Plan de formation : Certification OCA Oracle 11g. Les administrateurs de base de données (DBA) Oracle gèrent les systèmes informatiques

Sommaire. 1 Introduction Présentation du logiciel de commerce électronique 23

Cursus Sage ERP X3 Outils & Développement. Le parcours pédagogique Sage ERP X3 Outils et Développement

Analyse comparative entre différents outils de BI (Business Intelligence) :

Comment bien débuter sa consolidation?

Faculté des sciences de gestion et sciences économiques BASE DE DONNEES

La base de données dans ArtemiS SUITE

Gestion de stock pour un magasin

Sql Server 2005 Reporting Services

Formation Word/Excel. Présentateur: Christian Desrochers Baccalauréat en informatique Clé Informatique, 15 février 2007

SPECIFICATIONS TECHNIQUES : Gestion des Médicaments et des commandes de médicaments

Microsoft Application Center Test

Jedox rafraîchit les rapports du fabricant de boissons MBG

WorkflowGen 6.0 Guide de mise à jour

Documentation utilisateur, manuel utilisateur MagicSafe Linux. Vous pouvez télécharger la dernière version de ce document à l adresse suivante :

Business Intelligence

IBM System i. DB2 Web Query for System i : le successeur de Query/400? Oui, mais bien plus!!!

SQL Server Installation Center et SQL Server Management Studio

Google Apps for Business

SAP BusinessObjects Web Intelligence (WebI) BI 4

WHATSUP GOLD GESTION DE LA BASE DE

Sage 100 CRM - Guide de la Fusion Avancée Version 8. Mise à jour : 2015 version 8

Mercredi 15 Janvier 2014

Guide de présentation du courrier électronique. Microsoft Outlook Préparé par : Patrick Kenny

Note de compatibilité

Installation de Premium-RH

Préconisations Techniques & Installation de Gestimum ERP

SharePoint Foundation 2013 Construire un intranet collaboratif en PME (édition enrichie de vidéos)

Principales failles de sécurité des applications Web Principes, parades et bonnes pratiques de développement

Gestion des bases de données

Méthodologie de conceptualisation BI

Chapitre 9 : Informatique décisionnelle

Business Intelligence avec SQL Server 2012

avast! EP: Installer avast! Small Office Administration

HERMES SYSTEM et BEWISE souhaitent vous offrir les meilleures compétences.

[COMPTE RENDU SEMAINE DU 21 AU 27 JANVIER] Client

Fiche Technique Windows Azure

Manuel du composant CKForms Version 1.3.2

Ici, le titre de la. Tableaux de bords de conférence

AutoCAD Petit exercice sous

Langages Standards Web (XSL, XMLDOM, HTML, DHTML, CSS, JavaScript), ASP, C, ESQL-C, Scripts Shell, PL/SQL, C++, C#, ASP.NET

Programme ASI Développeur

MANUEL WORDPRESS. Objectif: Refonte d un site web sous Wordpress I PRE-REQUIS: 1 / Créer un backup (sauvegarde) du site:

Saisissez le login et le mot de passe (attention aux minuscules et majuscules) qui vous ont

CATALOGUE DES FORMATIONS

Transcription:

Projet 1 : RiskMetrix Conversion 1 Genèse du projet Alter Domus Malte, Chypre et Hong Kong utilisent un logiciel de gestion de fonds et de comptabilité des entreprises appelé PAXUS. Ce logiciel permet de fournir des rapports détaillés de comptabilité, de gestion de fonds,, pour les clients. Un client d Alter Domus Malte utilise ces rapports, générés par le logiciel PAXUS, pour faire des calculs sur la comptabilité de son entreprise, l évolution des fonds auxquels il est rattaché ou faire des calculs prévisionnels par exemple. Le problème relevé ici, est que le client a besoin de fichiers.txt, triés selon des règles bien précises à partir du fichier généré par le logiciel PAXUS, qui lui est un fichier Excel, pour pouvoir insérer ces fichiers dans un logiciel de comptabilité à lui. Pour cela, Alter Domus Malte a fait appel à Alter Domus Luxembourg pour réaliser une application qui permettrait de réaliser la demande du client. 2 Spécifications Le logiciel de comptabilité PAXUS fournit, comme dit précédemment, des rapports sous forme de fichier Excel nommé (ReportEngine «date».xlsx). C est un processus journalier. Dans ce fichier on trouve, à titre explicatif, le nom de différents fonds, des calculs de comptabilité, les pays de rattachement des fonds, la région,... En parallèle, Alter Domus Malte fournit également un fichier mensuel nommé («Nom du fond» Seed percentage.xlsx). Dans ce fichier se trouvent des pourcentages à appliquer aux différents fonds, lors du traitement (exemple ci-dessous). Université de Technologie de Compiègne - Département Génie Informatique 1/19

Nom abrégé du fond Nom complet du fond Pourcentage à appliquer MGMF Confidentiel 100% MSTF Confidentiel 84.9% MLSE Confidentiel 12.97% MEFF Confidentiel 91.31% MLTE Confidentiel 0% De plus, un fichier Excel nommé (Country code.xlsx) nous est aussi transmis (tableau d exemples ci-dessous), correspondant aux pays, aux régions, aux devises, aux codes des pays, Cependant ce fichier est un fichier statique, c est-à-dire qu il ne changera pas contrairement aux deux précédents fichiers. Country Country Name 3 Character Numeric Currency SubRegion Region Code Country Code Code FO Faroe Islands FRO 234 #N/A FR France FRA 250 EUR Europe - Western NUEuropeLL FX France, Metropolitan EUR #N/A GA Gabon GAB 266 Africa - SS Middle East + Africa GB Great Britain GBR 826 GBP #N/A FO Faroe Islands FRO 234 #N/A Le client souhaitait obtenir 4 fichiers de sorties sous format.txt, comme le montre la figure cidessous, triés par fond. Ces fichiers auront les noms respectifs suivant : - Export1 «nom du fond» «date».txt - Export2 «nom du fond» «date».txt - Export3 «nom du fond» «date».txt - Export4 «nom du fond» «date».txt FIGURE 9 : Fichiers de sorties souhaités par le client Les deux premières lignes de ces fichiers.txt seront : Université de Technologie de Compiègne - Département Génie Informatique 2/19

- START-OF-FILE, - START-OF-DATA, Et les deux dernières lignes des fichiers seront les suivantes : - END-OF-DATA, - END-OF-FILE Au milieu de ces lignes, se trouveront des informations de comptabilité par exemple, mais pas seulement, triées selon 4 type : - ExchangeTraded, - Cash, - FxOption, - FxForward, qui sont des termes imposés par le client et utilisés par son logiciel. Pour savoir si un fond est un de ces quatre types, différentes règles de mappage sont évoquées par le client. Le but final étant que le processus se lance automatiquement tous les jours à midi, mais également d avoir une application web qui permet de lancer le processus manuellement. Dans la suite du rapport, pour une meilleure compréhension, nous donnerons les noms de fichiers suivants : - ReportEngine pour le fichier ReportEngine «date».xlsx, - Seed pour le fichier «Nom du fond» Seed percentage.xlsx ; - Country pour le fichier Country code.xlsx. Le détail des spécifications se trouvent en annexe 1. Schéma de principe : FIGURE 10 : Implantations d Alter Domus dans le monde Université de Technologie de Compiègne - Département Génie Informatique 3/19

3 Réalisation Les spécifications du projet, que l on peut voir dans l annexe 1 ont été réalisées à la fin du projet, une fois celui-ci terminé. Au départ une directive a été donnée et de nombreuses conférences téléphoniques avec Alter Domus Malte ont été effectuées pour obtenir les spécifications complètes. Au fur et à mesure des conférences téléphoniques, le développement a pu avancer avec dans un premier temps, la réalisation d un ETL pour extraire et transformer les données arrivant dans un fichier Excel, selon la demande du client ; et dans un second temps la réalisation d une application web pour donner la possibilité de lancer ce qui a été fait en première partie manuellement, donc à la demande. 3.1 Fichiers d entrées et de sorties Comme expliqué dans les spécifications, Alter Domus Malte fournit trois fichiers Excel, un journalier, un mensuel et un statique. Pour que le traitement s effectue automatiquement, il a fallu créer une structure de dossiers bien précise, pour qu Alter Domus Malte puisse déposer les fichiers correspondants au bon endroit, et ainsi laisser le processus s exécuter automatiquement. Un dossier de partage a été créé entre Alter Domus Luxembourg et Malte nommé RiskMetrix. Dans ce dossier se trouve un dossier Input où Malte va déposer les fichiers à traiter, et un dossier Output où le processus va déposer les fichiers générés en sortie. Schéma de structure générale des dossiers : FIGURE 11 : Structure du dossier de partage avec Malte Université de Technologie de Compiègne - Département Génie Informatique 4/19

3.1.1 Dossier des fichiers d entrées Le dossier des fichiers entrants (Input) est composé de trois sous dossiers qui sont : - ReportEngine : c est ici qu Alter Domus Malte devra déposer les fichiers ReportEngine quotidiennement ReportEngine Treated : Une fois le traitement du fichier ci-dessus exécuté par le processus, celui-ci sera déposé automatiquement dans ce dossier. - Seed : dans ce dossier seront présents les fichiers Seed qu Alter Domus Malte déposera mensuellement - Static Data : ce dossier comprendra le fichier Country qui ne changera pas, d où le nom de static data. 3.1.2 Dossier des fichiers de sorties Le processus qui s effectuera, créera des fichiers.txt en sortie dans un dossier de sortie (Output) qui se composera des dossiers suivants : - Date : ce dossier sera créé par le processus avec la date qui se trouve dans le nom du fichier ReportEngine Nom du fond : lors du traitement du fichier ReportEngine, les fonds présents dans ce fichier seront traités séparément et un dossier portant le nom du fond sera créé pour chaque fond. Dans ce dossier seront donc présents les fichiers de sorties créé par le processus. Exemple : Si en entrée, nous avons le fichier ReportEngine-20141117.xlsx comprenant que 1 seul fond MGMF, alors dans le dossier Output se créera la structure suivante : FIGURE 12 : Exemple du processus de l application 3.2 Développement Une fois les spécifications établies et la nomenclature du dossier de partage créé, le développement a pu démarrer par la création d une base de données. Université de Technologie de Compiègne - Département Génie Informatique 5/19

3.2.1 Base de données Le processus ETL devra traiter des informations provenant de trois fichiers Excel explicités ci-dessus. Pour une optimisation des performances il a été convenu de charger en base de données les fichiers Seed et Country. En début de processus ces deux fichiers Excel sont ainsi chargés en base de données et à la fin du processus, ces tables sont vidées et remplies à nouveau lors du prochain traitement. On aura donc les deux tables suivantes : - «nom du fond» Seed percentage - Country code De plus, dans les spécifications, le client voulait que chaque fichier généré ait comme deux premières lignes : - START-OF-FILE, - START-OF-DATA, et comme deux dernières lignes : - END-OF-DATA, - END-OF-FILE Pour éviter d écrire à chaque nouveau fichier généré, ces lignes ont été chargées en base de données dans une table appelée tmptable qui contient une clé correspondant à START-OF- FILE, START-OF-DATA, END-OF-DATA et END-OF-FILE, et une valeur correspondant à Start et End pour faciliter l insertion avec une requête SQL simple. Key Value START-OF-FILE START-OF-DATA END-OF-DATA END-OF-FILE Start Start End End La base de données créée se nomme FSStaging et voici ci-dessous sont diagramme (le nom du fond étant caché par soucis de confidentialité) : tmptable Keys Value Metatron Seed percentage [Short Name] [Fund Name] Seed Country codes [Country Code] [Country Name] [3 Character_Country Code ] [Numeric Code] Currency SubRegion Region [Consumption_Tax Rate] [Consumption_Tax Descripti... [FATCA IGA Model] [Telephone Code] Status [Last changed by user] [Last changed on] [Last authorised by user] [Last authorised on] FIGURE 13 : Schéma de la base de données du projet RiskMetrix Conversion Université de Technologie de Compiègne - Département Génie Informatique 6/19

Alter Domus dispose d une base de données nommé ETLTechnical qui a pour but de regrouper tous les enregistrements (logs) qu une application écrit, cela peut comprendre une insertion, une suppression, une erreur, Un SSIS (SQL Server Integration Services) a été utilisé pour le traitement, donc la base de données sera très importante et judicieuse pour connaître le déroulement de l application et les erreurs potentielles qu il y aurait. De plus des variables ont été utilisées correspondant au chemin des dossiers Input et Output. L intérêt de les mettre en base de données est que si un jour on modifie ce chemin, on ne doit pas le faire au sein même de l application mais juste dans la base de données. SSIS_Configurations ConfigurationFilter ConfiguredValue PackagePath ConfiguredValueType ETL_LOG ID_ETL_LOG PACKAGE_NAME MESSAGE RUN_DATE ACTION_TYPE QUANTITY ERROR FIGURE 14 : schéma de la base de données des logs (ETLTechnical) 3.2.2 ETL Comme dit précédemment, l ETL, qui correspond au cœur de l application donc du traitement des données, fut réalisé avec un outil Microsoft qui est SQL Server Business Intelligence. Une fois sur l outil, il a fallu créer un nouveau projet Integration Services, d où le nom de SSIS (SQL Server Integration Services) évoqué ci-dessus. 3.2.2.1 Définition Un outil appelé ETL (Extract, Transform and Load) est ainsi chargé d'extraire les données dans différentes sources, de les nettoyer et de les charger dans un Data Warehouse (entrepôt de données). Université de Technologie de Compiègne - Département Génie Informatique 7/19

FIGURE 15 : Principe d un ETL Dans un projet décisionnel, SSIS est le premier service à entrer en action, car il gère l extraction et l enregistrement des données en dehors de l outil de production. Il joue donc le rôle d un ETL (Extract, Transform and load) et y ajoute toute une série d outils pour monitorer la performance des processus d extraction et de transformation de la donnée. Ces données sont alors stockées dans un Data Warehouse fondé sur la technologie SQL Server. 3.2.2.2 Traitement du fichier Seed et Country La première partie du traitement fût le chargement des fichiers Seed et Country en base de données. La figure ci-dessous montre la méthode choisie : FIGURE 16 : Traitement des fichiers Seed et Country Au lancement de l ETL, il va d abord écrire dans la table ETL_LOG de la base de données ETLTechnical, la version de l application et ensuite «Start RiskMetrixConversion» pour Université de Technologie de Compiègne - Département Génie Informatique 8/19

préciser que le traitement a démarré. Ces deux étapes correspondent respectivement aux deux flux «Job Version in ETLTechnical» et «Start log». L étape suivante est d appeler une requête SQL qui supprime le contenu des tables [Country code] et [«nom du fond» Seed percentage] comme le montre la figure ci-dessous : FIGURE 17 : Requête SQL de suppression de contenu des tables Une fois ces étapes achevées, nous pouvons passer au chargement du fichier Seed. Il est réalisé au travers d un outil appelé «Foreach Loop Container» qui comme son nom l indique, permet de prendre tous les fichiers présents dans un dossier. Ceci n étant pas notre but, mais nous avons besoin de ce composant pour sauvegarder dans une variable le nom du fichier Seed et plus précisément la date qui est présente dans son nom, pour pouvoir faire une comparaison avec la date du fichier ReportEngine. Si elles correspondent le fichier ReportEngine sera traité, sinon une erreur surviendra dans les logs. La date étant sauvegardée dans une variable, le fichier Seed peut alors être chargé en base de données dans la table [«nom du fond» Seed percentage] comme ceci : FIGURE 18 : Chargement du fichier Seed en base de données Bien entendu, un log est généré pour préciser que le fichier Seed a bien été chargé. La même logique est utilisée pour le chargement du fichier Country, mis à part l absence du composant «Foreach Loop Container» car nul besoin de sauvegarder le nom du fichier dans une variable. Université de Technologie de Compiègne - Département Génie Informatique 9/19

La plus grosse partie du travail fût le traitement des fichiers ReportEngine car les règles furent nombreuses. Les fichiers sont journaliers, cependant il se peut qu il y en ait plusieurs à traiter en même temps, c est pourquoi nous avons utilisé le composant «Foreach Loop Container», de une pour récupérer son nom en variable, et pour exécuter le traitement sur tous les fichiers ReportEngine présents dans le dossier. FIGURE 19 : Traitement de chaque fichier ReportEngine Université de Technologie de Compiègne - Département Génie Informatique 10/19

Ce traitement est divisé en deux parties. La première, comme le montre la figure 20, permet de sauvegarder dans une variable le nom du fichier ainsi que la date présente dans ce nom, puis de créer un dossier portant le nom de la date. S en suit un chargement, dans une table intermédiaire de SSIS, des différents fonds présents dans le fichier ReportEngine en cours de traitement. FIGURE 20 : Première partie de traitement des fichiers ReportEngine La seconde partie permet d effectuer les traitements demandés par le client, pour chaque fond présents dans la table intermédiaire. FIGURE 21 : Traitement de chaque fond du fichier ReportEngine Université de Technologie de Compiègne - Département Génie Informatique 11/19

Une requête SQL est appelée récupérer le nom abrégé du fond en cours de traitement dans la table [«nom du fond» Seed percentage], pour ensuite créer un dossier avec ce nom. En découle les traitements demandés dans les spécifications et la création des 4 fichiers en sortie pour chaque fond. Une fois le fichier ReportEngine traité, celui-ci est déplacé dans le dossier ReportEngine Treated, comme le montre la figure ci-dessous, et s en suit un nouveau traitement de fichier, ou la fin du processus qui écrit une phrase de fin dans les logs. FIGURE 22 : Déplacement des fichiers ReportEngine traités Les flèches rouges, présentes sur le SSIS permettent d écrire des logs d erreurs avec une explication, dès lors que le SSIS rencontre un problème et tombe en erreur. Programmation : L ETL fut programmé pour être exécuté tous les jours à 12 :00pm. 3.2.3 Application web Une fois le SSIS terminé et validé, l application web a pu démarrer en MVC.NET. Elle a pour principal objectif de démarrer le traitement réalisé ci-dessus manuellement donc à la demande. 3.2.3.1 Définition ASP.NET MVC, s'appuie sur le Framework Microsoft.NET 3.5 pour réaliser des applications ASP.NET selon le modèle MVC avec Visual Studio Modèle d'architecture qui cherche à séparer nettement les couches de présentation (UI : User Interface), métier (BLL : Business Logic Layer) et d'accès aux données (DAL : Data Access Layer). Le but étant d'avoir une dépendance minimale entre les différentes couches de l'application ; ainsi les modifications effectuées sur n'importe quelle couche de l application n'affectent pas les autres couches. Université de Technologie de Compiègne - Département Génie Informatique 12/19

Modèle les modèles sont les parties de l'application qui mettent en œuvre la logique de l'application de données de domaine. Vue les données sont envoyées, par le modèle, à la vue qui les présente à l utilisateur. Contrôleur Les contrôleurs sont les composants qui gèrent l'interaction avec l'utilisateur, travaillent avec le modèle et, finalement, sélectionnent la vue qui va permettre de faire un rendu de l'interface utilisateur. Une telle architecture est communément appelée architecture 3-tiers ou à 3 niveaux. FIGURE 23 : Architecture MVC 3.2.3.2 Diagramme de séquence FIGURE 24 : Diagramme de séquence de l application web Université de Technologie de Compiègne - Département Génie Informatique 13/19

3.2.3.3 Architecture 3.2.3.3.1 Modèle Les deux modèles créés, comme le montre la figure ci-dessous, vont être utilisés dans le contrôleur, mais il est impératif de les déclarer dans la partie modèle. Nous avons deux modèles, le premier, RiskMetrixModel, va correspondre au modèle qui va exécuter le job, à savoir le SSIS crée précédemment. Le second va aller chercher dans la base de données ETLTechnical, les logs générés lors du précédent traitement, ainsi que sur celui qui sera en cours de traitement. FIGURE 25 : Modèles de l architecture MVC 3.2.3.3.2 Vue La vue, correspond à du code HTML et CSS, à savoir le design de la page web qui sera affichée ainsi que les informations à afficher. On a une seule vue créée appelée Index.cshtml. En effet du code JavaScript permet de rendre la page dynamique, pour exemple, le fait de cacher le bouton «Start Job» lorsque l attribut Hidden du modèle RiskMetrixModel est à «true», c est-à-dire lorsque le job SSIS est lancé. FIGURE 26 : Partie de la vue de l architecture MVC Université de Technologie de Compiègne - Département Génie Informatique 14/19

3.2.3.3.1 Contrôleur Un seul contrôleur est créé : RiskMetrixController composé de 4 méthodes. La première, Index(DateTime? startdate), est la méthode appelée lorsque la page web est ouverte. Celle-ci va chercher et afficher sur la page, la date de la précédente exécution avec succès, les logs de la dernière exécution et affiche un message si celui-ci à rencontrer une erreur ou non. FIGURE 27 : Méthode Index() du contrôleur Lorsque l utilisateur appuie sur le bouton «Start Job», la méthode, StartJob(), est appelée qui va lancer la «stored procedure» qui démarre le SSIS et renvoie à la méthode précédente une fois terminé, pour afficher les différents logs de l application en cours. Le bouton «Refresh the page» permet de rafraîchir la page lorsqu un traitement est en cours pour afficher les logs de celui-ci. La méthode, LoadDate(), permet de savoir si le job exécuté est en erreur ou s est bien déroulé. Pour se faire, on regarde la date de lancement du dernier SSIS, la date de fin sans erreur la plus récente, ainsi que l erreur lors du déroulement du job la plus récente, puis on compare. Université de Technologie de Compiègne - Département Génie Informatique 15/19

Si la date de lancement est inférieure à la date de fin, alors le dernier job exécuté s est déroulé avec succès. Sinon si la date de lancement est supérieure à la date de fin, que la date actuelle moins la date de lancement est inférieure à 5 minutes et que la date de lancement est supérieure à la date de l erreur la plus récente, alors le job est en exécution. Sinon il y a eu une erreur durant l exécution du job. Enfin la dernière méthode, ExportToExcel(DateTime? startdate), est appelée lorsque l utilisateur appuie sur le bouton «Export Log To CSV». Cette méthode va générer un fichier «date».csv avec les logs de la dernière exécution. FIGURE 28 : Méthode ExportToExcel() du contrôleur Université de Technologie de Compiègne - Département Génie Informatique 16/19

3.2.3.4 Site web Lorsque l utilisateur ouvre la page web, elle se présente comme sur la figure ci-dessous : FIGURE 29 : Site web de RiskMetrixConversion 3.3 Phase de tests Alter Domus dispose de trois environnements distincts qui sont : l environnement de développement, l environnement UAT(User Acceptance Testing) et l environnement de production sur trois serveurs différents. FIGURE 30 : Les différents environnements de travail Université de Technologie de Compiègne - Département Génie Informatique 17/19

C est sur l environnement de développement que fût développée l application. Les tests ont été réalisés au moment de l exécution du code pour contrôler le bon fonctionnement de l application. Un problème de taille est survenu lors du développement qui est la scalabilité. La scalabilité désigne la capacité d'un produit à s'adapter à un changement d'ordre de grandeur de la demande, en particulier sa capacité à maintenir ses fonctionnalités et ses performances en cas de forte demande. En effet, les règles concernant le traitement changées très souvent voir quotidiennement. Ceci fût un problème majeur car il fallait adapter les changements à ce qui avait déjà été fait, c est pourquoi on peut parler de scalabilité de l application car elle s adaptait aux nombreux changements demandés. L ETL ainsi que l application web furent testées en local jusqu à ce que les règles ne changent plus et que l application fût validée par Alter Domus Malte et par mon manager. De là, l application fût testée sur le dossier de partage avec Alter Domus Malte et validée. 3.4 Migration du projet Une fois les tests réalisés et approuvés, l application peut ensuite être migrée sur l environnement UAT, qui est l environnement intermédiaire entre le développement et la production. L environnement UAT a les mêmes caractéristiques que celui de production. C est l équipe delivery qui se charge de cela. Mais pour ce faire, il a fallu réaliser une documentation de déploiement pour cette équipe, annexe 2. Dans celle-ci est présent : - Un script SQL pour créer la base de données FSStaging et ses tables, annexe 3, - Un script SQL pour créer la configuration dans ETLTechnical, annexe 4, - Un script SQL concernant les droits des utilisateurs sur la base de données, annexe 5, - Un script SQL pour remplir la table tmptable, annexe 6, - Un script SQL pour créer le job SSIS, annexe 7, - Un script SQL pour générer la stored procédure de lancement du job SSIS, annexe 8, - Les explications nécessaires d où et comment effectuer le déploiement. Université de Technologie de Compiègne - Département Génie Informatique 18/19

4 Conclusion L application est actuellement en environnement UAT et est prête à être mise en production. Le retour reçu d Alter Domus Malte et leurs clients est très satisfaisant. L application remplit les fonctions demandées en facilitant le travail tout en gagnant du temps. Ce projet m a permis de découvrir l IDE Visual Studio et plus précisément ses fonctions de business intelligence à savoir SSIS. J ai aussi découvert le MVC.NET toujours sous Visual studio, ainsi que les bases de données et le langage T-SQL utilisé par l environnement Microsoft. Ce projet est une grande expérience pour ma carrière professionnelle car il a été mené du début (conférences téléphonique avec le client pour rédiger les spécifications) à la fin (déploiement de l application). Université de Technologie de Compiègne - Département Génie Informatique 19/19