Base de Données: SAMS

Liste des tables

Nom Description
F1 Dossiers
F11 Appels
F12 Interventions
F13 Demandes de corrections
F14 Techniciens par intervention
F15 Historique des événements du dossier
F16 Liens inter-dossiers
F2 Devis
F21 Demandes d'évolution
F22 Versions applicatives par évolution (évolution répartie sur plusieurs versions)
F23 Compléments d'analyse de demande d'évolution
F3 Commandes
F30 Utilisateurs
F31 Profils d'utilisateur
F32 Droits par profil d'utilisateur
F33 Livraisons
F34 Reports de livraison
F4 Applications
F41 Versions
F5 Sites
F51 Correspondants locaux (des sites)
F6 Diffusions des versions
F61 Envois/installations de versions (correctifs, sites pilotes ou diffusion)
F7 Fiches d'expression de besoin
F70 Techniciens
F71 Profils de technicien
F72 Qualifications de dossier
F73 Modes de résolution
F74 Types de juridiction
F75 Qualités de correspondant
F76 Types d'action préventive
F77 Logiciels de base
F78 Niveaux de support
F79 Etats d'avancement
F80 Paramètres SAMS
F81 Domaines fonctionnels
F82 Domaine métiers
F83 Environnements
F84 Environnements techniques
F85 Référentiel des qualifications
MENUS Eléments du menu HTML de l'application
TAILLELISTE Taille des différentes listes par utilisateur

 

Table: F1

Index:

NomType
Index primaireF1ID
FK_F1_F73F1NIVINC
FK_F1_F81F1DOMFONCT
FK_F1_F72F1QUALIF

Champs:

NomTypeNulPar défautExtrasCommentaire
F1IDint(11)NULLNULLauto_increment 
F1NUMvarchar(9)NULLNULL Automatique (égal au n° du 1er appel saisi pour le dossier)
F1DATEdatetimeNULLNULL Date et heure de l'appel initial - Automatique (égal à la date et heure du 1er appel saisi pour le dossier)
F1INCIDint(1)NULLNULL 0 ou NULL (difficulté d'utilisation), 1 (incident)
F1BLOQint(1)NULLNULL Bloquant (0 ou NULL = Non, 1 = Oui)
F1DTFINdatetimeNULLNULL Date et heure de clôture du dossier
F1DESCRtextNULLNULL  Descriptif (PJ stockées dans le répertoire DESCR)
F1SOLUTIONtextNULLNULL  Solution (PJ stockées dans le répertoire SOLUTION)
F1SITEint(11)NULLNULL Ville du site
F1VERSAPPint(11)NULLNULL Code de la version de l'application
F1NIVINCint(11)NULLNULL Code du mode de résolution
F1DOMFONCTint(11)NULLNULL Code du domaine fonctionnel
F1QUALIFint(11)NULLNULL Code de la qualification

Clé secondaire:

NomType
FK_F1_F72F1QUALIF -> f72.F72ID
FK_F1_F73F1NIVINC -> f73.F73ID
FK_F1_F81F1DOMFONCT -> f81.F81ID
top

Table: F11

Index:

NomType
Index primaireF11ID
FK_F11_F1F11DOS
FK_F11_F51F11CORRESP
FK_F11_F70AF11TECH
FK_F11_F72F11QUALIF
FK_F11_F73F11NIVEAU
FK_F11_F70BF11TRANSTECH
FK_F11_F79F11ETAT

Champs:

NomTypeNulPar défautExtrasCommentaire
F11IDint(11)NULLNULLauto_increment 
F11NUMvarchar(9)NULLNULL Automatique (format AAAANNNNN où AAAA = année de la date d'appel et NNNNN = n° d'ordre dans l'année)
F11DATEdatetimeNULLNULL Date et heure (par défaut date et heure système à la validation)
F11MOTIFtextNULLNULL Motif de l'appel (PJ stockées dans le répertoire MOTIF)
F11TYPEint(1)NULLNULL Type d'appel (0 = appel complémentaire, 1 = appel initial)
F11REPONSEtextNULLNULL Réponse du technicien qui a traité l'appel (PJ stockées dans le répertoire REPONSE)
F11DUREEint(4)NULLNULL Durée de l'appel en minutes
F11DURRESint(4)NULLNULL Durée de résolution en minutes
F11DTRECEPdatetimeNULLNULL  Date de réception (saisissable par un utilisateur de profil Ministère)
F11FACTint(1)NULLNULL  Appel facturable (0 ou NULL = facturable, 1= non facturable)
F11DTETATdatetimeNULLNULL Date d'état d'avancement (depuis le)
F11DOSint(11)NULLNULL  Code du dossier
F11CORRESPint(11)NULLNULL Auteur de l'appel
F11TECHint(11)NULLNULL Technicien qui traite l'appel
F11QUALIFint(11)NULLNULL Code qualification (inutilisé)
F11TRANSTECHint(11)NULLNULL Technicien à qui l'appel est transféré
F11ETATint(11)NULLNULL Etat d'avancement de l'appel

Clé secondaire:

NomType
FK_F11_F1F11DOS -> f1.F1ID
FK_F11_F51F11CORRESP -> f51.F51ID
FK_F11_F70AF11TECH -> f70.F70ID
FK_F11_F70BF11TRANSTECH -> f70.F70ID
FK_F11_F72F11QUALIF -> f72.F72ID
FK_F11_F79F11ETAT -> f79.F79ID
top

Table: F12

Index:

NomType
Index primaireF12ID
FK_F12_F1F12DOS
FK_F12_F76F12TYPAP

Champs:

NomTypeNulPar défautExtrasCommentaire
F12IDint(11)NULLNULLauto_increment 
F12NUMvarchar(9)NULLNULL Automatique (format AAAANNNNN où AAAA = année de la date de début d'intervention et NNNNN = n° d'ordre dans l'année)
F12DTDEBdatetimeNULLNULL Date et heure de début de l'intervention
F12DTFINdatetimeNULLNULL Date et heure de fin de l'intervention
F12DESCRtextNULLNULL Descriptif (PJ stockées dans le répertoire DESCR)
F12NATUREint(1)NULLNULL Nature de l'intervention (1 = A distance, 2 : Sur site)
F12TYPEvarchar(8)NULLNULL Nature de l'intervention (1 = Incident, 2 = Action préventive)
F12DTRECEPdatetimeNULLNULL Date de réception
F12SITEint(11)NULLNULL Ville du site
F12VERSAPPint(11)NULLNULL Code de la version de l'application
F12DOSint(11)NULLNULL Numéro de dossier
F12TYPAPint(11)NULLNULL Code de l'action préventive si F12TYPE = 2

Clé secondaire:

NomType
FK_F12_F1F12DOS -> f1.F1ID
FK_F12_F76F12TYPAP -> f76.F76ID
top

Table: F13

Index:

NomType
Index primaireF13ID
FK_F13_F1F13DOS
FK_F13_F21F13EVOL
FK_F13_F81F13DOMFONCT
FK_F13_F82F13DOMMETIER
FK_F13_F84F13ENVIR
FK_F13_F79F13ETAT
FK_F13_F13F13CORINI

Champs:

NomTypeNulPar défautExtrasCommentaire
F13IDint(11)NULLNULLauto_increment 
F13NUMvarchar(9)NULLNULL Automatique (format AAAANNNNN où AAAA = année de la date de demande de correction et NNNNN = n° d'ordre dans l'année)
F13DATEdatetimeNULLNULL Date de la demande
F13ORIGINEint(1)NULLNULL Origine (0 = Administrateur, 1 = Ministère, 2 = Site)
F13DESDEMtextNULLNULL Descriptif de la demande (PJ stockées dans le répertoire DESDEM)
F13REPONSEtextNULLNULL  Réponse (PJ stockées dans le répertoire REPONSE)
F13DESCORtextNULLNULL  Description de la correction (Pièces jointes stockées dans le répertoire DESCOR)
F13DTCORdatetimeNULLNULL  Date de la correction
F13DTRECEPdatetimeNULLNULL  Date de réception
F13DTANNULdatetimeNULLNULL  Date d'annulation
F13PRIOvarchar(1)NULLNULL Indicateur de priorité de correction
F13DTETATdatetimeNULLNULL Date associée à l'état d'avancement (depuis le)
F13NBRETint(2)NULLNULL Nombre de retours au réalisateur
F13SITEint(11)NULLNULL Ville du site à l'origine de la demande si F13ORIGINE = 2
F13VERSAPPint(11)NULLNULL Code de la version de l'application concernée par la demande
F13CORRECTIFint(11)NULLNULL  
F13DOSint(11)NULLNULL Numéro du dossier
F13EVOLint(11)NULLNULL N° de l'évolution objet de la présente demande de correction
F13DOMFONCTint(11)NULLNULL  Code du domaine fonctionnel
F13DOMMETIERint(11)NULLNULL  Code du domaine métier
F13ENVIRint(11)NULLNULL Code de l'environnement techniques
F13ETATint(11)NULLNULL  Code de l'état d'avancement
F13CORINIint(11)NULLNULL  N° de la demande de correction initiale objet de la présente demande de correction

Clé secondaire:

NomType
FK_F13_F1F13DOS -> f1.F1ID
FK_F13_F13F13CORINI -> F13ID
FK_F13_F21F13EVOL -> f21.F21ID
FK_F13_F79F13ETAT -> f79.F79ID
FK_F13_F81F13DOMFONCT -> f81.F81ID
FK_F13_F82F13DOMMETIER -> f82.F82ID
FK_F13_F84F13ENVIR -> f84.F84ID
top

Table: F14

Index:

NomType
FK_F14_F12F14INTERV
FK_F14_F70F14TECH

Champs:

NomTypeNulPar défautExtrasCommentaire
F14DUREEdecimal(5,1)NULLNULL Durée de l'intervention du technicien
F14INTERVint(11)NULLNULL Numéro de l'intervention
F14TECHint(11)NULLNULL Code du technicien

Clé secondaire:

NomType
FK_F14_F12F14INTERV -> f12.F12ID
FK_F14_F70F14TECH -> f70.F70ID
top

Table: F15

Index:

NomType
Index primaireF15ID
U_F15F15APPEL, F15ORDRE
FK_F15_F51F15DESTCORR
FK_F15_F70F15DESTTECH

Champs:

NomTypeNulPar défautExtrasCommentaire
F15IDint(11)NULLNULLauto_increment 
F15ORDRE tinyint(4) NULL '1'  N° d'ordre de la ligne d'historique pour l'appel
F15DATEdatetimeNULLNULL Date et heure
F15UTILISATEURint(11)NULLNULL Code de l'utilisateur connecté (créateur de l'appel ou émetteur du message)
F15DESTCORRint(11)NULLNULL Code du correspondant destinataire du message (bouton Informer)
F15DESTTECHint(11)NULLNULL Code du technicien destinataire du message (bouton Transférer)
F15APPELint(11)NULLNULL N° de l'appel

Clé secondaire:

NomType
FK_F15_F11F15APPEL -> f11.F11ID
FK_F15_F51F15DESTCORR -> f51.F51ID
FK_F15_F70F15DESTTECH -> f70.F70ID
top

Table: F16

Index:

NomType
U_F16F16DOS, F16DOSLIE
FK_F16_F1B F16DOSLIE

Champs:

NomTypeNulPar défautExtrasCommentaire
F16DATEdatetimeNULLNULL  Date du lien
F16COMMENTtextNULLNULL  Commentaires du lien
F16DOSint(11)NULLNULL N° du dossier
F16DOSLIEint(11)NULLNULL N° du dossier lié

Clé secondaire:

Nom Type
FK_F16_F1A F16DOS->F1.F1ID
FK_F16_F1B F16DOSLIE->F1.F1ID
top

Table: F2

Index:

NomType
Index primaireF2ID

Champs:

NomTypeNulPar défautExtrasCommentaire
F2IDint(11)NULLNULLauto_increment 
F2NUMvarchar(9)NULLNULL Automatique (format AAAANNNNN où AAAA = année de la date de demande de devis et NNNNN = n° d'ordre dans l'année)
F2DATEdatetimeNULLNULL  Date de demande
F2REFDEMvarchar(60)NULLNULL  Référence du demandeur du devis
F2REFTITUvarchar(60)NULLNULL  Référence de l'émetteur du devis
F2DTREMISdatetimeNULLNULL  Date de remise
F2COMMENTtextNULLNULL  Commentaires (PJ stockées dans le répertoire COMMENT)
top

Table: F21

Index:

NomType
Index primaireF21ID
FK_F21_F2F21DEVIS
FK_F21_F3F21CMD
FK_F21_F4F21APPLI
FK_F21_F81F21DOMFONCT
FK_F21_F82F21DOMMETIER
FK_F21_F79F21ETAT

Champs:

NomTypeNulPar défautExtrasCommentaire
F21IDint(11)NULLNULLauto_increment 
F21NUMvarchar(9)NULLNULL Automatique (format AAAANNNNN où AAAA = année de la date de demande et NNNNN = n° d'ordre dans l'année)
F21DATEdatetimeNULLNULL Date de la demande
F21REFvarchar(60)NULLNULL Référence de la demande (libellé succint)
F21DESCR text NULLNULL Descriptif de la demande (PJ stockées dans le répertoire DESCR)
F21REPMINtextNULLNULL  Réponse du ministère (PJ stockées dans le répertoire REPMIN)
F21REPTITUtextNULLNULL  Réponse de l'administrateur (Pièces jointes stockées dans le répertoire REPTITU)
F21ORIGint(1)NULLNULL Origine (0 = Administrateur, 1 = Ministère, 2 = Site)
F21PRIOvarchar(1)NULLNULL Indicateur de priorité de la demande d'évolution
F21DTETATdatetimeNULLNULL Date associée à l'état d'avancement (depuis le)
F21MINint(1)NULLNULL Evolution mineure (0 ou NULL = Non, 1 = Oui)
F21SITEint(11)NULLNULL Ville du site à l'origine de la demande (si F21ORIG = 2)
F21DEVISint(11)NULLNULL Numéro de devis évaluant la demande
F21CMDint(11)NULLNULL Numéro de commande
F21APPLIint(11)NULLNULL Code de l'application concernée
F21DOMFONCTint(11)NULLNULL  Code du domaine fonctionnel
F21DOMMETIERint(11)NULLNULL  Code du domaine métier
F21ETATint(11)NULLNULL Code de l'état d'avancement

Clé secondaire:

NomType
FK_F21_F2F21DEVIS -> f2.F2ID
FK_F21_F3F21CMD -> f3.F3ID
FK_F21_F4F21APPLI -> f4.F4ID
FK_F21_F79F21ETAT -> f79.F79ID
FK_F21_F81F21DOMFONCT -> f81.F81ID
FK_F21_F82F21DOMMETIER -> f82.F82ID
top

Table: F22

Index:

NomType
U_F22F22EVOL, F22VERSAPP

Champs:

NomTypeNulPar défautExtrasCommentaire
F22DTDEBdatetimeNULLNULL  Date de début de réalisation
F22DTFINdatetimeNULLNULL  Date de fin de réalisation
F22COMMENTtextNULLNULL  Commentaire (PJ stockées dans le répertoire COMMENT)
F22VERSAPPint(11)NULLNULL Code de la version de l'application
F22EVOLint(11)NULLNULL Numéro d'évolution

Clé secondaire:

NomType
FK_22F_F21F22EVOL -> f21.F21ID
top

Table: F23

Index:

NomType
Index primaireF23ID
U_F23F23EVO, F23ORDRE

Champs:

NomTypeNulPar défautExtrasCommentaire
F23IDint(11)NULLNULLauto_increment 
F23ORDREvarchar(2)NULLNULL  N° ordre du complément (automatique)
F23DTQUESdatetimeNULLNULL  Date de la question
F23QUEStextNULLNULL  Question (PJ stockées dans le répertoire QUES)
F23DTREPdatetimeNULLNULL  Date de la réponse
F23REPtextNULLNULL  Réponse (PJ stockées dans le répertoire REPONSE)
F23EVOint(11)NULLNULL N° d'évolution

Clé secondaire:

NomType
FK_F23_F21F23EVO -> f21.F21ID
top

Table: F3

Index:

NomType
Index primaireF3ID
FK_F3_F2F3DEVIS
FK_F3_F83F3CATEG

Champs:

NomTypeNulPar défautExtrasCommentaire
F3IDint(11)NULLNULLauto_increment 
F3NUMvarchar(9)NULLNULL Automatique (format AAAANNNNN où AAAA = année de la date de commande et NNNNN = n° d'ordre dans l'année)
F3DATEdatetimeNULLNULL Date de la commande
F3NUMMINvarchar(60)NULLNULL Numéro de la commande pour le ministère
F3OBJETvarchar(60)NULLNULL Objet
F3DTLIVdatetimeNULLNULL  Date limite de livraison
F3DTDOCUTdatetimeNULLNULL  Date limite de livraison de la documentation utilisateur
F3DTDOCMAdatetimeNULLNULL  Date limite de livraison de la documentation de maintenance
F3DTRECEPdatetimeNULLNULL  Date de réception définitive de la commande
F3COMMENTtextNULLNULL  Commentaire (PJ stockées dans le répertoire COMMENT)
F3CHARGEdecimal(6,2)NULLNULL Charges en j*h
F3MONTANTdecimal(11,2)NULLNULL Montant TTC
F3DEVISint(11)NULLNULL Numéro du devis
F3CATEGint(11)NULLNULL Code de la catégorie

Clé secondaire:

NomType
FK_F3_F2F3DEVIS -> f2.F2ID
FK_F3_F83F3CATEG -> f83.F83ID
top

Table: F30

Index:

NomType
Index primaireF30ID
U_F30F30NOM, F30PRENOM, F30SITE
FK_F30_F70F30TECH

Champs:

NomTypeNulPar défautExtrasCommentaire
F30IDint(11)NULLNULLauto_increment 
F30NOMvarchar(60)NULLNULL  Nom
F30PRENOMvarchar(60)NULLNULL  Prénom
F30MOTPASSvarchar(32)NULLNULL Mot de passe
F30PROFILint(11)NULLNULL Code du profil de l'utilisateur
F30TECHint(11)NULLNULL Code technicien (si l'utilisateur est aussi technicien)
F30SITEint(11)NULLNULL Ville du site de l'utilisateur

Clé secondaire:

NomType
FK_F30_F70F30TECH -> f70.F70ID
top

Table: F31

Index:

NomType
Index primaireF31ID
U_F31F31CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F31IDint(11)NULLNULLauto_increment 
F31CODEvarchar(8)NULLNULL  Code du profil
F31TYPEint(1)NULLNULL  Type de profil (Administrateur =1, Ministère = 2, site = 3)
top

Table: F32

Index:

NomType
Index primaireF32ID
U_F32F32PROFIL, F32DONNEE

Champs:

NomTypeNulPar défautExtrasCommentaire
F32IDint(11)NULLNULLauto_increment 
F32DONNEEvarchar(60)NULLNULL  Adresse de la fonction, sous la forme /nomPackage/nomFonction/
F32CONSULTint(1)NULLNULL  Consultation (1 = Oui (toujours))
F32MODIFint(1)NULLNULL  Modification (0 = Non, 1 = Oui)
F32AJOUTint(1)NULLNULL  Ajout (0 = Non, 1 = Oui)
F32SUPPRint(1)NULLNULL  Suppression (0 = Non, 1 = Oui)
F32LIBELvarchar(60)NULLNULL  Libellé
F32PROFILint(11)NULLNULL Code du profil

Clé secondaire:

NomType
FK_F32_F31F32PROFIL -> f31.F31ID
top

Table: F33

Index:

NomType
Index primaireF33ID
FK_F33_F3F33CMD

Champs:

NomTypeNulPar défautExtrasCommentaire
F33IDint(11)NULLNULLauto_increment 
F33NUMvarchar(9)NULLNULL Automatique (format AAAANNNNN où AAAA = année de la date prévue de livraison et NNNNN = n° d'ordre dans l'année)
F33ORIGINEint(1)NULLNULL Origine ( 0 = Administrateur, 1 = Ministère)
F33REFvarchar(60)NULLNULL  Référence de livraison
F33DESCRtextNULLNULL  Descriptif ( PJ stockées dans le répertoire DESCR)
F33DTPREVdatetimeNULLNULL  Date de livraison prévue
F33DTREELdatetimeNULLNULL  Date de livraison réelle
F33RESERVEtextNULLNULL  Réserves (PJ stockées dans le répertoire RES)
F33TRAITEEint(1)NULLNULL  Traitée (0 ou NULL = Non, 1 = Oui)
F33VERSAPPint(11)NULLNULL Code de la version de l'application
F33CMDint(11)NULLNULL N° de commande

Clé secondaire:

NomType
FK_F33_F3F33CMD -> f3.F3ID
top

Table: F34

Index:

NomType
Index primaireF34ID
U_F34F34ORDRE, F34LIV
FK_F34_F33F34LIV

Champs:

NomTypeNulPar défautExtrasCommentaire
F34IDint(11)NULLNULLauto_increment 
F34ORDREvarchar(2)NULLNULL  N° d'ordre du report pour une livraison
F34DATEdatetimeNULLNULL  Date à laquelle la livraison est reportée
F34MOTIFtextNULLNULL Motif (PJ dans le répertoire MOT)
F34LIVint(11)NULLNULL N° de livraison

Clé secondaire:

NomType
FK_F34_F33F34LIV -> f33.F33ID
top

Table: F4

Index:

NomType
Index primaireF4ID
U_F4F4CODE
FK_F4_F4F4APPSEC

Champs:

NomTypeNulPar défautExtrasCommentaire
F4IDint(11)NULLNULLauto_increment 
F4CODEvarchar(8)NULLNULL  Code de l'application
F4LIBELvarchar(60)NULLNULL  Libellé de l'application
F4APPSECint(11)NULLNULL  Code de l'application secondaire (modifiable hors SAMS via SQL

Clé secondaire:

NomType
FK_F4_F4F4APPSEC -> F4ID
top

Table: F41

Index:

NomType
Index primaireF41ID
U_F41F41CODE, F41APPLI
FK_F41_F4 F41APPLI

Champs:

NomTypeNulPar défautExtrasCommentaire
F41IDint(11)NULLNULLauto_increment 
F41CODEvarchar(20)NULLNULL Code de la version
F41DTVERdatetimeNULLNULL  Date de validation de la version
F41DTNOTEdatetimeNULLNULL  Date de validation de la note descriptive
F41DTPILOTdatetimeNULLNULL  Date de demande d'installation des sites pilotes
F41INACTIFint(1)NULLNULL  Inactivité (0 ou NULL = non, 1 = Oui)
F41APPLIint(11)NULLNULL Code de l'application

Clé secondaire:

Nom Type
FK_F41_F4 F41APPLI->F4.F4ID
top

Table: F5

Index:

NomType
Index primaireF5ID
U_F5F5TYPJUR, F5VILLE, F5ORDRE
FK_F5_F77AF5LOGOSSERV
FK_F5_F77BF5LOGSGBD
FK_F5_F77CF5LOGWIN
FK_F5_F77DF5LOGTXT

Champs:

NomTypeNulPar défautExtrasCommentaire
F5IDint(11)NULLNULLauto_increment 
F5REPRISEint(1)NULLNULL Reprise de données (0 ou NULL = Non, 1 = Oui)
F5ANCSYSTvarchar(60)NULLNULL Nom de l'ancien système (si F5REPRISE = 1)
F5DTMOMdatetimeNULLNULL Date de mise en ordre de marche
F5DTADMISdatetimeNULLNULL Date d'admission par le responsable du site
F5NBFORMEint(4)NULLNULL Nombre d'exploitants formés
F5NBFORMUint(4)NULLNULL Nombre d'utilisateurs formés
F5FORMAvarchar(60)NULLNULL Dates de formation (saisie libre)
F5ADD3varchar(60)NULLNULL Adresse
F5VILLEvarchar(60)NULLNULL Ville du site
F5ORDRE tinyint(4) NULL '1'  N°ordre du site
F5DTMAJdatetimeNULLNULL Date de la dernière mise à jour des informations du site, automatique (remplie avec la date du jour à chaque validation)
F5ADD1varchar(60)NULLNULL  Adresse
F5ADD2varchar(60)NULLNULL  Adresse
F5CPvarchar(5)NULLNULL Code postal
F5TELvarchar(20)NULLNULL N° de téléphone
F5FAXvarchar(20)NULLNULL N° de fax
F5MAILvarchar(60)NULLNULL Adresse e-mail
F5PCHANCint(1)NULLNULL Priorité Chancellerie pour l'informatisation initiale (0 = Non, 1 = Oui)
F5PCAint(1)NULLNULL Priorité du site de rattachement pour l'informatisation intiale (0 = Non, 1 = Oui)
F5DTDEPCAdatetimeNULLNULL Date dépêche au site de rattachement
F5AUTOCABvarchar(60)NULLNULL Autorité pour le câblage
F5AUTOMATvarchar(60)NULLNULL Autorité pour le matériel
F5OSSERVvarchar(60)NULLNULL  OS serveur (inutilisé car remplacé depuis la version 2 par F5LOGOSSERV)
F5SGBDvarchar(60)NULLNULL  Système de gestion des données (inutilisé car remplacé depuis la version 2 par F5LOGSGBD)
F5NBPOSTEint(4)NULLNULL  Nombre de postes de travail
F5VERWINvarchar(20)NULLNULL  Version de Windows (inutilisé car remplacé depuis la version 2 par F5LOGWIN)
F5VERWPvarchar(20)NULLNULL  Version de WordPerfect (inutilisé car remplacé depuis la version 2 par F5LOGTXT)
F5NBPORREint(4)NULLNULL  Nombre de portables réseau
F5NBPORNCint(4)NULLNULL  Nombre de portables non connectés
F5NBIMPREint(4)NULLNULL  Nombre d'imprimantes réseau
F5NBIMPLOint(4)NULLNULL  Nombre d'imprimantes locales
F5AUTRMATvarchar(60)NULLNULL  Autres matériels
F5TELEMint(1)NULLNULL  Télémaintenance (0 = Non, 1 = Oui)
F5MODEMvarchar(20)NULLNULL  N° d'appel modem pour télémaintenance (si F5TELEM = 1
F5DTINMATdatetimeNULLNULL  Date d'installation initiale du matériel
F5DTDEBIMdatetimeNULLNULL  Date prévue du début d'implantation
F5DTFINIMdatetimeNULLNULL  Date prévue de fin d'implantation
F5COMMENTtextNULLNULL Commentaire (PJ stockées dans le répertoire COMMENT)
F5UNITINSTvarchar(20)NULLNULL Unité d'installation de l'application (ex : C:)
F5CODEESSRvarchar(8)NULLNULL Code national ESSR du site
F5SARvarchar(60)NULLNULL  SAR de rattachement
F5CPRvarchar(60)NULLNULL  CPR de rattachement
F5NOMSERVvarchar(60)NULLNULL Nom du serveur principal
F5CAint(11)NULLNULL  
F5TYPJURint(11)NULLNULL Code du type de site
F5LOGOSSERVint(11)NULLNULL  Code du logiciel de base 'OS Serveur'
F5LOGSGBDint(11)NULLNULL  Code du logiciel de base 'SGBD'
F5LOGWINint(11)NULLNULL  Code de la version du logiciel de base 'Windows'
F5LOGTXTint(11)NULLNULL  Code de la version du logiciel de base 'WordPerfect'

Clé secondaire:

NomType
FK_F5_F74F5TYPJUR -> f74.F74ID
FK_F5_F77AF5LOGOSSERV -> f77.F77ID
FK_F5_F77BF5LOGSGBD -> f77.F77ID
FK_F5_F77CF5LOGWIN -> f77.F77ID
FK_F5_F77DF5LOGTXT -> f77.F77ID
top

Table: F51

Index:

NomType
Index primaireF51ID
FK_F51_F75F51QUALITE

Champs:

NomTypeNulPar défautExtrasCommentaire
F51IDint(11)NULLNULLauto_increment 
F51NOMvarchar(60)NULLNULL  Nom
F51PRENOMvarchar(60)NULLNULL  Prénom
F51TELvarchar(20)NULLNULL  N° de téléphone
F51TELMOBvarchar(20)NULLNULL  N° de téléphone portable
F51FAXvarchar(20)NULLNULL  N° de fax
F51MAILvarchar(60)NULLNULL  Adresse e-mail
F51RESPONint(1)NULLNULL  Responsable (0 = Non, 1 = Oui)
F51CIVILint(1)NULLNULL  Civilité (1 = Monsieur, 2 = Madame, 3 = Mademoiselle)
F51POSTEvarchar(5)NULLNULL  N° de poste (téléphonique)
F51NOMPDTvarchar(60)NULLNULL  Nom du poste de travail
F51IPPDTvarchar(39)NULLNULL  Adresse IP du poste de travail
F51SITEint(11)NULLNULL Ville du site du correspondant
F51QUALITEint(11)NULLNULL Code de la qualité du correspondant (cf. table de référence)

Clé secondaire:

NomType
FK_F51_F75F51QUALITE -> f75.F75ID
top

Table: F6

Index:

NomType
Index primaireF6ID

Champs:

NomTypeNulPar défautExtrasCommentaire
F6IDint(11)NULLNULLauto_increment 
F6NUMvarchar(9)NULLNULL  Automatique (format AAAANNNNN où AAAA = année de référence de la diffusion générale et NNNNN = n° d'ordre dans l'année)
F6DTRECEPdatetimeNULLNULL  Date de réception
F6TYPEint(1)NULLNULL  Type de diffusion (1 : simple par envoi postal, 2 : simple par envoi d'e-mail, 3 : complexe par télémaintenance, 4 : complexe sur site
F6DESCRtextNULLNULL Descriptif (PJ stockées dans le répertoire DESDIF)
F6VERSAPPint(11)NULLNULL Version de l'application
top

Table: F61

Index:

NomType
U_F61F61SITE, F61VERSAPP
FK_F61_F6F61DIFFUS
FK_F61_F70F61TECH

Champs:

NomTypeNulPar défautExtrasCommentaire
F61DTENVdatetimeNULLNULL Date de l'envoi (si F6TYPE = 1 ou F6TYPE = 2)
F61DTDEBdatetimeNULLNULL  Date de début de l'installation (si F6TYPE = 3 ou F6TYPE = 4)
F61DTFINdatetimeNULLNULL  Date de fin de l'installation (si F6TYPE = 3 ou F6TYPE = 4)
F61DUREEdecimal(5,1)NULLNULL  Durée de l'installation effectuée par le technicien (si F6TYPE = 3 ou F6TYPE = 4)
F61DTMOMdatetimeNULLNULL  Date de mise en ordre de marche
F61DTVALdatetimeNULLNULL  Date de validation de l'envoi/installation
F61PILOTEint(1)NULLNULL  Site pilote (0 = Non, 1 = Oui)
F61COMMENTtextNULLNULL  Commentaire (PJ stockées dans le répertoire COMMENT)
F61SITEint(11)NULLNULL Ville du site
F61VERSAPPint(11)NULLNULL Version de l'application
F61DIFFUSint(11)NULLNULL N° de diffusion (envoi/installation)
F61TECHint(11)NULLNULL Code du technicien (si F6TYPE = 3 ou F6TYPE = 4)

Clé secondaire:

NomType
FK_F61_F6F61DIFFUS -> f6.F6ID
FK_F61_F70F61TECH -> f70.F70ID
top

Table: F7

Index:

NomType
Index primaireF7ID
FK_F7_F4F7APPLI
FK_F7_F81F7DOMFONCT
FK_F7_F82F7DOMMETIER
FK_F7_F79F7ETAT
FK_F7_F21F7EVOL

Champs:

NomTypeNulPar défautExtrasCommentaire
F7IDint(11)NULLNULLauto_increment 
F7NUMvarchar(9)NULLNULL Automatique (format AAAANNNNN où AAAA = année de la date de demande de la fiche d'expression de besoin et NNNNN = n° d'ordre dans l'année)
F7DATEdatetimeNULLNULL Date de la demande
F7REFvarchar(60)NULLNULL Référence
F7DTETATdatetimeNULLNULL Date associée à l'état d'avancement (depuis le)
F7DESCRtextNULLNULL Descriptif de la demande ( PJ stockées dans le répertoire DESCR)
F7REPONSEtextNULLNULL Réponse de la MOA (PJ stockées dans le répertoire REPONSE)
F7PRIOvarchar(1)NULLNULL Indicateur de priorité
F7SITEint(11)NULLNULL  Site à l'origine de la demande
F7APPLIint(11)NULLNULL Code de l'application
F7DOMFONCTint(11)NULLNULL  Code du domaine fonctionnel
F7DOMMETIERint(11)NULLNULL  Code du domaine métier
F7ETATint(11)NULLNULL Code de l'état d'avancement
F7EVOLint(11)NULLNULL N° de la demande d'évolution (si la FEB donne lieu à une demande d'évolution)

Clé secondaire:

NomType
FK_F7_F21F7EVOL -> f21.F21ID
FK_F7_F4F7APPLI -> f4.F4ID
FK_F7_F79F7ETAT -> f79.F79ID
FK_F7_F81F7DOMFONCT -> f81.F81ID
FK_F7_F82F7DOMMETIER -> f82.F82ID
top

Table: F70

Index:

NomType
Index primaireF70ID
U_F70F70CODE
FK_F70_F71F70PROFIL
FK_F70_F78F70NIVSUP

Champs:

NomTypeNulPar défautExtrasCommentaire
F70IDint(11)NULLNULLauto_increment 
F70CODEvarchar(8)NULLNULL  Code du technicien
F70NOMvarchar(60)NULLNULL  Nom
F70PRENOMvarchar(60)NULLNULL  Prénom
F70TELvarchar(20)NULLNULL  N° de téléphone
F70FAXvarchar(20)NULLNULL  N° de fax
F70MAILvarchar(60)NULLNULL  Adresse e-mail
F70INACTIFint(1)NULLNULL Inactivité (0 ou NULL = actif, 1 = Inactif)
F70NIVSUPint(11)NULLNULL Code du niveau de support dont relève le technicien
F70PROFILint(11)NULLNULL Code du profil du technicien (fonction, expertise)

Clé secondaire:

NomType
FK_F70_F71F70PROFIL -> f71.F71ID
FK_F70_F78F70NIVSUP -> f78.F78ID
top

Table: F71

Index:

NomType
Index primaireF71ID
U_F71F71CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F71IDint(11)NULLNULLauto_increment 
F71CODEvarchar(8)NULLNULL  Code
F71LIBELvarchar(60)NULLNULL  Libellé
top

Table: F72

Index:

NomType
Index primaireF72ID
U_F72F72CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F72IDint(11)NULLNULLauto_increment 
F72CODEvarchar(8)NULLNULL  Code
F72LIBELvarchar(60)NULLNULL  Libellé
F72DIFUTILint(1)NULLNULL  Difficulté d'utilisation (0 ou NULL = Non, 1 = Oui)
F72INCIDint(1)NULLNULL  Incident (0 ou NULL = Non, 1 = Oui)
F72QUALRvarchar(5)NULLNULL  Code de la qualification correspondante du référentiel
top

Table: F73

Index:

NomType
Index primaireF73ID
U_F73F73CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F73IDint(11)NULLNULLauto_increment 
F73CODEvarchar(8)NULLNULL  Code
F73LIBELvarchar(60)NULLNULL  Libellé
top

Table: F74

Index:

NomType
Index primaireF74ID
U_F74F74CODE
FK_F74_F74F74TPSITRATT
FK_F74_F4F74APPLIPPALE

Champs:

NomTypeNulPar défautExtrasCommentaire
F74IDint(11)NULLNULLauto_increment 
F74CODEvarchar(8)NULLNULL  Code
F74LIBELvarchar(60)NULLNULL  Libellé
F74FIGEint(1)NULLNULL  Figé (NULL = Non, 1 = Oui) (modifiable hors SAMS via SQL)
F74TPSITRATTint(11)NULLNULL  Code du type de site de rattachement
F74APPLIPPALEint(11)NULLNULL  Code de l'application principale

Clé secondaire:

NomType
FK_F74_F4F74APPLIPPALE -> f4.F4ID
FK_F74_F74F74TPSITRATT -> F74ID
top

Table: F75

Index:

NomType
Index primaireF75ID
U_F75F75CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F75IDint(11)NULLNULLauto_increment 
F75CODEvarchar(8)NULLNULL  Code
F75LIBELvarchar(60)NULLNULL  Libellé
top

Table: F76

Index:

NomType
Index primaireF76ID
U_F76F76CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F76IDint(11)NULLNULLauto_increment 
F76CODEvarchar(8)NULLNULL  Code
F76LIBELvarchar(60)NULLNULL  Libellé
top

Table: F77

Index:

NomType
Index primaireF77ID
U_F77 F77CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F77IDint(11)NULLNULLauto_increment 
F77CODEvarchar(10)NULLNULL  Code
F77LIBELvarchar(60)NULLNULL  Libellé
top

Table: F78

Index:

NomType
Index primaireF78ID
U_F78F78CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F78IDint(11)NULLNULLauto_increment 
F78CODEvarchar(10)NULLNULL  Code
F78LIBELvarchar(30)NULLNULL  Libellé
top

Table: F79

Index:

NomType
Index primaireF79ID
U_F79F79CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F79IDint(11)NULLNULLauto_increment 
F79CODEvarchar(10)NULLNULL  Code
F79LIBELvarchar(30)NULLNULL  Libellé
top

Table: F80

Index:

NomType
Index primaireF80ID

Champs:

NomTypeNulPar défautExtrasCommentaire
F80IDint(11)NULLNULLauto_increment 
F80NUMvarchar(9)NULLNULL  Numéro (cadré à droite avec des espaces) (1 : Terme "Ministère", 2 : Facturation, 3 : Saisie obligatoire "Techniciens", 4 : Saisie obligatoire "Profils de technicien", 5 : Saisie obligatoire "Qualifications", 6 : Saisie obligatoire "Modes de résolution", 7 : Saisie obligatoire "Types de site", 8 : Saisie obligatoire "Qualités de correspondant", 9 : Saisie obligatoire "Types d'action préventive", 10 : Saisie obligatoire "Logiciels de base", 11 : Saisie obligatoire "Niveaux de support", 12 : Saisie obligatoire "Etats d'avancement", 13 : Saisie obligatoire "Domaines fonctionnels", 14 : Saisie obligatoire "Domaines métiers", 15 : Saisie obligatoire "Catégories de commande", 16 : Saisie obligatoire "Environnements", 17 : Saisie obligatoire "Applications (types de site)", 18 : Site administrateur, 19 : Consultation par les utilisateurs finals)
F80NOMvarchar(60)NULLNULL  Intitulé (libellé du paramètre)
F80VALEURvarchar(70)NULLNULL  Si F80NUM = ' 1' : Libellé remplacement terme "Ministère". Si F80NUM = ' 2' à '17' et '19' : 0 = Non, 1 = Oui. Si F80NUM = '18' : type, ville et n° ordre du site administrateur
top

Table: F81

Index:

NomType
Index primaireF81ID
U_F81F81CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F81IDint(11)NULLNULLauto_increment 
F81CODEvarchar(10)NULLNULL  Code
F81LIBELvarchar(60)NULLNULL  Libellé
F81DECOUPAGEint(1)NULLNULL Découpage (1 = Support, 2 = Maintenance, 3 = Support et maintenance)
top

Table: F82

Index:

NomType
Index primaireF82ID
U_F82F82CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F82IDint(11)NULLNULLauto_increment 
F82CODEvarchar(10)NULLNULL  Code
F82LIBELvarchar(60)NULLNULL  Libellé
top

Table: F83

Index:

NomType
Index primaireF83ID
U_F83F83CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F83IDint(11)NULLNULLauto_increment 
F83CODEvarchar(10)NULLNULL  Code
F83LIBELvarchar(60)NULLNULL  Libellé
top

Table: F84

Index:

NomType
Index primaireF84ID
U_F84F84CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F84IDint(11)NULLNULLauto_increment 
F84CODEvarchar(10)NULLNULL  Code
F84LIBELvarchar(60)NULLNULL  Libellé
top

Table: F85

Index:

NomType
Index primaireF85ID
U_F85F85CODE

Champs:

NomTypeNulPar défautExtrasCommentaire
F85IDint(11)NULLNULLauto_increment 
F85CODEvarchar(5)NULLNULL  Code
F85LIBELvarchar(80)NULLNULL  Libellé
top

Table: MENUS

Index:

NomType
Index primaireID_MENU

Champs:

NomTypeNulPar défautExtrasCommentaire
ID_MENUint(10) unsigned NULL NULL   
ROOTNODEint(10) unsigned  '0'   Racine (niveau 0 du menu)
IDXint(10) unsigned  '0'   Sous-menu (niveau 1 du menu)
LIBELLEvarchar(80)  ''   Libellé
LIENvarchar(250)  ''   Lien
top

Table: TAILLELISTE

Index:

NomType
Index primaireID

Champs:

NomTypeNulPar défautExtrasCommentaire
IDint(11)NULLNULLauto_increment 
IDUTILISATEURint(11)NULLNULL  Code de l'utilisateur
ALIASvarchar(60)NULLNULL  Adresse de la liste dans l'application
PREMIEREint(6)NULLNULL  Première valeur
DEUXIEMEint(6)NULLNULL  Seconde valeur
TROISIEMEint(6)NULLNULL  Troisième valeur
SELECTIONint(6)NULLNULL  Sélection par défaut (parmi les trois valeurs ci-dessus)
top

Procédures stockées

-- ----------------------------------------------------------------------
-- SQL stored routines script generated by the PBO, SodiFrance.
-- ----------------------------------------------------------------------
-- Modified by PBO for v1 reliability

-- -------------------------------------------------------------------
-- Migration de procédure stockée.
-- OK_Accessite
-- version 1.0 par PBO.
-- -------------------------------------------------------------------

DELIMITER $$

-- Destruction de la version précédente
DROP FUNCTION IF EXISTS `ok_accessite` $$

-- Définition de la fonction
CREATE FUNCTION `ok_accessite` (siteUtil INTEGER(11), site INTEGER(11)) RETURNS INT
BEGIN
  DECLARE ret INT DEFAULT 0 ;
  DECLARE rec INT(11) DEFAULT NULL ;
  DECLARE rat INT(11) DEFAULT NULL ;

  -- Si l'utilisateur est sur le site recherché, alors c'est bon
  IF siteUtil = site THEN
    SET ret = 1 ;

  -- Sinon, nous recherchons dans la hiérarchie des sites celui de l'utlisateur
  ELSE
    BEGIN
      SET rec = site ;
      WHILE ret = 0 AND rat IS NOT NULL DO
        -- Recherche du site associé
        SELECT F5CA INTO rat FROM F5 WHERE F5ID = rec ;
        IF rat = siteUtil THEN
          SET ret = 1 ;
        END IF ;
        SET rec = rat ;
      END WHILE ;
    END ;
  END IF ;

  RETURN ret ;
END $$

DELIMITER ;

-- -------------------------------------------------------------------
-- Migration de procédure stockée.
-- Maj_descr_solution_f1
-- version 1.0 par PBO.
-- -------------------------------------------------------------------

DELIMITER $$

-- Suppression de l'ancienne version
DROP PROCEDURE IF EXISTS `maj_descr_solution_f1` $$

-- Définition de la procédure
CREATE PROCEDURE `maj_descr_solution_f1` (dossier INT(11))
BEGIN
  DECLARE libelle1 TEXT ;
  DECLARE libelle2 TEXT ;
  DECLARE libelle3 TEXT ;

  DECLARE rTxt TEXT ;
  DECLARE rNom VARCHAR(130) ;
  DECLARE rTyp INT ;
  DECLARE rDat VARCHAR(10) ;

  DECLARE done INT(1) DEFAULT 0 ;

  DECLARE motif_appels CURSOR FOR SELECT F11TYPE,
                                         CONCAT_WS(' ',ELT(F51CIVIL,'M.','Mme','Mlle'),F51NOM,F51PRENOM) AS NOM,
                                         DATE_FORMAT(F11DATE,'%d/%m/%Y') AS DTAPL,
                                         F11MOTIF
                                    FROM F11 RIGHT JOIN F51 ON (F51ID = F11CORRESP AND F11DOS = dossier)
                                   ORDER BY F11DATE ;

  DECLARE reponse_appels CURSOR FOR SELECT F11TYPE,
                                           CONCAT_WS(' ',F70NOM, F70PRENOM) AS NOM,
                                           DATE_FORMAT(F11DATE,'%d/%m/%Y') as DTAPL,
                                           F11REPONSE
                                      FROM F11 RIGHT JOIN F70 ON (F70ID = F11TECH AND F11DOS = dossier)
                                     ORDER BY F11DATE ;

  DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1 ;

  -- Nettoyage des informations du dossier
  UPDATE F1 SET F1DESCR = '', F1SOLUTION = '' WHERE F1ID = dossier ;

  -- Mise à jour de la description du dossier
  OPEN motif_appels ;
  FETCH motif_appels INTO rTyp, rNom, rDat, rTxt ;
  WHILE done = 0 DO
    IF TRIM(rNom) IS NULL OR TRIM(rNom) = '' THEN
      SET libelle2 = CONCAT('?, le ',rDat,' : ') ;
    ELSE
      SET libelle2 = CONCAT(rNom,', le ',rDat,' : ') ;
    END IF ;
    IF TRIM(rTxt) IS NULL OR TRIM(rTxt) = '' THEN
      SET libelle3 = CONCAT('absence de motif.',CHR(10),CHR(10)) ;
    ELSE
      SET libelle3 = CONCAT(rTxt,CHR(10),CHR(10)) ;
    END IF ;
    SET libelle1 = CONCAT(libelle2,libelle3) ;
    IF rTyp = 1 THEN
      UPDATE F1 SET F1DESCR = libelle1 WHERE F1ID = dossier ;
    ELSE
      UPDATE F1 SET F1DESCR = CONCAT(F1DESCR,' ',libelle1) WHERE F1ID = dossier ;
    END IF ;
    FETCH motif_appels INTO rTyp, rNom, rDat, rTxt ;
  END WHILE ;
  CLOSE motif_appels ;
  SET done = 0 ;

  -- Mise à jour de la solution du dossier
  OPEN reponse_appels ;
  FETCH reponse_appels INTO rTyp, rNom, rDat, rTxt ;
  WHILE done = 0 DO
    IF TRIM(rNom) IS NULL OR TRIM(rNom) = '' THEN
      SET libelle2 = CONCAT('?, le ',rDat,' : ') ;
    ELSE
      SET libelle2 = CONCAT(rNom,', le ',rDat,' : ') ;
    END IF ;
    IF TRIM(rTxt) IS NULL OR TRIM(rTxt) = '' THEN
      SET libelle3 = CONCAT('absence de réponse.',CHR(10),CHR(10)) ;
    ELSE
      SET libelle3 = CONCAT(rTxt,CHR(10),CHR(10)) ;
    END IF ;
    SET libelle1 = CONCAT(libelle2,libelle3) ;
    IF rTyp = 1 THEN
      UPDATE F1 SET F1SOLUTION = libelle1 WHERE F1ID = dossier ;
    ELSE
      UPDATE F1 SET F1SOLUTION = CONCAT(F1SOLUTION,' ',libelle1) WHERE F1ID = dossier ;
    END IF ;
    FETCH reponse_appels INTO rTyp, rNom, rDat, rTxt ;
  END WHILE ;
  CLOSE reponse_appels ;
END $$

DELIMITER ;

-- -------------------------------------------------------------------
-- Migration de procédure stockée.
-- analysetxapl
-- version 1.0 par PBO.
-- -------------------------------------------------------------------

DELIMITER $$

DROP PROCEDURE IF EXISTS `analysetxapl` $$
CREATE PROCEDURE `analysetxapl`(util INT(11), moisDeb INT(2), moisFin INT(2), anDeb INT(4), anFin INT(4), appli INT(11))
BEGIN

  -- Création de la table de reception des données FTX
  creationTX: BEGIN
    DECLARE lookupExists INT(1) DEFAULT 1 ;
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET lookupExists = 0 ;

    SET @lookupTable = CONCAT('SELECT * FROM ftx',util) ;
    PREPARE goLookup FROM @lookupTable ;
    EXECUTE goLookup ;
    DEALLOCATE PREPARE goLookup ;
    IF lookupExists = 0 THEN
      SET @createTable = CONCAT('CREATE TABLE ftx',util,' (ftxannee INTEGER(4) NOT NULL, ftxmois INTEGER(2) NOT NULL, ftxnbdos INTEGER(5), ftxnbapl INTEGER(5), ftxnbpostes INTEGER(6), ftxprcaplut INTEGER(6), ftxprcaplin INTEGER(6), ftxtxaplm DECIMAL(5,3), ftxtxapla DECIMAL(5,3), ftxtxapla_1 DECIMAL(5,3), CONSTRAINT ftx',util,'_PK PRIMARY KEY (ftxannee,ftxmois))') ;
      PREPARE goCreateTable FROM @createTable ;
      EXECUTE goCreateTable ;
      DEALLOCATE PREPARE goCreateTable ;
    ELSE
      SET @truncateTable = CONCAT('TRUNCATE TABLE ftx',util) ;
      PREPARE goTruncateTable FROM @truncateTable ;
      EXECUTE goTruncateTable ;
      DEALLOCATE PREPARE goTruncateTable ;
    END IF ;
  END creationTX ;

  -- Création de la table de reception des données FTXDF
  creationDF: BEGIN
    DECLARE lookupExists INT(1) DEFAULT 1 ;
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET lookupExists = 0 ;

    SET @lookupTable = CONCAT('SELECT * FROM ftxdf',util) ;
    PREPARE goLookup FROM @lookupTable ;
    EXECUTE goLookup ;
    DEALLOCATE PREPARE goLookup ;
    IF lookupExists = 0 THEN
      SET @createTable = CONCAT('CREATE TABLE ftxdf',util,' (ftxdfannee INTEGER(4) NOT NULL, ftxdfmois INTEGER(2) NOT NULL, ftxdfcode INTEGER(11) NOT NULL, ftxdfnbapl INTEGER(5), CONSTRAINT ftxdf',util,'_PK PRIMARY KEY (ftxdfannee,ftxdfmois,ftxdfcode))') ;
      PREPARE goCreateTable FROM @createTable ;
      EXECUTE goCreateTable ;
      DEALLOCATE PREPARE goCreateTable ;
    ELSE
       SET @truncateTable = CONCAT('TRUNCATE TABLE ftxdf',util) ;
      PREPARE goTruncateTable FROM @truncateTable ;
      EXECUTE goTruncateTable ;
      DEALLOCATE PREPARE goTruncateTable ;
    END IF ;
   END creationDF ;

  -- Chargement de la période d'analyse dans la table
  loading: BEGIN
    DECLARE alreadyLoaded INT(1) DEFAULT 0 ;

    DECLARE dateDebut DATETIME ;
    DECLARE dateFin   DATETIME ;

    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET alreadyLoaded = 1 ;

    -- Date de début du traitement
    SET dateDebut = CONCAT(anDeb,'-',moisDeb,'-01 00:00:00') ;
    -- Soustraction de 12 mois ! Voir code initial. Pas de commentaire.
    SET dateDebut = DATE_ADD(dateDebut,INTERVAL -12 MONTH) ;
    -- Date de fin du traitement
    SET dateFin = LAST_DAY(CONCAT(anFin,'-',moisFin,'-01 23:59:00')) ;

    SET @tableName = CONCAT('ftx',util) ;
    SET @loader = CONCAT('INSERT INTO ',@tableName,' (ftxannee, ftxmois) VALUES (?,?)') ;
    PREPARE goLoading FROM @loader ;
    inserting_dates: LOOP
      IF dateDebut > dateFin THEN
        LEAVE inserting_dates ;
      END IF ;
      SET @anCourant = DATE_FORMAT(dateDebut,'%Y') ;
      SET @moisCourant = DATE_FORMAT(dateDebut,'%m') ;
      EXECUTE goLoading USING @anCourant,@moisCourant ;
      SET dateDebut = DATE_ADD(dateDebut,INTERVAL 1 MONTH) ;
    END LOOP inserting_dates ;
    DEALLOCATE PREPARE goLoading ;
  END loading ;

  first_part: BEGIN
    DECLARE dateDebut DATETIME ;
    DECLARE dateFin   DATETIME ;
    -- Variables extraites du curseur
    DECLARE rSite INT(11) ;
    DECLARE rMois INT(2) ;
    DECLARE rAn   INT(4) ;
    DECLARE rDos  INT(11) ;
    DECLARE rDif  INT(1) ;
    DECLARE rInc1 INT(1) ;
    DECLARE rDom  INT(11) ;
    DECLARE rFin  DATETIME ;
    DECLARE rInc2 INT(1) ;
    DECLARE rDat DATETIME ;
    -- Booléen de fin de parcours des dossiers
    DECLARE parseEnd INT(1) DEFAULT 0 ;
    DECLARE no_row   INT(1) DEFAULT 0 ;
    -- Variables de travail
    DECLARE nbAppels INT(6) DEFAULT 0 ;
    DECLARE debutPeriode DATETIME ;
    DECLARE finPeriode   DATETIME ;
    DECLARE debut        DATETIME ;
    DECLARE fin          DATETIME ;
    -- Curseur de travail des dossiers à traiter.
    DECLARE dossiers CURSOR FOR SELECT F1SITE,
                                       DATE_FORMAT(F1DATE,'%m') moisDeb,
                                       DATE_FORMAT(F1DATE,'%Y') anneeDeb,
                                       F1ID,
                                       F72DIFUTIL,
                                       F1INCID,
                                       F1DOMFONCT,
                                       F1DTFIN,
                                       F72INCID,
                                       F1DATE
                                  FROM F72 RIGHT JOIN
                                          F1 RIGHT JOIN F41
                                          ON ((F41ID = F1VERSAPP AND F41APPLI = appli) OR F1VERSAPP IS NULL)
                                       ON (F1QUALIF = F72ID)
                                 WHERE F1DATE <= dateFin
                                   AND (F1DTFIN >= dateDebut OR F1DTFIN IS NULL)
                                 ORDER BY F1DATE,F1SITE ;
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET parseEnd = 1 ;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_row = 1 ;

    -- Préparation des requête de mise à jour des tables
    SET @store_call      = CONCAT("UPDATE ftx",util,"   SET ftxnbapl    = IFNULL(ftxnbapl,0)+?    WHERE ftxannee   = ? AND ftxmois   = ?") ;
    SET @store_case      = CONCAT("UPDATE ftx",util,"   SET ftxnbdos    = IFNULL(ftxnbdos,0)+1    WHERE ftxannee   = ? AND ftxmois   = ?") ;
    SET @store_in        = CONCAT("UPDATE ftx",util,"   SET ftxprcaplin = IFNULL(ftxprcaplin,0)+? WHERE ftxannee   = ? AND ftxmois   = ?") ;
    SET @store_out       = CONCAT("UPDATE ftx",util,"   SET ftxprcaplut = IFNULL(ftxprcaplut,0)+? WHERE ftxannee   = ? AND ftxmois   = ?") ;
    SET @store_dfcall_sl = CONCAT("SELECT IFNULL(COUNT(*),0) INTO @existe_ftx from ftxdf",util," WHERE ftxdfannee = ? AND ftxdfmois = ? AND ftxdfcode = ?") ;
    SET @store_dfcall_up = CONCAT("UPDATE ftxdf",util," SET ftxdfnbapl  = IFNULL(ftxdfnbapl,0)+?  WHERE ftxdfannee = ? AND ftxdfmois = ? AND ftxdfcode = ?") ;
    SET @store_dfcall_in = CONCAT("INSERT INTO ftxdf",util," (ftxdfannee,ftxdfmois,ftxdfnbapl,ftxdfcode) VALUES(?,?,?,?)") ;

    PREPARE goStoreCall     FROM @store_call ;
    PREPARE goStoreCase     FROM @store_case ;
    PREPARE goStoreIn       FROM @store_in ;
    PREPARE goStoreOut      FROM @store_out ;
    PREPARE goStoreDfCallSl FROM @store_dfcall_sl ;
    PREPARE goStoreDfCallUp FROM @store_dfcall_up ;
    PREPARE goStoreDfCallIn FROM @store_dfcall_in ;


   SET dateDebut = CONCAT(anDeb,'-',moisDeb,'-01 00:00:00') ;
   -- Soustraction de 12 mois ! Voir code initial. Pas de commentaire.
   SET dateDebut = DATE_ADD(dateDebut,INTERVAL -12 MONTH) ;
   -- Date de fin du traitement
   SET dateFin = LAST_DAY(CONCAT(anFin,'-',moisFin,'-01 23:59:00')) ;

    -- Début du parcours des dossiers
    OPEN dossiers ;

    -- Premier dossier
    FETCH dossiers INTO rSite, rMois, rAn, rDos, rDif, rInc1, rDom, rFin, rInc2, rDat ;
    boucle: WHILE parseEnd = 0 DO
      SET nbAppels = 0 ;
      SET debutPeriode = CONCAT(rAn,'-',rMois,'-01 00:00:00') ;
      IF debutPeriode < dateDebut THEN
        SET debutPeriode = dateDebut ;
      END IF ;
      IF rFin IS NULL THEN
        SET finPeriode = dateFin ;
      ELSE
        SET finPeriode = LAST_DAY(CONCAT(DATE_FORMAT(rFin,'%Y-%m'),'-01 23:59:59')) ;
      END IF ;
      IF finPeriode > dateFin THEN
        SET finPeriode = dateFin ;
      END IF ;
      SET debut = debutPeriode ;
      SET fin = LAST_DAY(CONCAT(DATE_FORMAT(debut,'%Y-%m'),'-01 23:59:59')) ;
      working: LOOP
        IF debut > finPeriode THEN
          LEAVE working ;
        END IF ;
        SET @currentM = DATE_FORMAT(debut,'%m') ;
        SET @currentY = DATE_FORMAT(debut,'%Y') ;
        IF rDat BETWEEN debut AND fin THEN
          EXECUTE goStoreCase USING @currentY, @currentM ;
        END IF ;
        SELECT count(*) INTO nbAppels FROM F11 WHERE F11DOS = rDos AND F11DATE BETWEEN debut AND fin ;
        SET @callCount = nbAppels ;
        IF nbAppels > 0 THEN
          EXECUTE goStoreCall USING @callCount, @currentY, @currentM ;
          IF rDif = 1 THEN
            EXECUTE goStoreOut USING @callCount, @currentY, @currentM ;
          END IF ;
          IF rInc1 = 1 THEN
            EXECUTE goStoreIn USING @callCount, @currentY, @currentM ;
          END IF ;
          IF rDom IS NOT NULL THEN
            SET @domId = rDom ;
            SET @existe_ftx = 0 ;
            EXECUTE goStoreDfCallSl USING @currentY, @currentM, @domId ;
            IF @existe_ftx = 0 THEN
               EXECUTE goStoreDfCallIn USING @currentY, @currentM, @callCount, @domId ;
            ELSE
               EXECUTE goStoreDfCallUp USING @callCount, @currentY, @currentM, @domId ;
            END IF;
          END IF;
        END IF;

        SET debut = DATE_ADD(debut,INTERVAL 1 MONTH) ;
        SET fin   = LAST_DAY(CONCAT(DATE_FORMAT(debut,'%Y-%m'),'-01 23:59:59')) ;
      END LOOP working ;
      -- Dossier suivant
      FETCH dossiers INTO rSite, rMois, rAn, rDos, rDif, rInc1, rDom, rFin, rInc2, rDat ;
    END WHILE boucle ;
    CLOSE dossiers ;
    DEALLOCATE PREPARE goStoreCall ;
    DEALLOCATE PREPARE goStoreCase ;
    DEALLOCATE PREPARE goStoreIn ;
    DEALLOCATE PREPARE goStoreOut ;
    DEALLOCATE PREPARE goStoreDfCallSl ;
    DEALLOCATE PREPARE goStoreDfCallUp ;
    DEALLOCATE PREPARE goStoreDfCallIn ;
  END first_part ;

  second_part: BEGIN
    -- DECLARE nbAppels INT(6) ;
    -- DECLARE nbAplsUt INT(6) ;
    -- DECLARE nbAplsIn INT(6) ;
    -- DECLARE nbPostes INT(6) ;
    -- DECLARE currentM INT(2) ;
    -- DECLARE currentY INT(4) ;
    -- DECLARE txAnnuel DECIMAL(5,3) ;
    DECLARE finMois  DATETIME ;
    DECLARE norow    INT(1) DEFAULT 0 ;
    DECLARE notFound INT(1) DEFAULT 0 ;
    DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET norow = 1 ;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET notFound = 1 ;
    SET @nbAppels = 0 ;
    SET @nbAplsUt = 0 ;
    SET @nbAplsIn = 0 ;
    SET @nbPostes = 0 ;
    SET @currentM = 0 ;
    SET @currentY = 0 ;
    SET @txAnnuel = 0 ;

    SET @txAplA_1 = 0 ;

    -- Requête simili curseur dynamique
    SET @tauxReq       = CONCAT("SELECT IFNULL(FTXNBAPL,0), IFNULL(FTXPRCAPLUT,0), IFNULL(FTXPRCAPLIN,0), IFNULL(FTXNBPOSTES,0), FTXMOIS, FTXANNEE INTO @nbAppels, @nbAplsUt, @nbAplsIn, @nbPostes, @currentM, @currentY FROM FTX",util," LIMIT ?,1") ;
    SET @storePostes   = CONCAT("UPDATE FTX",util," SET FTXNBPOSTES = IFNULL(FTXNBPOSTES,0)+? WHERE FTXANNEE = ? AND FTXMOIS = ?") ;
    SET @storeAplUtIn  = CONCAT("UPDATE FTX",util," SET FTXPRCAPLUT = ?, FTXPRCAPLIN = ? WHERE FTXANNEE = ? AND FTXMOIS = ?") ;
    SET @storeTxAplM   = CONCAT("UPDATE FTX",util," SET FTXTXAPLM = ? WHERE FTXANNEE = ? AND FTXMOIS = ?") ;
    SET @storeTxAplA   = CONCAT("UPDATE FTX",util," SET FTXTXAPLA = ? WHERE FTXANNEE = ? AND FTXMOIS = ?") ;
    SET @tauxAnnuel    = CONCAT("SELECT IFNULL(SUM(IFNULL(FTXTXAPLM,0)),0)  INTO @txAnnuel FROM FTX",util," WHERE STR_TO_DATE(CONCAT(FTXANNEE,'-',FTXMOIS,'-01'),'%Y-%m-%d') between ? AND ? ORDER BY FTXANNEE, FTXMOIS");
    SET @storeTxAnnuel = CONCAT("UPDATE FTX",util," SET FTXTXAPLA_1 = ? WHERE FTXANNEE = ? AND FTXMOIS = ?") ;
    PREPARE goTaux     FROM @tauxReq ;
    PREPARE goPostes   FROM @storePostes ;
    PREPARE goAplUtIn  FROM @storeAplUtIn ;
    PREPARE goTxAplM   FROM @storeTxAplM ;
    PREPARE goTxAplA   FROM @storeTxAplA ;
    PREPARE goTxAnnuel FROM @tauxAnnuel ;
    PREPARE goStoreTx  FROM @storeTxAnnuel ;

    -- Requête sur le premier enregistrement
    SET @idxLigne = 1 ;
    SET @txAplA = 0 ;

    EXECUTE goTaux USING @idxLigne ;
    travail: WHILE norow = 0 DO
      SET @txAplM = 0 ;
      SET finMois = LAST_DAY(CONCAT(@currentY,'-',@currentM,'-01 23:59:59')) ;
      SET notFound = 0 ;

      SET @nbPostes = 0 ;

      SELECT IFNULL(SUM(IFNULL(F5NBPOSTE,0))+SUM(IFNULL(F5NBPORRE,0))+SUM(IFNULL(F5NBPORNC,0)),0)
        INTO @nbPostes
        FROM F5
       WHERE F5DTFINIM <= finMois
         AND F5ID IN (
             SELECT DISTINCT(F61SITE)
               FROM F61 INNER JOIN F41
                    ON ((F41ID=F61VERSAPP AND F41APPLI = appli)
                        OR F61VERSAPP IS NULL)
              WHERE F61DTENV <= finMois) ;
      IF notFound = 1 THEN
        SET notFound = 0 ;
        SET @nbPostes = 0 ;
      END IF ;
      IF @nbPostes > 0 THEN
          EXECUTE goPostes USING @nbPostes, @currentY, @currentM ;
      END IF;
      IF @nbAppels > 0 THEN
        SET @prcAplUt = ROUND((@nbAplsUt/@nbAppels)*100,0) ;
        SET @prcAplIn = ROUND((@nbAplsIn/@nbAppels)*100,0) ;
        EXECUTE goAplUtIn USING @prcAplUt, @prcAplIn, @currentY, @currentM ;
        IF @nbPostes > 0 THEN
          SET @txAplM = ROUND((@nbAppels/@nbPostes),3) ;
          EXECUTE goTxAplM USING @txAplM, @currentY, @currentM ;
         -- SET @nbPostes = 0 ;
        END IF ;
      END IF ;
      IF @currentM <> 12 THEN
        SET @txAplA = @txAplA + IFNULL(@txAplM,0) ;
        SET @txAplM = 0;
      ELSE
        EXECUTE goTxAplA USING @txAplA, @currentY, @currentM ;
        SET @txAplA = 0 ;
      END IF ;
      IF STR_TO_DATE(CONCAT(@currentY,'-',@currentM,'-01'),'%Y-%m-%d') >= STR_TO_DATE(CONCAT(anDeb,'-',moisDeb,'-01'),'%Y-%m-%d') THEN
        SET @moisPrec = DATE_FORMAT(DATE_ADD(CONCAT(@currentY,'-',@currentM,'-01 00:00:00'),INTERVAL -12 MONTH),'%m') ;
        SET @anPrec   = DATE_FORMAT(DATE_ADD(CONCAT(@currentY,'-',@currentM,'-01 00:00:00'),INTERVAL -12 MONTH),'%Y') ;

 

        SET @interval12mois =  STR_TO_DATE(CONCAT(@anPrec,'-',@moisPrec,'-01'),'%Y-%m-%d');
        SET @intervalCurrent = STR_TO_DATE(CONCAT(@currentY,'-',@currentM,'-01'),'%Y-%m-%d');

        EXECUTE goTxAnnuel USING @interval12mois,@intervalCurrent  ;
        IF @txAnnuel IS NOT NULL THEN
        SET @txAplA_1 = @txAnnuel ;
        END IF;
        EXECUTE goStoreTx USING @txAplA_1, @currentY, @currentM ;
        SET @txAplA_1 = 0 ;
      END IF ;

      SET @idxLigne = @idxLigne+1 ;
      EXECUTE goTaux USING @idxLigne ;
    END WHILE travail ;
    DEALLOCATE PREPARE goTaux ;
    DEALLOCATE PREPARE goPostes ;
    DEALLOCATE PREPARE goAplUtIn ;
    DEALLOCATE PREPARE goTxAplM ;
    DEALLOCATE PREPARE goTxAplA ;
    DEALLOCATE PREPARE goTxAnnuel ;
    DEALLOCATE PREPARE goStoreTx ;
  END second_part ;

END $$

DELIMITER ;

-- -------------------------------------------------------------------
-- Migration de procédure stockée.
-- donne_dtMom
-- version 1.0 par PBO.
-- -------------------------------------------------------------------

-- Destruction de la version précédente
DELIMITER $$

DROP FUNCTION IF EXISTS `donne_dtmom` $$
CREATE FUNCTION `donne_dtmom`(appli INT(11), site INT(11)) RETURNS varchar(10)
p1: BEGIN
    DECLARE final VARCHAR(10) ;
    DECLARE dordre DATE ;
    SELECT IFNULL(F61.F61DTENV,F61.F61DTDEB) DATEORDER,
           DATE_FORMAT(F61.F61DTMOM,'%d/%m/%Y') dtMOM INTO dordre, final
      FROM F61 INNER JOIN F41
           ON (F61.F61VERSAPP = F41.F41ID AND F41.F41APPLI = appli)
     WHERE F61.F61SITE = site
     ORDER BY dtMOM DESC LIMIT 1 ;
     RETURN final ;
END p1 $$

DELIMITER ;
-- -------------------------------------------------------------------
-- Migration de procédure stockée.
-- donne_dtVal
-- version 1.0 par PBO.
-- -------------------------------------------------------------------

-- Destruction de la version précédente
DELIMITER $$

DROP FUNCTION IF EXISTS `donne_dtval` $$
CREATE FUNCTION `donne_dtval`(appli INT(11), site INT(11)) RETURNS varchar(10)
p1: BEGIN
    DECLARE final VARCHAR(10) ;
    DECLARE dordre DATE ;
    SELECT IFNULL(F61.F61DTENV,F61.F61DTDEB) DATEORDER,
           DATE_FORMAT(F61.F61DTVAL,'%d/%m/%Y') dtVAL INTO dordre, final
      FROM F61 INNER JOIN F41
           ON (F61.F61VERSAPP = F41.F41ID AND F41.F41APPLI = appli)
     WHERE F61.F61SITE = site
     ORDER BY dtVAL DESC LIMIT 1 ;
     RETURN final ;
END p1 $$

DELIMITER ;


-- -------------------------------------------------------------------
-- Migration de procdure stocke.
-- version
-- version 1.0 par ABE.
-- -------------------------------------------------------------------

-- Destruction de la version prcdente
DROP FUNCTION IF EXISTS donne_version ;

-- Dfinition de la procdure
DELIMITER //
CREATE FUNCTION donne_version (appli INT(11), site INT(11)) RETURNS VARCHAR(20)
LANGUAGE  SQL
p1: BEGIN
     DECLARE result VARCHAR(20) ;
      SELECT MAX(F41.F41CODE) INTO result
      FROM F61 INNER JOIN F41
           ON (F61.F61VERSAPP = F41.F41ID AND F41.F41APPLI = appli)
     WHERE F61.F61SITE = site ;
     RETURN result ;
END p1 ;
//

DELIMITER ;

-- -------------------------------------------------------------------
-- Migration de fonction stockee.
-- version
-- version 1.0 par ABE.
-- -------------------------------------------------------------------

-- Destruction de la version precedente
DROP FUNCTION IF EXISTS donne_ecartDate ;

-- Definition de la fonction
DELIMITER $$

CREATE FUNCTION donne_ecartDate (d1 DATETIME,d2 DATETIME) RETURNS DECIMAL(8,2)
LANGUAGE  SQL
BEGIN
       DECLARE delta DECIMAL(8,2) ;
       SELECT (
       (DATEDIFF(d1,d2)*1440)+
       (MINUTE(d1)-MINUTE(d2))+
       ((HOUR(d1)-HOUR(d2))*60)
       )/60 into delta ;
       return delta ;
END ;
$$

DELIMITER ;