47
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 Année Universitaire : 2007-2008 Licence Professionnelle Informatique CDOAM (Conception et Développement Orientés Objet d’Applications Multi-Tiers) Hélène BONNAVENTURE Tuteur enseignant : M. Bruno TATIBOUET Stage du 10 mars au 10 juin 2008 Tuteur professionnel : M. Sébastien PERNIN

Création d’outils d’intégration de données · Création d’outils d’intégration de données Page 1/45 Remerciements Tout d’abord, je tiens à remercier les enseignants

Embed Size (px)

Citation preview

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 : [email protected]

Année Universitaire : 2007-2008 Licence Professionnelle Informatique CDOAM

(Conception et Développement Orientés Objet d’Applications Multi-Tiers) Hélène BONNAVENTURE Tuteur enseignant : M. Bruno TATIBOUET Stage du 10 mars au 10 juin 2008 Tuteur professionnel : M. Sébastien PERNIN

Création d’outils d’intégration de données Page 1/45

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 2/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 3/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 4/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 5/45

I. Présentation de l’entreprise

L’entreprise « Franche Comté Chauffage » est une Société A Responsabilité L imité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, celle-ci 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 6/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

� Industriels : Centres hospitaliers de Gray et Vesoul Conseil Général du Doubs Lycée : COURNOT, FERTET Entreprise : JARDIMAT– Christine LAURE –BRISARD

� 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 7/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

PALISSOT 01 PALISSOT 02 Windows 2003 Serveur R2 Windows 2003 Serveur Edition Exchange Logiciel TSE Bureautique - Serveur de Fichier PALISSOT 04 WEB Windows 2003 Serveur R2 Windows 2003 Scan Routeur Pro Symantec Norton Corporate (Passerelle photocopieur vers le réseau Passerelle Antivirale + Exchange)

HP ML 350 G3 RAM : 2 go

HP ML 370 RAM : 2,5 go

ACER 1 go

DELL Powerdege 1 go

Création d’outils d’intégration de données Page 8/45

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.

HP ML 350 G5 2 go

HP ML 150

Création d’outils d’intégration de données Page 9/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 10/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 11/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 12/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.

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.

Le CLR

Ramasse-miettes* (Garbage Collector GC)

Méta données*

Assemblages*

Compilateur JIT (Just-In-Time)

Création d’outils d’intégration de données Page 13/45

L’ensemble des fenêtres disponibles lors de la conception d’une application sont les suivantes :

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

2

1

3

4

Création d’outils d’intégration de données Page 14/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 15/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 16/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 17/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 18/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 ci-dessus.

Création d’outils d’intégration de données Page 19/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.

Visualisation

PROGRAMME Traitement des données

VUE Contenant les données

nécessaires à la création du masque de saisie

Tables …

Fichiers Texte

Quadratus + Logs

Tables De transfert

Création d’outils d’intégration de données Page 20/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 21/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 22/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 23/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 24/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 25/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 26/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 :

Base de données

Facture

FactureContrat

FactureSav

Tva

Secteur

DossierInternentionSAV

ClientSiteRelation

HistoriqueFacture

TransfertComptaFacture

View_FactureCompta

ENTREE

Synoptique

PGI - PASSERELLE COMPTA

Microsoft.ApplicationBlocks.Data

TRANSFORMATION

Métier - Code servant à communiquer avec la BD

IHM - Interface Homme Machine – Formulaires

Classe - Traitement des données

M_Compte

M_Facture

M_TransfertCompta

M_TransfertComptaFacture

X_FormMenu

X_FormCompte

X_FormMouvement

C_QuadraCompte

C_QuadraMouvement

C_TransfertCompte

C_TransfertMouvement

Package ré-utilisable - approche optimisée

pour diminuer le code redondant

Exemple : accès aux données Microsoft.ApplicationBlocks.Data

SORTIE

Fichier

Fichier texte

Fichier de log

Base de données

TransfertCompta

TransfertComptaFacture

V_Client

* 2

Création d’outils d’intégration de données Page 27/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 tra ité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-MM-dd-HHmmss"), "-Mouvement.txt") Dim Fichier As String Fichier = ToString.Concat("D:\Temporaire\TestPGICo mpta\", 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 Dim s As C_QuadraMouvement = CType(_Obj, C_QuadraMouvement)

'Création de la ligne d'enregistrement avec les att ributs 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(_Enregistrem ent) Next 'Fermer le fichier _monStreamWriter.Close() End Sub

Création d’outils d’intégration de données Page 28/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 29/45

Public Class M_Compte #Region "SELECT"

'Fonction permettant de Sélectionner toutes les don né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 av ec 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.C P, c.Ville, c.Compte" requete += " FROM" requete += " dbo.View_FactureCompta f" requete += " INNER JOIN dbo.V_Client c" requete += " on f.NumeroCompte = c.Compte a nd 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 'Accès aux valeurs des champs par :

Dim _Champs1 As String = Convert.ToString(_Dr("NomDuChamps")) Next 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 30/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 31/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 except ions AddHandler Application.ThreadException, AddressOf Application_ThreadException If args.Length > 0 Then 'Lancement par IHM If args(0) = "IHM" Then Application.Run( New xFormMenu) End If Else 'Lancement (automatique) Création du fichier des Co mptes à transférer sous Quadratus Dim c As New C_TransfertCompte c.TransfertAutomatique() 'Création du fichier des Mouvements à transférer so us Quadratus Dim m As New C_TransfertMouvement m.TransfertAutomatique() End If End Sub 'Gestion des exceptions non gérer dans l'applicatio n 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 32/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 33/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 34/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 35/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 36/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 37/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 38/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 39/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 40/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 41/45

BIBLIOGRAPHIE Programmation Visual Basic .NET

Utilisé du 17-03-2008 au 10-06-2008

Auto-Formation du 10-03-2008 au 18-03-2008

Utilisé du 17-03-2008 au 10-06-2008

Titre : Visual Basic .NET Auteurs : Gilles NICOT ISBN : 2 7429 2388 5 Edition : Micro Application 1ère Edition – Janvier 2003 Copyright 2003

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)

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

Création d’outils d’intégration de données Page 42/45

Programmation SQL

Utilisé du 17-03-2008 au 10-06-2008

Titre : SQL Auteur : Ronald R. Plew ISBN : 2744015431 Edition : Campuspress Collection : Le tout en poche - 402 pages Copyright 2002 by Microsoft Corporation

Création d’outils d’intégration de données Page 43/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 44/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 bytecode-compilé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 45/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.

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