24
Adrien GENEST BTS Service informatiques Lycée Raoul Follereau aux organisations Option SLAM Rapport de stage Technicentre Industriel de Nevers 1 Rue Benoît Frachon 58640 Varennes Vauzelles 2014-2015

portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Adrien GENEST BTS Service informatiques

Lycée Raoul Follereau aux organisations

Option SLAM

Rapport de stageTechnicentre Industriel de Nevers

1 Rue Benoît Frachon

58640 Varennes Vauzelles

2014-2015

Du 9 février au 3 juin 2015

Page 2: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Plan :

PLAN :.................................................................................................................................................. 2

REMERCIEMENTS :.......................................................................................................................... 1

INTRODUCTION............................................................................................................................... 2

Présentation de l’entreprise :......................................................................................................................... 2

Présentation du Technicentre de Varennes-Vauzelle :....................................................................................3

Présentation du service Informatique :.......................................................................................................... 4

AUTRE TÂCHES EFFECTUÉ DURANT LE STAGE:....................................................................5

Page d’accueil :.............................................................................................................................................. 6

Page gestion bibliothèque :............................................................................................................................ 7

Page gestion stock :....................................................................................................................................... 8

Planning et tableau de bord :......................................................................................................................... 9

PRÉSENTATION DU PROJET :.................................................................................................... 10

MCD............................................................................................................................................................ 11

MLD:........................................................................................................................................................... 12

Requête récursive........................................................................................................................................ 13

Interface de DP............................................................................................................................................ 15

Page 3: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Remerciements :

Je tiens à remercier tout d’abord Sébastien Coussy, responsable du service informatique du technicentre Industriel de Nevers pour m’avoir accueilli au sein de son service.

Je tiens ensuite à remercier Jérôme Gagnard mon tuteur durant mon stage, qui m’aura guidé et aider dans toutes les tâches que j’ai réalisé durant ces 8 semaines.

Je tiens enfin à remercier toutes les personnes du service informatique local du technicentre industriel de Nevers pour l’aide qu’ils m’auront apporté durant les 8 semaines mais aussi pour leur accueil chaleureux.

1

Page 4: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Introduction : Dans le cadre de ma formation en BTS Services Informatiques aux Organisations spécialité (Solutions logicielles et applications métiers), j’ai effectué un stage d’une durée de 8 semaines du 9 février 2015 au 03 avril 2015 au sein du service informatique du technicentre SNCF à Varennes Vauzelle.

Je vais d’abord présenter la SNCF et le technicentre puis je continuerai sur le projet que j’ai réalisé durant mon stage ou je devais développer une application en WinDev.

Présentation de l’entreprise : Le Technicentre SNCF (Société nationale des chemins de fer français) de Varennes-Vauzelles qui compte plus de 1200 employé s’occupe de la maintenance mais aussi la rénovation des TER (Transport express régional) de toute la France. Il y a 38 Technicentre en tout en France qui embauche plus de 20 000 personnes. Il existe deux types de technicentre, les technicentres de maintenance (intervention légère sur les trains) anciennement appelé EMM mais aussi les technicentres industrielle (intervention lourde sur les trains) anciennement appelé EIM. Le technicentre de Varennes-Vauzelles est un technicentre industriel, il est aussi appelé TIN (Technicentre Industriel de Nevers).

La SNCF est une entreprise séparée en 5 entités principales depuis le 1er janvier 2015 qui sont SNCF infra, SNCF Proximités, SNCF Voyages, SNCF Logistique et Gare et Connexions. Le technicentre de Varennes-Vauzelles se situe dans le domaine matériel de la SNCF qui est dans la branche opération Industrielle et il s’occupe de l’entretien des TER qui appartient à l’entité SNCF Proximités.

2

SNCFSiège social

La Plaine Saint-Denis, Saint-Denis (France)

SNCF Infra

RFF (Réseau ferré de France)

Opération industrielle

Domaine Matériel

Technicentre SNCF

SNCF Proximités

TER(train express

regional

SNCF Voyages

TGV(train à grande

vitesse)

SNCF Logistique

Fret

Gare et Connexions

Gare de Nevers

Page 5: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Présentation du Technicentre de Varennes-Vauzelle :Lieu de l’organisation : 1 rue Benoit Frachon, 586410 Varennes-Vauzelle (A compléter)

Numero de telephone : 0386936419

Ci-dessous un organigramme du technicentre de Varennes-Vauzelle:

Le service informatique appartient aux ressources humaines car peut être que les ressources humaines ont numérisé ou veulent numérisé les documents administratif ou sinon peut-être que le service informatique permet d’améliorer les conditions de travail au sein du technicentre en développant des applications par exemple.

3

Direction du Technicentre

Catherine Trevet

Responsable amélioration

ContinueFred Marie

UO transverses

UU Pièces réparables du

matériel

UO Maintenance engins

Pôle Ingénierie Matériaux

Assistante de Direction J Laporte

Pôle Ingénierie

Qualité environnement

COSI

Pôle Logistique Industrielle

Ressources humaines

Service Informatique

Sebastien CoussyPôle

Industrielle

Page 6: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Présentation du service Informatique : J’ai exercé mon stage dans le service informatique qui est composé d’une dizaine de personne. Environ la moitié de ces personnes s’occupe de la partie réseau du technicentre tandis que les autres s’occupent plutôt du développement Informatique pour le Technicentre.

Pourquoi il y a encore un service informatique local au Technicentre de Nevers?

Il y a encore un service informatique au technicentre de Varennes-Vauzelles contrairement aux autres technicentre car comme il compte beaucoup d’employés, le service informatique permet de répondre à la demande du technicentre plus rapidement que si il était sous-traiter ou externaliser.

4

Sebastien CoussyResponsable du service

informatique

Lucas FerrandonAdministrateur réseaux et

sytèmes

Cedric Marchal Stagiaire BTS SIO

Administrateur sytsème et réseaux

Jérôme GagnardDéveloppeur application et

WebChef de projet

Damien DefienneAlternant CS2I

Développeur Application et Web

Chef de Projet

Nicolas GodetDéveloppeur Application et

LogicielleChef de projet

Adrien GenestStagiaire BTS SIO

Développeur d'application

Thibault GerbeaultAlternant CS2I

Développeur Web et Chef de projet

Julien GagnardDéveloppeur d'application et

WebChef de Projet

Aymeric MaillerAlternant

Adminsitrateur système et réseaux

Page 7: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Autre tâches effectué durant le stage: Durant mon stage j’ai effectué un document expliquant toutes les étapes préalable à un projet comme l’étude de l’existant, la critique de l’existant et enfin l’analyse des besoins.

J’ai aussi réalisé un diagramme de Gantt qui indique l’ordre des tâches que j’ai effectué et à quelle date je l’ai ai réalisé.

Le technicentre SNCF a fait une demande au service informatique concernant une application permettant la gestion d’un catalogue de produit mais qui permet aussi d’ajouter les produits du catalogue au stock, ensuite l’application nous permettait d’anticiper la commande d’un produit grâce à la date de péremption et le délai de réapprovisionnement. L’application utilise une base de données en locale.

Pour cette application, je me suis servi de ce MCD :

e

L’application était composée de trois fenêtres :

- la fenêtre principale qui se lance au lancement et qui permet de choisir la fenêtre que l’on souhaite ;

- la fenêtre de gestion de la bibliothèque qui permet de gérer les produits dans la bibliothèque ;

- la fenêtre gestion des stocks qui permet de gérer les produits dans le stock grâce à une date de péremption et un délai de réapprovisionnement ;

5

0,10, n

t_produit_bibliotheque

produit_bibliotheque_id

produit_bibliotheque_reference

produit_bibliotheque_commentaire

produit_bilbiotheque_designation

produit_blibliotheque_delai_reapprovisionnement

produit_bibliotheque_cache

t_produit_stock

produit_stock_id

produit_stock_produit_bibliotheque_id

produit_stock_produit_bibliotheque_reference

produit_stock_produit_bibliotheque_commentaire

produit_stock_produit_bilbiotheque_designation

produit_stock_produit_bibliotheque_delai_reapprovisionnement

produit_stock_numero

produit_stock_date_peremption

produit_stock_date_sortie

Page 8: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Page d’accueil :

Voici la page d’accueil qui est la page qui apparait lors du lancement de l’application. Cette page ne comporte que deux boutons qui permettent de savoir sur quelles pages ont veut être redirigées.

Elle comporte aussi le logo de l’application qui est inspiré du Pop’art.

Le logo se nomme POP pour Prévoyance de l’Obsolescence des Produits.

6

Page 9: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Page gestion bibliothèque :

La page gestion bibliothèque est la page qui permet d’ajouter au catalogue des produits.

Elle est composée d’un tableau qui contient les produits déjà ajoutées au catalogue avec toutes leurs informations. La colonne visible permet de savoir si oui ou non le produit sera visible sur la page gestion des stocks lorsque l’on cherchera un produit dans la bibliothèque.

Le tableau comporte deux boutons :

- + qui permet d’afficher les champs de saisie sur la droite pour pouvoir ajouter un nouveau produit ;

- - qui permet de supprimer le produit sélectionné dans le tableau.

Lorsque l’on sélectionne une ligne du tableau, ses valeurs seront transmises aux champs de saisie et il sera possible de modifier le produit.

Tous les champs de saisie définissent un produit de la bibliothèque mais il n’y a que la référence et l’id qui sont obligatoires.

Le bouton Enregistrer permet soit de modifier un produit si une ligne du tableau est sélectionner ou soit d’ajouter un nouveau produit si on avait cliqué sur « + ».

Enfin le bouton imiter permet de copier un produit qui est déjà ajouté au tableau, seul l’id et la référence doivent changer car ils sont uniques, il suffit ensuite juste de l’enregistrer pour pouvoir l’ajouter au tableau.

7

Page 10: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Page gestion stock :

La page gestion bibliothèque est la page qui permet d’ajouter au stock des produits qui sont dans le catalogue ou non.

Cette page contient un tableau qui stocke les produits dans le stock, les lignes du tableau peuvent être de trois états :

- Rouge, si le délai entre le réapprovisionnement et la date de péremption est négatif, ce qui veut dire qu’il faut recommander le produit ;

- Normal, le produit est toujours dans le stock et il n’as pas besoin d’être recommander. - Grisé, Le produit est sorti.

Le tableau comporte aussi deux boutons :

- + qui permet d’afficher les champs de saisie sur la droite pour pouvoir ajouter un nouveau produit au stock;

- - qui permet de supprimer le produit du stock sélectionné dans le tableau.

Lorsque l’on sélectionne une ligne du tableau, ses valeurs seront transmises aux champs de saisie et il sera possible de modifier le produit.

Le champ Produit « bibliothèque » est le champ qui comporte tous les produits de la bibliothèque que l’on a mis à « Visible » avec leur référence et leur désignation.

Le bouton Enregistrer permet soit de modifier un produit si une ligne du tableau est sélectionner ou soit d’ajouter un nouveau produit au stock si on avait cliqué sur « + ».

Pour que l’ajout fonctionne les champs référence, id et désignation ne doivent pas être vide.

8

Page 11: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Enfin le bouton imiter permet de copier un produit qui est déjà ajouté au tableau, seul l’id changera.

Une fois l’application prête à être installée sur des postes, j’ai réalisé son bilan.

Planning et tableau de bord :

Durant les 8 semaines de mon stage, j’ai réalisé des tableaux de bord hebdomadaires qui expliquait toutes les tâches que j’ai effectué durant mon stage.

Voici à quoi ressembler ces tableaux de bords :

Au tout début de mon projet j’ai aussi réalisé un diagramme de Gantt qui planifier les tâches que je devais réaliser durant tout le stage et aussi un planning de ma présence.

9

Page 12: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Présentation du projet : Contexte : La direction du technicentre industriel de Nevers souhaitait pouvoir faire le suivi de question-réponse avec les organismes syndicaux.

La mission que l’on m’a confiée durant ce stage était donc de développer une application en WinDev permettant le suivi des questions-réponses des organismes syndicaux autour d’une base de données déjà existante sous PostgreSQL qui devra réaliser l’édition des documents synthétiques pour les différentes réunions des délégués du personnel. L’un des principaux objectifs était de rendre l’application plus rapide que ce soit pour l’interface ou les traitements

Réalisation (Développement, Test, etc.).

J’ai donc dû commencer par faire une analyse de l’existant puis faire sa critique et continuer sur les besoins que le projet nécessité.

10

Organisme syndical

Secrétaire de

direction

Direction

Agent

Application DP

Groupe

1- L’organisme pose une question à une date

2- la secrétaire associe la question à un groupe, à un hème et aux questions liée si besoins

3- Le groupe associe la question à l’un de ses agents 4- L’agent répond aux questions

qui lui ont été affectés

5- La direction peut modifier puis imprimer les questions-réponses

6- Réunion entre la direction et les organismes

Page 13: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Après l’analyse de l’existant j’ai réalisé la critique de l’existant mais aussi l’analyse des besoins:

MCD:

11

0,n

0,n

1,1

1,1

0,n

1,1

1,1

0,n

1,1

1,1

1,10,n

1,1

0,n

0,n

0,n

1,1

0,n

0,n

1,1

1,10,n

1,10,n

t_question

question_id

question_num

question_libelle

question_date

question_ordre

t_theme

theme_id

theme_libelle

theme_ordre

t_syndicat

syndicat_id

syndicat_nom

syndicat_ordre

t_reponse

reponse_id

reponse_libelle

reponse_piece-jointe

reponse_ordre

t_groupe

groupe_id

groupe_nom

t_agent

agent_id

agent_nom

agent_prenom

agent_poste

t_ensemble

ensemble_id

ensemble_nom

ensemble_ordre

t_sous_theme

sous_theme_id

sous_theme_libelle

sous_theme_ordre

tj_question_groupe

question_groupe_id

tj_question_agent

question_agent_id

tj_question_reponse

question_reponse_id

Page 14: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

MLD:t_sous_theme (sous_theme_id, sous_theme_libelle, sous_theme_ordre, #theme_id)

t_theme (theme_id, theme_libelle, theme_ordre)

t_syndicat (syndicat_id, syndicat_nom, syndicat_ordre)

t_groupe (groupe_id, groupe_nom)

t_agent (agent_id, agent_nom, agent_prenom, agent_poste, #groupe_id)

t_reponse (reponse_id, reponse_libelle, reponse_piece-jointe, reponse_ordre, #agent_id)

t_question (question_id, question_num, question_libelle, question_date, question_ordre, #theme_id, #syndicat_id, #groupe_id, #reponse_id, #ensemble_id)

t_ensemble (ensemble_id, ensemble_ordre, #question_id)

tj_question_groupe (question_groupe_id, #question_id, #groupe_id)

tj_question_agent (question_agent_id, #question_id, #agent_id)

tj_question_reponse (question_reponse_id, #question_id, #reponse_id)

Voici le MCD et le MLD que j’ai réalisé d’après les besoins que l’on m’a énoncé avant de connaitre l’existant, ils étaient tous les deux très proches de l’existant. Les seules différences sont les attributs manquant comme l’archivage pour les entités.

12

Page 15: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Requête récursive Ensuite pour pouvoir différencier les thèmes et les sous thèmes, j’ai dû faire une requête récursive sous PostgreSQL :

WITH RECURSIVE sub_tree (                                                        theme_id                                        ,    theme_libelle                                        ,    theme_parent_id                                ,    theme_ordre_impression                        ,    rang                                                ,    chemin                                            ,    chemin_tri                                                                        )             AS (    -----------------------------------------------------------------------   

SELECT     theme_id                         ,    theme_libelle                 

,    theme_parent_id                            ,    theme_ordre_impression

                    ,     1                            ,     theme_libelle::text                    ,    theme_ordre_impression::text                FROM         %1.v_theme                        WHERE     theme_parent_id IS NULL                             ----------------------------------------------            UNION                                                ----------------------------------------------                SELECT    t1.theme_id                         ,    t1.theme_libelle                               

,    t1.theme_parent_id  ,    t1.theme_ordre_impression

                    ,    t2.rang + 1          ,    chemin ||'   ' || t1.theme_libelle     

,    chemin_tri || '-' || t1.theme_ordre_impression                 

                FROM         %1.v_theme t1                    INNER JOIN     sub_tree t2                   ON     t2.theme_id = t1.theme_parent_id                        )    ------------------------------------------------------------------------    SELECT   chemin_tri    ,    chemin        ,    organisme_ordre_impression    ,    reponse_ordre_impression    ,    question_numero        ,    question_libelle        ,    question_date    ,    question_id    ,    question_organisme_id    ,    question_organisme_nom    ,    theme_id            ,    theme_libelle    ,    liaison_id    ,    liaison_regroupement_id    ,    liaison_ordre_impression        ,    reponse_id       ,   reponse_libelle                                        ,   piece_jointe_id

13

Page 16: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

   ,   piece_jointe_libelle ,    CASE                                                        WHEN liaison_id IS NOT NULL                                        THEN    (                                                SELECT MIN(question_numero) as mini                                FROM     %1.v_liaison l1

        JOIN    %1.v_question q1                ON     q1.question_id = l1.liaison_question_id                WHERE liaison_regroupement_id = l.liaison_regroupement_id    ORDER BY mini                                            )                        ELSE question_numero            END                    AS    num_impression_liaisonFROM            sub_tree    sLEFT OUTER JOIN    %1.v_question q   

ON                 question_theme_id = s.theme_id    LEFT OUTER JOIN    %1.v_reponse    r   

ON                q.question_id = r.reponse_question_id    LEFT OUTER JOIN    %1.v_piece_jointe p   

ON                r.reponse_id = piece_jointe_reponse_idLEFT OUTER JOIN    %1.v_liaison l   

ON                q.question_id =     l.liaison_question_id    LEFT OUTER JOIN    %1.v_organisme o    

ON                question_organisme_id = o.organisme_idORDER BY  chemin_tri, organisme_ordre_impression, num_impression_liaison, liaison_ordre_impression, question_numero

Cette requête est une requête CTE (Common table expression ou table d’expression partagé), elle permet de faire appel à une vue « temporaire » qui va faire d’abord une requête sur une table récursive, puis faire une sous requête grâce au Union pour faire le lien entre l’id parent est l’id enfant dans cette même table.

Dans cette requête, pour pouvoir différencier les thèmes et les sous-thèmes, j’ai mis dans la vue temporaire sub_tree, un paramètre rang qui contient la valeur du rang des thèmes pour indiquer leurs niveaux par rapport aux autres. Mais j’ai aussi créé un paramètre « chemin » qui permet de connaitre l’arborescence d’un thème pour savoir si il est un thème parent ou un thème enfant, ce champ permet donc de trier plus facilement sous la forme d’un arbre car on a directement le chemin des thèmes.

La seconde requête permet de faire appel à la CTE et de faire le lien entre celle-ci et les tables de la base de données. Cette requête permet de d’ajouter directement les données dans un arbres car elles sont déjà trié dans l’ordre.

14

Page 17: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Interface de DPVoici l’interface de l’application DP qui permet de faire la gestion des liaisons, questions, réponse et pièce-jointe.

Pour arriver à cette interface, j’ai rédigé un document Word qui contenait plusieurs maquettes avec pour chacune leurs spécifications techniques. Ce document comportait ensuite un tableau dans lequel, il y avait tous les besoins que nécessitait l’interface et en face de ces besoins on cochait pour chaque interface si oui ou non elle répondait aux besoins. Ensuite j’ai choisi la maquette qui répondait le plus aux besoins et j’ai justifié pourquoi.

Cette interface est basée sur un arbre qui est rempli par une base de données en PostgreSQL.

Dans cet arbre, on trouve d’abord les thèmes, puis les sous-thèmes si il y en à, vient ensuite soit les liaisons qui comporte des questions, puis des réponses, puis des pièce-jointe ou sinon il apparait directement les questions avec leur réponses et pièces jointes.

Ensuite il est possible de choisir des filtres en haut, soit par date et par thème qui mettent à jour l’arbre automatiquement.

Ensuite pour chaque ligne sélectionnée dans l’arbre, des champs de saisie vont apparaitre sur la droite pour pouvoir modifier la donnée sélectionnée dans l’arbre.

15

Page 18: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Enfin un bouton lier permet de lier les questions entre elle, un bouton supprimer permet de supprimer la ligne que l’on à sélectionnée et enfin un bouton ajouter permet d’ajouter un nouvel élément à l’arbre un niveau en dessous de l’élément que l’on à sélectionnée.

16

Page 19: portefeuilleadriengenest.e-monsite.comportefeuilleadriengenest.e-monsite.com/medias/files/... · Web viewDurant mon stage j’ai effectué un document expliquant toutes les étapes

Conclusion sur le stage :

Ce stage au sein du service informatique local du technicentre industriel de Nevers m’a été très bénéfique.

Il m’aura permis d’acquérir de nouvelles compétences comme l’utilisation du logiciel WinDev pour développer ou encore du SGBD PostgreSQL, il m’a aussi permis de voir comment fonctionnait un service informatique.

Ce stage a parfaitement répondu à mes attentes et il m’a permis de conforter mon choix de poursuivre dans le secteur informatique.

17