ProLoc:Module Web

De Logilys
Aller à : navigation, rechercher
Module Web


ATTENTION! CE DOCUMENT N'EST PLUS EN VIGUEUR. CE DOCUMENT N'EST PAS APPLICABLE À LA VERSION 8 DE PROLOC.


Infrastructure

Avant de mettre en place vos modules web, il est important de bien comprendre l’infrastructure que vous désirez utiliser. Logilys vous fournit (inclus dans la BD ProLoc) des procédures SQL de consultation de certaines données pouvant être appelée à partir de pages web. Logilys fournit également des exemples (prototypes) fonctionnels de pages web (asp, aspx) utilisant ses procédures. Logilys n’assure pas la personnalisation et la mise en place des pages web dans votre infrastructure ; ceci doit être effectué par votre équipe (ou consultant) web.

Pour mettre en place le module web, il faut créer un lien entre votre serveur SQL (hébergeant les données de ProLoc) et votre serveur web. Il faut considérer l’emplacement physique de ces 2 serveurs pour des raisons de sécurité et de performance.

Dans le cas où votre serveur SQL et votre serveur Web sont à l’intérieur de la même infrastructure (réseau interne, intranet), les données SQL circuleront à l’interne et le résultat seulement sera affiché à l’externe (via le serveur web). C’est la solution la plus sécuritaire et la plus performante, car vous n’avez pas à ouvrir le port SQL (généralement 1433) afin qu’il soit accessible à l’externe.
Figure 1 : Serveur SQL et serveur Web à l'intérieur de la même infrastructure 

Figure 1 : Serveur SQL et serveur Web à l'intérieur de la même infrastructure


Dans le cas où votre serveur SQL et votre serveur Web sont distants (ex : votre serveur SQL est dans vos locaux et votre serveur SQL chez un fournisseur de service), vous pouvez créer un lien sécurisé VPN entre votre serveur SQL et votre serveur Web afin que seulement une connexion sécurisée puisse accéder au port SQL (il est très dangereux d’ouvrir le port SQL afin qu’il soit accessible sur internet, à moins qu’il le soit à l’intérieur d’un canal sécurisé VPN). Cette solution est sécuritaire, mais vraiment moins performante, car beaucoup de trafic SQL circulera sur internet.

Figure 2 : Serveur SQL et serveur Web distant

Figure 2 : Serveur SQL et serveur Web distant


Afin d’éviter ce problème de performance, nous suggérons l’établissement d’un mini-serveur web à l’interne qui n’hébergera que les pages Web pour ProLoc. Votre serveur web corporatif pourra être modifié pour y inclure un lien vers votre serveur web ProLoc.

Figure 3 : Établissement d'un mini-serveur web ProLoc

Figure 3 : Établissement d'un mini-serveur web ProLoc

Définition des packages

A. Consultation des réservations
B. Consultation des disponibilités
C. Grille web

 

Définitions des fichiers

Fichiers Définition
Default.aspx
Default.aspx.vb
Écran d'accueil (Packages A,B et C)
Web.config Fichier de configurations générales
Reservations.aspx
Reservations.aspx.vb
Sources pour l'écran de configuration des réservations (Package A)
Grille_Reservations.aspx
Grille_Reservations.aspx.vb
Sources pour l'écran de la grille de réservations (Package A)
Disponibilites.aspx
Disponibilites.aspx.vb
Sources pour l'écran de configuration des disponibilités (Package B)
Grille_Disponibilites.aspx
Grille_Disponibilites.aspx.vb
Sources pour l'affichage de la grille de disponibilités (Package B)
ProLocWeb.aspx
ProLocWeb.aspx.vb
Sources pour l'écran de configuration de la grille Web (Package C)
Grille_ProLocWeb.aspx
Grille_ProLocWeb.aspx.vb
Sources pour l'affichage de la grille Web (Package C)
App_Code\Functions.vb Sources pour les fonctions globales (Package A,B et C)
App_Code\Dictionnaire.vb Dictionnaire des en-têtes de colonnes (Package A et B)
App_LocalResources\.* Dictionnaire de l'affichage de tous les écrans de configuration (Package A, B et C)
medias\.* Toutes les images utilisées
res\css\Style.css CSS de toutes les pages sauf les grilles.
res\css\Grille.css CSS des grilles de réservations et de disponibilités (Package A et B)
res\javascript\datetimepicker_css.js Sources pour le calendrier (Package A, B, C)
res\javascript\Dictionnaire_En.js
res\javascript\Dictionnaire_Fr.js
Dictionnaires des messages et du calendrier.
res\javascript\Functions.js Sources pour l'affichage des grille en «pop-up» et des validations.

 

Fichier de configuration «Web.config»

<appSettings>
   <add key="C_Utilisateur" value="NomDeLaBD_Web"></add>
   <add key="C_MotDePasse" value="NomDeLaBD_Web"></add>
   <add key="C_BaseDeDonnee" value="NomDeLaBD"></add>
   <add key="C_Serveur" value="InstanceSQL"></add>
   <add key="C_NomClient" value="VotreNomOrganisme"></add>
   <add key="C_IdLangueFr" value="0"></add>
   <add key="C_IdLangueEn" value="1"></add>
</appSettings>

 

Paramètres Explications

C_Utilisateur

Nom de la BD* suivi de « _Web » (ex : ProLocLogilys_Web)

C_MotDePasse

Nom de la BD* suivi de « _Web » (ex : ProLocLogilys_Web)

C_BaseDeDonnee

Nom de la BD

C_Serveur

Instance du serveur SQL (ex : ServeurProLoc, ServeurSQL\InstanceProLoc)<o:p></o:p>

Si vous éprouvez des problèmes, spécifier directement l’adresse IP et l’intance (s’il y a lieu) plutôt que le nom du serveur (ex : 192.168.0.1 ou 192.168.0.1\InstanceProLoc).<o:p></o:p>

C_NomClient

Sera affiché en haut à droite dans l'entête de chaque page.

 C_NomClientURL  Vous pouvez entrer une URL qui s'ouvrira lorsque l'utilisateur cliquera sur le nom du client affiché en haut à droite (Vous devez spécifier le http://)

C_IdLangueFr

Par défaut = 0
Vous retrouverez cette valeur si vous allez dans la gestion des langues de ProLoc. Vous devez entrer dans votre langue «français», et ensuite dans le menu «Ficher / Informations supplémentaires» vous retrouverez l'identifiant unique.

C_IdLangueEn

Par défaut = 1
Vous retrouverez cette valeur si vous allez dans la gestion des langues de ProLoc. Vous devez entrer dans votre langue «engl», et ensuite dans le menu «Ficher / Informations supplémentaires» vous retrouverez l'identifiant unique.

 

Configuration de votre IIS (Internet Information Service)

Ces informations ne sont données qu’à titre d’exemple pour la configuration de votre serveur web (IIS). Le prototype à été développé et testé sous le framework 2.0 (ASP.NET).

  • Vous devrez peut-être définir de la sécurité en lecture et en écriture à certains utilisateurs (ex : ASPNET, IUSR_NomduPoste ou "Network Service")
  • Vous devez créer l’application nécessaire. Vous devez éditer les propriétés de votre dossier web afin de créer l’application.

    Vous devez créer l'application nécessaire 
  • Vous devez également vous assurer que la configuration ASP.NET est conforme (version, chemin virtuel, emplacement du fichier de configuration).

    Vous devez également vous assurer que la configuration ASP.NET est conforme (version, chemin virtuel, emplacement du fichier de configuration).


  • Vous devrez autoriser le "ASP.NET" dans les "Web Service Extensions" (accessible à partir de votre gestionnaire IIS).
  • Certaines versions du IIS n'ont pas le "Web Service Extensions", il sera peut être nécessaire d'effectuer les actions suivantes si vous n'arrivez pas à afficher les pages .aspx.
    • Aller à l'invite de commande avec des privilèges d'administrateur.
    • Rendez-vous au répertoire d'installation du IIS, exemple : "CD\Windows\Microsoft.NET\Framework\v2.0.50727"
    • Tapez "aspnet_regiis.exe -i -enable"

Annexes techniques (Non nécessaire si vous utilisez le module tel quel)  

Consultation des réservations

Afin d’afficher les données sur une page web, 4 vues SQL (View) sont mises à votre disposition afin que vous puissiez les utiliser dans vos sources.
Définition des views :

  • ViewWeb_Tpl (Permet d’afficher la liste des types de plateaux accessibles sur le web)
Colonnes Explications
Id (int) Id du type de plateau
Type (varchar(100)) Description du type de plateau

 

  • ViewWeb_Pla (Permet d’afficher la liste des plateaux accessibles sur le web)
Colonnes Explications
Id (int) Id. du plateau
Plateau (varchar(100)) Description du plateau
TplUID (int) Id. du type de plateau


  •  ViewWeb_Res (Permet d’afficher la liste des réservations)
Colonnes Explications
DateAffiche (varchar 10) Date de la réservation au format « aaaa/mm/jj »
Début (varchar 5) Heure de début au format « hh:mm »
Fin (varchar 5) Heure de fin au format « hh:mm »
Activité (varchar 100) Activité
Identification (varchar 255) Identification
Plateau (varchar 100) Description du plateau
Id (int) Id du plateau
TotDate (int) Affiche le total des réservations pour cette date pour ce plateau
TotDateAll (int) Affiche le total des réservations pour cette date
Peut-être utile pour faire du « rowspan »
Date (smalldatetime) Date de la réservation en format date
Client (varchar 201) Nom du client
TplUID (int) Id du type de plateau


Consultation des disponibilités

  • ViewWeb_Tpl (Permet d’afficher la liste des types de plateaux accessibles sur le web)
    Voir la définition des colonnes dans la section «Consultation des réservations»


  • ViewWeb_Pla (Permet d’afficher la liste des plateaux accessibles sur le web)
    Voir la définition des colonnes dans la section «Consultation des réservations»


  • View_RapDis (Permet d'afficher la liste des disponibilités)
Colonnes Explications
ColIdentifiant (varchar 50) Identifiant unique pour la session en cours
ColDate (smalldatetime) Date de la disponibilité
ColDebut (smalldatetime) Date / heure du début de la disponibilité
ColFin (smalldatetime) Date / heure de la fin de la disponibilité
PlaUID (int) Id du plateau
PlaCode (varchar 25) Code du plateau
PlaDesc (varchar 100) Description du plateau
DureeDispo (int) Durée de la disponibilité (en minutes)
TotHeure (int) Durée de la disponibilité (les heures seulement)
TotMinute (int) Durée de la disponibilité (les minutes seulement)


Définition de la procédure stockée :
sp_RapDis_Execute (Il faut appeler cette procédure avant d’afficher View_RapDis afin de générer les données)

Paramètres Explications
@Eidentifiant (varchar 50) Identifiant unique pour la session en cours
@EleTpl (int) Id du type de plateau (si on veut tous les plateaux du type)
Ce paramètre n’a aucun effet si vous spécifiez un plateau différent de 0 dans @ElePla
0 = tous les types de plateaux
@ElePla (int) Id du plateau (si on veut un plateau en particulier)
0 = tous les plateaux si @EleTpl = 0 sinon tous les plateaux du type spécifié par @EleTpl
@EdateDu (varchar 10) Date de départ au format aaaa-mm-jj
@EdateAu (varchar 10) Date de fin au format aaaa-mm-jj
@EheureDeb (varchar 5) Heure de départ au format hh:mm
@EheureFin (varchar 5) Heure de fin au format hh:mm
@ElaDuree (int) Le nombre de minutes minimales désirées
@Lundi, @Mardi, @Mercredi, @Jeudi, @Vendredi, @Samedi, @Dimanche (tinyint) 0 = Ne pas inclure, 1 = inclure
Pour sélectionner tous les jours, mettre tous les paramètres de jours à 1


Exemples de requêtes SQL :
EXEC sp_RapDis_Execute @EIdentifiant = 'NomOrdi', 
                                        @EleTpl = 0, 
                                        @ElePla = 1, 
                                        @EDateDu = '2005-01-01', 
                                        @EDateAU = '2005-01-03', 
                                        @EHeureDeb = '08:00', 
                                        @EHeureFin = '12:00', 
                                        @ElaDuree = 60,
                                        @Lundi = 1, @Mardi = 1, @Mercredi = 1, 
                                        @Jeudi = 1, @Vendredi = 1, @Samedi = 1, 
                                        @Dimanche = 1

/* Ensuite on peut faire un Select avec notre identifiant afin d'avoir le résultat */
Select * From View_RapDis Where ColIdentifiant = 'NomOrdi' Order by PlaUID, ColDebut

View_RapDis


/* Ex 2: Disponibilité pour les plateaux de type GLACE (GLACE1 et GLACE2), du 1er au 2 janvier, de 13h00 à 17h00, pour 60 min */

EXEC sp_RapDis_Execute @EIdentifiant = 'NomOrdi',
                                        @EleTpl = 1, 
                                        @ElePla = 0, 
                                        @EDateDu = '2005-01-01', 
                                        @EDateAU = '2005-01-02', 
                                        @EHeureDeb = '13:00', 
                                        @EHeureFin = '17:00',
                                        @ElaDuree = 60,
                                        @Lundi = 1, @Mardi = 1, @Mercredi = 1, 
                                        @Jeudi = 1, @Vendredi = 1, @Samedi = 1, 
                                        @Dimanche = 1

/* Ensuite on peut faire un Select avec notre identifiant afin d'avoir le résultat */
Select * From View_RapDis Where ColIdentifiant = 'NomOrdi' Order by PlaUID, ColDebut

ProLoc ModuleWeb 07.jpg


Grille web

Afin d’afficher la grille sur une page web, 2 procédures stockées (stored procedure) sont mises à votre disposition afin que vous puissiez les utiliser dans vos sources VB.net ou autre.

Définition des procédures stockées :

  • sp_WebListeGrilles_2 (Retourne la liste des grilles web)
    Aucun paramètre. Cette procédure ne requiert aucun paramètre en entrée
    Elle retourne un ensemble de données (ResultSet) du format suivant :
Colonnes Explications
IdGrille (int) Id de la grille
NomGrille (varchar 50) Description de la grille

 

  • sp_WebProduireGrille_2 (Retourne la recette pour générer la grille)
Paramètres Explications
@EIdentifiant (varchar 50) Identifiant unique pour la session en cours
@IdGrille (int) Id de la grille
@DateDemande (varchar 50) Date demandée
@WebLngUID 0 = Français, 1 = Anglais



La procédure retourne 3 ensembles de données (resultset).
Le premier ensemble de données (1 enregistrement) contient la configuration générale de la grille (GrilleWebConfig) :

Colonnes Explications
GwIdUnique (varchar 50) Identifiant unique pour la session en cours
GwcTitre (varchar 200) Description de la grille
GwcHauteurLignes (tinyint) Hauteur des lignes d’affichages (en pixels)
GwcLargeurHeure (tinyint) Largeur d’une heure
GwcDivHeure (tinyint) Division d’heures (0=15 min, 1=30 min, 2=60 min)
GwcHeureDebut (tinyint) Heure de début pour l’affichage
GwcHeureFin (tinyint) Heure de fin pour l’affichage
GwcGrandFormat (tinyint) Affichage grand format (0=inactif, 1=actif)
* GwcPoliceNom (varchar 50) Nom de la police de caractère
* GwcPoliceTaille (tinyint) Taille de la police
* GwcPoliceStyle (tinyint) Style (en binaire : 1=Bold, 2=Italique, 4=Souligné, 8=Barré)
* GwcPoliceCouleur (int) Couleur de la police (RGB)
GwcCoulFondEtiquettes (int) Couleur de fond de la section étiquettes (RGB)
GwcLargEtiquettes (int) Largeur de la section étiquettes (en pixels)
GwcCoulFondDonnees (int) Couleur de fond de la section réservations (RGB)

 * Affecte la police utlisée dans la section étiquettes.
 

Le deuxième ensemble de données contient la liste des étiquettes plateaux ou jours (GrilleWebEtiquettes) :

Colonnes Explications
GwIdUnique (varchar 50) Identifiant unique pour la session en cours
GweIdLigne (int) Numéro de la ligne
GweLibelle (varchar 200) Libellé des plateaux ou des jours (peut contenir des retours de chariots)
GweTplUID (int) Id du type de plateau
GweTplDesc (varchar 100) Description du type de plateau
GwePlaUID (int) Id du plateau
GwePlaDesc (varchar 100) Description du plateau
GweDate (smalldatetime) Date correspondant à la ligne actuelle


Le troisième ensemble de données contient la liste des réservations (GrilleWebDonnees) :

Colonnes Explications
GwIdUnique (varchar 50) Identifiant unique pour la session en cours
GwdIdLigne (int) Numéro de la ligne
GwdTypeBloc (tinyint) Type de bloc (0=réservations, 1=conflits, 2=inter-plateaux, 3=conflits inter-pla.)
GwdHeureDebut (varchar 5) Heure de début au format hh:mm
GwdHeureFin (varchar 5) Heure de fin au format hh:mm
GwdPosRelGauche (int) Position gauche (à partir de la section étiquettes) (en pixels)
GwdPosRelHaut (int) Position haut (à partir de la bande des heures) (en pixels)
GwdLongueur (int) Longueur du bloc (en pixels)
GwdHauteur (int) Hauteur du bloc (en pixels)
GwdTexte (text) Texte du bloc
GwdPoliceNom (varchar 50) Nom de la police de caractère
GwdPoliceTaille (tinyint) Taille de la police
GwdPoliceStyle (tinyint) Style (en binaire : 1=Bold, 2=Italique, 4=Souligné, 8=Barré)
GwdPoliceCouleur (int) Couleur de la police (RGB)
GwdCoulFond (int) Couleur de fond du bloc (RGB)
GwdTexteBulle (text) Texte de l’info bulle
GwdTagDebut (tinyint) Marque de dépassement à gauche (0=inactive, 1=active)
GwdTagFin (tinyint) Marque de dépassement à droite (0=inactive, 1=active)
GwdResUID (int) Id du contrat de réservations
GwdDetUID (int) Id de la réservation


Exemples de requêtes SQL :
exec sp_WebProduireGrille_2 @EIdentifiant = 'NomOrdi', @IdGrille = 1, @DateDemande = '2005/02/01', @WebLngUID = 0

GrilleWebConfig :
ProLoc ModuleWeb 08.jpg

ProLoc ModuleWeb 09.jpg

GrilleWebEtiquettes :
ProLoc ModuleWeb 10.jpg


GrilleWebDonnees :

ProLoc ModuleWeb 11.jpg

ProLoc ModuleWeb 12.jpg



Nom du document : ProLoc:Module Web
Version : 7