Création d outils d intégration de données



Documents pareils
Manuel du logiciel PrestaTest.

DotNet. Plan. Les outils de développement

TAGREROUT Seyf Allah TMRIM

Note de synthèse. Développement web sur le CMS Prestashop. Stage du 17 mai au 25 juin Entreprise decoratzia.com 15 rue Erlanger Paris

Progiciels pour TPE - PME - PMI

< Atelier 1 /> Démarrer une application web

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

Sommaire. BilanStat manuel de présentation et d utilisation Page 2

Armand PY-PATINEC 2010

Installation Client (licence réseau) de IBM SPSS Modeler 14.2

Plan de formation des Personnels en CUI-CAE Année

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

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

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Utiliser Access ou Excel pour gérer vos données

Présentation du module Base de données spatio-temporelles

KIELA CONSULTING. Microsoft Office Open Office Windows - Internet. Formation sur mesure

CQP ADMINISTRATEUR DE BASES DE DONNÉES (ABD)

Messagerie & Groupeware. augmentez l expertise de votre capital humain

EXTENSION de Microsoft Dynamics CRM Réf FR 80452

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

SYSTRAN 7 Guide de démarrage

Module.NET 3 Les Assemblys.NET

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

CAHIER DES CHARGES D IMPLANTATION

LANDPARK NETWORK IP LANDPARK NETWORK IP VOUS PERMET D'INVENTORIER FACILEMENT VOS POSTES EN RÉSEAU

INSTITUT LIMAYRAC. enseignement supérieur Toulouse. Vincent de Prato BTS Informatique de Gestion. Option Administrateur de Réseaux Locaux

1. Introduction Création d'une macro autonome Exécuter la macro pas à pas Modifier une macro... 5

Paginer les données côté serveur, mettre en cache côté client

Introduction 3. GIMI Gestion des demandes d intervention 5

7.0 Guide de la solution Portable sans fil

Cursus Sage ERP X3 Outils & Développement. CURSUS Sage ERP X3 Outils & Développement ADVANCED. Outils avancés. 2 jours X3A-ADM. Développement 1 &2

Guide Utilisateur. Les communications unifiées au service de la performance opérationnelle. sfrbusinessteam.fr. Faire équipe avec vous

Activités professionnelle N 2

PerSal Manuel d installation

Gestion du parc informatique matériel et logiciel de l Ensicaen. Rapport de projet. Spécialité Informatique 2 e année. SAKHI Taoufik SIFAOUI Mohammed

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Formateur.NET expérimenté Forte expertise dans la conception et le développement d applications.net, associée à une grande pédagogie

INF 1250 INTRODUCTION AUX BASES DE DONNÉES. Guide d étude

Rapport de Mini-Projet en ArcGIS Engine

Prise en main du BusinessObjects XI R2 Service Pack 2/ Productivity Pack

Formation Tutorée A Distance (FTAD) en BUREAUTIQUE

Guide de configuration de SQL Server pour BusinessObjects Planning

Olivier Deheurles Ingénieur conception et développement.net

Thibault Denizet. Introduction à SSIS

FileMaker 13. Guide ODBC et JDBC

Stellar Phoenix Outlook PST Repair - Technical 5.0 Guide d'installation

Installation 4D. Configuration requise Installation et activation

Communiqué de Lancement. Sage Intégrale V4.50

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

FOIRE AUX QUESTIONS ACT! 2009

Atelier Administration

L externalisation de vos logiciels entreprises : une solution aux problèmes de coûts, de sécurités et de réactivités

Spécifications du logiciel. Mise à jour : 24 février 2011 Nombre total de pages : 7

Qlik Sense Desktop. Qlik Sense Copyright QlikTech International AB. Tous droits réservés.

1. LA GESTION DES BASES DE DONNEES RELATIONNELLES

Évaluation et implémentation des langages

GEDEXPERT. La Gestion Electronique de Documents des PME PMI. VOTRE NOUVEL ASSISTANT pour. Pour partager l information au sein de l entreprise

Suite Messerli Gest (gestion de chantier) Prestations (imputations des heures) Procédure d'installation du programme ou d'une mise à jour

Gestion de la Maintenance Assistée par Ordinateur

MAÎTRISE DE L ENVIRONNEMENT WINDOWS VISTA

Présentation du PL/SQL

Tous les autres noms de produits ou appellations sont des marques déposées ou des noms commerciaux appartenant à leurs propriétaires respectifs.

Évaluation des compétences. Identification du contenu des évaluations. Septembre 2014

Installation 4D. Configuration requise Installation et activation

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Sage 50 Version Nouveautés. Comptabilité générale. Sous réserve de modifications. Fonctionnalité Sage 50 Lite. Sage 50 Professional

Les bases de données Page 1 / 8

DIF VAE Technicien Supérieur de Support en Informatique

Gestion de stock pour un magasin

Procédure d'installation de SQL Server Express 2005

Table des matières Avant-propos... V Scripting Windows, pour quoi faire?... 1 Dans quel contexte?

Logiciel Enterprise Guide Version 1.3 Windows

v7.1 SP2 Guide des Nouveautés

Dossier I Découverte de Base d Open Office

AOLbox. Partage de disque dur Guide d utilisation. Partage de disque dur Guide d utilisation 1

Migration du pack office Planification, préparation, déploiement et formation

STATISTICA Version 12 : Instructions d'installation

Introduction à Microsoft InfoPath 2010

Tropimed Guide d'installation

Microsoft Office system Février 2006

Formateurs : Jackie DAÖN Franck DUBOIS Médiapôle de Guyancourt

Mise en œuvre des serveurs d application

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Créer le schéma relationnel d une base de données ACCESS

Préconisations Techniques & Installation de Gestimum ERP

Sommaire. Systèmes d Exploitation Intégration Sage 100 Sage CRM Disponibilité Client Bases de données... 3

Chapitre 1 : Introduction aux bases de données

De quoi avez-vous besoin pour ce manuel?

LOGICIEL KIPICAM : Manuel d installation et d utilisation

Guide de prise en main. Yourcegid SOLOS. Devis-Factures. 12/08/2013 Page 1 / 38

Avant-propos FICHES PRATIQUES EXERCICES DE PRISE EN MAIN CAS PRATIQUES

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

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

Thème : Gestion commerciale

Virtualisation de Windows dans Ubuntu Linux

NETWORK & SOFTWARE ENGINEERING MANUEL D UTILISATEUR. Logiciel TIJARA. NETWORK AND SOFTWARE ENGINEERING Manuel d'utilisateur "TIJARA" 1

Transcription:

Année Universitaire : 2007-2008 Licence Professionnelle Informatique CDOAM (Conception et Développement Orientés Objet d Applications Multi-Tiers) Hélène BONNAVENTURE Stage du 10 mars au 10 juin 2008 Tuteur enseignant : M. Bruno TATIBOUET Tuteur professionnel : M. Sébastien PERNIN Création d outils d intégration de données UNIVERSITÉ DE FRANCHE-COMTÉ LIFC 16, Route de Gray 25 030 BESANÇON Cedex-France Tel : +33 (03) 81 66 65 15 (64 55) Fax : +33 (03) 81 66 64 50 E-mail : lifc@univ-fcomte.fr

Remerciements Tout d abord, je tiens à remercier les enseignants de l Université de Besançon pour m avoir permis de suivre la formation en «Licence professionnelle CDOAM», avec l objectif d obtenir un diplôme, me permettant d étendre mes connaissances et compétences professionnelles acquises jusqu à présent, m offrant ainsi de nouvelles perspectives d évolution. Je remercie également, l entreprise Franche Comté Chauffage de m avoir accueillie au sein de son Service Informatique, ainsi que l ensemble du personnel pour son accueil et son amabilité, et tout particulièrement : M. Sébastien PERNIN, mon tuteur professionnel et responsable du Service Informatique, pour sa disponibilité, son écoute et ses conseils. M. Joël PALISSOT, Gérant des Etablissements PALISSOT pour m avoir accepté dans son entreprise. Mes remerciements se dirigent également vers M. Bruno TATIBOUET, mon tuteur enseignant, et tous ceux qui, à un moment ou à un autre, ont participé à la réalisation de ce travail. Création d outils d intégration de données Page 1/45

Sommaire Remerciements... 1 Introduction... 4 I. Présentation de l entreprise... 5 A. Historique... 5 B. Les domaines d activités... 5 C. Organigramme... 6 D. Les clients... 6 E. Quelques chiffres clés au 31 mars 2007... 6 II. Environnement de travail... 7 A. Le Service Informatique... 7 B. Moyens à disposition... 7 1. Matériel... 7 2. Logiciels... 9 3. Mon poste... 10 C. Mon rôle au sein du service... 10 III. Apprentissage et formation... 11 A. Qu est-ce-que.net?... 11 B. Le FrameWork.NET... 11 C. Visual Studio... 12 D. Visual Basic.NET... 13 E. SQL SERVER 2000... 14 F. Le P.G.I.... 14 IV. Missions accomplies... 17 A. PROJET N 1 : P.G.I. PASSERELLE COMPTABLE... 17 1. Le cahier des charges... 17 a) Les besoins... 17 b) Les connaissances requises... 17 c) Le déroulement du projet... 18 2. Etude et analyse... 19 a) Prise de connaissance... 19 b) Modèle Conceptuel de données... 20 3. Aspect technique... 21 a) Création des vues et procédures... 21 (1) Mouvements et écritures comptables... 21 (2) Les comptes... 23 Création d outils d intégration de données Page 2/45

b) Gestion des tables de transfert... 24 c) Le développement... 24 (1) Généralités... 24 (2) Les fichiers textes... 27 (3) L accès aux données... 28 (4) Tests... 29 d) Utilisation, exécution et déploiement... 30 e) Les problèmes rencontrés... 32 B. PROJET N 2 : P.G.I. GESTION DE LA PAIE... 34 1. Le cahier des charges... 34 2. Les calculs... 34 3. Tests... 35 4. Fichier EXCEL... 35 5. Utilisation et exécution... 37 6. Difficultés rencontrées... 38 CONCLUSION... 39 WEBOGRAPHIE... 40 BIBLIOGRAPHIE... 41 GLOSSAIRE... 43 Création d outils d intégration de données Page 3/45

Introduction Dans le cadre du programme de formation de la «Licence professionnelle CDOAM», enseigné à l Université de Besançon, j ai effectué un stage d une durée de trois mois au sein du service informatique des Etablissements PALISSOT. L objet de ce rapport est de présenter un échantillon du travail que j ai pu fournir tout au long de cette période. M. Sébastien PERNIN, responsable Informatique m a demandé de mener à bien deux projets : Projet N 1 : PGI - PASSERELLE COMPTABLE Il s agit de concevoir une passerelle entre, le logiciel spécifique de l entreprise, nommé PGI* et un logiciel comptable du commerce : QUADRACOMPTA de l éditeur QUADRATUS. Projet N 2 : PGI COLLABORATION PAIE Dans ce deuxième projet, je dois développer un outil de collaboration entre Franche Comté Chauffage et l organisme gérant les paies des employés : PRO COMPTA. Le sujet principal de ces deux missions est l'intégration de données. L intégration de données regroupe les processus par lesquels les données provenant de différentes parties d un système d'information sont déplacées, combinées et consolidées. Ces processus consistent habituellement à extraire des données de différentes sources (bases de données, fichiers, applications, Services Web, emails, etc.), à leur appliquer des transformations (jointures, calculs, etc.), et à envoyer les données résultantes vers les systèmes cibles. Ce rapport se présente en quatre parties. Je m attacherai tout d abord à la présentation de l entreprise d accueil. Ensuite, dans une deuxième partie, je passerai en revue les outils utilisés lors de l étude et du développement de mes deux missions. Puis dans une troisième partie je définirai les différentes étapes qui ont été nécessaires à l élaboration du sujet n 1 relatif à l exportation des données comptables. Et enfin, je terminerai par le sujet n 2 concernant l application de gestion de paie. Il faut savoir que l exposé des deux projets est relativement semblable. En effet, dans un premier temps je définis le cahier des charges, puis je procède à l analyse du sujet, pour finir par l aspect technique. La deuxième mission sera donc décrite de façon moins exhaustive que la première, du fait de la similitude du sujet. Pour conclure, je ferai part des difficultés rencontrées lors de mon travail et de l enrichissement personnel que m a apporté ce stage. Création d outils d intégration de données Page 4/45

I. Présentation de l entreprise L entreprise «Franche Comté Chauffage» est une Société A Responsabilité Limitée. Son siège social se situe : rue des Estellins à Bucey-Les-Gy (70700). A. Historique Les établissements PALISSOT existent depuis le 1 mars 1970. Ils sont le fruit du travail de M. PALISSOT Hubert qui avait l ambition de monter sa propre entreprise. C était le père de l actuel gérant des Ets PALISSOT, plus connus aujourd hui sous le nom de FRANCHE COMTE CHAUFFAGE. A l origine, cette entreprise était ce que l on pouvait appeler une entreprise familiale. Mais, depuis une dizaine d années que M. PALISSOT fils a pris la tête de l entreprise, celleci se tourne vers une expansion logique, compte tenu de la demande et s ouvre sur le marché public avec réussite puisqu elle est aujourd hui leader des entreprises de chauffage, climatisation en Haute Saône. B. Les domaines d activités Création d outils d intégration de données Page 5/45

C. Organigramme Les Ets PALISSOT comptent 67 employés, classés dans l organigramme de l Annexe 1 : Organigramme de l entreprise - page 2. Par conséquent «Franche Comté Chauffage» se classe dans la catégorie des Petites et Moyennes Entreprises. D. Les clients BRISARD Industriels : Centres hospitaliers de Gray et Vesoul Conseil Général du Doubs Lycée : COURNOT, FERTET Entreprise : JARDIMAT Christine LAURE Particuliers : plus de 2000 clients depuis 1970 E. Quelques chiffres clés au 31 mars 2007 Chiffre d'affaire 5 574 672 Résultats d exploitation 132 964 Bénéfices 91 087 Capital 160 000 Création d outils d intégration de données Page 6/45

II. Environnement de travail A. Le Service Informatique Le service Informatique a vu le jour dans les années 2003-2004. Avant cette période l informatisation était gérée par un prestataire extérieur. La création de ce service était une étape nécessaire face à l essor des Etablissements PALISSOT. M. Sébastien PERNIN détient un BTS Génie Climatique et n a pas suivi d études informatiques. Il est arrivé dans l entreprise en juillet 2000 et a été recruté pour travailler au Bureau d étude. Cependant, grâce à son intérêt prononcé dans le domaine des nouvelles technologies, il a pu se tourner progressivement vers la gestion du parc informatique. Autodidacte, effectuant régulièrement des formations, il est depuis sa création en 2003 responsable de ce service. B. Moyens à disposition 1. Matériel Les serveurs HP ML 350 G3 RAM : 2 go HP ML 370 RAM : 2,5 go PALISSOT 01 PALISSOT 02 Windows 2003 Serveur R2 Windows 2003 Serveur Edition Exchange Logiciel TSE Bureautique - Serveur de Fichier ACER 1 go DELL Powerdege 1 go PALISSOT 04 WEB Windows 2003 Serveur R2 Windows 2003 Scan Routeur Pro Symantec Norton Corporate (Passerelle photocopieur vers le réseau Passerelle Antivirale + Exchange) Création d outils d intégration de données Page 7/45

HP ML 350 G5 2 go HP ML 150 PALISSOT 05 PALISSOT 06 Windows 2003 Serveur de secours SQL SERVER QuadraCompta Base PGI Les postes clients Il y a 11 ordinateurs et 7 portables. Les employés des bureaux travaillent sous Windows XP Pro. Création d outils d intégration de données Page 8/45

2. Logiciels Logiciels de développement Microsoft Visual Studio 2003 Environnement de développement.net pour Windows conçu par Microsoft. Microsoft SQL Server 2000 SQL SERVEUR est un SGBD* qui fonctionne selon le même concept que : ORACLE* ou MYSQL*. Logiciels servant à la documentation des programmes Microsoft Office Visio 2003 Utile pour la schématisation des systèmes. Ce logiciel permet de visualiser, d analyser et de communiquer des informations grâce à ses bibliothèques d images, d icônes et autres formes, spécifiques à des secteurs et métiers. DB designer 4 Logiciel de conception de bases de données. Il possède également des fonctions permettant d importer des Bases de données déjà existantes. Logiciel comptable du commerce QuadraCompta Logiciel de comptabilité Logiciel spécifique PGI Logiciel spécifique développé par FCC. Création d outils d intégration de données Page 9/45

3. Mon poste L ordinateur mis à ma disposition possédait les caractéristiques suivantes : Modèle : DELL - Optiplex 755 RAM : 2048 Mo Processeur : Intel core 2 Duo E6650 Système : Windows XP Professional - Version 2002 - Service Pack2 Je l utilisais en tant que serveur local. C. Mon rôle au sein du service Durant mon stage de 13 semaines, j ai assumé la fonction de Développeur VB.NET au sein du service Informatique. Mes responsabilités étaient de mener à terme, les deux missions qui font l objet de ce rapport, en tenant compte des normes de développement effectives dans le service, avec un maximum d autonomie. Pendant cette période, j ai pu découvrir les multiples activités du métier de responsable d un Service Informatique de PME. En effet, mon espace de travail se situait dans le même bureau que M. PERNIN et de ce fait, j ai pu me rendre compte de la diversité du métier. Je tiens à souligner que M. PERNIN est le seul informaticien dans l entreprise et que malgré les responsabilités de ses fonctions, il a fait preuve de disponibilité et m a donné tout le soutien, l attention et les conseils dont j avais besoin. Création d outils d intégration de données Page 10/45

III. Apprentissage et formation Dans la réalisation de mes projets, j ai principalement utilisé les outils installés dans l entreprise. Tous, sauf DB DESIGNER (que j ai connu lors de mes études), sont activement utilisés par le responsable informatique et me sont inconnus à mon entrée en stage. C est pourquoi, M. PERNIN m a proposé une formation aux outils de l entreprise. Ainsi, durant deux semaines, je me suis auto-formée, en utilisant différents supports existant dans le service, sans oublier bien sûr mes recherches sur le Web [5] [6]. C est ainsi que j ai découvert les technologies.net. A. Qu est-ce-que.net?.net est le nom d'un ensemble de produits et de technologies proposés par l'entreprise Microsoft dont la plupart dépendent du framework.net, un composant du système d'exploitation Windows constituant un équivalent de machine virtuelle*. Les technologies.net reposent sur : le.net Framework Visual Studio.NET NET Enterprise servers (logiciels comme Commerce Server, SQL Server, Content Management Server...), un ensemble d'infrastructures techniques nécessaires pour le développement et déploiement de solutions.net B. Le FrameWork.NET Le FrameWork.NET est un grand environnement d exécution d application. Il est distribué gratuitement, sur toutes les versions de Windows depuis Windows 95, dans le but de concurrencer son grand rival le JDK* Java (Java Development Kit). J ai utilisée la version du.net framework 1.1. Les différents composants de l architecture.net sont les suivants : Création d outils d intégration de données Page 11/45

Les fonctionnalités systèmes de.net peuvent être regroupées en deux ensembles principaux : Le CLR (Common language Runtime) : Il s agit du moteur d exécution des applications de l infrastructure.net. Le CLR Ramasse-miettes* (Garbage Collector GC) Méta données* Assemblages* Compilateur JIT (Just-In-Time) Les 27 langages de programmation supportés par.net fonctionnent tous de la manière suivante : Le code source est d abord compilé dans un langage assembleur évolué pour.net communément appelé Intermediate Language* (IL), puis le compilateur* JIT convertit le programme d IL en code natif*. La BCL (Base Class Library) La bibliothèque BCL est une bibliothèque d objets et de composants de base accessibles par le CLR. C est grâce aux composants de cette bibliothèque, conçue hiérarchiquement dans un espace de nom* appelé «Sytem», qu il est possible d écrire rapidement des programmes faisant appel à des bases de données ou bien faisant des accès réseau. C. Visual Studio Visual Studio est un environnement de développement intégré (IDE). Il permet le développement d applications Windows et à destination du Web dans le même environnement. Il intègre, entre autre, le nouveau langage C#, le Visual Basic et le C++. Pour ma part, je me suis intéressée aux applications Windows Forms en Visual Basic puisque c est ce type d application qui est développé au sein du service. Création d outils d intégration de données Page 12/45

L ensemble des fenêtres disponibles lors de la conception d une application sont les suivantes : 1 3 2 4 Figure 1 - Visual Studio 1 Fenêtre de Menu de Visual Studio 2 Cette fenêtre contient la boîte à outils permettant d insérer divers contrôles ou composants graphiques préconçus. 3 Editeur de code 4 L'Explorateur de solutions offre une vue organisée des projets et de leurs fichiers, ainsi qu'un accès aux commandes qui s'y rapportent. D. Visual Basic.NET Visual basic est un langage de programmation orienté objet, il a été conçu pour être facile à apprendre et à utiliser. Le langage permet de créer des applications graphiques de façon simple, mais également de créer des applications véritablement complexes. Programmer en VB est un mélange de plusieurs tâches, comme disposer visuellement les composants et contrôles sur les formulaires, définir les propriétés et les actions associées à ces composants, et enfin ajouter du code pour ajouter des fonctionnalités. Comme les attributs et les actions reçoivent des valeurs par défaut, il est possible de créer un programme simple sans que le programmeur ait à écrire de nombreuses lignes de code. J ai donc appris les fonctionnalités de ce langage en réalisant de petits travaux lors de mon auto-formation. Je me suis rapidement Création d outils d intégration de données Page 13/45

rendue compte que VB.NET s approche du langage Java dont j ai pu avoir un aperçu lors de cette année de licence professionnelle. E. SQL SERVER 2000 La base de données Microsoft SQL Server 2000 est une solution de Système de Gestion de Base de Données (SGBD)* robuste et puissante. Le serveur SQL Server 2000 se compose principalement de : Entreprise Manager : Interface graphique de SQL Server pour les tâches de création et d administration des bases de données. L'Analyseur de Requête, pratique pour faire des requêtes et accéder aux outils d optimisation SQL. Le Gestionnaire des services SQL Serveur, qui permet de paramétrer le comportement des différents services. A savoir principalement le Serveur SQL, et l agent SQL Serveur (Ce dernier étant un service autonome pour les sauvegardes planifiées). Les fichiers physiques, où sont stockées les données. F. Le P.G.I. Dans toutes entreprises, l accès à l information de manière simple et intuitive est primordial. Ainsi, depuis Quatre ans M. PERNIN se consacre au développement d un logiciel de gestion spécifique permettant d avoir un outil à l image de l entreprise. Son nom est : P.G.I (Progiciel de Gestion Intégré). Ce logiciel est basé sur les différents thèmes qui font le quotidien de l entreprise Module Commercial : permet de gérer les relations commerciales avec la clientèle. Exemples des fonctions implémentées : Création/Modification/Suppression de Prospect et de client Gestion de projets commerciaux Création de devis Création d outils d intégration de données Page 14/45

Module Maintenance : permet la gestion des contrats d entretiens Exemples des fonctions implémentées : Gestion des différents sites et secteurs de la clientèle Gestion de notre parc d appareils sous contrats Gestion des calendriers des techniciens de maintenances Création de la facturation Liaisons avec un logiciel de Comptabilité Gestion des impressions sous Crystal Report XI Module Service Après Vente : permet la gestion des différents dépannages demandés par la clientèle. Exemples des fonctions implémentées : Gestion des différents sites et secteurs de la clientèle Gestion de dossier intervention et des fiches d interventions Gestion des demandes de petits travaux Saisie des rapports d interventions Création de devis Création de la facturation externe et interne Création de commandes fournisseurs Liaison avec notre applicatif magasin Liaisons avec un logiciel de Comptabilité Gestion des calendriers des techniciens du SAV Gestion des impressions sous Crystal Report XI Module Administratif : permet de régenter la partie sociale et financière de l entreprise Ce module est découpé en sous catégorie : Création d outils d intégration de données Page 15/45

Intérims Exemples des fonctions implémentées : Gestion des intérims Gestion des missions intérimaires (Nouvelle Mission, Prolongation, Fin de mission) Gestion des qualifications Evaluation des intérims Salarié Exemples des fonctions implémentées : Gestion des salariés Gestion des contrats de travail (Nouveau contrat, avenant, fin contrat) Gestion des qualifications Gestion des contingents des 35 heures Saisie des heures Gestion des informations financières (Primes, retenues salaire, ) Préparation à la paie Liaison entre PGI et les cabinets en charge des Paies «PROCOMPTA» Module Travaux : permet la gestion du magasin. En projet pour 2008 Module Atelier : permet la gestion du magasin. En projet pour 2008 Création d outils d intégration de données Page 16/45

IV. Missions accomplies Mon rôle de stagiaire était tout d abord de «m immerger» dans le projet P.G.I. et de réaliser différents développements afin de pourvoir l application de nouvelles fonctionnalités ou de nouveaux modules. Les deux missions qui m ont été confiées s inscrivent dans les Modules «Maintenance» et «Service» pour le développement de la passerelle Comptable et dans le module «Administratif» pour l outil de collaboration avec PRO COMPTA. A. PROJET N 1 : P.G.I. PASSERELLE COMPTABLE 1. Le cahier des charges a) Les besoins L entreprise doit prochainement changer de logiciel de comptabilité car, celui utilisé actuellement, fait partie de l application BATIGEST, qui est progressivement remplacée par le nouveau logiciel de gestion : P.G.I. Il y a donc une nécessité de concevoir une passerelle entre le logiciel spécifique P.G.I. et le nouveau logiciel de comptabilité de QUADRATUS. Le P.G.I. contient toutes les données des factures réalisées par l entreprise. Ainsi, l utilisation d un pont est nécessaire pour l intégration de ces données, qui doivent être traitées par le service Comptabilité. Ce transfert aura lieu toutes les semaines. b) Les connaissances requises Au préalable, il est nécessaire d avoir acquis, des compétences en ce qui concerne les SGBD, le langage SQL ainsi que l environnement de développement Visual Studio et le langage de programmation VB.NET. De plus, Il faudra prendre connaissance des normes de développement utilisées par le service informatique car toutes les applications sont créées selon un même schéma. Ensuite il faudra se familiariser avec le sujet et avec la base de données existante afin d avoir une vision globale de ce qui est demandé. Les principales caractéristiques à respecter sont : Les masques de saisie des fichiers à importer dans QUADRATUS Déterminer quelles sont les tables qui contiennent valeurs à affecter aux différents champs du masque de saisie du fichier comptable Etablir une documentation complète de l application Création d outils d intégration de données Page 17/45

c) Le déroulement du projet Le développement de l application se déroulera en trois étapes : Première étape : Créer une vue pour ne récupérer que les données utiles au projet Deuxième étape : Traiter et stocker dans un fichier texte, les données, en fonction du masque de saisie et des renseignements fournis par l équipe de QUADRATUS. Troisième étape : Garder une trace des factures que l on transfère dans le nouveau logiciel comptable. Garder une trace du déroulement l application (Fichier de logs). Cet applicatif devra être exécuté automatiquement toutes les semaines. D autres parts, il faut que l on puisse visualiser, si besoin, le déroulement des différentes étapes définies cidessus. Création d outils d intégration de données Page 18/45

2. Etude et analyse a) Prise de connaissance Pour commencer, j ai entamé une réflexion sur le sujet qui a abouti à une schématisation du déroulement de l application. Tables VUE Contenant les données nécessaires à la création du masque de saisie Visualisation PROGRAMME Traitement des données Fichiers Texte Quadratus + Logs Tables De transfert Création d outils d intégration de données Page 19/45

Grace au schéma précédent on peut remarquer que le but du système est de créer deux fichiers texte correspondant aux masques imposés par Quadratus (voir Annexe 2.1 et 2.2 : Masques de saisie - page 5 et 6). Ces deux fichiers contiennent respectivement deux types d enregistrement différents : Les comptes Les écritures comptables Mon tuteur de stage a orienté mes recherches dans la base de données existantes, en me donnant les noms des trois principales tables concernées par le projet : TABLE «Facture» : Contenant toutes les factures réalisées selon les devis proposés au client. TABLE «FactureContrat» : Contenant toutes les factures concernant les contrats de maintenance. TABLE «FactureSAV» : Contenant toutes les factures réalisées pour des services après vente. Ces trois tables ne sont pas épurées. En effet, chaque nouvelle facture créée est ajoutée à la table correspondante. Elles contiennent donc, chacune, les factures de l année. Il est alors nécessaire, après chaque lancement du programme, d exclure les factures que l on vient de transférer pour qu elles ne soient pas traitées lors de la prochaine exécution. C est pourquoi j ai créé les tables «TransfertCompta» et «TransfertComptaFacture». Ainsi, les numéros des factures sont sauvegardés, et on peut les omettre de la vue. b) Modèle Conceptuel de données Le modèle conceptuel des données (MCD) a pour but d'écrire de façon formelle les données qui seront utilisées par le système. Il s'agit donc d'une représentation des données, facilement compréhensible, permettant de décrire le système d'information à l'aide d'entités. Une entité est la représentation d'un élément matériel ou immatériel ayant un rôle dans le système que l'on désire décrire. Les tables utilisées pour le projet sont représentées dans l Annexe 2.3 : MCD - page 7. Après avoir analysé et établi le fonctionnement complet du système à réaliser, je me suis intéressée à la partie technique du projet. Création d outils d intégration de données Page 20/45

3. Aspect technique a) Création des vues et procédures Après avoir répertorié tous les champs nécessaires à l application (voir Annexe 2.4 : Renseignement des champs - page 8), je me suis intéressée à la récupération de ces données. J ai opté pour la création de vues dans le but de récupérer uniquement les données qui doivent être transférées dans le logiciel comptable (cela est plus pratique, vu que, les champs à utiliser sont répartis dans plusieurs tables). Ainsi je gère la sélection des données en amont du programme, de ce fait, je n ai pas à traiter l accès à toutes ses tables dans le programme. Il faut savoir qu une vue est une requête stockée qui se base sur une ou plusieurs tables. Elle ne stocke aucune donnée propre mais elle peut être utilisée comme n'importe quelle table dans une requête «select», «update», «Insert» Pour les créations des vues et les tables j ai utilisé les outils «Entreprise Manager» et «L'Analyseur de Requête» fournis avec Microsoft SQL Server 2000 et définis plus haut. Ces deux outils sont relativement simples d utilisation. (1) Mouvements et écritures comptables Il s agit de stocker les mouvements/écritures comptables. Pour cela, je sélectionne chaque ligne des trois tables contenant les factures. Il faut savoir que chaque enregistrement de la vue est constitué d un numéro de facture unique. Ma vue se nomme : View_FactureCompta Cette requête est relativement complexe car je dois sélectionner les factures contenues dans trois tables différentes (voir Annexe 2.5.1 : Vue View_FactureCompta - page 11). Afin de pouvoir créer toutes les lignes de factures dans la vue, j utilise l opérateur SQL «UNION» qui, comme son nom l indique, réalise l'union des résultats de plusieurs requêtes ayant les mêmes attributs. Ensuite, pour chaque table je sélectionne les données nécessaires en utilisant les relations qui existent entre elles. A savoir, le fonctionnement est le même pour les trois tables je n expliquerai donc que la gestion de la table Facture, ci-dessous. Création d outils d intégration de données Page 21/45

Voici les tables et les données sélectionnées pour les factures Clients : Pour me déplacer dans le modèle ci-dessus je créé des relations entre les tables avec les clauses «INNER JOIN*» ou «LEFT JOIN*» [1] soit pour avoir une correspondance entre les lignes soit pour avoir une exclusion de certaines autres (ex : factures déjà transférées et sauvegardées dans la table TransfertComptaFacture) J ai aussi besoin de calculer (à partir du montant HT de la table facture et du taux de TVA de la table TAV) les montants TVA et TTC, car, une facture créée, produit trois enregistrements comptables, dans trois comptes différents. Voici un exemple : Facture n 30181 Montant HT : 100 euros impacté dans le compte n 70401000 Montant TTC : 120 euros impacté dans le compte n 01000002 Montant TVA : 20 euros impacté dans le compte n 44571100 Création d outils d intégration de données Page 22/45

Les montants sont calculés selon le taux de tva et le tout est créé sur une seule ligne dans la vue. (2) Les comptes Dans un deuxième temps, il s agit de stocker dans une autre vue, tous les comptes qui ont été mouvementés. Pour cela, j utiliserai une vue déjà existante nommée V_Client. (voir Annexe 2.5.2 : Vue V_Client - page 15). Voici les tables et les données utilisées dans mon application pour créer les lignes de compte : Création d outils d intégration de données Page 23/45

b) Gestion des tables de transfert Pour pouvoir stocker les factures j ai créé les tables «TransfertCompta» et «TransfertComptaFacture» (voir Annexe 2.5.3 : Tables de transfert - page 16). La première, contient la date du transfert avec un numéro de transfert, nommé : «IdTransfertCompta». La deuxième, stocke toutes les factures pour ce même transfert. C est à ce moment, que j ai procédé à l élaboration de procédures stockées qui me permettront de sauvegarder tous les enregistrements comptables déjà transférés» (voir Annexe 2.5.4 : Procédures stockées - page 17). Je rappelle qu une procédure stockée est une suite d'instructions qui vont avoir des effets sur la base de données ou qui renvoient des valeurs. Elle peut prendre des paramètres en entrée et/ou en retourner. Les principaux avantages de l'utilisation des procédures stockées sont : la sécurité accrue, la réutilisation et la mise à jour des données de la base par l intermédiaire de paramètres. Ces procédures seront utilisées par les classes «Métier» de mon application. Ce type de classe est défini dans le paragraphe suivant. c) Le développement (1) Généralités Pour la programmation en VB.NET, je me suis appuyée sur la structure prédéfinie dans les normes de développements du service» (voir Annexe 2.6 : Normes de développement - page 18). A partir de ces informations et de celles recueillies sur Internet au fur et à mesure de mon avancement [2] [3], j ai créé différents formulaires et différentes classes. Pour développer une application en VB.NET il faut d abord créer une solution dans l IDE Visual Studio. Ensuite, on créé autant de projet que nécessaire. Chaque projet peut utiliser des classes et/ou des formulaires (autrement appelés «Windows Forms»). Les classes : Il faut bien différencier les classes dites, «Métiers», commençant obligatoirement par «M_NomDeLaClasse», des classes «Normales», commençant par «C_NomDeLaClasse». Ces dernières sont utilisées pour créer des objets en utilisant des propriétés*, des méthodes* et des événements* (voir Annexe 2.7.2 : Classes - page 27), alors que les classes «Métier» contiennent les instructions nécessaires à la connexion avec la base de données (voir Annexe 2.7.3 : Classes «Métiers» - page 28). Cette connexion s effectue par l import de la DLL* «Microsoft.applicationBlocks.Data,». Ce composant permet l exécution d instructions SQL et de procédures pour sélectionner, modifier ou ajouter des enregistrements dans la base. Il sera détaillé dans la suite du rapport dans la partie «Accès aux données». Création d outils d intégration de données Page 24/45

Les formulaires : Tous les formulaires doivent porter un nom débutant par «XFormNomDuFormulaire». Pour chaque formulaire créé une fenêtre "Form1" apparaît. Cette fenêtre possède des propriétés qui peuvent être modifiées en mode design ou directement dans le code. Figure 2 Classe Form1 Quand on regarde le code on voit : que cette nouvelle classe hérite de «System.Windows.Forms.Form» que du code a été généré automatiquement par le concepteur Windows Forms. Dans ce code, comme pour toute classe, il y a un constructeur (Sub New), un destructeur (Sub Dispose) et le code pour créer les contrôles contenus dans le formulaire. les procédures liées aux évènements. C est à partir de ce code auto-généré que j ai débuté mon développement. Ainsi, j ai pu insérer par l intermédiaire de l interface graphique, des boutons ou autres contrôles qui seront automatiquement insérés dans le code (comme la fonction «Button1_Click» défini dans l image ci-dessus), me permettant d exécuter mes propres procédures de codage. Pour créer un véritable «objet formulaire» il faut créer une instance de la Class Form1 : Dim f As New Form1(). Je dois dire que je ne me suis pas véritablement occupée de la présentation graphique des formulaires car ceux-ci ne seront utilisés que par l informaticien pour visualiser le déroulement du programme. Je me suis donc concentrée sur l aspect Technique.. Tous les codes de l application sont contenus dans l Annexe 2.7 : Code de l application page - 26. Création d outils d intégration de données Page 25/45

Pour permettre une vue générale de l ensemble des différentes classes et formulaires développés, j ai réalisé le synoptique du Projet : Synoptique PGI - PASSERELLE COMPTA ENTREE Base de données Facture FactureContrat FactureSav Tva Secteur DossierInternentionSAV ClientSiteRelation HistoriqueFacture TransfertComptaFacture V_Client View_FactureCompta TRANSFORMATION Package ré-utilisable - approche optimisée pour diminuer le code redondant Exemple : accès aux données Métier - Code servant à communiquer avec la BD IHM - Interface Homme Machine Formulaires Classe - Traitement des données Microsoft.ApplicationBlocks.Data Microsoft.ApplicationBlocks.Data M_Compte M_Facture M_TransfertCompta M_TransfertComptaFacture X_FormMenu X_FormCompte X_FormMouvement C_QuadraCompte C_QuadraMouvement C_TransfertCompte C_TransfertMouvement SORTIE Fichier Fichier texte Fichier de log * 2 TransfertCompta TransfertComptaFacture Base de données Création d outils d intégration de données Page 26/45

(2) Les fichiers textes Pour écrire dans un fichier texte, j ai travaillé avec l'espace de noms* «System.IO» du FrameWork [2] [4]. «System.IO» met à notre disposition les classes «StreamReader» et «StreamWriter» qui permettent de lire ou écrire dans un fichier en utilisant un flux de données (Stream). Le Stream (flux, torrent, courant) est une notion générale, c'est donc un flux de données provenant ou allant vers un fichier. Pour écrire dans un fichier texte, il faut instancier un objet de la classe «StreamWriter». Puis, on écrit avec «Write» ou «WriteLine» (ajoute un saut de ligne), et enfin on ferme avec «Close». Voici un exemple de code utilisant les «StreamWriter» et faisant partie de mon application : #Region "Imports" Imports System.IO #End Region 'Ecriture du fichier texte à partir des données traitées dans la méthode 'Traitement" Public Overrides Sub WriteFile() 'Passage du nom du fichier au StreamWriter Dim NomFichier As String = ToString.Concat(Date.Now.ToString("yy-MMdd-HHmmss"), "-Mouvement.txt") Dim Fichier As String Fichier = ToString.Concat("D:\Temporaire\TestPGICompta\", NomFichier) _monstreamwriter = New StreamWriter(Fichier, False) 'Suivi du transfert dans le fichier de log _FichierLog.WriteLine(ToString.Concat(" Fichier ", NomFichier, " créé")) Dim _Enregistrement As String 'Lire chaque ligne de la liste _AlFacture For Each _Obj As Object In _Alist Next Dim s As C_QuadraMouvement = CType(_Obj, C_QuadraMouvement) 'Création de la ligne d'enregistrement avec les attributs de l'objet C_QuadraMouvement _Enregistrement = s.type _Enregistrement += s.numerocompte _Enregistrement += s.codejournal2 _Enregistrement += s.numfolio _Enregistrement += s.dateecriture 'Ecriture de la ligne dans le fichier _monstreamwriter.writeline(_enregistrement) 'Fermer le fichier _monstreamwriter.close() End Sub Création d outils d intégration de données Page 27/45

Le contenu des fichiers textes «Mouvement», «Compte» et «logs» est visible dans l Annexe 2.8 : Fichier textes - page 31 à 33. (3) L accès aux données C est par l intermédiaire du bloc applicatif : Microsoft.applicationBlocks.Data, que j ai pu travailler sur les données de la base. En effet, ce composant.net encapsule les meilleures pratiques de gestion des ressources et des performances pour accéder aux bases de données Microsoft SQL Server. Il peut être utilisé facilement comme un bloc de construction dans n importe quelle application.net. Plus précisément, Data Access Application Block m a permis d'effectuer les opérations suivantes : Appeler des procédures stockées ou des commandes de texte SQL. Spécifier les détails relatifs aux paramètres. Exécuter des commandes avec la classe SqlHelper J ai utilisé différentes méthodes de la classe SqlHelper telles que : ExecuteNonQuery Cette méthode est utilisée pour exécuter des commandes qui ne renvoient aucune rangée ni valeur. Elle est généralement utilisée pour exécuter des mises à jour de base de données, mais elle permet également de renvoyer les paramètres de sortie de procédures stockées (voir Annexe 2.7.3 : Classe «Métiers» - page 28 - M_TransfertComptaFacture - Region "INSERT"). ExecuteScalar Cette méthode renvoie une valeur unique. La valeur correspond toujours à la première colonne de la première rangée renvoyée par la commande (voir Annexe 2.7.3 : Classe «Métiers» - page 28 - M_TransfertCompta). ExecuteDataTable Cette méthode retourne le résultat d une requête SQL dans une DataTable Voici l exemple de la clase Métier «M_Compte» créée pour récupérer les données «Compte» nécessaires au programme. #Region "Imports" Imports Microsoft.ApplicationBlocks.Data Imports System.Data.SqlClient #End Region Création d outils d intégration de données Page 28/45

Public Class M_Compte #Region "SELECT" 'Fonction permettant de Sélectionner toutes les données de la vue V_Client Public Overloads Function Selection() As DataTable Dim requete As String 'Recherche de tous les comptes mouvementés '(Récup de toutes les données de la vue V_Client avec le champ 'Prospect client = 0 dont les Numéro de compte 'sont dans la vue View_FactureCompta) requete = "SELECT" requete += " DISTINCT c.nom, c.adresse, c.cp, c.ville, c.compte" requete += " FROM" requete += " dbo.view_facturecompta f" requete += " INNER JOIN dbo.v_client c" requete += " on f.numerocompte = c.compte and c.prospectclient = 0" Return SqlHelper.ExecuteDataTable(_StringConnexion, CommandType.Text, requete) End Function #End Region End Class Pour récupérer les données contenues dans la DataTable, il suffit de déclencher la méthode «Selection ()» de la classe «M_Compte» par : Dim M_Compte As New M_Compte Dim _Dt As DataTable _Dt = M_Compte.Selection Puis, il n y a plus qu à parcourir les lignes : For Each _Dr As DataRow In _Dt.Rows Next 'Accès aux valeurs des champs par : Dim _Champs1 As String = Convert.ToString(_Dr("NomDuChamps")) Ainsi, la manipulation des données est simple, aisée et intuitive. (4) Tests Au fur et à mesure du développement, j ai procédé à différents tests. Je validais étape par étape le traitement effectué sur les données via les formulaires de visualisation. Puis, une fois le traitement testé, j ai inscrit toutes les lignes des DataTables dans leur fichier texte respectif. Enfin, pour clôturer les tests et m assurer que les fichiers correspondaient bien aux Création d outils d intégration de données Page 29/45

masques de saisies fournis par QUADRATUS, j ai importé manuellement ces fichiers depuis le logiciel QUADRACOMPTA. Le déroulement de cette validation est décrit dans l Annexe 2.9 : Import dans QUADRACOMPTA - page 34. d) Utilisation, exécution et déploiement Utilisation Une documentation complète du logiciel a été réalisée par mes soins (voir Annexe 2 : Projet PGI - Passerelle comptable - page 3 à 53). Cette documentation inclut un manuel d utilisation composé d impressions écrans commentant le déroulement du projet en mode «IHM» (voir Annexe 2.10 : Manuel d utilisation - page 41 à 52). Exécution et déploiement Figure 3 Explorateur de solution L application intitulée «P.G.I. Passerelle Compta» est visible dans la fenêtre «Explorateur de Solution» de l IDE. Cette application/solution comporte trois projets : «Microsoft.ApplicationBlock.Data», «P.G.I. Compta» et «P.G.I. GatewayCompta». Création d outils d intégration de données Page 30/45

Le projet «P.G.I. - GatewayCompta» est défini comme le projet de démarrage de l application. Les deux autres sont définis en tant que «Bibliothèque de classe» et sont insérés comme «Références» dans le projet de démarrage. De ce fait, leurs composants peuvent être utilisés dans ce même projet de démarrage. Il me semble intéressant d expliciter la manière dont s exécute le programme. C est pourquoi je vais entrer dans les détails du projet «P.G.I. GatewayCompta» en commentant l impression écran de la classe «Demarrage» présenté ci-dessous : Namespace Demarrage '<summary> 'Launcher for the application '</summary> Public NotInheritable Class Launcher Private Sub New() End Sub <STAThread()> _ Public Shared Sub Main(ByVal args() As String) 'Implementation de l'evenment pour gérer les exceptions AddHandler Application.ThreadException, AddressOf Application_ThreadException If args.length > 0 Then Else End Sub End If 'Lancement par IHM If args(0) = "IHM" Then Application.Run(New xformmenu) End If 'Lancement (automatique) Création du fichier des Comptes à transférer sous Quadratus Dim c As New C_TransfertCompte c.transfertautomatique() 'Création du fichier des Mouvements à transférer sous Quadratus Dim m As New C_TransfertMouvement m.transfertautomatique() 'Gestion des exceptions non gérer dans l'application Private Shared Sub Application_ThreadException(ByVal sender As Object, ByVal e As System.Threading.ThreadExceptionEventArgs) 'Saisir ici le code pour gérer les exceptions levé End Sub End Class End Namespace Création d outils d intégration de données Page 31/45

C est la méthode «Main» qui, dans tous les cas, est appelée lors du lancement de l application. Cette méthode accepte des arguments en entrée. Si, un argument est saisi et que c est «IHM» alors je procède à l exécution manuelle sinon c est qu il n y a aucun argument mentionné en entrée de la méthode et dans ce cas, la longueur de l argument est à zéro, donc, je lance le transfert comptable en automatique. Il existe deux manières de démarrer le programme : - Le mode «Manuel» déclenché par l instruction : Application.Run(New xformmenu) qui démarre l' application en affichant une instance de xformmenu. - Le mode «Automatique» qui déclenche les méthodes gérant l intégration des données dans les fichiers texte. L exécutable généré lors de la compilation de l application sera utilisé pour le lancer le mode Automatique. Un «click» sur l exécutable appelle la méthode «Main» sans arguments. Pour le lancement manuel, il est nécessaire de créer un fichier texte dans lequel on appelle le projet de démarrage avec le paramètre «IHM». Le fichier texte contient donc : PGI-GatewayCompta IHM Ensuite, il suffit d enregistrer ce fichier «.txt» en «.bat». Ainsi, en un «click» on peut déclencher le mode «manuel». En ce qui concerne le déploiement de l application, rien n est encore défini. La mise en place sur le serveur est prévue pour la fin du mois de juin et le programme devrait s exécuter par l intermédiaire d une tâche planifiée. e) Les problèmes rencontrés Voici les difficultés principales rencontrées lors de mon travail : Au départ, j avais peu de connaissance du langage. J ai donc fait beaucoup de recherches sur Internet et dans les différents livres, mis à ma disposition et mentionnées dans la partie «Bibliographie». C est pourquoi la réalisation de ce projet a été plus longue que celle du deuxième. En fait, ce premier travail qui me fut confié au sein de l entreprise, m a permis de m habituer aux différents logiciels et méthodes de travail. Complexité de la vue «View_FactureCompta», combinant différentes clauses tels que «WHERE», «UNION», «INNER JOIN», «LEFT JOIN» et comportant certains calculs comme par exemple celui du montant TTC arrondi. Création d outils d intégration de données Page 32/45

Plusieurs questions relatives au masque de saisie et à l import des données sous QUADRACOMPTA, se sont posées durant la programmation (voir Annexe 2.11 : Questions destinées à QUADRATUS - page 53). Un entretien téléphonique avec M. MAYER (responsable Développement de la société QUADRATUS) a été nécessaire pour pouvoir avancer dans le projet. Création d outils d intégration de données Page 33/45

B. PROJET N 2 : P.G.I. GESTION DE LA PAIE Ce projet sera traité de façon moins exhaustive que celui développé ci-dessus, du fait de la similitude de certaines parties telles que : les connaissances requises, le déroulement du développement, les normes de codage et l accès aux données. L explication de cette mission sera donc plus succincte et s attachera à présenter la complexité des calculs et l injection de ceux-ci dans un fichier Excel. 1. Le cahier des charges Actuellement la gestion des fiches de paies est sous traitée par un organisme extérieur nommé PROCOMPTA. Tous les mois, les chiffres nécessaires à l édification de la paie des différents salariés de l entreprise sont fournis à l organisme sous format papier (voir Annexe 3.1 : Exemple de décompte mensuel - page 55). Ces chiffres sont ensuite saisis manuellement, dans un fichier EXCEL, par le responsable des paies de PROCOMPTA. Ce travail devient pour eux fastidieux et rébarbatif. C est pourquoi, une demande d automatisation a été formulée auprès des Etablissements PALISSOT. L objet de ce projet est donc de procéder à l extraction et au calcul des données injectées dans les fiches de paies, puis de les transmettre à PROCOMPTA, dans un fichier EXCEL, dans un format préconçu. Les principales caractéristiques à respecter sont : Les champs et positions des 4 feuilles contenues dans le fichier EXCEL PROCOMPTA (voir Annexe 3.2 : Masque du fichier Excel - page 59). Déterminer par quelles formules de calcul les champs doivent être renseignés Permettre une visualisation des calculs effectués Etablir une documentation complète de l application 2. Les calculs Les champs à créer sont presque tous renseignés par des valeurs calculées qui ne sont évidemment pas stockées. Sébastien PERNIN avait déjà effectué ces calculs en utilisant des vues, sous CRYSTAL REPORT* pour l édition du relevé mensuel des paies transmis à PROCOMPTA. Dans un premier temps, j ai passé en revue tous les champs et j ai établi les formules de calcul, aidée de M. PERNIN. Je n ai pas utilisé de vue. Tous les calculs sont effectués par des requêtes SQL contenues dans des classes Métiers (voir Annexe 3.5.3 : Classes «Métiers» - page 74). J ai effectué ce choix car ainsi, toutes les méthodes de calcul sont facilement identifiables et déchiffrables, on sait clairement quelles sont les tables et les champs impactés. De plus on pourra facilement réutiliser les requêtes. C est seulement à la suite de ce travail que j ai pu lister les tables et les champs utilisés et établir ainsi le MCD (voir Annexe 3.3 : MCD - page 63). Création d outils d intégration de données Page 34/45

3. Tests Il a fallu dans un deuxième temps, vérifier que toutes les valeurs calculées correspondaient bien au décompte mensuel sous Crystal Report. J ai alors édité le décompte de l année 2007 pour tous les salariés. De ce fait, j avais un jeu d essai complet et représentatif de l existant. Pour vérifier mes données, j ai pointé tous les éléments un par un et je rectifiais mes calculs si besoin. 4. Fichier EXCEL Une fois le contenu des champs validé, la question était : Comment Piloter l'application Office Excel à distance, à partir de Visual Basic? C est à ce moment là, que j ai appréhendé de nombreux aspects de l automation d Excel, avec la gestion des ouvertures et fermetures de fichiers, l export de données et aussi la mise en page et le formatage de ces données. L automation permet d effectuer par programmation, la quasi-totalité des opérations que l on peut effectuer par le biais de l interface utilisateur de certaines applications comme la suite Office. Des logiciels tels que WORD et EXCEL fournissent cette fonctionnalité d automation par le biais d un modèle objet ou objet COM. Un modèle objet étant une collection de classes et de méthodes qui correspondent aux composants logiques de l application que l on souhaite piloter. De nombreuses définitions, plus ou moins techniques, de l objet COM existent, on peut alors aussi définir COM comme un «fournisseur d objets précompilés, qui grâce à une bibliothèque de type qui lui est associée, peut être utilisé dans de nombreux langages dont les types ne sont pas forcément compatibles. L accès à ces objets COM de la suite Office à partir du langage VB.NET se fait par l ajout d une référence/librairie à mon projet de développement. J ai trouvé toutes les réponses à mes questions concernant le sujet sur Internet [2]. C est donc en récupérant des «bouts» de code sur le NET et en tâtonnant que je suis parvenue, petit à petit, à gérer le pilotage Excel. Création d outils d intégration de données Page 35/45

Tout d'abord pour pouvoir utiliser Excel et accéder aux fonctionnalités de cette application Office, j ai dû ajouter la référence «Interop.Excel» dans mon projet «paie». Figure 4 Références C est dans la classe intitulée «C_PilotageExcel» que j ai géré les fonctions d'ouverture et de fermeture d'excel lui-même, ainsi que la création de classeur (workbooks) et des feuilles (worksheets) (voir Annexe 3.5.2 : Classes - page 73 - C_PilotageExcel). Pour finir, je dois noter que l important dans ce type de manipulation est de fermer proprement l application Excel : excelbook.saveas(_excelfiles) 'on sauvegarde le classeur excelbook.close() 'Fermeture du classeur Excel excelapp.quit() 'Fermeture de l'application Excel 'Désallocation mémoire excelbook = Nothing excelapp = Nothing Création d outils d intégration de données Page 36/45

5. Utilisation et exécution La documentation complète d utilisation de l application en mode «IHM» est disponible dans l Annexe 3 : Projet PGI Collaboration Paie page 54 à 77. Un manuel d utilisation composé d impressions écrans commentant le déroulement du projet en mode «IHM» est présenté dans l Annexe 3.4 : Manuel d utilisation - page 64 à 71). On peut remarquer que l application s exécute de la même manière que le projet PGI PASSERELLE COMPTABLE (voir Annexe 3.5.1 : Classe de démarrage - page 72). C est toujours la méthode «Main», de la classe Demarrage contenue dans le projet PGI- GatewayPROCOMPTA permet de lancer l application, à quelques exceptions près : Argument : IHM pour le mode «Manuel» Dans ce cas, c est le fichier de commande «PGI-GatewayPROCOMPTA(IHM).bat» qui permet de lancer le programme en mode manuel. Pour cela, il suffit de passer comme argument à la méthode «Main» (de la classe «Démarrer» du projet «PGI- GatewayPROCOMPTA» défini comme projet de démarrage de l application) l argument IHM : Le fichier contient : PGI-GatewayPROCOMPTA IHM Celui-ci permet de visualiser toutes les données «paies» de tous les salariés par l intermédiaire de différents écrans avant de les injecter dans le fichier EXCEL ; Argument : AUTO pour le mode «Automatique» Ici, c est le fichier PGI-GatewayPROCOMPTA(Auto).bat qui lance le mode Automatique avec 4 arguments en entrée. Le fichier contient : PGI-GatewayPROCOMPTA AUTO -1 01/01/2008 01/02/2008 L argument «AUTO» représente le mode automatique L argument «-1» représente la sélection de tous les salariés. On peut le remplacer par un numéro de salarie quelconque afin d obtenir dans un fichier EXCEL uniquement les données le concernant. L argument «01/01/2008» représente la date de début de période de paie. L argument «01/02/2008» représente la date de fin de période de paie. Attention!!! Le jour de la date de fin n est pas inclus dans la sélection. Dans l exemple précédent pour extraire les données à partir du 01/01/2007 inclus jusqu au 31/12/2007 inclus, la date de début doit être 01/01/2007 et la date de fin 01/01/2008. Création d outils d intégration de données Page 37/45

Les 3 derniers arguments sont donc des filtres permettant de sélectionner les données nécessaires à l établissement de la fiche de paie d un salarie (ou de tous les salariés) entre deux dates données. Le fichier Excel produit sera envoyé manuellement, par mail, une fois par mois, à l organisme PROCOMPTA. 6. Difficultés rencontrées Pour la réalisation de cette mission j ai été confrontée à un problème de temps. J ai donc privilégié le bon fonctionnement du programme à l optimisation du codage et du temps d exécution. C est lors de la création de la feuille comportant les différents types d absences du salarié que j ai rencontré certaines difficultés. En effet, une des demandes de PROCOMPTA était de cumuler le nombre de jours et d heures d absence pour les jours se suivant. Je n ai pas trouvé de solution via SQL, c est pourquoi j ai choisi d effectuer le traitement dans le programme (voir Annexe 3.5.2 : Classes - page 73 - C_DonneeAbsence). J ai donc procédé à une lecture séquentielle de la table contenant les valeurs nécessaires au calcul, en utilisant la boucle «FOR EACH». J ai géré manuellement le stockage du jour précédent le jour en cours (en omettant les dimanches et jours fériés), afin d établir si une continuité existait. Si tel était le cas, alors je cumulais le nombre de jours et d heures avant de stocker ce résultat dans une ArrayList*. Je suis consciente que la lisibilité du code n est pas très aisée. Cependant, le remaniement de ces lignes pourra faire l objet d une mise à niveau ou d un exercice de familiarisation avec le langage VB pour un futur stagiaire. La deuxième difficulté résidait dans la complexité des calculs figurant sur la fiche de paie. Pour faciliter mes requêtes SQL j ai créé des tables temporaires. L Annexe 3.5.3 : Classes «Métiers» - page 74 - M_SocialSuiviPersonnel Région Indemnités de trajet, montre un exemple du calcul des indemnités de trajets effectué sur ce principe. Pour terminer, je dirai que je n ai pas eu de véritable problème, du fait de la documentation riche et abondante sur le sujet. Création d outils d intégration de données Page 38/45

CONCLUSION L intérêt des sujets qui m ont été proposés était de pouvoir découvrir les fonctionnalités de Visual Studio et de VB.NET qui m étaient inconnues à mon arrivée. Du point de vue technique, les travaux que j ai réalisés m ont permis de mettre en pratique et d approfondir les différents acquis de mon cursus tel que l utilisation d un SGBD, l utilisation du langage SQL et d un langage de Programmation Orienté Objet. Mon expérience en Bases De Données s est donc enrichie et j ai pu pleinement approfondir de nombreux domaines de la programmation objet, dans une grande autonomie. Les deux applications créées ont atteint les objectifs définis dans le cahier des charges et les tests passés sont concluants. Il reste à les installer en condition réelle. Cette opération aura lieu à la fin du mois de juin. Il est regrettable que je ne puisse pas participer à la mise en exploitation de ces produits, cela aurait été une expérience intéressante. Ce stage m a donc permis d acquérir des connaissances dans un domaine d actualité et en pleine expansion : les technologies.net. D ailleurs, parler de mon stage m apparaît comme faire part d une expérience enrichissante qui s inscrit entièrement dans l axe de mes objectifs professionnels. Je dresse donc un bilan très positif de l année de licence professionnelle que j ai suivie et je terminerai en disant que je suis pleinement satisfaite de cette période passée à Franche Comté Chauffage ou j ai pu travailler avec des personnes de qualité, dans une ambiance sympathique. Création d outils d intégration de données Page 39/45

WEBOGRAPHIE Programmation Visual Basic.NET [3] http://www.vbfrance.com (du 17-03-2008 au 10-06-2008) [2] http://plasserre.developpez.com/vsommair.htm (du 17-03-2008 au 10-06-2008) [4] http://msdn.microsoft.com (du 17-03-2008 au 10-06-2008) Programmation SQL [1] http://sql.developpez.com/ (du 17-03-2008 au 10-06-2008) Généralités.NET [5] http://www.3ie.fr/nouvelles_technologies/fiche/fiche_net.htm (du 17-03-2008 au 10-06-2008) [6] http://msdn.microsoft.com (du 17-03-2008 au 10-06-2008) Création d outils d intégration de données Page 40/45

BIBLIOGRAPHIE Programmation Visual Basic.NET Titre : Manuel de référence Microsoft ADO. NET Auteurs : David Sceppa ISBN : 2 10 006523 8 Edition : Microsoft Press Collection : Développeur - 720 pages Copyright 2002 by Microsoft Corporation Utilisé du 17-03-2008 au 10-06-2008 Titre : Programmation avec VisualBasic.NET : Travaux pratiques Auteurs : Organisme de formation (Formations professionnelle inter-entreprises dans les domaines informatique, communication, réseaux et management). Note de cours (Classeur fourni par l organisme) Auto-Formation du 10-03-2008 au 18-03-2008 Titre : Visual Basic.NET Auteurs : Gilles NICOT ISBN : 2 7429 2388 5 Edition : Micro Application 1 ère Edition Janvier 2003 Copyright 2003 Utilisé du 17-03-2008 au 10-06-2008 Création d outils d intégration de données Page 41/45

Programmation SQL Titre : SQL Auteur : Ronald R. Plew ISBN : 2744015431 Edition : Campuspress Collection : Le tout en poche - 402 pages Copyright 2002 by Microsoft Corporation Utilisé du 17-03-2008 au 10-06-2008 Création d outils d intégration de données Page 42/45

GLOSSAIRE ArrayList : Une ArrayList, comme son nom l indique est une collection sous forme de liste. On peut y mettre des objets : chaînes, nombres rien n empêche que le premier élément soit un entier, le second une chaîne Il n y a pas de clé. Assembly : Un Assembly est une unité de déploiement indivisible, composé d un ensemble de fichier intégrant des documents, des images, ou des ressources diverses requises pour une application. Code machine natif : Un programme informatique en code natif (ou langage machine) est composé d'instructions directement reconnues par un processeur. Les programmeurs n'écrivent pas de code natif directement, ils rédigent des "programmes sources" en suivant les conventions d'un langage de programmation et la traduction de ces programmes sources en code natif est faite par des programmes COMPILATEUR. Compilateur : En pratique, un compilateur sert le plus souvent à traduire un code source écrit dans un langage de programmation en un autre langage, habituellement un langage machine. Certains compilateurs traduisent un langage source en langage machine virtuel, c'est-à-dire en un code (généralement une suite d'octets) exécuté par une machine virtuelle : un programme émulant les principales fonctionnalités d'un ordinateur. Le portage d'un programme ne requiert ainsi que le portage de la machine virtuelle. C'est le cas du compilateur Java, qui traduit du code Java en bytecode Java (code objet). Une machine virtuelle DotNet peut aussi exécuter du bytecode MSIL produit par les langages de Microsoft C#, Visual Basic ou autres. Crystal Report : Crystal Reports est une solution de «reporting» complète qui permet aux entreprises de créer, gérer et distribuer des rapports via le Web, facilement et rapidement. DLL : Dynamic Linked Library. Modules logiciels chargés en mémoire et utilisés par les programmes. Espace de nom : Les classes sont regroupées en bibliothèques sous la dénomination "Espace de noms". Le but de ces espaces de noms est d'éviter les conflits et ambiguïtés sur les objets. Exemple: deux programmeurs Prog1 et Prog2 distribuent des classes qui sont empaquetées et distribuées respectivement dans les dll, Prog1.dll et Prog2.dll. Les deux programmeurs ont défini une classe nommée PrintText. N'ayant aucune relation, ils l'ont appelée de la même Création d outils d intégration de données Page 43/45

manière!! Si dans un programme incluant les 2 dll, vous utilisez la classe PrintText, VB ne saura pas s'il doit prendre la classe PrintText de Prog1.dll ou celle de Prog2.dll. Si le premier programmeur crée ses classes dans un espace de noms appelé Prog1 et le second programmeur dans un espace de noms appelé prog2, les deux classes s'appelleront alors Prog1.PrintText et Prog2.PrintText, ce qui lève toute ambiguïté. Evénement : Un évènement est déclenché par une action, par exemple «cliquer» sur un bouton. Le langage VB.NET permet de créer, récupérer et traiter un événement. Inner Join : La clause «INNER JOIN» est une jointure interne qui s'effectue entre différentes tables sur les colonnes précisées dans la condition de jointure. Intermediate Language : Les langages de programmation du framework sont compilés dans un langage intermédiaire connu sous le nom de Common Intermediate Language, ou CIL (anciennement connu sous le nom de Microsoft Intermediate Language, ou MSIL). Ce langage n'est pas interprété, mais compilé à la volée : technique visant à améliorer la performance de systèmes bytecodecompilés par la traduction de bytecode en code machine natif au moment de l'exécution. JDK : Le Java Development Kit (couramment abrégé en JDK) est l'environnement dans lequel le code Java est compilé pour être transformé en bytecode afin que la JVM (machine virtuelle de Java) puisse l'interpréter. machine virtuelle. Left Join: La clause «LEFT JOIN» est une jointure externe entre deux tables. La table à gauche de l'expression clef "LEFT JOIN" renvoie des lignes sans correspondance avec la table à droite. Méta données : Informations descriptives des Types et Classes publiques exposées par une application Méthodes : Une méthode est un ensemble d'instructions (de lignes de codes, traitement) associées à un objet et qui effectue quelque chose. Les méthodes sont représentées par des procédures «Sub» ou des fonctions «Function», la différence étant que l une d elle (la dernière) retourne un paramètre. Création d outils d intégration de données Page 44/45

MSIL : Cf. Intermediate Language MySql : MySQL est un système de gestion de base de données (SGDB). Selon le type d'application, sa licence est libre ou propriétaire. Il fait partie des logiciels de gestion de base de données les plus utilisés au monde, autant par le grand public (applications web principalement) que par des professionnels, au même titre que Oracle ou Microsoft SQL Server. Oracle : Oracle est un système de gestion de base de données relationnel (SGBDR) fourni par Oracle Corporation PGI : Progiciel de Gestion Intégré Propriétés : Les propriétés, permettent d accéder aux Attributs/Champs d'un objet, qui sont bien souvent définis comme «Private» (non accessible de l extérieur de la classe). Pour accéder à la valeur de l attribut il faut utiliser une «property» avec un bloc «Get» qui correspond à la lecture de la propriété par l'utilisateur et un bloc «Set» qui correspond à l'écriture de la propriété par l'utilisateur, on récupère la valeur dans le paramètre value. Exemple : 'Propriété Nom Public Property Nom() as String Get Return _mnom End Get Set(By Val Value) _mnom=value End Set End Property Ramasse-miettes : Le ramasse miettes (ou Garbage Collector en anglais) est un système qui est chargé de libérer les espaces mémoire qui sont devenus inutilisables. SGBD : Un Système de Gestion de Base de Données (SGBD) est un ensemble de programmes qui permet la gestion et l'accès à une base de données. Une Base de données est un ensemble de fichiers disque ou mémoire permettant le stockage permanent ou temporaire et l accès à des informations structurées. Création d outils d intégration de données Page 45/45

Stage en Entreprise Effectué par Hélène BONNAVENTURE du 10 mars 2008 au 10 juin 2008 Entreprise : Franche Comté Chauffage (Etablissements PALISSOT) Création d outils d intégration de données RESUME L objectif de mon stage était de mener à bien deux missions. La première, ayant pour but d établir une «passerelle» entre le logiciel spécifique de l entreprise et le nouveau logiciel de comptabilité. La deuxième, permettant le déploiement d un outil de collaboration entre Franche Comté Chauffage et l organisme chargé d édifier les fiches de paie des employés. Ces applications ont un sujet commun : l'intégration de données. Ce sujet consiste à extraire des données, contenues dans le SGBD SQL SERVER, puis à leur appliquer des transformations (jointures, calculs, etc.) et à envoyer les données résultantes vers des systèmes cibles. Les travaux ont été réalisés dans le langage VB.NET, dans l environnement de développement Visual Studio de Microsoft. Ils permettent donc, de découvrir et de s immerger dans le monde des technologies.net. Mots clés : Passerelle : Ici, le terme passerelle est considéré comme un Système logiciel permettant l interaction entre deux environnements différents, en assurant la conversion des informations d'un format à l'autre. VB.NET : langage de programmation orienté objet Technologies.NET :.NET (prononcez «Dotnet») est un standard proposé par la société Microsoft, pour le développement d'applications d'entreprises multi-niveaux, basées sur des composants Microsoft.NET Visual Studio : environnement de développement intégré proposé par Microsoft pour développer des applications conformes aux spécifications de.net. SGBD : Système de Gestion de Base de Données ABSTRACT My Mission consisted in achieving 2 goals. The first one was to create a gateway between the specific software used in the company and the new accounting software. The second one was to implement a collaboration tool between Franche Comté Chauffage and the organism in charge of employees payroll. These tasks get a common point : data integration. It consists in extracting data from Database Management System SQL Server, to transform them (Junctures, Calculation, ) and to send the results to target systems. Tasks were carried out in VB.NET language, in Microsoft Visual Studio development environnement. So, they enable to discover and to dive into.net technologies. Key words : Gateway : This term is here considered as a software system enabling interactions between two differents environnements, ensuring conversion of data from one format to the other. VB.NET : Object-Oriented Programming language.net Technologies : is a Microsoft standard, for development of multi-level applications based on Microsoft.NET compoments. Visual Studio : Microsoft development environnement used to develop application conforming to.net specifications. DBMS : Database Management System