Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00...

62
© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl Page 1/62 Dossier ERP Agence - MAGICCA Module d'Administration et de Gestion Interne des Collaborateurs et Clients Agence Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008 Encadrants : Mr. Tabone Mr. Frossini

Transcript of Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00...

Page 1: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 1/62

Dossie

r

ERP Agence - MAGICCA

Module d'Administration et de Gestion Interne des Collaborateurs et Clients Agence

Rapport de stage

Version 1.00 du 7 août 2008

Etat : Projet

Paul Clément, Licence MIAGE

Année Universitaire 2007-2008

Encadrants :

Mr. Tabone

Mr. Frossini

Page 2: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 2/62

Historique :

Version Date Origine de la mise à jour Rédigée par Validée par

1.0 07/08/08 Paul CLEMENT Paul CLEMENT Philippe FROSSINI

Page 3: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 3/62

Préambule

Je tiens ici à remercier vivement toutes les personnes de Sopra Group qui ont contribué de près ou de loin au bon

déroulement de mon stage, pour le temps qu’elles ont bien voulu me consacrer, les conseils qu’elles m’ont donné ou tout

simplement le soutient qu’elles m’ont apporté.

Mes remerciements s’adressent plus particulièrement à Mr. Philippe FROSSINI, mon tuteur en entreprise, Mr.

Patrick Meyer, architecte et spécialiste des technologies J2EE pour l’agence EST, et Mr. Tabonne, mon encadrant

universitaire.

Je souhaite également remercier Mme. Christine PEYROT, assistante de l’agence de Metz, Mme. Pascale LUCAS,

ingénieur commercial et Mr. Jean-Philippe Muller, directeur de l’agence EST pour leur accueil, leur disponibilité, l’ambiance

studieuse et conviviale qu’ils m’ont offerte afin que mon stage se déroule dans les meilleures conditions possibles.

Paul CLEMENT

Page 4: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 4/62

Sommaire :

1. INTRODUCTION 5

2. L’ENTREPRISE 6

2.1. Généralités 6

2.2. Chiffres clés (31/12/2007) 9

2.3. L’agence EST 10

3. PRESENTATION DU PROJET 12

3.1. Les besoins 12

3.2. Les objectifs 13

3.3. Les contraintes 14

3.4. L’organisation du projet 14

3.5. Technologies et méthodes employées 16

3.6. Planning prévisionnel 17

3.7. L’équipe du projet MAGICCA 18

4. ANALYSE ET RESOLUTION DU PROBLEME 19

4.1. Première étape : étude des documents et de la base existants 19

4.2. L’apprentissage et la mise à niveau dans les technologies 20

4.3. Analyse et définition d’un prototype 20

4.4. La réalisation du prototype à paramètres restreints 22

4.5. L’analyse et la définition d’un prototype à paramètre étendu 23

4.6. La réalisation du prototype avec paramètre étendu 24

4.7. Mise en place de tests unitaires 25

4.8. Recettage 26

5. PROGRAMMES REALISES 27

6. BILAN 40

6.1. Bilan Technique 40

6.2. Bilan humain 41

BIBLIOGRAPHIE 42

ANNEXES 43

Page 5: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 5/62

1. INTRODUCTION

Mon stage de fin de DUT ayant été réalisé en interne au Centre Psychothérapique de Nancy, j’ai choisit d’effectuer celui de licence dans un autre environnement, celui d’une SSII. Sopra Group m’a donné la chance de découvrir et de comprendre le fonctionnement d’une société de service en m’offrant un stage, en interne au sein d’une de ses agences.

Ce rapport sera composé de quatre parties. La première décrira l’entreprise et la situera sur le marché. La deuxième expliquera partie présentera le sujet du stage. La troisième partie proposera une analyse et une résolution du problème. Et enfin, la quatrième partie décriera les travaux.

Page 6: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 6/62

2. L’ENTREPRISE

2.1. Généralités

Le Groupe en bref Source : site officiel

Sopra Group, expert européen des technologies de l’information

Groupe européen de Conseil, d’Intégration de Systèmes, d'Outsourcing applicatif et de Solutions applicatives, Sopra Group guide les entreprises dans leurs projets de transformation, depuis la définition des stratégies jusqu’à leur réalisation. Ses atouts : l’expertise des grands projets, la connaissance des métiers des clients, la maîtrise des technologies et une large implantation européenne.

Histoire du Groupe Source : site officiel

Sopra Group, créé en janvier 1968 par Pierre Pasquier et François Odin, figure parmi les plus anciennes SSII européennes.

La société s’est, dès l’origine, positionnée sur l’ensemble des métiers des services informatiques et a très rapidement disposé d’une forte implantation nationale.

En 1990, Sopra Group réalise son introduction à la Bourse de Paris avec succès. Cette opération sera précédée du premier plan d’options de souscription d’actions destiné à la quasi-totalité des collaborateurs du Groupe. Dès lors, Sopra Group va combiner de façon harmonieuse croissances interne et externe.

Les acquisitions les plus significatives

En France

� en 1996, Sopra Group fait sa plus forte opération de croissance externe par l’acquisition de SG2 Ingénierie. Cette opération permet l’entrée de la Société Générale dans le capital de Sopra Group ainsi que l’arrivée de 650 collaborateurs qui renforcent considérablement les implantations parisiennes, régionales et belges ;

� en 2000, Sopra Group acquiert Orga Consultants qui est une société spécialisée dans le Conseil en stratégie, en management et en organisation, employant 200 collaborateurs. Ce rapprochement permet au Groupe de développer une activité de consulting de haut niveau ;

� en décembre 2003, Sopra Group acquiert Inforsud Ingénierie auprès du Crédit Agricole. Cette acquisition renforce le leadership de Sopra Group sur le marché bancaire et lui permet de confirmer sa position de référence incontournable dans le domaine des crédits et de la monétique;

� en juillet 2004, Sopra Group acquiert Valoris, société européenne de conseil et de services informatiques, disposant d’une offre allant du conseil en stratégie à la mise en œuvre des technologies de l’information et comptant près de 500 collaborateurs. Valoris est un acteur de référence dans les domaines suivants : Business Intelligence (BI), Customer Relationship Management (CRM), Portail et Gestion de Contenu.

Page 7: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 7/62

En Europe

Sopra Group fait des acquisitions afin de mettre en place sa politique de développement européen sur le métier de l’Intégration de Systèmes :

� après avoir créé sa première implantation internationale en Suisse et obtenu par l’achat de SG2 en 1996 son équivalent en Belgique, Sopra Group démarre dans les années 1999 à 2001 la réalisation de son réseau international avec les acquisitions de Mentor au Royaume-Uni, de Organizacion Guver, Dipisa, Newpath Consulting et Newpath GS en Espagne et de ITI SpA en Italie;

� en 2005, Sopra Group accélère son développement au Royaume-Uni et en Espagne :

� acquisition de la société Newell & Budge au Royaume-Uni et de ses filiales irlandaise et indienne. Leader en Écosse, et forte de plus de 600 personnes (dont plus de 100 personnes en Inde dans sa filiale Momentum Technologies), elle dispose d’une gamme complète de services informatiques allant du conseil à la mise en œuvre ; Les positionnements de Newell & Budge et de Sopra Group étant complémentaires au Royaume-Uni, l’entité résultante bénéficie d’une couverture géographique complète, d’équipes expérimentées et de qualité, avec une base clients renforcée, principalement dans les secteurs de la Finance, des Services Publics et des Télécoms ;

� acquisition de la société PROFit SA, basée en Espagne et au Portugal, qui offre à ses clients grands comptes une gamme complète de services informatiques allant du conseil à la mise en œuvre de solutions et à l’outsourcing applicatif. PROFit a développé une valeur ajoutée globale sur des marchés verticaux tels que la Banque, l’Énergie, les Télécoms ou le Secteur Public. Les positionnements de PROFit et de Sopra Group étant complémentaires en Espagne, Sopra Group bénéficie, à la suite de l’opération, d’une couverture géographique complète (implantations à Barcelone, Madrid, Séville, Valence, Vitoria et Lisbonne), d’équipes expérimentées et de qualité, avec une base clients renforcée, principalement dans les secteurs de la Finance, des Télécoms, des Services Publics et de la Distribution.

Filiale Axway Software

À partir de 2001, le Groupe décide par le biais de sa filiale Axway Software de développer une stratégie de conquête sur le marché de l’EAI (Enterprise Application Integration) avec pour ambition de devenir un des leaders mondiaux de ce marché :

� en 2001, création d’Axway Software (400 collaborateurs pour un CA de 50 M€) par apport de l’ensemble des activités en EAI du Groupe. Ainsi, Axway peut bénéficier de toute l’expérience et du savoir-faire de Sopra Group en termes d’approche « projet », en alliant la compétence métier, la force commerciale, la puissance et l’ancienneté du parc installé ;

� en 2002, acquisition des activités d’intégration de Viewlocity Inc. en Europe dans un premier temps, puis en Asie et aux États-Unis. Avec cette acquisition, Axway complète, d’une part, sa gamme de produits en y ajoutant une gamme spécialisée dans l’EDI (Échange de Données Informatisées) et, d’autre part, sa couverture géographique qui est désormais mondiale. Cette acquisition permet à Axway, dotée désormais de 600 collaborateurs, de faire partie des grands éditeurs mondiaux dans l’EAI ;

Page 8: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 8/62

� début 2006, acquisition de Cyclone Commerce aux États-Unis. Ce rapprochement s’inscrit dans la stratégie de développement mondial d’Axway. La complémentarité des deux sociétés permet l’émergence d’un leader mondial capable de servir les besoins des plus grands clients dans les domaines du B2B, du SOA et sur le marché des services collaboratifs ;

� début 2007, acquisition des activités « logiciels B2B » d’Atos Origin en Allemagne. Cette acquisition procure à Axway un leadership européen indiscutable dans le domaine des plates-formes logicielles B2B et renforce significativement sa présence en Allemagne, qui constitue le premier marché européen.

Pour le Groupe, la stratégie de développement à l’international consiste, en synergie avec Axway et les filiales européennes d’Intégration de Systèmes, à poursuivre et à amplifier la démarche initialisée par Sopra Group, en ciblant prioritairement le renforcement dans les principaux pays européens. Globalement, le Groupe bénéficie des synergies possibles qui lui permettent d’exporter ses acquis d’un pays sur un autre. Il constitue l’un des premiers groupes français de Conseil et d’Intégration de Systèmes et de Solutions, significativement présent dans le secteur Banque et Assurance avec une forte implantation régionale et un projet ambitieux au plan international.

Implantations

� Benelux

� Espagne

� France (34 sites)

� Inde

� Irlande

� Italie

� Maroc

� Portugal

� Royaume-Uni

� Suisse

� Filiale Axway (Amérique du nord, Amérique du sud, Europe du nord, Europe du sud, Asie, Afrique)

Page 9: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 9/62

2.2. Chiffres clés (31/12/2007)

Chiffre d’affaire (M€) Effectifs du groupe

Présence internationale (Axway inclus) Marchés verticaux

Chiffre d'affaires Groupe (%) Chiffre d'affaires Groupe (%)

Chiffre d'affaires par activité (en %) Chiffre d'affaires par métier (en %)

Page 10: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 10/62

2.3. L’agence EST

L’agence EST, composée des sites de Metz, Strasbourg est composée de plus de cent collaborateurs. Elle appartient à la division Nord.

Une division comporte des agences rassemblées par secteur géographique puis par type de marché pour les plus importantes d’entre elles.

Exemple :

� Sopra Group (France)

� Division Nord (au sens Nord de Paris)

� Agence de Lille (+/- 450 collaborateurs)

� Outsourcing

� Tertiaire

� Industrie

� …

� Agence EST (Site de Metz et Strasbourg, +/- 120 collaborateurs)

� Agence Luxembourg

� …

� Division Ouest

� Agence Bordeaux

� Agence Nantes

� …

� …

Cette organisation bipolaire pour l’agence EST s’explique par la présence des « grands comptes » essentiellement localisés en Lorraine (CORA Informatique, Arcelor, Saint-Gobain, …) et en Alsace (Unedic, PSA, Kronenbourg). Cependant, l’implantation de Sopra Group dans l’Est est trop faible pour justifier la présence de deux agences totalement différentes.

Positionné sur le site de Metz (Technopôle), j’ai pu constater la principale particularité des SSII : les collaborateurs travaillent chez le client. En effet, ne travaillaient à l’agence que l’assistance de direction Christine Peyrot, l’ingénieur commercial Pascale Lucas, parfois le directeur d’agence Jean-Philippe Muller, les collaborateurs en inter-chantier (très rare), et les collaborateurs qui assistaient aux différentes réunions (recrutement, …).

Page 11: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 11/62

Mon tuteur, Mr. Philippe Frossini, Responsable Qualité de l’agence, me consacrait une demi-journée par semaine afin de faire des points d’avancement, valider les différentes étapes du cahier des charges, …

Les locaux, modernes, étaient constitués que de deux bureaux, une salle de réunion et une salle appelée « plateau » comportant 12 mini-bureaux. J’étais installé à l’un deux, avec un ordinateur portable récent, un accès internet/réseaux ethernet, et un téléphone. Salle climatisée et assise confortable ont fait que l’environnement était parfait pour un travail efficace.

J’ai évolué avec comme système d’exploitation Windows XP Professionnel, comme IDE principal Eclipse, comme SGBD MySQL et sa console d’administration « phpmyadmin ». J’ai également utilisé MySQL Workbench pour les schémas de base de données, DB designer pour le MPD, ainsi que MagicDraw pour la documentation UML. Tous les rapports, cahiers des charges et documents étaient réalisés sous office, accompagnés du logiciel DOCS (modèles de document officiels à la charte Sopra Group). J’ai également utilisé un logiciel de « versioning » : SVN. Il m’a notamment permis de partager avec des collaborateurs Lillois et Strasbourgeois.

La méthode de gestion de projet utilisée est décrite dans la partie suivante.

Page 12: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 12/62

3. PRESENTATION DU PROJET

Tout d’abord, il faut savoir qu’il est rare que Sopra Group emploie les stagiaires issus de licence. Cette année, exceptionnellement, un besoin interne, nécessite l’intervention d’un collaborateur. Cependant, le projet ne justifie pas le fait d’y consacrer un collaborateur en inter-chantier, c’est pour cela que Sopra Group a fait appel à moi.

Afin de vous présenter le projet, nous allons tout d’abord aborder le point des besoins, puis des objectifs, celui des contraintes. Vient alors l’organisation du projet, les technologies utilisées, et les différents acteurs.

3.1. Les besoins

Actuellement, toutes les activités de l’agence sont stockées dans des fichiers Word et Excel difficiles à partager, à maintenir et peu pratiques.

L’activité de l’agence est composée de plusieurs domaines :

� Activité commerciale

� RH

� Suivi qualité

� Gestions des candidats

� Gestion des collaborateurs

� Gestion des clients

L’application doit se présenter comme un portail permettant à n’importe quel employé de SOPRA, d’accéder à ses informations personnelles, aux missions qu’il a pu effectuer et aux compétences qu’il a acquises. Le portail doit bien sûr permettre de faire évoluer (modification / ajout / suppression) ces paramètres. A partir de là, différents rôles se dessinent avec des droits spécifiques : collaborateur, commercial, administratif, recruteur et administrateur. Il est important de noter qu’une personne peut couvrir plusieurs rôles.

Il faut bien intégrer toutes les possibilités par rôle, la suppression n’étant en fait qu’une désactivation. Il faut pouvoir avoir une trace de la dernière modification quand à la date et à l’utilisateur.

Le MPD de la base de données permet de bien comprendre les liens entre collaborateurs, référentiels, clients, missions et agence.

Une des finalités à terme est la génération de profils de collaborateurs à partir de l’application.

Page 13: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 13/62

Un besoin qui est venu s’ajouter au cours du stage est la gestion d’un tableau de disponibilité, permettant aux commerciaux et acteurs des comités d’affectations des collaborateurs, de gérer au mieux les intermissions et les affectations des collaborateurs aux missions. Un export MS Excel de ce tableau est également un besoin.

En effet, après discussion avec Mr. Patrick Meyer et Mme. Pascale Lucas, nous nous sommes rendu compte que sans réel chiffre d’affaire généré par l’application, elle ne serait pas maintenue. Ce dernier besoin permet donc l’assurance d’une maintenant des profils des collaborateurs par eux-mêmes ainsi que par leurs managers/relais puisqu’il se situe au cœur de métier d’une SSII.

3.2. Les objectifs

Les objectifs du projet étaient divisés en deux types d’objectifs :

� Les objectifs de l’entreprise :

� Application fonctionnelle et possédant un minimum de bogues

� Application possédant la charte graphique Sopra Group

� Application performante et disponible

� Rédaction de spécifications complètes

� Mes objectifs :

� Enrichir ma formation

� Capitaliser de nouvelles technologies

� Renforcer mes capacités d’analyse fonctionnelle

� Avoir un premier vrai contact projet, avec le formalisme et la rigueur que cela demande

� Comprendre le fonctionnement d’une SSII

Les objectifs des deux parties sont atteins à l’issus du stage.

Page 14: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 14/62

3.3. Les contraintes

A l’initialisation du projet, il existait certaines contraintes qui pouvaient nuire au bon avancement du projet. Pour les contourner, il m’a été demandé une certaine autonomie. Ces contraintes étaient principalement :

� La disponibilité des principaux acteurs, en mission en dehors du site de Metz. Une demi-journée hebdomadaire pour faire le point avec Mr Frossini étaient prévu. Les coordonnées des autres contacts m’ont été transmises.

� Certaines lacunes dans les technologies employées : JSP & XML étaient à assimiler.

� Une modélisation UML et Merise était à effectuer.

� Le choix des technologies n’était pas libre, et le schéma de la base de données était déjà réalisé.

3.4. L’organisation du projet

Le choix du déroulement du stage a été simple, on me proposait soit un déroulement en « mode stage », c'est-à-dire sans échéances strictes, plus laxiste, avec moins de rigueur professionnelle et de structuration attendue, soit un déroulement en « mode projet », c'est-à-dire un stage avec une rigueur et une structuration définie, un découpage des tâches, des échéances moins évidentes. Il m’a également été spécifié que les stages de master deuxième année étaient réalisés en « mode projet ».

C’est pour cette raison que j’ai choisi le « mode projet », d’autant plus que mon stage de DUT avait été réalisé en « mode stage » et que cela n’avait pas été très enrichissant de mon avis personnel.

Page 15: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 15/62

Il m’a alors été présenté 3 méthodes de conception :

� La méthodologie « Cycle en V »

� La méthodologie projet « agile » : « extreme programming »

C’est une méthode pragmatique, c'est-à-dire « ne produire que les documents dont on a besoin », les MCD, diagrammes user-cases, diagrammes d’activité. Il peut intervenir des phases d’itération.

On réalise d’abord un premier noyau (PoC), on s’assure qu’il fonctionne et que les liens entre les différents modules fonctionnent, puis on réalise un prototype qui contient quelques fonctionnalités du projet futur.

Une fois ce prototype validé et fonctionnel, on étoffe le prototype jusqu'à ce qu’il représente l’application réalisée et on procède à son intégration.

Page 16: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 16/62

� Méthode de maquettage et de prototypage :

C’est une méthode prémisse de la conception. Elle consiste à réaliser des successions d’écran et à les présenter au fur et à mesure, puis les faire valider.

La méthode choisie en concertation est la méthode projet agile, très proche de ce qu’il se fait aujourd’hui.

Le projet aura une structure particulière :

3.5. Technologies et méthodes employées

Les solutions techniques retenues sont :

� Server JBOSS version 4.2.2.GA : serveur d’application

� Framework Seam : jboss-seam-2.0.1.GA : Framework JSF

� Driver JDBC version 5.1.6 de mysql_connector-java : connexion base de données

� Ant : apache-ant-1.7.0 : déploiement

� Base de données MySQL, WampServer

� Eclipse 3.3.0

� JSF : Java server faces (XML, xHTML, JAVA 5.0, RichFaces, EJB3.0, …)

� Hibernate : Persistance des données

� HQL (Hibernate query language) : langage de requêtes pour la BDD

Phase réalisation prototype

« Cycle en V » Réalisation de l’application

Phase réalisation prototype

« Cycle en V »

Réalisation de l’application

« Cycle en V »

Bilan

� analyse

� développement

� tests

� recette

� analyse

� développement

� tests

� recette

� compte rendu

� soutenance

Page 17: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 17/62

Navigateur Web Serveur JBoss 4.2.2.GA Base de données MySQL

3.6. Planning prévisionnel

Un planning prévisionnel a été établi en initialisation de projet. Nous avons essayé de s’y conformer le maximum qu’il était possible mais nous avons dut le remanier pour pallier aux disponibilités des intervenant, s’adapter aux nouveaux besoin intervenus en cours de développement, s’arranger par rapports aux périodes de vacances des intervenants, …

Architecture 3-tiers utilisée

Page 18: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 18/62

3.7. L’équipe du projet MAGICCA

Strasbourg

Architecte :

Patrick Meyer

Chef de projet :

Yannick Stachnik

Metz

Développeur :

Paul Clément

Initialisation du projet – chez le client

Développeur :

Romain Saracéno

Développeur :

Thomas Hertenstein

Metz – chez le client

Chef de projet :

Philippe Frossini

Page 19: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 19/62

4. ANALYSE ET RESOLUTION DU PROBLEME

Les technologies employées pour ce projet étant pratiquement toutes nouvelles pour moi, il a fallut procéder par étapes avant de me lancer pleinement dans la réalisation.

Les différentes étapes étaient :

� l’étude des documents et de la base déjà produits

� l’apprentissage et la mise à niveau dans les technologies

� l’analyse et la définition d’un prototype

� la réalisation du prototype

� l’analyse et la définition d’un prototype à paramètre étendu

� la réalisation du prototype avec paramètre étendu

� mise en place de tests unitaires

� le recettage

4.1. Première étape : étude des documents et de la base existants

A mon arrivée, le projet était déjà entamé. Deux collaborateurs avaient déjà dégrossi l’analyse avec la création d’un premier MCD, sous format PowerPoint, ainsi qu’avec la création de la base correspondante sous MySQL. Ils avaient également généré le dictionnaire de données correspondant et crée une TODO List.

J’ai donc étudié le MCD, nous en avons discuté avec Mr. Frossini et cela m’a permit d’avoir un premier solide visu sur l’organisation d’une SSII.

De plus, les deux collaborateurs avaient commencé à créer l’architecture du projet sous Eclipse 3.3.0, ce qui m’a été d’une très grande aide, car je ne savais pas du tout comment faire cela. Ils ont utilisé le générateur de SEAM : seam-gen. Ils avaient également configuré Ant pour le déploiement et automatiser les « builds », et commencé à se faire la main sur le Framework Seam via la redéfinition d’un système d’identification, pourtant très simplifié et automatisé par SEAM.

Quelques documents Excel m’ont été fournis. Le but de l’application étant de les remplacer totalement, il fallait que j’étudie précisément leur utilité, la façon dont ils étaient remplis, par qui.

Page 20: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 20/62

4.2. L’apprentissage et la mise à niveau dans les technologies

Les deux premières semaines furent donc consacrées à la mise a niveau technique, la lecture de tutoriels (la plupart en anglais), la compréhension des notions de persistance (Hibernate), de « Bean », de couche métier, service, de modèle, de la façon dont est implémenté le MVC sous Seam, des annotations Java 5.0, de la compréhension des librairies graphique utilisées (Facelets, RichFaces), de l’utilisation d’une librairie pour faire de l’Ajax (Ajax4JSF), des « expression language » (E.L.).

Autrement dit, ces deux premières semaines furent très dense en informations.

Je me suis fait la main sur un premier module SCRUD (Search, Create, Read, Update, Delete), qui permettait donc de chercher des données dans la base de données, d’en insérer, modifier, supprimer, et bien entendu, lire.

4.3. Analyse et définition d’un prototype

Nous avons décidé que le prototype à périmètre réduit serait centré autour du collaborateur. Cela représente bien Sopra Group qui est une entreprise qui place le collaborateur au centre de son activité.

Un collaborateur possède un C.V. certifié Sopra Group, sur lequel figurent :

� Ses informations générales :

� Prénom, Nom

� Adresse électronique professionnelle, téléphone professionnel

� Site et agence d’appartenance

� Nombres d’années d’expérience pré-Sopra

� Date d’embauche

� Les écoles qu’il a fréquentées

� Son parcours :

� Les filières suivies par le passé ou actuellement

� La filière que le collaborateur souhaiterait suivre

� Ses compétences métier :

� Gestion bancaire

� Gestion de production

� Gestion de stocks

Page 21: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 21/62

� Comptabilité

� Etc.

� Ses compétences fonctionnelles :

� Industrie

� Grande distribution

� Services

� Etc.

� Ses compétences techniques :

� J2EE, Java 5.0

� Technologies .NET

� Mainframes

� Etc.

� Ses formations (non développé durant le stage, faute de temps)

� Ses missions (Client, Mission, Dates)

Il fallait également qu’une technologie réponde à certains critères. En effet une technologie devait être rattaché à :

� Une catégorie de technologie :

� Langage de programmation

� ERP (enterprise ressource planning)

� Progiciel

� Système d’exploitation

� Etc.

� Un éditeur ou une communauté

� Une ou plusieurs offres (Sopra Group classes ses projets services et conseil par offre) :

� AXAPTA

� BI (business intelligence)

� OUTSOURCING

� X-NET

Page 22: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 22/62

� Etc.

� Une version

Chaque offre possède un responsable par agence. Les responsables d’offre doivent pouvoir administrer les référentiels d’offres, d’éditeurs de technologies, de catégorise de technologies et de technologies tout court.

4.4. La réalisation du prototype à paramètres restreints

La réalisation du prototype à paramètres restreint s’est fait par étapes.

La première était de réaliser un module SCRUD (Search, Create, Read, Update, Delete) pour chaque référentiel (filière, métier, technique, fonctionnel). Les captures d’écrans sont données dans la cinquième partie de ce rapport.

De cette façon, la quasi-totalité des informations de la base sont administrable directement via l’application. Par exemple, dans son profil, le collaborateur peut s’ajouter des compétences métiers. Il choisit sa compétence métier parmi la liste des compétences métiers enregistrées (une liste déroulante), un niveau (Initié, Formé non pratiquant, débutant < 2 ans, Confirmé entre 2 et 5 ans, Expert > 5 ans) et valide. La liste déroulante est directement générée à partir de la base de données, administrable via son module SCRUD associé.

La deuxième étape était de réaliser une interface de type profil, avec des onglets pour les compétences, et permettant d’ajouter/modifier/supprimer pour un collaborateur des compétences à son profil.

La troisième étape était de réaliser une interface grâce à laquelle les personnes habilitées à modifier le profil d’un collaborateur aient accès aux bonnes données.

Il fallait également que les données soient conformes à leur représentation en base de données. Pour cela, il fallut utiliser des « validators » et des « convertors » propres aux JSF, ou bien les redéfinir nous-mêmes dans la couche métier de l’application. Ainsi, les données sont bloquantes si les champs sont mal renseignés.

Durant toute la réalisation, une réflexion (non modélisée) sur les cas d’utilisations tendais à s’adapter un maximum à l’utilisateur, le plus naïf puisse-il être. Il faut le guider, limiter les informations disponible aux minimum de façon à ce que la navigation soit la plus intuitive. Le Framework SEAM simplifie la chose en délimitant chaque action par une « conversation ». Par exemple, une conversation c’est :

� On clique sur un lien de menu amenant sur un formulaire

� On remplit le formulaire

� On valide

Page 23: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 23/62

De plus, une des spécificités des JSF (et des JSP) c’est que la navigation est entièrement réalisée grâce aux servlet. On ne peut donc jamais passer directement une adresse sur son navigateur pour accéder à une page.

Un principe qu’il fallu que je respecte est celui de la non-suppression en base de données. Lorsqu’un utilisateur non administrateur supprime une données, celle-ci est désactivée. En effet, un booléen indique si l’enregistrement est actif dans chaque table de la base. De plus, on garde une référence de la dernière action fait sur un enregistrement en sauvegardant le matricule du collaborateur ayant fait la modification, et la date. Par souci de lisibilité, sur le MPD, l’association entre les tables et la table Personne (en réalité Connection, mais simplifions) n’apparait pas.

4.5. L’analyse et la définition d’un prototype à paramètre étendu

Comme dit auparavant, nous nous sommes rendu compte, après discussion avec des collaborateurs ayant un point de vue plus commercial de l’outil qu’il n’y avait pas de valeur ajoutée directe, et donc que l’outil ne serait surement pas maintenu. Nous avons donc décidé d’ajouter au prototype un module de gestion qui est central au cœur de métier de l’entreprise, la gestion des missions des collaborateurs.

De façon simplifiée, un collaborateur effectue des missions d’assistance technique (AT), ou d’assistance à maitrise d’ouvrage (AO). Les missions AT sont en interne chez le client, dans une équipe du client avec un chef de projet du client. Les missions AO sont en interne chez le client dans une équipe Sopra Group, avec un chef de projet Sopra Group. Dans une mission AO, appelée plus communément mission au forfait, Sopra Group gère le projet de A à Z, et rentre dans une vraie problématique projet avec les délais, les coups et les risque que cela comporte.

Entre deux missions, un collaborateur ne rapporte aucun chiffre d’affaire à Sopra Group. C’est même le contraire puisque Sopra Group paie le salaire et les différentes charges du collaborateur. Ainsi, il est primordial pour Sopra Group que les collaborateurs passent le moins possible de temps en intermission.

C’est la qu’interviennent les ingénieurs commerciaux. Ils sont chargés de démarcher les clients afin de trouver des missions pour les collaborateurs. Ils répondent aux appels d’offre, montent des dossiers afin d’assurer contrats et partenariat avec les clients. Les propositions commerciales sont donc faites par ces mêmes ingénieurs commerciaux aux clients pour des profils particuliers.

C’est la qu’intervient la première partie du projet. Les C.V. auparavant sous format Excel, peu pratique à manipuler, possédant des informations non capitalisées et mutualisées, sont gérés par l’outil. Un commercial peut donc émettre des propositions commerciales pour un collaborateur. Si une proposition commerciale abouti, on peut affecter une mission à un collaborateur et définir sa date de disponibilité.

Page 24: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 24/62

Un tableau, utilisé en réunion, liste les collaborateurs disponibles pour les prochains mois, avec leur date de disponibilité, leur nom, éventuellement un commentaire, et leur taux de disponibilité pour la date indiqué (un collaborateur peut être affecté à mi-temps sur une mission par exemple).

Un collaborateur possède également un état. En fin de mission, son état peut être :

� En disponibilité « ferme », c'est-à-dire qu’il y’a de grande chance que la mission ne soit pas renouvelée et que le manager soit à la recherche d’une mission pour le collaborateur

� Manager à consulter

� Forte probabilité de prolongation

Le tableau sépare les collaborateurs de part leur site d’appartenance (Metz-Strasbourg-Luxembourg).

Ce document, utilisé hebdomadairement en réunion justifie donc l’utilisation et la maintenance de l’outil. Pour l’instant, ce fichier Excel, stocké sur un serveur, n’est pas chez tout le monde le même, car dès qu’il est modifié par un commercial, la modification ne se répercute bien évidemment pas chez les autres. Avec l’outil, c’est géré !

Une fonctionnalité demandée, reste l’export Excel du tableau à tout moment, pour figer la situation dans le temps, permettre un archivage, et permettre de l’incorporer à d’autres documents Excel.

4.6. La réalisation du prototype avec paramètre étendu

Techniquement parlant, cette partie de la programmation fût sans aucun doute la plus intéressante. En effet, à cette étape du développement, le Framework commençait à être plutôt bien maitrisé dans la plupart des solutions qu’il apportait. J’ai remarqué que mon code des premiers modules n’était pas optimisé, plutôt compliqué car il existait des solutions plus simples que j’ai découvert par la suite. Malheureusement, le temps m’ayant fait défaut, je n’ai pas eut le temps de revenir sur le code produit en début de stage. Comme m’a dit un collaborateur, « on n’est jamais content de son code ».

C’est également dans ce module que j’ai été le plus assisté, notamment au niveau de la conception des modèles de données, du maquettage, de la réflexion sur les fonctionnalités.

Par exemple, nous avions dans un premier temps décidé de gérer les dates d’un point de vue applicatif. Si la date de fin de mission d’un collaborateur était le jour n° X, sa date de disponibilité serait le jour n° X+1, sauf si le jour X est un week-end. Nous nous sommes dans un deuxième temps rendu compte qu’il fallait gérer les jours fériés, et puis aussi les congés et RTT des collaborateurs. Bref, après en avoir discuté avec les ingénieurs commerciaux et en interne dans l’équipe, nous avons adopté la solution de gérer la date de disponibilité du coté humain, pour permettre une certaine souplesse.

Page 25: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 25/62

Accompagné de Mr. Yannick Stachnick, nous avons, par téléphone, monté une première maquette. L’aspect du tableau et des différents écrans devait se rapprocher au maximum de l’existant afin de faciliter son utilisation par les collaborateurs concernés. Une fois la maquette validée, la programmation du tableau fut une étape compliquée niveau technique. Il fallut tout d’abord trouver le modèle d’une ligne du tableau. J’ai opté de représenter chaque ligne du tableau par un objet de type Tab_DispoRow ayant pour attributs

� Un site (par exemple Metz)

� Six listes de type Personne (List<Personne>) représentant chacune la liste des personne du site concerné dont la date de disponibilité tombe un mois donné. Les six listes représentent les 6 prochains mois.

Il résulte donc un tableau de liste qui doivent générer des liens dynamiques et être rafraichies dès qu’il y’a une modification.

Un composant de la librairie RichFaces m’a été énormément utile, le tag dataTable.

La deuxième étape de la réalisation est de faire une maquette d’une fiche collaborateur, accessible lors d’un clic sur un collaborateur présent dans le tableau. Après de nombreuses retouches, la maquette validée, la réalisation se fait, avec une grosse proportion d’Ajax, afin de rendre la manipulation la plus simple et agréable possible.

La dernière étape était de gérer la création de clients, de missions et de faire des propositions pour les collaborateurs. Pas de grosse difficultés la dedans.

4.7. Mise en place de tests unitaires

Afin de tester les différents modules de l’application, des tests unitaires ont été fait après le développement de chaque module. Etant seul pour la réalisation, les tests ont été réalisés et vérifiés seulement par moi-même (malheureusement). De plus, en fin de réalisation, des tests ont été fait sur une base de développement, et une base de production a été conçue.

Du fait que j’étais seul, je suis persuadé qu’il reste un certain nombre de bugs à éradiquer mais j’espère ce nombre très limité, ce qui prouverait une certaine rigueur dans mes tests. J’ai essayé de me mettre dans la peau de l’utilisateur le plus naïf possible, cliquant n’ importe où, n’ayant aucune logique dans la suite de ses actions.

Page 26: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 26/62

4.8. Recettage

Le recettage n’a pas pu être effectué, du fait que mon stage finissant début août tombait en même temps que les vacances de mon tuteur. J’indique donc qu’il aurait été au programme de faire une étape de recettage si le planning l’avait permit.

Page 27: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 27/62

5. PROGRAMMES REALISES

Dans cette partie, je vais exposer quelques captures d’écrans qui vont permettre de comprendre le « look and feel » de l’application.

Ecran de connexion - Echec

Voici l’écran de connexion. Le contrôle habituel des champs et fait. Si les identifiants sont correct, l’utilisateur est redirigé vers la page d’accueil de l’application. Dans le cas contraire, un message d’erreur est affiché et il faut saisir les identifiants de nouveau.

Page 28: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 28/62

Page d’accueil de l’application

Cette page est affichée en cas de succès de connexion. Cet écran respecte la charte Sopra Group. Le menu sur la gauche change selon les droits de l’utilisateur. Dans notre cas, l’utilisateur connecté est un simple collaborateur. Il a accès uniquement à l’option de déconnexion, à l’affichage de l’accueil, et à l’accès à son profil.

L’utilisateur peut également changer son mot de passe via le lien en haut à droite.

Page 29: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 29/62

Menu directeur d’agence Menu administrateur Menu responsable d’offre

Voici par exemple les menus pour les rôles de directeur d’agence, d’administrateur de l’application et de responsable d’offre.

Nous allons découvrir à quoi mènent ces différents menus et comment sont attribués les droits par la suite.

Page 30: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 30/62

« Mon Profil »

Ce module permet à un collaborateur d’éditer son profil. Ce profil permettra de générer directement le C.V. du collaborateur sous différents formats, comme le .doc ou le .pdf (développement prévu en 2008).

L’utilisateur doit renseigner différents informations comme son nom, prénom, adresse électronique, téléphone, les différentes écoles qu’il a fréquenté, son agence de rattachement, son site de rattachement, les années d’expérience avant Sopra Group, sa date d’embauche, son manager et son relai agence.

On remarque qu’il y’a d’autres onglets qui permettent d’ajouter des compétences métier, fonctionnelles, techniques, de choisir sa filière souhaitée, de renseigner ses filières précédentes, de consulter ses rôles au sein de l’application, ses formations et ses missions.

Page 31: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 31/62

Quelques captures des onglets :

« Filières »

Ajout d’une filière

Page 32: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 32/62

« Missions »

Bien entendu, toutes les technologies, rôles, filières, en gros tous les référentiels doivent être modifiable via l’application et donc via les menus « Mes référentiels » et « Gestion des référentiels ».

Par exemple, pour le référentiel technologique :

Liste des technologies

Page 33: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 33/62

Ajout d’une technologie

Edition d’une technologie

Page 34: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 34/62

L’écran de gestion des droits est du style :

Attribution des droits

Page 35: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 35/62

Un utilisateur qui est soit manager, soit relai, soit directeur d’agence à accès aux profils des collaborateurs qu’il gère via le menu « Mes collaborateurs » :

« Mes Collaborateurs »

Page 36: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 36/62

« Mon Collaborateur »

Un peu à la manière du profil, l’utilisateur peut modifier les données du collaborateur pour que son profil soit le plus conforme possible.

Il possède quelques actions de plus comme par exemple définir ses missions :

« Mission »

Page 37: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 37/62

Et enfin, quelques captures d’écrans du module de gestion de planning et d’attribution des missions :

Tableau des disponibilités

En colonne : les mois, en ligne : les sites. Le numéro est la date de disponibilité dans le mois, le nom de la personne est un lien qui dirige vers la fiche du collaborateur (écran suivant) et la case de couleur signifie :

� DF : Dispo. Ferme. Collaborateur à placer d’urgence.

� MAC : Manager à consulter. A placer rapidement.

� FPP : Forte Probabilité de Prolongation. Pas de grand risque.

Page 38: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 38/62

Fiche collaborateur

Apres un clic sur un nom dans le tableau, on atterri sur cette fiche, qui récapitule les informations sur le collaborateur et qui permet de modifier son statut et de suivre les propositions commerciale le concernant.

Nouvelle proposition commerciale

Page 39: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 39/62

Affecter une proposition commerciale

Export Excel du tableau des disponibilités

Page 40: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 40/62

6. BILAN

6.1. Bilan Technique

Tout d’abord, ce stage m’a entièrement formé sur les technologies J2EE. A l’université ne sont enseignées que les bases de Java. La formation a été autodidacte du fait que les différents acteurs techniques n’avaient pas de temps à me consacrer, mais répondaient à mes courriels.

J’ai également pu acquérir des notions importantes comme la persistance des données par exemple, et eu l’occasion, pour la première fois, d’utiliser un Framework et toutes les fonctionnalités qu’il propose. De plus, la nécessité d’un serveur pour le développement d’une application était également nouveau pour moi.

De part mes conversations avec les collaborateurs de Sopra Group, j’ai pu remarquer que les profils J2EE sont énormément appréciés de nos jours, et force est de constater que ce domaine me plait, la programmation objet était intéressante et agréable, la puissance de java et le mélange des technologies donne un vrai sens à la conception et à la réalisation. Il est clair que l’enseignement des technologies seules à l’université limite énormément la programmation. Par exemple, nous n’avions jamais utilisé de librairie dans aucun projet, lors de mon stage, j’en utilise pas moins d’une quinzaine pour le projet !

En bref, n’étant pas un mordu de programmation, la thématique d’ « objet » et les notions qu’elle sous-entend me motivent cependant.

Je trouve dommage que lors de notre formation ne nous soient pas enseignés les technologies .NET/J2EE de façon professionnelle (il est certain qu’il faut débuter par de la théorie, mais ce que j’ai fait lors de mon parcours scolaire est loin du professionnel).

Un point positif de notre formation est l’orientation « Base de données ». Je n’ai eu aucun souci avec la base de données, et je me suis même senti limité par MySQL et son « phpmyadmin ». Nous avions également abordé l’Ajax de la façon basique. L’utiliser pour mon projet, avec la facilité apportée par JSF a été un jeu d’enfant.

Un manque ressenti se situe au niveau de la modélisation. UML n’est enseigné qu’en Master 1, j’ai du me servir de mes bases de DUT. De plus, la démarche intégratrice étant inconnue de Sopra Group, j’ai du me tourner vers une modélisation Merise plus classique (MCD & MPD).

Page 41: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 41/62

6.2. Bilan humain

Il est clair qu’avant mon stage, je ne connaissais absolument pas le monde des SSII. Les sociétés de service étant la principale source de recrutement des jeunes ingénieurs en informatique, je trouve dommage que ca ne soit pas plus abordé lors de notre formation. Expliquer comment fonctionne une SSII en quelques heures nous préparerais bien mieux à mon humble avis.

J’ai donc du me plonger dans le fonctionnement d’une SSII, le sujet de mon stage faisant parti du cœur de métier des sociétés de service. J’ai également eu la chance de discuter avec d’autre collaborateurs, soit en les côtoyant à l’agence lors de leurs inter-contrats, soit lors de la pause déjeuné (pour les collaborateurs en mission chez Cora Informatique qui mangeaient à la cafétéria du Cora-Technopole, et qui m’accueillaient gentiment à leur table).

J’ai pu suivre la vie d’une SSII de l’intérieur, assisté au rythme des réunions, au travail de fond des commerciaux pour proposer des missions aux collaborateurs, au travail de recrutement.

Mes connaissances se sont également élargies sur les droits du forfait cadres (droit qui devrait être enseigné en plus du droit d’un employé par rapport à employeur, et en plus du droit de l’informatique), sur le fonctionnement d’une équipe projet, sur les possibilités d’évolution au sein d’une SSII tel Sopra Group.

Un point positif est que la formation MIAGE possède une bonne réputation de ce que j’ai pu en discuter, qu’elle appuie fortement sur la communication et que cela m’a énormément aidé car je pense et j’espère que personne n’a à se plaindre de la communication dont j’ai fait preuve lors de mon stage.

Pour finir, n’étant qu’en licence, j’espère trouver une formation plus orientée vers le monde professionnel lors de mes deux années de master.

Page 42: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 42/62

Bibliographie

Livres (version PDF):

� “Seam - Contextual Components A Framework for Enterprise Java”, 270 pages, http://docs.jboss.com/seam/2.0.1.GA/reference/en/html/index.html

� Jim Farley, « Practical, JBoss Seam Projects », Apress, année 2007, 240 pages

� Joseph Faisal Nusairat, « Beginning JBoss Seam, From novice to Professional », Apress, année 2007, 751 pages

� Red Hat, « RichFaces Developer Guide », 2007, 419 pages

Web sites :

� Sopra Group, http://www.sopragroup.com/

� JBoss Seam Framework demo, http://demo.flamingo.exadel.com/booking/home.seam

� API JSF, http://java.sun.com/javaee/javaserverfaces/1.2/docs/api/index.html

� Hibernate EntityManager, http://www.hibernate.org/hib_docs/entitymanager/reference/en/html/index.html

� API RichFaces & Ajax4JSF, http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/docs/tlddoc/index.html

� Demo RichFaces Components (éléments graphiques) , http://livedemo.exadel.com/richfaces-demo/richfaces/dropDownMenu.jsf

� Developpez.net, Forum & Cours, http://www.developpez.net/

� JExcel librairie pour l’export Excel sous SEAM, http://www.seamframework.org/Community/ExcelForSeamPreview

� RichFaces developer guide, http://www.jboss.org/file-access/default/members/jbossrichfaces/freezone/docs/devguide/en/html/index.html

� Jean-Michel DOUDOUX, Cours complet FR JSF, http://www.jmdoudoux.fr/java/dej/chap053.htm

Page 43: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 43/62

Annexes

Annexe n°1 : Environnement de développement Eclipse 3.3.0

Page 44: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 44/62

Annexe n°2 : MySQL via phpMyAdmin

Annexe n°3 : L’outil collaboratif SVN

Page 45: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 45/62

Annexe n°4 : Le MPD de la base de données

Page 46: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 46/62

Annexe n°5 : Une remontée d’erreur par le server JBoss 4.2.GA

Page 47: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 47/62

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transi tional//EN" "http://www.w3.org/TR/xhtml1/ DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:s="http://jboss.com/products/seam/tagli b" xmlns:a4j="http://richfaces.org/a4j" xmlns:rich="http://richfaces.org/rich"> <head> <meta http-equiv="Content-Type" content="text/h tml; charset=UTF-8" /> <title>agence</title> <link href="#{facesContext.externalContext.request.contex tPath}/stylesheet/theme.css" rel="stylesheet" type="text/css" /> </head> <body> <ui:include src="menu.xhtml"> <ui:param name="projectName" value="Agence" /> </ui:include> <div class="panelMenu"> <h:graphicImage styleClass="icone" alt="So pra Group" url="/img/imgCroisillon.gif"></h:graphicImage> <ui:include src="panelMenu.xhtml"/> </div> <div class="body"> <a4j:outputPanel id="body"> <ui:insert name="body"/> </a4j:outputPanel> </div> <div class="footer"> <h:outputText value="© Sopra Group, 2001-200 8" styleClass="footer-left"/> <h:graphicImage styleClass="icone, footer-ri ght" alt="Sopra Group" url="/img/imgLogoSopraGroup.gif"></h:graphicImage> </div> </body>

</html>

Annexe n°6 : Code de la page de template, utilisation des Facelets

Page 48: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 48/62

Annexe n°7 : un module entier, le référentiel Métier « Ajout »

Page 49: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 49/62

<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/ DTD/xhtml1-transitional.dtd"> <ui:composition xmlns="http://www.w3.org/1999/xhtml " xmlns:a4j="http://richfaces.org/a4j " xmlns:s="http://jboss.com/products/ seam/taglib" xmlns:ui="http://java.sun.com/jsf/f acelets" xmlns:f="http://java.sun.com/jsf/co re" xmlns:h="http://java.sun.com/jsf/ht ml" xmlns:rich="http://richfaces.org/ri ch" template="../../../layout/template. xhtml"> <ui:define name="body"> <rich:panel> <f:facet name="header">R&#233;f&#233;rentie l Metier - Ajouter</f:facet> <div class="subbody"> <rich:spacer height="10px" /> <h:form id="add_metier"> <div class="bandeau"> <h:outputText value="Ajout d'une comp&#233;tence m&#233;tier : " /></div> <h:panelGrid id="panelAddRMetier" columns="4" colum nClasses="name, value, value, value"> <h:outputLabel for="libelle_metier" value="Libell&# 233;" /><h:outputLabel value=":" /> <h:inputText id="libelle_metier" value="#{rMetierAA .lib}" required="true" size="40" > <f:validateLength maxim um="30"/> </h:inputText> <h:message for="libelle_metier" styleClass="message" /> </h:panelGrid> <div class="bandeau"><h:outputText value=" " /></div> <h:panelGrid id="panelButtonRNiveau " columns="3"> <h:commandButton value="Ajouter" action="#{rMetierAA.rMetierAdd}" /> <h:outputLabel value=" " /> <h:commandButton value="Annuler" action="#{menunavig.goSearchRMetier}" immediate="t rue"/> </h:panelGrid> </h:form> </div> </rich:panel> </ui:define> </ui:composition>

Code de la vue

Page 50: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 50/62

package com.mydomain.agence.referentiels; import java.io.Serializable; import java.sql.Timestamp; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Table; import org.hibernate.validator.NotNull; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import com.mydomain.agence.Constants; @Entity @Name("rmetier" ) @Scope(ScopeType.EVENT) @Table(name= "r_metier" ) public class Metier implements Serializable{ private static final long serialVersionUID = 1961639726393704338L; private int cd_metier ; private String lib_metier ; private String actif ; private String userMaj ; private Timestamp dateMaj ; @Id @NotNull @GeneratedValue @Column(name= "cd_metier" ) public int getCd_metier() { return cd_metier ; } public void setCd_metier( int cd_metier) { this. cd_metier = cd_metier; } @NotNull @Column(name= "lib_metier" ) public String getLib_metier() { return lib_metier ; } public void setLib_metier(String lib_metier) { this. lib_metier = lib_metier; } @NotNull @Column(name= "actif" ) public boolean isActif() { return this. actif .equals(Constants.STATUT_ACTIF); } public void setActif( boolean actif) { if (actif)

Page 51: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 51/62

{ this. actif = Constants.STATUT_ACTIF; } else { this. actif = Constants.STATUT_INACTIF; } } @NotNull @Column(name= "user_maj" ) public String getUserMaj() { return userMaj ; } public void setUserMaj(String userMaj) { this. userMaj = userMaj; } @NotNull @Column(name= "date_maj" ) public Timestamp getDateMaj() { return dateMaj ; } public void setDateMaj(Timestamp dateMaj) { this. dateMaj = dateMaj; } }

Code de la classer Metier

package com.mydomain.agence.referentielsAction.Metier; import java.io.Serializable; import java.sql.Timestamp; import java.util.GregorianCalendar; import javax.ejb.Remove; import javax.persistence.EntityManager; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.Destroy; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Out; import org.jboss.seam.annotations.Scope; import org.jboss.seam.annotations.security.Restrict; import com.mydomain.agence.individus.Connection; import com.mydomain.agence.interfaces.RMetierAdding; import com.mydomain.agence.referentiels.Metier; import com.sun.xml.internal.ws.developer.Stateful; @Restrict( "#{identity.loggedIn}" )

Page 52: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 52/62

@Stateful @Name("rMetierAA" ) @Scope(ScopeType.SESSION) public class RMetierAddingAction implements RMetierAdding, Serializable { private static final long serialVersionUID = 8231940036588997725L; @In( "entityManager" ) private EntityManager em; @In(value= "#{connect}" ) private Connection user; @In(value= "#{rMetierSA}" ) private RMetierSearchingAction rmsa; private Metier addedMetier ; private String lib ; @Remove @Destroy public void destroy() { } public String rMetierAdd() { addedMetier =new Metier(); addedMetier .setLib_metier( lib ); addedMetier .setActif( true); GregorianCalendar cal= new GregorianCalendar(); addedMetier .setUserMaj(user.getLogin()); addedMetier .setDateMaj( new Timestamp(cal.getTimeInMillis())); em.persist( addedMetier ); addedMetier =null; this. lib =null; rmsa.refresh(); return "/referentiels/generaux/metier/search_metier.xhtml" ; } public String getLib() { return lib ; } public void setLib(String lib) { this. lib = lib; } public Metier getAddedMetier() { return addedMetier ; } public void setAddedMetier(Metier addedMetier) { this. addedMetier = addedMetier; } }

Bean correspondant à l’ajout

Page 53: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 53/62

Annexe n°8: Code de l’export Excel

package com.mydomain.agence.tab_dispo; import java.io.IOException; import java.io.Serializable; import org.jboss.seam.ScopeType; import org.jboss.seam.annotations.In; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.Scope; import java.util.ArrayList; import java.util.Calendar; import java.util.Iterator; import java.util.List; import javax.faces.context.FacesContext; import javax.servlet.http.HttpServletResponse; import jxl.*; import jxl.format.Alignment; import jxl.format.Border; import jxl.format.BorderLineStyle; import jxl.format.Orientation; import jxl.format.VerticalAlignment; import jxl.write.*; import jxl.write.Number; import jxl.write.biff.RowsExceededException; import com.mydomain.agence.individus.Personne; import com.mydomain.agence.rows.Tab_DispoRow; @Name("EETD" ) @Scope(ScopeType.SESSION) public class ExtractExcelTD implements Serializable { private static final long serialVersionUID = 8395966513132871975L; @In(value= "#{Tab_DispoMA.listeTDR}" , required= false) private List<Tab_DispoRow> ltdr; @In(value= "#{Tab_DispoMA.mois1}" , required= false) private String mois1 ; @In(value= "#{Tab_DispoMA.mois2}" , required= false) private String mois2 ; @In(value= "#{Tab_DispoMA.mois3}" , required= false) private String mois3 ; @In(value= "#{Tab_DispoMA.mois4}" , required= false) private String mois4 ; @In(value= "#{Tab_DispoMA.mois5}" , required= false) private String mois5 ; @In(value= "#{Tab_DispoMA.mois6}" , required= false) private String mois6 ; private WritableWorkbook w; private WritableSheet s; private FacesContext context; private int row , rowD, rowMax, rowDTypeDispo , max, col , colD ; public void goExtractExcel() { try { this.createFile();

Page 54: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 54/62

this.writeTableau(); this.writeEnTete(); this.close(); } catch (IOException e) { e.printStackTrace(); } catch (WriteException e) { e.printStackTrace(); } } public void createFile() throws IOException, RowsExceededException, WriteException{ Calendar now=Calendar. getInstance(); String date=now.get(Calendar. DATE)+ "-" +(now.get(Calendar. MONTH)+1)+ "-" +now.get(Calendar. YEAR); context = FacesContext.getCurrentInstance() ; HttpServletResponse response = (HttpServlet Response) context.getExternalContext().getResponse(); response.setContentType( "application/vnd.ms-excel" ); response.setHeader( "Content-Disposition" , "attachment; filename=tabDispo-" +date+ ".xls" ); w = Workbook.createWorkbook(response.getOut putStream()); s = w.createSheet( "Tableau des disponibilites" , 0); } public void close() throws IOException, WriteException{ w.write(); w.close(); context.responseComplete(); } public void writeEnTete() throws WriteException{ // Apparence des mois WritableFont fontMois= new WritableFont(WritableFont.TIMES, 12, WritableFont.BOLD); fontMois.setColour(jxl.format.Colour.WHITE) ; WritableCellFormat fontMoisFormat = new WritableCellFormat (fontMois); fontMoisFormat.setBackground(jxl.format.Col our.AUTOMATIC); fontMoisFormat.setAlignment(Alignment.CENTR E); fontMoisFormat.setVerticalAlignment(Vertica lAlignment.CENTRE); fontMoisFormat.setBorder(Border.RIGHT, Bord erLineStyle.THICK, jxl.format.Colour.BLACK); Label lmois1= new Label(3,0, this. mois1 , fontMoisFormat); Label lmois2= new Label(5,0, this. mois2 , fontMoisFormat); Label lmois3= new Label(7,0, this. mois3 , fontMoisFormat); Label lmois4= new Label(9,0, this. mois4 , fontMoisFormat); Label lmois5= new Label(11,0, this. mois5 , fontMoisFormat); Label lmois6= new Label(13,0, this. mois6 , fontMoisFormat); s.addCell(lmois1); s.addCell(lmois2); s.addCell(lmois3); s.addCell(lmois4); s.addCell(lmois5); s.addCell(lmois6);

Page 55: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 55/62

//dimension des colonnes de type "numero de jour" WritableCellFormat colNoJourFormat= new WritableCellFormat(); colNoJourFormat.setAlignment(Alignment.CENT RE); CellView colNoJour= new CellView(); colNoJour.setSize(256*3); colNoJour.setFormat(colNoJourFormat); s.setColumnView(2, colNoJour); s.setColumnView(4, colNoJour); s.setColumnView(6, colNoJour); s.setColumnView(8, colNoJour); s.setColumnView(10, colNoJour); s.setColumnView(12, colNoJour); //dimension des colonnes de type "nom de la personn e" WritableCellFormat colPersonneFormat= new WritableCellFormat(); colPersonneFormat.setAlignment(Alignment.CE NTRE); CellView colPersonne= new CellView(); colPersonne.setSize(256*18); colPersonne.setFormat(colPersonneFormat); s.setColumnView(3, colPersonne); s.setColumnView(5, colPersonne); s.setColumnView(7, colPersonne); s.setColumnView(9, colPersonne); s.setColumnView(11, colPersonne); s.setColumnView(13, colPersonne); } public void writeTableau() throws RowsExceededException, WriteException{ //apparence de la colonne site WritableFont fontAgence= new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD); fontAgence.setColour(jxl.format.Colour.AUTO MATIC); WritableCellFormat fontAgenceFormat = new WritableCellFormat (fontAgence); fontAgenceFormat.setAlignment(Alignment.CEN TRE); fontAgenceFormat.setOrientation(Orientation .PLUS_90); fontAgenceFormat.setVerticalAlignment(Verti calAlignment.CENTRE); fontAgenceFormat.setBackground(jxl.format.C olour.WHITE); fontAgenceFormat.setBorder(Border.TOP, Bord erLineStyle.MEDIUM, jxl.format.Colour.AUTOMATIC); fontAgenceFormat.setBorder(Border.RIGHT, Bo rderLineStyle.THIN, jxl.format.Colour.AUTOMATIC); s.setColumnView(1, 5); //Type de dispo WritableFont typeDispoCol= new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD); typeDispoCol.setColour(jxl.format.Colour.WH ITE); WritableCellFormat typeDispoFormat = new WritableCellFormat (typeDispoCol); typeDispoFormat.setAlignment(Alignment.CENT RE); typeDispoFormat.setOrientation(Orientation. PLUS_90); typeDispoFormat.setVerticalAlignment(Vertic alAlignment.CENTRE); typeDispoFormat.setBackground(jxl.format.Co lour.AUTOMATIC); s.setColumnView(0, 5);

Page 56: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 56/62

//ligne de transition WritableCellFormat ligneTransitionFormat = new WritableCellFormat (); ligneTransitionFormat.setBackground(jxl.for mat.Colour.BLACK); ligneTransitionFormat.setBorder(Border.RIGH T, BorderLineStyle.THICK, jxl.format.Colour.BLACK); //ligne de transition interTypeDispo WritableCellFormat ligneTransitionFormat2 = new WritableCellFormat (); ligneTransitionFormat2.setBackground(jxl.fo rmat.Colour.BLACK); ligneTransitionFormat2.setBorder(Border.RIG HT, BorderLineStyle.THICK, jxl.format.Colour.BLACK); //une cellule de données noJour WritableFont fontData= new WritableFont(WritableFont.TIMES, 8, WritableFont.NO_BOLD); WritableCellFormat colNoJourFormat= new WritableCellFormat(fontData); colNoJourFormat.setBorder(Border.RIGHT, Bor derLineStyle.DASHED, jxl.format.Colour.BLACK); colNoJourFormat.setAlignment(Alignment.CENT RE); //une cellule de données personne WritableCellFormat colPersonneFormat= new WritableCellFormat(fontData); colPersonneFormat.setBorder(Border.RIGHT, B orderLineStyle.THICK, jxl.format.Colour.BLACK); colPersonneFormat.setAlignment(Alignment.CE NTRE); colPersonneFormat.setWrap( true); //apparence de la colonne site WritableFont fontAgence2= new WritableFont(WritableFont.ARIAL, 12, WritableFont.BOLD); fontAgence2.setColour(jxl.format.Colour.AUT OMATIC); WritableCellFormat fontAgenceFormat2 = new WritableCellFormat (fontAgence2); fontAgenceFormat2.setAlignment(Alignment.CE NTRE); fontAgenceFormat2.setOrientation(Orientatio n.PLUS_90); fontAgenceFormat2.setVerticalAlignment(Vert icalAlignment.CENTRE); fontAgenceFormat2.setBackground(jxl.format. Colour.PALE_BLUE); fontAgenceFormat2.setBorder(Border.TOP, Bor derLineStyle.MEDIUM, jxl.format.Colour.AUTOMATIC); fontAgenceFormat2.setBorder(Border.RIGHT, B orderLineStyle.THIN, jxl.format.Colour.AUTOMATIC); //une cellule de données noJour WritableFont fontData2= new WritableFont(WritableFont.TIMES, 8, WritableFont.NO_BOLD); WritableCellFormat colNoJourFormat2= new WritableCellFormat(fontData2); colNoJourFormat2.setBorder(Border.RIGHT, Bo rderLineStyle.DASHED, jxl.format.Colour.BLACK); colNoJourFormat2.setAlignment(Alignment.CEN TRE); colNoJourFormat2.setBackground(jxl.format.C olour.PALE_BLUE); CellView colNoJour2= new CellView(); colNoJour2.setSize(256*3); colNoJour2.setFormat(colNoJourFormat); //une cellule de données personne

Page 57: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 57/62

WritableCellFormat colPersonneFormat2= new WritableCellFormat(fontData2); colPersonneFormat2.setBorder(Border.RIGHT, BorderLineStyle.THICK, jxl.format.Colour.BLACK); colPersonneFormat2.setAlignment(Alignment.C ENTRE); colPersonneFormat2.setBackground(jxl.format .Colour.PALE_BLUE); colPersonneFormat2.setWrap( true); //remplissage du tableau this. row =2; this. rowD=2; this. rowMax=2; this. col =1; this. colD =1; this.afficherSousTable( "DF" , "Disponibilité ferme" , ligneTransitionFormat, fontAgenceFormat, colNoJourFormat, colPersonneForma t, fontAgenceFormat2, colNoJourFormat2, colPersonneFormat2, typeDispoForm at, ligneTransitionFormat2); this.afficherSousTable( "MAC", "Manager à consulter" , ligneTransitionFormat, fontAgenceFormat, colNoJourF ormat, colPersonneFormat, fontAgenceFormat2, colNoJourFormat2, colPersonneFor mat2, typeDispoFormat, ligneTransitionFormat2); this.afficherSousTable( "FPP" , "Forte probabilité de prolongation" , ligneTransitionFormat, fontAgenceFormat, colNoJourF ormat, colPersonneFormat, fontAgenceFormat2, colNoJourFormat2, colPersonneFor mat2, typeDispoFormat, ligneTransitionFormat2); } /** * Methode qui comble le tableau avec des cases vide * @param colNoJourFormat WritableCellFormat : style associé à la colonne NoJour * @param colPersonneFormat WritableCellFormat : style associé à la colonne Personne * @throws RowsExceededException * @throws WriteException */ public void comblerTableau(WritableCellFormat colNoJourFormat, WritableCellFormat colPersonneFormat) throws RowsExceededException, WriteException{ if( this. row - this. rowD != this. max){ for( int x=( this. row - this. rowD); x< this. max; x++){ Label l1= new Label( col , this. rowD+x, "" , colNoJourFormat); s.addCell(l1); this. col ++; Label l2= new Label( this. col , this. rowD+x, "" , colPersonneFormat); s.addCell(l2); this. col --; } } } /** * Methode qui affiche une colonne pour un mois, et pour un site donné * @param lp List <Personne> : liste de personne

Page 58: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 58/62

* @param colNoJourFormat WritableCellFormat : style associé à la colonne NoJour * @param colPersonneFormat WritableCellFormat : style associé à la colonne Personne * @throws RowsExceededException * @throws WriteException */ public void afficherColonne(List<Personne> lp, WritableCellFor mat colNoJourFormat, WritableCellFormat colPersonneForm at, boolean firstColumn) throws RowsExceededException, WriteException{ Label collaborateur; this. rowMax=this. row ; this. row =this. rowD; this. col +=2; Iterator<Personne> i= lp.listIterator(); Personne p; while(i.hasNext()){ p=(Personne) i.next(); Calendar cal=Calendar. getInstance(); cal.setTime(p.getDate_dispo()); if(firstColumn){ Calendar nowCal=Calendar. getInstance(); if(nowCal.get(Calendar. MONTH)==0 && cal.get(Calendar. MONTH) > 0 && cal.get(Calendar. MONTH)<12 && cal.get(Calendar. YEAR)<nowCal.get(Calendar. YEAR)){ Label jour_dispo= new Label( this. col , this. row , cal.get(Calendar. DATE)+ "/" +(cal.get(Calendar. MONTH)+1), colNoJourFormat); s.addCell(jour_dispo); } else if(cal.get(Calendar. MONTH)<nowCal.get(Calendar. MONTH)){ Label jour_dispo= new Label( this. col , this. row , cal.get(Calendar. DATE)+ "/" +(cal.get(Calendar. MONTH)+1), colNoJourFormat); s.addCell(jour_dispo); } else { Number jour_dispo= new Number( this. col , this. row , cal.get(Calendar. DATE), colNoJourFormat); s.addCell(jour_dispo); } } else { Number jour_dispo= new Number( this. col , this. row , cal.get(Calendar. DATE), colNoJourFormat); s.addCell(jour_dispo); } this. col ++; String taux= "" ; if(p.getTaux_affectation()<100){ taux=p.getTaux_affectation()+ "% - " ; } if(p.getCommentaires()== null || p.getCommentaires().compareTo( "" )==0){ collaborateur= new Label( this. col , this. row , p.getPrenom()+ " " +p.getNom(), colPersonneFormat); } else collaborateur= new Label( this. col , this. row , p.getPrenom()+ " " +p.getNom() + "\n(" +taux+p.getCommentaires()+ ")" , colPersonneFormat); s.addCell(collaborateur); col --;

Page 59: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 59/62

this. row ++; if( this. row >this. rowMax) this. rowMax=this. row ; } this.comblerTableau(colNoJourFormat, colPersonneFormat) ; } /** * Methode qui renvoie une sous liste contenant juste les personne d'un type de dispo. * @param lp List <Personne> : liste de personne dans laquelle il faut chercher * @param typeDispo String : Type de dispo à chercher dans la liste * @return List <Personne> : sous liste contenant juste les personne d'un type de dispo. */ public List<Personne> isolerPersonneTypeDispo(List<Person ne> lp, String typeDispo){ List<Personne> lret= new ArrayList<Personne>(); Iterator<Personne> i=lp.listIterator(); Personne p; while(i.hasNext()){ p=(Personne) i.next(); if(p.getType_dispo().compareTo(typeDispo)==0) lret.ad d(p); } return lret; } /** * Methode qui affiche chacune des sous table correspondant a un type de dispo * @param type String : type de la dispo tel qu'il apparait dans l'objet ("DF", "MAC", "FPP") * @param labelType String : Label de la premiere colonne * @param ligneTransitionFormat * @param fontAgenceFormat * @param colNoJourFormat * @param colPersonneFormat * @param typeDispoFormat * @param ligneTransitionFormat2 * @throws RowsExceededException * @throws WriteException */ public void afficherSousTable(String type, String labelType, WritableCellFormat ligneTransitionForma t, WritableCellFormat fontAgenceFormat, WritableCellFormat colNoJourFormat, WritableCellFormat colPersonneFormat, WritableCellFormat fontAgenceFormat2, WritableCellFormat colNoJourFormat2, WritableCellFormat colPersonneFormat2, WritableCellFormat typeDispoFormat, WritableCellFormat ligneTransitionForma t2) throws RowsExceededException, WriteException{ Label site; Label ligneTransition;

Page 60: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 60/62

Label typedispo; Iterator<Tab_DispoRow> i; Tab_DispoRow tdr; this. rowDTypeDispo =this. rowMax; i=ltdr.listIterator(); int j=0; while(i.hasNext()){ this. rowD=this. rowMax; this. colD =this. col ; this. row =this. rowMax; ligneTransition= new Label(1, ( this. rowMax-1), "" , ligneTransitionFormat); s.addCell(ligneTransition); s.mergeCells(1, ( this. rowMax-1), 13, ( this. rowMax-1)); s.setRowView( this. rowMax-1, 100); tdr=(Tab_DispoRow) i.next(); if(j%2==0){ site= new Label( this. col , this. row , tdr.getSite().getLib_site(), fontAgenceFormat); } else { site= new Label( this. col , this. row , tdr.getSite().getLib_site(), fontAgenceFormat2); } s.addCell(site); this. col ++; List<Personne> lp1= this.isolerPersonneTypeDispo(tdr.getListePersonne1(), t ype); List<Personne> lp2= this.isolerPersonneTypeDispo(tdr.getListePersonne2(), t ype); List<Personne> lp3= this.isolerPersonneTypeDispo(tdr.getListePersonne3(), t ype); List<Personne> lp4= this.isolerPersonneTypeDispo(tdr.getListePersonne4(), t ype); List<Personne> lp5= this.isolerPersonneTypeDispo(tdr.getListePersonne5(), t ype); List<Personne> lp6= this.isolerPersonneTypeDispo(tdr.getListePersonne6(), t ype); //on recupere la taille max de liste pour ce site int[] tabNbPersonnes= new int[6]; tabNbPersonnes[0]=lp1.size(); tabNbPersonnes[1]=lp2.size(); tabNbPersonnes[2]=lp3.size(); tabNbPersonnes[3]=lp4.size(); tabNbPersonnes[4]=lp5.size(); tabNbPersonnes[5]=lp6.size(); this. max=tabNbPersonnes[0]; for( int parcours1=1; parcours1<6; parcours1++){ if(tabNbPersonnes[parcours1] > this. max) max=tabNbPersonnes[parcours1]; } if( this. max <6) this. max=6;

Page 61: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 61/62

if(j%2==0){ //premiere colonne this. col =0; this.afficherColonne(lp1, colNoJourFormat, colPersonneF ormat, true); //deuxieme colonne this.afficherColonne(lp2, colNoJourFormat, colPersonneF ormat, false); //troisieme colonne this.afficherColonne(lp3, colNoJourFormat, colPersonneF ormat, false); //quatrieme colonne this.afficherColonne(lp4, colNoJourFormat, colPersonneF ormat, false); //cinquieme colonne this.afficherColonne(lp5, colNoJourFormat, colPersonneF ormat, false); //sixieme colonne this.afficherColonne(lp6, colNoJourFormat, colPersonneF ormat, false); } else { //premiere colonne this. col =0; this.afficherColonne(lp1, colNoJourFormat2, colPersonne Format2, true); //deuxieme colonne this.afficherColonne(lp2, colNoJourFormat2, colPersonne Format2, false); //troisieme colonne this.afficherColonne(lp3, colNoJourFormat2, colPersonne Format2, false); //quatrieme colonne this.afficherColonne(lp4, colNoJourFormat2, colPersonne Format2, false); //cinquieme colonne this.afficherColonne(lp5, colNoJourFormat2, colPersonne Format2, false); //sixieme colonne this.afficherColonne(lp6, colNoJourFormat2, colPersonne Format2, false); } this. col =this. colD ; this. rowMax=this. rowD+this. max; s.mergeCells(site.getColumn(), site.get Row(), this. col , ( this. rowMax-1)); this. rowMax++; this. row ++; j++; } typedispo= new Label(0, this. rowDTypeDispo -1, labelType, typeDispoFormat); s.addCell(typedispo); s.mergeCells(0, this. rowDTypeDispo -1, 0, this. rowMax-1);

Page 62: Rapport de stage - ipom.free.fripom.free.fr/Rapport de stage.pdf · Rapport de stage Version 1.00 du 7 août 2008 Etat : Projet Paul Clément, Licence MIAGE Année Universitaire 2007-2008

Rapport de stage ERP Agence - MAGICCA Sopra Group Le 07/08/2008

© Sopra Group, 2008 / Version : 1.00 / Etat : Projet / Réf. : 20080804-110737-pCl

Page 62/62

ligneTransition= new Label(1, this. rowMax-1, "" , ligneTransitionFormat2); s.addCell(ligneTransition); s.mergeCells(1, this. rowMax-1, 13, this. rowMax-1); this. rowMax++; } }