Analyse et Conception d`un logiciel de Gestion des Arrêtés

Transcription

Analyse et Conception d`un logiciel de Gestion des Arrêtés
Bastien LAGOUTIERE
I.U.T. Génie Informatique 2ème année
Université Nice Côte d’Azur
Institut Universitaire de Technologie
Département informatique
Promotion 2002
Analyse et Conception d’un logiciel de Gestion
des Arrêtés municipaux
Mairie de Nice
DIRECTION INFORMATIQUE & TELECOMMUNICATIONS
3, rue de la Terrasse
06000 NICE
Maître d’apprentissage : M. J. SWIFT
Tuteurs : Mme Muriel BARLA et M Jean-Luc CIVILISE
REMERCIEMENTS
Ce stage a été effectué au sein de la Direction de l’Informatique et des
Télécommunications de la Mairie de NICE sous la responsabilité de Madame AnneMarie ATLAN et sous la tutelle de Madame Muriel BARLA et Monsieur Jean-Luc
CIVILISE.
Je remercie toutes les personnes du service et plus particulièrement Madame
Muriel BARLA et Monsieur Jean-Luc CIVILISE pour leur écoute et leur dévouement,
Monsieur Alain RAIBALDI pour les connaissances qu’il a su me transmettre, et
Monsieur Sébastien BOUKHALFA qui a participé à la création de l’application.
Je remercie également Mesdames Anne-Marie ATLAN, Danielle DALMASSO,
Catherine SIMMONIN, Nicole PIEGGI et Monsieur Georges MURINGER pour leur
accueil chaleureux, et leurs conseils avisés.
TABLE DES MATIERES
Remerciements
p.2
Table des matières
p.3
Résumé
p.5
Présentation du sujet
p.6
Présentation de la D.I.T.
1. Présentation de la D.I.T.
1.1. Fonction générale
1.2. Organigramme du service
1.3. Matériel à disposition pour le stage
1.4. Matériel général
p.7
p.8
p.8
p.9
p.10
p.10
Partie analyse
2. Analyse
2.1. Cahier des charges
2.1.1. Identification générale
2.1.2. Localisation
2.1.3. Circuit
2.1.4. Article
2.2. Fonctions particulières
2.2.1. Création et mise à jour
2.2.2. Suppression
2.2.3. Consultation
2.2.4. Contrôle d’accès et sécurité
2.2.5. Récupération des données
2.2.6. Difficultés rencontrées
2.4. Diagramme des fonctions générales
2.3. Dictionnaire de données
p.11
p.12
p.12
p.12
p.13
p.13
p.14
p.14
p.14
p.15
p.15
p.15
p.16
p.16
p.17
p.18
Partie conception
3. Conception
3.1. Lotus Notes et Domino Designer 5
3.2. Application des arrêtés municipaux
3.2.1. Mise en route
3.2.2. Ecran d’accueil
3.2.3. Menu dynamique
3.2.4. Création d’un arrêté
3.2.4.1 Identification générale
3.2.4.2. Tableau à onglets
3.2.4.3. Ajout d’informations complémentaires
3.2.4.4. Bouton de suppression
p.19
p.20
p.20
p.21
p.21
p.22
p.23
p.24
p.24
p.25
p.25
p.27
3.2.5. Consultation
3.3. Difficultés rencontrées
3.4. Etat d’avancement de l’application
p.28
p.28
p.28
Conclusion
p.30
Partie des annexes
1 Cahier des charges
2 Environnement de travail
3 Masque ArreteMunicipal
4 Masque Localisation
5 Masque Article
6 Masque Menu
7 Masque Confirmation
8 Agencement de cadre
9 Exemples de programmes
p.32
p.46
p.47
p.48
p.49
p.50
p.51
p.52
p.53
RESUME
Ce rapport présente le projet confié dans le cadre de la deuxième année d’I.UT.
département informatique par Monsieur Jean-Luc CIVILISE.
Le projet consistait à concevoir un logiciel permettant la saisie des arrêtés
municipaux de la ville de Nice par les principaux services (Circulation, Gestion des
Voies Publiques et Police Administrative, ainsi que leur consultation par les membres
de la Mairie.
Les objectifs du projet fixés étaient :
- la création d’une application partagée entre différents services, tant au niveau
de la création d’arrêtés municipaux que leur consultation.
- une possibilité d’utilisation quels que soient le type d’ordinateur (PC ou MAC),
le système d’exploitation ou le navigateur Web (Explorater ou Netscape).
Pour mener à bien le processus, il a été nécessaire de m’imprégner d’un nouvel
environnement possédant ses propres spécificités.
Le cahier des charges a été déterminé en fonction des besoins exprimés par les
différents services utilisateurs.
Le rapport vous expose avec précision le sujet traité, le cadre de l’apprentissage
ainsi que la réalisation du logiciel.
PRESENTATION DU SUJET
L’apprentissage se déroule au sein de la Direction de l’Informatique et des
Télécommunications de la Mairie de Nice.
La gestion des arrêtés municipaux nécessite l’intervention de services différents
mais il n’existe aucune harmonisation. Les documents sont envoyés un à un, soit par
courrier, soit par mémos par Intranet.
Jusqu’à présent, les arrêtés municipaux sont utilisés sous format papier et
doivent faire l’objet d’une demande pour être consultés.
Le service a donc décidé de réaliser une application informatique qui traitera la
création et la consultation des arrêtés municipaux sous Lotus Notes. Lotus Notes
présente l’avantage d’être à la fois un logiciel de courrier évolué et un système de
gestion de base de documents. Ces traitements seront accessibles via le réseau de la
Mairie par tous les agents, à partir de leur poste de travail.
Partie présentation
1. Présentation de la D.I.T.
Créée en 1969, cette Direction regroupe en fait deux services, le service
Informatique et le service des Télécommunications, placée sous l’autorité de Monsieur
Serge Druesne, secondé par Monsieur Jean-François Marchesini. La D.I.T. a pour
mission le management général de la direction, le choix des orientations, les choix
stratégiques, la communication interne et externe, la coordination des projets et les
contrôles de gestion.
1.1. Fonction générale
La fonction de cette direction est de mettre en œuvre, coordonner et maintenir
l’ensemble des moyens informatiques et de télécommunications utilisés par la Mairie de
Nice et les différents services municipaux rattachés, la police municipale par exemple,
afin d’améliorer et de simplifier leurs travaux administratifs.
Les tâches réalisées par la Direction Informatique concernent tous les domaines
de l’informatique : analyse, conception, implémentation, maintenance, assistance et
formation des utilisateurs, gestion et approvisionnement en matériel informatique,
installation et maintenance des réseaux et applications, ainsi que l’exploitation
quotidienne des travaux journaliers de l’ensemble de ces systèmes.
1.2. Organigramme du service
La D.I.T. répartie sur plusieurs divisions comme le présente l’organigramme
suivant, emploie 80 personnes :
1.3. Matériel à disposition pour le stage :
-
Intel Pentium III 800 MHz en réseau équipé du système d’exploitation
Windows 98 et de Lotus Notes (Client Notes et Domino Designer 5.0).
1.4. Matériel général :
-
Serveur de type MainFrame (multi – terminaux) IBM 9672 Modèle R32,
3 serveurs sur base RISC 6000 dédiés chacun à une application
différente,
45 serveurs « Micros » gérant une ou plusieurs applications,
10 serveurs Domino.
Le parc informatique se compose de plus de 2000 Micros et plus de 400
terminaux.
Partie analyse
2. Analyse
La gestion d’une application dans son intégralité demande toujours une phase
d’analyse et une phase de conception.
Cependant, l’environnement Lotus Notes en publication Web ne permet pas une
analyse complète. Les contraintes sont telles, qu’une grande partie de l’analyse a lieu en
même temps que la conception.
2.1. Cahier des charges
Le cahier des charges définitif relatif au le suivi des arrêtés municipaux a été
rédigé par Monsieur Bernard Allouchery (Mission Études et Organisation) le
09/04/2002.
L’application sera utilisée par plusieurs Directions, principalement par la
Circulation, la Police administrative et la Gestion des Voies Publiques. Les autres
Directions utilisatrices sont : les Affaires Sociales et Santé Publique, les Espaces Verts,
les Sports et les Services à la Population – Cimetières.
La Mairie de Nice créée annuellement en moyenne 3500 arrêtés municipaux tous
services confondus, séparés en deux catégories : les arrêtés temporaires et les arrêtés
permanents.
Un arrêté municipal comprend une identification générale regroupant 14 champs de
saisie, à laquelle s’ajoutent les localisations, le circuit de l’arrêté et les articles.
2.1.1. Identification générale
Tout arrêté municipal est créé par un agent habilité de la Mairie appartenant aux
services concernés. Son nom, son prénom, son matricule et son service sont enregistrés
automatiquement lors de la création d’un projet d’arrêté.
Chaque arrêté possède un numéro unique attribué automatiquement par le système,
le format utilisé est de la forme AAAA-NNNNN. Il s’agit de l’année de création suivi
du numéro d’ordre de création annuelle.
Le type permet la distinction entre les arrêtés TEMPORAIRES et les
PERMANENTS. Ce choix s’effectue à l’aide du liste déroulante et modifie les champs
à saisir.
Un arrêté temporaire possède des champs supplémentaires, c’est à dire une durée de
validité (nombre), une unité de durée à choisir entre ‘jour’, ‘semaine’ et ‘mois’, et enfin
un numéro de demande dont le format est AA-NNNN (les deux derniers chiffres de
l’année de création suivis du numéro d’ordre annuel).
Un thème unique est attribué, son choix s’effectue dans une liste déroulante de
quinze valeurs :
- les commerces, foires, marchés, artisans,
- le tournage de films,
- l’hygiène et salubrité publique,
- les manifestations régulières,
- les manifestations irrégulières,
-
la réglementation des voiries,
la réglementation des plages,
la réglementation des jardins,
la réglementation des marchés,
la réglementation des cimetières,
la réglementation de la publicité,
la réglementation de l’urbanisme,
la réglementation des piscines,
les travaux,
le stationnement divers,
la circulation générale,
la circulation des véhicules particuliers.
Il est possible d’ajouter un ou des sous-thèmes afin de préciser le thème général, le
choix s’effectue dans une liste déroulante d’une vingtaine de valeurs : stationnement
gênant, stationnement interdit, stationnement réservé, stationnement autorisé, priorité,
sens unique, double sens, sens giratoire, couloir de bus, piste cyclable, itinéraire, vitesse
limitée, hauteur limitée, dépassement et demi-tour.
Un appellation d’environ une ligne est donnée ensuite en guise de titre.
Suit l’objet, c’est à dire une explication plus détaillée de l’arrêté en fonction du
thème choisi et éventuellement des sous-thèmes. Ce dernier s’étend sur 3 ou 4 lignes.
Un arrêté évolue dans le temps en fonction des étapes de validation, c’est son statut.
Par défaut un arrêté est valide à sa création, il est partiellement abrogé si au moins un
des ses articles est abrogé, totalement abrogé si tous ses articles le sont, et enfin il peut
être archivé. Dans le cas d’un arrêté totalement abrogé, un champ supplémentaire
indique la date d’abrogation.
2.1.2. Localisation
Un arrêté municipal concerne une ou plusieurs voies de Nice. En général, il
comprend moins de quarante localisations.
Chaque voie est répertoriée dans une base de document appelée PlanVille, laquelle
contient les termes et les noms de toutes les voies de Nice, ainsi que tous les mots clefs
permettant d’y faire des recherches.
L’utilisateur doit pouvoir avoir accès à cette liste mais il peut également saisir lui
même une localisation dite particulière par les voies non répertoriées.
Pour plus de précision, il est possible de saisir un tronçon en indiquant des petites
informations complémentaires. Par exemple les numéros de maison ou les côtés de la
rue.
2.1.3. Circuit
Le circuit d’un arrêté est l’ensemble des dates d’avancement. Il y figure sept dates
dont cinq sont saisies :
- la date de départ du service,
- la date de signature du Maire,
-
la date de contrôle de légalité,
la date de début d’affichage,
la date de mise en service.
Chaque date doit être supérieure ou égale à la date qui la précède, le système doit
être capable d’effectuer les contrôles nécessaires afin d’avertir l’utilisateur d’une erreur.
Pour un arrêté temporaire, une date de fin de validité se calcule automatiquement
grâce à la date de mise en service et à la durée de validité.
Quand un arrêté passe en statut archivé, une date d’archivage apparaît
automatiquement.
2.1.4. Article
Les articles d’un arrêté municipal comportent un numéro de deux chiffres
maximum, saisi par l’utilisateur.
Un texte de synthèse de quatre à cinq lignes permet une description
complémentaire.
Enfin, un article possède un statut par défaut valide, il est possible manuellement de
le rendre abrogé. Cette manipulation modifie le statut général de l’arrêté en
partiellement abrogé. De plus, l’abrogation totale de l’arrêté rend tous ses articles au
statut abrogé.
Le nombre d’articles n’excède que rarement quinze le nombre quinze.
2.2. Fonctions particulières
L’application doit gérer des fonctions particulières qui ont été définies par les
Directions des différents services.
2.2.1. Création et mise à jour
Un arrêté municipal se créé en plusieurs étapes : multiples saisies par des
utilisateurs différents. Chaque service, remplit des champs, mais seul l’agent de départ
est enregistré dans l’identification générale.
Il doit être possible de rattacher des documents images, par exemple une
numérisation de l’arrêté papier, ou des documents de type Microsoft Word©
correspondant à l’arrêté saisi.
Certains vieux arrêtés peuvent être complétés sans pour autant les re-saisir, dans ce
cas, il faut que l’application prévoit un moyen de pouvoir lier plusieurs arrêtés entre eux
et qu’il soit possible de passer d’un document à l’autre.
2.2.2. Suppression
Les suppressions d’un arrêté sont rares, elles ne font l’objet que d’erreurs de saisie.
Toute action de suppression d’un document, que ce soit l’arrêté lui même, ou un
document complémentaire (localisation, article), doit faire apparaître un message
d’alerte personnalisé, afin d’éviter toute mauvaise manipulation de l’utilisateur.
Les administrateurs de l’application ont la possibilité de supprimer n’importe quel
document.
Cependant, il ne doit pas être possible de supprimer un arrêté comportant une date
de signature du Maire ou un arrêté dont le statut est abrogé.
2.2.3. Consultation
Les consultations sont en libre accès sur le réseau de la Mairie pour chaque agent.
Afin de répondre aux besoins des différents services concernés, une liste des vues
souhaitées a été établie.
Il existe trois grandes catégories qui sont les vues générales, les états d’avancement
et les archives.
Les vues générales présentent tous les arrêtés valides, partiellement abrogés ou
totalement abrogés stockés sur la base Domino. Elles sont toutes divisées en deux
catégories, avec un affichage par service et un affichage tous services confondus.
Les états d’avancement permettent de retrouver les arrêtés en fonction des dernières
dates saisies dans le circuit qui suit toujours le même ordre. Ainsi, les différents services
peuvent retrouver les documents à compléter plus aisément.
Enfin les archives regroupent tous les arrêtés permanents et temporaires dont le
statut est archivé. Ces derniers ne sont visibles uniquement que dans cette catégorie,
évitant ainsi de surcharger les autres consultations.
2.3. Contrôles d’accès et sécurité
L’application étant destinée à une cinquantaine d’agents répartis dans différents
services, il existe quatre profils utilisateur :
- Consultant : il regroupe tous les membres de la Mairie de Nice tous services
confondus. C’est le profil par défaut, il n’autorise aucune mise à jour ni
création.
- Service préparateur mairie : il concerne une nombre défini d’agents au sein d’un
même service, qui ont l’accès aux créations, mises à jours, modifications et
suppressions. Cependant, ce profil n’autorise pas l’accès aux dates de signature
du Maire, de contrôle de légalité et de publication.
- Police administrative : il permet l’accès aux trois dates du circuit de l’arrêté
dont la saisie est impossible en profil service préparateur mairie.
-
Administrateur : il ouvre tous les accès en autorisant les créations, les mises à
jour, les modifications et les suppressions de tous les documents de la base.
2.4. Récupération de données
Il existe déjà une base appartenant à la police administrative, nommée MM02.
L’application devra être capable de récupérer les arrêtés municipaux permanents
existants et de les convertir sous le nouveau format utilisé. Cette opération a pour but de
restituer les arrêtés des vingt dernières années.
2.6. Difficultés rencontrées
Lotus Notes est capable de convertir ses bases en HTML, mais sous nombreuses
contraintes.
La première est que, la conversion en HTML est très incomplète, de nombreuses
fonctions Lotus sont inutilisables en publication Web.
La seconde contrainte majeure est que chaque page doit être enregistrée si l’on
veut la réafficher, ceci implique que chaque action d’ajout ou de recherche créé un
sauvegarde de la page. Il est donc impossible de gérer les modifications
convenablement.
Ainsi, l’analyse classique a dû être abandonnée pour une étude détaillée du cahier
des charges.
Toutes ces difficultés rendent l’analyse obsolète puisqu’il n’existe pas de liste
exhaustive des fonctions s’exécutant sous Web. Il a fallu continuellement s’adapter en
fonction des ‘caprices’ de Domino Designer.
Partie conception
3. Conception
La conception s’est fondée essentiellement sur l’étude du cahier des charges et sur
les renseignements comlémentaires apportés par mes responsables de stage, ainsi que
par Monsieur Allouchery, rédacteur du cahier des charges.
L’application a été développée entièrement sous Domino Designer, logiciel
attaché à Lotus Notes.
3.1. Lotus Notes et Domino Designer 5
Le logiciel Lotus Notes est un outil de messagerie intégrant à la fois une gestion
de base de documents et une publication Web.
Lotus Notes est un logiciel client installé sur tous les postes de la Mairie , toutes
annexes confondues. C’est un produit performant et évolué composé dans la plupart des
cas en Notes, Domino Designer et Domino Server.
L’application de la gestion des arrêtés municipaux a été élaborée sous Domino
Designer, qui permet la conception de Bases de Documents, composées de pages, de
masques, de sous-masques, de vues et d’autres documents. Ces bases sont hébergées sur
un serveur Domino sur lequel les clients sont connectés, l’accès est possible via un
client Notes ou un navigateur Internet (Microsoft Internet Explorer ou Netscape).
Domino Designer utilise différents langages de programmation, mais les trois
utilisés dans l’application sont le LotusScript, les fonctions Lotus et le Javascript. La
mise en page des documents est complétée par des balises HTML.
Les trois langages se présentent ainsi :
LotusScript : est un langage complet, orienté objet spécifique à Domino
Designer accompagné d’un débogueur performant.
-
Fonctions Lotus : est un langage simplifié basé sur des commandes et des
fonctions, nombreuses et faciles d’accès grâce notamment à une aide
munie d’exemples pertinents.
-
JavaScript : l’application étant destinée à une publication Web, ce
langage dérivé du JAVA est interprété.
Chaque langage cohabite au sein des mêmes documents, le LotusScript
s’exécute en arrière plan avec des agents par exemple, qu’ils soient automatiques ou
lancés manuellement. Les fonctions Lotus sont très souvent utilisées pour les champs ou
les boutons d’action. Le JavaScript gère des évènements comme le chargement d’une
page, ou le passage du curseur de la souris au-dessus d’une image pour la faire varier.
Les principales parties d’une base de documents Lotus sont :
Le document : à l’inverse d’une base de donnée classique, le document
regroupe des champs non ordonnancés. Il est équivalent à une page
vierge sur laquelle on peut ajouter sans contrainte des champs, sans
aucun ordre et sans aucun lien. La seule contrainte est l’unicité du nom
du champ. La notion de clef est un numéro unique, différenciant chaque
document au sein d’une même base, dont le nom original est universal
ID.
-
Le masque : est le formulaire qui créé le ou les documents ainsi que leurs
champs.
-
La vue : reposant sur le même principe que les vues de bases de données.
Elle affiche les documents selon des critères personnalisées (champs ou
fonctions calculées). La syntaxe commence toujours par la clause
SELECT suivie de formules Notes.
-
La page : elle n’autorise que l’affichage de texte ou d’images et est
souvent utilisée pour des présentations.
-
L’agencement de cadre : il permet de créer ses propres fenêtres de
division d’une même page ainsi que ses marges. En HTML il s’agit de
l’agencement de frames.
-
L’agent : programmé en LotusScript, il peut s’exécuter automatiquement,
chaque nuit à une heure précise par exemple, ou lors d’une action
spécifique comme le click d’un bouton d’un formulaire. Il demande un
temps de chargement relativement court même pour un traitement
important de grands bases de documents.
3.2. Application des arrêtés municipaux.
3.2.1. Mise en route
La publication Web de Domino Designer permet à n’importe quel utilisateur de la
Mairie de se connecter à l’application. Cette liaison se fait via Microsoft Internet
explorer 5.5 et se situe sur l’Intranet.
L’accès sera donc un simple lien et ne demande aucun autre logiciel sur
l’ordinateur. Cette application fonctionne quelle que soit l’architecture ou le système
d’exploitation utilisé.
Les systèmes informatiques auxquels les agents accèdent sont à usage professionnel.
Ce n'
est pas un libre-service, accessible au grand public. Les données qui y sont gérées
peuvent être confidentielles. L’accès est donc contrôlé pour éviter des indiscrétions ou
des malveillances. Chaque membre de la Mairie possède un code d'
accès à
l'
informatique personnel et un matricule.
Le matricule est donné lors de l’entrée dans la Mairie. C'
est un code unique
identifiant dans la base de données du personnel et les différentes applications
informatiques. Il est souvent désigné par « nom de login ». Il est associé à une position
dans une arborescence, qui reflète l'
organigramme de la Direction et de la Mairie. Il
correspond à un profil de sécurité qui donne accès ou pas à certaines applications.
3.2.2. Ecran d’accueil
Après la saisie du matricule et du mot de passe, l’application est chargée et
dirige l’utilisateur directement sur la page de menu.
Divisé en trois parties, le titre en haut, le menu dynamique à gauche et le résultat
à droite, il permet l’accès aux deux tâches principales :
La création d’un arrêté
La consultation d’un arrêté
Le menu se personnalise selon le rôle attribué à l’agent qui s’est connecté, par
exemple, une personne ne travaillant pas dans un service préparateur n’obtiendra pas
l’option de création mais uniquement celle de consultation.
3.2.3. Menu dynamique
Le menu a été géré dynamiquement de manière à s’ouvrir et à se refermer sous
un simple click de souris. Les puces deviennent rouges quand elles sont activées, de
cette façon, l’utilisateur sait toujours où il se situe.
3.2.4. Création d’un arrêté
Lors de la création d’un arrêté municipal, la première information à connaître est
le type d’arrêté choisi. Le choix s’effectue dans une liste déroulante obligatoire. Il est
donc possible de créer soit un arrêté temporaire (par défaut), soit un arrêté permanent.
La saisie du matricule et du mot de passe donne l’identification exacte de l’agent
et permet de le répertorier aussitôt comme le créateur du projet d’arrêté.
3.2.4.1. Identifications générales
Selon le type souhaité, l’application affiche les différents champs à renseigner.
Pour l’exemple nous prendrons un arrêté permanent.
Le masque apparaît comme un formulaire classique. Comprenant tous les
champs de l’identification générale selon le cahier des charges.
Les champs ne sont pas obligatoires, il est possible de revenir ultérieurement les
compléter. Cependant, le projet d’arrêté existe à partir du moment où il existe un
numéro d’arrêté et que le statut est valide.
Une fois l’enregistrement effectué, l’arrêté passe en statut valide et se voit doté
d’un numéro d’identification unique, un tableau à onglet apparaît au dessus.
3.2.4.2. Tableau à onglets
Ce tableau permet l’ajout des informations complémentaires, c’est-à-dire des
localisations, des dates, des articles, des liens et des documents rattachés.
Par défaut il est toujours fermé, en création mais aussi en consultation :
Il s’agit d’un tableau s’ouvrant sur un click d’un onglet correspondant au choix
de l’information complémentaire :
L’exemple choisi ci-dessus montre le circuit de l’arrêté avec les différentes
dates, celles-ci sont remplies automatiquement après un click sur l’icône d’horloge à
côté de chaque champ. Ceci permet une normalisation du format de date :
JJ/MM/AAAA.
Les contrôles sont assurés lors de la validation du circuit et avertit l’utilisateur si
une des contraintes de dates n’est pas respectée. Dans ce cas, il est impossible de sortir
de la création tant que la date reste invalide.
Dans le cadre d’un soucis d’affichage et sachant que certains corps de tableau
peuvent être très longs, un click sur un onglet ouvert repositionne le tableau en état par
défaut.
3.2.4.3. Ajout d’une information complémentaire
Les localisations, les articles et les liens correspondent à des masques différents.
Pour ne pas les afficher comme des pages Web classiques lors d’un ajout, le tableau
possède des boutons d’ajout ouvrant des petites fenêtres, appelées « popup ». Elles
permettent au masque principal de l’arrêté municipal d’être toujours devant les yeux de
l’utilisateur.
L’exemple suivant montre l’ajout d’une localisation et d’un article. Les fenêtres
spécifiques s’ouvrent et se referment dès que l’agent valide ou annule la saisie des
informations complémentaires :
Aussitôt la fermeture d’une de ces deux fenêtres, le masque principal de l’arrêté
est mis à jour automatiquement pour afficher les informations saisies. L’opération peut
être répétée autant de fois que l’utilisateur le souhaite. Le tableau généré, rendant
compte des ajouts est dynamique, il n’a pas de limites de taille :
3.2.4.4. Boutons de suppression
Chaque document créé peut être supprimé. Afin d’éviter toutes mauvaises
manipulations, une petite fenêtre d’avertissement personnalisée prévient l’utilisateur et
lui demande confirmation. Elles apparaissent toujours dans des cas irréversibles après
validation.
Certains boutons ne sont accessibles que par certains profils d’utilisateur. Un
simple consultant n’y a pas d’accès.
Et conformément au cahier des charges, le bouton de suppression de l’arrêté
municipal n’est accessible que par l’administrateur si le circuit comporte une date de
signature du Maire ou si le statut de l’arrêté est totalement abrogé. Il en est de même
pour les arrêtés archivés.
L’exemple ci-dessous montre une fenêtre de confirmation de suppression lors de
la modification d’un article :
Si l’utilisateur confirme, les deux premières fenêtres de l’avant plan se ferment
et la page principale de l’arrêté sera réaffichée avec son tableau d’articles mis à jour.
A la fin de la saisie de toutes les informations relatives au projet d’arrêté en
cours, il suffit de sortir de l’écran de création en cliquant sur le bouton fermer en bas du
masque principal. Cette action renvoie l’utilisateur au menu d’accueil de départ.
L’arrêté venant d’être créé est aussitôt présent dans la base Domino et donc
accessible immédiatement en consultation par les salariés de la Mairie.
3.2.5 Consultation
Les consultations dont l’accès se fait par le menu d’accueil ont un double rôle.
Elles permettent une simple visualisation des arrêtés par tous les agents de la Mairie
quel que soit leur service d’origine. Et pour les personnes habilitées, lors de l’affichage
d’un arrêté, elles disposent d’un bouton de modification.
Ce bouton relance en plein écran le masque de création de l’arrêté avec les
informations déjà complétées des saisies précédentes.
Chaque état terminal du menu correspond à une vue différente de la base
constituées de 60 000 arrêtés et qui permettent des recherches beaucoup plus précises.
Les résultats rendus sont catégorisés selon des informations différentes.
3.3. Difficultés rencontrées
La partie conception a démontré l’impossibilité d’établir une analyse préalable.
Lotus Notes est un logiciel puissant qui montre quelques faiblesses en publication Web.
Beaucoup de fonctions ne s’exécutent pas correctement et la coopération entre
différents langages, notamment le HTML et le javascript, posent des soucis de
compatibilité.
La documentation de Lotus Notes et Domino Designer est entièrement orientée
pour une publication sous Lotus. De ce fait, les difficultés de publication Web ont dû
être analysées et réglées au cas par cas.
Ainsi, la gestion d’un simple compteur calculant le nombre de localisations
rattachées au masque principal a nécessité une journée entière de travail avant d’être
opérationnelle. Sous Lotus même ou dans un autre langage de programmation, il aurait
fallu moins de dix minutes et quelques lignes de code uniquement.
3.4. Etat d’avancement de l’application
L’application de la gestion des arrêtés municipaux est en phase terminale. Sa
date de lancement sur un serveur de production est fixée à septembre 2002.
Seuls les contrôles d’accès, la récupération des vieux formats d’arrêtés et la mise
en page définitive ne sont pas entièrement terminés.
Les différentes modifications apportées en cours de développement qui ont, à
trois reprises, réorientées la programmation, un temps d’adaptation de deux semaines à
un nouvel environnement muni de langages de programmation spécifiques, et les
contraintes Web, très pesantes, ont ralenti l’état d’avancement du projet par rapport à
une application Lotus classique.
La création, la mise à jour et la consultation sont complètes et ont été validées
lors des deux réunions du 11/06/2002 par les différentes Directions des principaux
services (Circulation, Gestion des Voies Publiques et Police Administrative) et celle du
12/06/2002 par les futurs utilisateurs.
Les dernières heures de travail ont été consacrées à la mise en forme. Améliorée
aujourd’hui, elle reste encore en cours de développement :
CONCLUSION
Le projet avait pour objet de réaliser un logiciel de Gestion des arrêtés
municipaux de la ville de Nice liés à la circulation.
Les principales difficultés rencontrées se sont situées au niveau de la conception
en publication Web de Lotus Notes et Domino Designer, publication à la base faite pour
un environnement Lotus.
L’utilisation d’outils et de langages inconnus ont nécessité de nombreuses
recherches personnelles dans les diverses documentations apportées par la Mairie mais
aussi sur des sites de cours, de formations et de forums accessibles via Internet.
Ces démarches ont permis d’appréhender les mécanismes de la base de
Documents Lotus et l’apprentissage de nouveaux langages.
Ce stage, fructueux pour ma formation personnelle et mon expérience en
entreprise, a été profitable à la D.I.T. puisque le travail réalisé permettra entre autre,
d’enrichir les prochaines applications Web et de mieux comprendre les problèmes
rencontrés.
Partie des annexes
1 ENVIRONNEMENT DE TRAVAIL
Voici quelques saisies d’écran de la conception sous Lotus Domino Designer 5.
2 MASQUE ARRETEMUNICIPAL
3 MASQUE LOCALISATION
4 MASQUE ARTICLE
5 MASQUE MENU
6 MASQUE CONFIRMATION
7 AGENCEMENT DE CADRES WEB
8 EXEMPLES DE PROGRAMMES
Lotus est capable de gérer plusieurs langages de programmation en même temps.
Pour cette application, trois langages ont été utilisés.
1. Les fonctions Lotus
1.1 Bouton d’ajout d’un sous-thème
Il ajoute un sous-thème d’une liste déroulante et remet à jour un compteur de sousthèmes.
@If(ListeSousTheme="";
@Do( @SetField("ListeSousTheme";@ReplaceSubstring(SousTheme;" ";"|"));
@SetField("NbSousTheme";NbSousTheme+1)
);
@If(@IsMember(@ReplaceSubstring(SousTheme;"
";"|");ListeSousTheme);"";
@Do(
@SetField("ListeSousTheme";ListeSousTheme:@ReplaceSubstring(SousTheme;"
";"|"));@SetField("NbSousTheme";NbSousTheme+1)
)
)
);
@Command([FileSave])
1.2. Bouton de suppression d’un sous-thème
Il retire la sélection de la liste déroulante et remet le compteur à jour.
@If(@IsMember(@ReplaceSubstring(SousTheme;" ";"|");ListeSousTheme);
@Do(
@SetField("ListeSousTheme";@Replace(ListeSousTheme;@ReplaceSubstring(SousTheme;"
";"|");"@@@"));@SetField("NbSousTheme";NbSousTheme-1))
;"");
@Command([FileSave])
1.5. Bouton de validation d’une localisation
@SetField("TermeEtNomDeVoieDefinitif";AutreTermeEtNomDeVoie);
@SetField("FlagMotCle";AutreMotCle);
@SetField("Troncon";UnTroncon);
@SetField("FlagAffich";"");
@SetField("ValideIdent";"OK");
@Command([FileSave])
2.
Fonctions Lotus et HTML
Ce code représente le tableau dynamique qui affiche les informations
complémentaires conernant les localisations :
"[<br><center><table bgcolor=silver width=90%><TR><TD bgcolor=silver><FONT
size=3>Nom de la voie</TD><TD bgcolor=silver>Tronçon</TD></TR>]"
dbNom:=@DbLookup(""; ;"(VueLocalisationCategorisee)";DocId;2);
dbTroncon:=@DbLookup(""; ;"(VueLocalisationCategorisee)";DocId;3);
dbDocId:=@DbLookup(""; ;"(VueLocalisationCategorisee)";DocId;5);
@If(@IsError(dbNom);"[<TR><TD bgcolor=\"snow\"><FONT SIZE=2>Pas d\'
autres
localisations</TD></TR>]";
"[<TR><TD bgcolor=#82C0FF width=250><FONT SIZE=2 COLOR=black><A
href=\"Javascript: window.open(\'
"+adresse+"/+/"+dbDocId+"?EditDocument&Modif=OK
\'
,\'
\'
,\'
menubar=no,resizable=no,status=no,toolbar=no,scrollbars=no,width=470,height=270
,left=160,top=100\'
); void(\'
\'
);\"><FONT SIZE=1>"+@UpperCase(dbNom)+" </a></TD><TD
bgcolor=\"snow\"><FONT SIZE=2>"+dbTroncon+" </TD></TR>]")
[</TABLE>]
3.
JavaScript
Chargement de la page WEBConfirmation
Ce code s’exécute à chaque chargement du masque Confirmation et permet
selon le masque d’où vient l’utilisateur, de le réorienter vers la bonne destination.
if(document.forms[0].ValideIdent.value=="OK")
{
//traitement de la suppression/annulation de l'
arrêté
if((document.forms[0].Lieu.value == "arrete") || (document.forms[0].Lieu.value ==
"arrete_annul"))
{
opener.location.replace(document.forms[0].retourMenu.value);
window.close();
}
//traitement des suppressions des localisations/articles
if((document.forms[0].Lieu.value == "localisation") || (document.forms[0].Lieu.value ==
"article"))
{
opener.location.replace(document.forms[0].adresse_retour.value);
window.close();
}
//traitement des arretes totalement abroges et archivés
if((document.forms[0].Lieu.value == "total_abroge") || (document.forms[0].Lieu.value ==
"archiver"))
{
opener.location.replace(document.forms[0].retourEdit.value);
window.close();
}
}
4.
LotusScript
4.1. Agent de suppression d’arrêtés non valides
Il récupère la liste de tous les arrêtés non valides et les supprime. Le test est réalisé
sur un champ nommé ValideIdent.
Sub Initialize
Dim Session As New NotesSession
Dim Db As NotesDataBase
'
Session
'
Base de documents
Dim VueArretes As NotesView
Dim VueLocalisations As NotesView
Dim VueArticles As NotesView
'
Vue de tous les arrêtés
'
Vue de toutes les localisations
'
Vue de tous les articles
Dim Arretes As NotesDocumentCollection
Dim Localisations As NotesDocumentCollection
Dim Articles As NotesDocumentCollection
Dim Document As NotesDocument
'
Liste de tous les arrêtés
'
Liste de toutes les localisations
'
Liste de tous les articles
Set Db = Session.CurrentDataBase
Set VueArretes = Db.GetView("(ArretesNonValides)")
'
Initialise la vue de tous les arrêtes
Set VueLocalisations = Db.GetView("(LocalisationsNonValides)")
les localisations
Set VueArticles = Db.GetView("(ArticlesNonValides)")
'
Initialise la vue de tous les articles
'
Initialise la vue de toutes
Set Arretes = VueArretes.GetAllDocumentsByKey(1)
Set Document = Arretes.GetFirstDocument
While Not (Document Is Nothing)
Set Localisations = VueLocalisations.GetAllDocumentsByKey(Document.DocId(0))
Call Localisations.RemoveAll(True )
Set Articles = VueArticles.GetAllDocumentsByKey(Document.DocId(0))
Call Articles.RemoveAll(True )
Wend
Set Document = Arretes.GetNextDocument ( Document )
Call Arretes.RemoveAll(True )
End Sub
4.2. Agent d’archivage automatique
Cet agent vérifie les dates de fin de validité des arrêtés temporaires en fonction de
la date du jour du système, puis change si besoin est, le statut en le mettant « archivé ».
Sub Initialize
Dim Session As New NotesSession
Dim Confirm As NotesDocument
Dim Db As NotesDataBase
'
Document courant
'
Base de documents
Dim Arrete As NotesDocument
Dim VueArrete As NotesView
Set Confirm = Session.DocumentContext
Set Db = Session.CurrentDataBase
Set VueArrete = Db.GetView("(ArreteDocId)")
'
Initialise la vue de tous les arretes
Set Arrete = VueArrete.GetdocumentByKey(Confirm.DocIdArrete(0),True)
'
Récupère le DocId de l'
arrêté'
End Sub
Arrete.DateArchManuel = Today
Arrete.FlagStatut = "Archivé"
Call Arrete.Save (True,False)
'
Initialise la date d'
archivage à la date du jour'
'
Initialise le statut à archivé'
4.3. Agent pour abroger totalement
Ce code modifie le statut de l’arrêté courant en le mettant en totalement abrogé,
puis récupère tous les articles rattachés pour changer également leur statut en
abrogé.
Sub Initialize
Dim Session As New NotesSession
Dim Confirm As NotesDocument
Dim Localisations As NotesDocumentCollection
Dim Articles As NotesDocumentCollection
Dim Db As NotesDataBase
Dim VueArticles As NotesView
Dim Document As NotesDocument
Dim Arrete As NotesDocument
Dim VueArrete As NotesView
'
Document courant
'
Liste des localisations
'
Liste des articles
'
Base de documents
'
Vue de tous les articles
Set Confirm = Session.DocumentContext
Set Db = Session.CurrentDataBase
Set VueArticles = Db.GetView("(VueArticleCompteur)")
'
Initialise la vue de tous les articles
Set VueArrete = Db.GetView("(ArreteDocId)")
'
Initialise la vue de tous les arretes
Set Arrete = VueArrete.GetdocumentByKey(Confirm.DocIdArrete(0),True)
'
Récupère le DocId de l'
arrêté'
Set Articles = VueArticles.GetAllDocumentsByKey(Arrete.DocId(0),True)
'
Initialise la liste des articles
Set Document = Articles.GetFirstDocument
While Not (Document Is Nothing)
Document.StatutArticle="Abrogé"
'
Modifie tous les articles en statut abrogé'
Document.MarqueurAbroge=1
Call Document.Save (True,False)
Set Document = Articles.GetNextDocument( Document )
Wend
End Sub
Arrete.DateAbro = Today
Arrete.FlagStatut = "Totalement abrogé"
Call Arrete.Save (True,False)
'
Initialise la date d'
abrogation à la date du jour'
'
Initialise le statut à Totalement Abrogé'