diff --git a/admin/src/BddAdmin/Schema.php b/admin/src/BddAdmin/Schema.php
index 928862558e05a4dd459b604e20dae3ee5a8adf6b..6530ffd1556d10653a3acc170d7f614b977311b4 100644
--- a/admin/src/BddAdmin/Schema.php
+++ b/admin/src/BddAdmin/Schema.php
@@ -545,7 +545,7 @@ class Schema
                         if (substr(trim($qr), -1) != ';') {
                             $qr .= ';';
                         }
-                        $sql .= "$qr\n/--\n\n";
+                        $sql .= "$qr\n/\n\n";
                     }
                     $sql .= "\n\n\n";
                 }
diff --git a/bdd/install.sql b/bdd/install.sql
index 007aed053a2595fc3e836c1d09eff93702d0f76a..d34b08d4fdf001499b4ebae9594cdc4afe90bb98 100644
--- a/bdd/install.sql
+++ b/bdd/install.sql
@@ -456,6 +456,7 @@ CREATE TABLE "ADRESSE_STRUCTURE"
 
 CREATE TABLE "AFFECTATION"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
+	"UTILISATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"ROLE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"STRUCTURE_ID" NUMBER(*,0),
 	"SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE,
@@ -465,8 +466,7 @@ CREATE TABLE "AFFECTATION"
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
-	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"UTILISATEUR_ID" NUMBER(*,0) NOT NULL ENABLE
+	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0)
    );
 /
 
@@ -491,16 +491,16 @@ COMMENT ON TABLE "AFFECTATION_RECHERCHE" IS 'Un chercheur peut avoir plusieurs a
 
 CREATE TABLE "AGREMENT"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
-	"STRUCTURE_ID" NUMBER,
+	"TYPE_AGREMENT_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"DATE_DECISION" DATE NOT NULL ENABLE,
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
 	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"DATE_DECISION" DATE NOT NULL ENABLE,
-	"TYPE_AGREMENT_ID" NUMBER(*,0) NOT NULL ENABLE
+	"STRUCTURE_ID" NUMBER
    );
 /
 
@@ -554,7 +554,10 @@ CREATE TABLE "CC_ACTIVITE"
 
 CREATE TABLE "CENTRE_COUT"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
+	"CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE,
 	"LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE,
+	"ACTIVITE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"TYPE_RESSOURCE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"PARENT_ID" NUMBER(*,0),
 	"SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE,
@@ -564,10 +567,7 @@ CREATE TABLE "CENTRE_COUT"
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
 	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"ACTIVITE_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"TYPE_RESSOURCE_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"UNITE_BUDGETAIRE" VARCHAR2(15 CHAR),
-	"CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE
+	"UNITE_BUDGETAIRE" VARCHAR2(15 CHAR)
    );
 /
 
@@ -631,17 +631,17 @@ CREATE TABLE "CONTRAT"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
 	"TYPE_CONTRAT_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"VALIDATION_ID" NUMBER(*,0),
+	"NUMERO_AVENANT" NUMBER DEFAULT 0 NOT NULL ENABLE,
+	"DATE_RETOUR_SIGNE" DATE,
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
 	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"CONTRAT_ID" NUMBER,
-	"DATE_RETOUR_SIGNE" DATE,
-	"NUMERO_AVENANT" NUMBER DEFAULT 0 NOT NULL ENABLE,
-	"VALIDATION_ID" NUMBER(*,0),
 	"TOTAL_HETD" FLOAT(126)
    );
 /
@@ -689,16 +689,16 @@ CREATE TABLE "DISCIPLINE"
 	"LIBELLE_LONG" VARCHAR2(200 CHAR) NOT NULL ENABLE,
 	"SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE,
+	"CODES_CORRESP_1" VARCHAR2(1000 CHAR),
+	"CODES_CORRESP_2" VARCHAR2(1000 CHAR),
+	"CODES_CORRESP_3" VARCHAR2(1000 CHAR),
+	"CODES_CORRESP_4" VARCHAR2(1000 CHAR),
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
-	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"CODES_CORRESP_1" VARCHAR2(1000 CHAR),
-	"CODES_CORRESP_2" VARCHAR2(1000 CHAR),
-	"CODES_CORRESP_3" VARCHAR2(1000 CHAR),
-	"CODES_CORRESP_4" VARCHAR2(1000 CHAR)
+	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0)
    );
 /
 
@@ -737,10 +737,10 @@ CREATE TABLE "DOSSIER"
 	"HISTO_DESTRUCTION" DATE,
 	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
 	"NUMERO_INSEE_EST_PROVISOIRE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
-	"DATE_NAISSANCE" DATE,
-	"DEPT_NAISSANCE_ID" NUMBER(*,0),
 	"EMAIL_PERSO" VARCHAR2(128 CHAR),
+	"DATE_NAISSANCE" DATE,
 	"PAYS_NAISSANCE_ID" NUMBER(*,0),
+	"DEPT_NAISSANCE_ID" NUMBER(*,0),
 	"VILLE_NAISSANCE" VARCHAR2(128 CHAR),
 	"INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE
    );
@@ -748,6 +748,7 @@ CREATE TABLE "DOSSIER"
 
 CREATE TABLE "DOTATION"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
+	"TYPE_RESSOURCE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
@@ -758,15 +759,13 @@ CREATE TABLE "DOTATION"
 	"HISTO_DESTRUCTION" DATE,
 	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
 	"ANNEE_CIVILE" NUMBER(*,0) NOT NULL ENABLE,
-	"LIBELLE" VARCHAR2(100 CHAR) NOT NULL ENABLE,
-	"TYPE_RESSOURCE_ID" NUMBER(*,0) NOT NULL ENABLE
+	"LIBELLE" VARCHAR2(100 CHAR) NOT NULL ENABLE
    );
 /
 
 CREATE TABLE "EFFECTIFS"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
 	"ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"ANNEE_ID" NUMBER NOT NULL ENABLE,
 	"FI" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE,
 	"FC" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE,
 	"FA" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE,
@@ -777,7 +776,8 @@ CREATE TABLE "EFFECTIFS"
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
-	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0)
+	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
+	"ANNEE_ID" NUMBER NOT NULL ENABLE
    );
 /
 
@@ -796,10 +796,14 @@ CREATE TABLE "ELEMENT_MODULATEUR"
 
 CREATE TABLE "ELEMENT_PEDAGOGIQUE"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
+	"CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE,
 	"LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE,
 	"ETAPE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"PERIODE_ID" NUMBER(*,0),
+	"TAUX_FI" FLOAT(126) DEFAULT 1 NOT NULL ENABLE,
+	"TAUX_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"TAUX_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"TAUX_FOAD" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"FI" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE,
 	"FC" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
@@ -812,12 +816,8 @@ CREATE TABLE "ELEMENT_PEDAGOGIQUE"
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
 	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"TAUX_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"TAUX_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"TAUX_FI" FLOAT(126) DEFAULT 1 NOT NULL ENABLE,
 	"ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"DISCIPLINE_ID" NUMBER(*,0),
-	"CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE
+	"DISCIPLINE_ID" NUMBER(*,0)
    );
 /
 
@@ -856,11 +856,14 @@ CREATE TABLE "ETABLISSEMENT"
 
 CREATE TABLE "ETAPE"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
+	"CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE,
 	"LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE,
+	"ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"TYPE_FORMATION_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"NIVEAU" NUMBER(*,0),
 	"SPECIFIQUE_ECHANGES" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
 	"STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"DOMAINE_FONCTIONNEL_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"SOURCE_CODE" VARCHAR2(100 CHAR) NOT NULL ENABLE,
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
@@ -868,10 +871,7 @@ CREATE TABLE "ETAPE"
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
-	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"DOMAINE_FONCTIONNEL_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE
+	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0)
    );
 /
 
@@ -948,6 +948,7 @@ CREATE TABLE "FONCTION_REFERENTIEL"
 	"CODE" VARCHAR2(32 CHAR) NOT NULL ENABLE,
 	"LIBELLE_LONG" VARCHAR2(100 CHAR) NOT NULL ENABLE,
 	"LIBELLE_COURT" VARCHAR2(40 CHAR) NOT NULL ENABLE,
+	"DOMAINE_FONCTIONNEL_ID" NUMBER NOT NULL ENABLE,
 	"PLAFOND" FLOAT(126),
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
@@ -956,7 +957,6 @@ CREATE TABLE "FONCTION_REFERENTIEL"
 	"HISTO_DESTRUCTION" DATE,
 	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
 	"STRUCTURE_ID" NUMBER(*,0),
-	"DOMAINE_FONCTIONNEL_ID" NUMBER NOT NULL ENABLE,
 	"ETAPE_REQUISE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
 	"SERVICE_STATUTAIRE" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE,
 	"PARENT_ID" NUMBER(*,0)
@@ -987,19 +987,19 @@ CREATE TABLE "FORMULE_RESULTAT"
 	"TYPE_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"ETAT_VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"SERVICE_DU" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"SERVICE_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"SERVICE_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"SERVICE_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"SERVICE_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"HEURES_COMPL_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"HEURES_COMPL_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"HEURES_COMPL_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"HEURES_COMPL_FC_MAJOREES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"HEURES_COMPL_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"SOLDE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"SOUS_SERVICE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"HEURES_COMPL_FC_MAJOREES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"HEURES_COMPL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"SERVICE_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"SERVICE_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"SERVICE_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"SERVICE_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"SOLDE" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"TYPE_INTERVENANT_CODE" VARCHAR2(5 CHAR) NOT NULL ENABLE
    ) NOLOGGING;
 /
@@ -1008,13 +1008,13 @@ CREATE TABLE "FORMULE_RESULTAT_SERVICE"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
 	"FORMULE_RESULTAT_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"SERVICE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"SERVICE_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"SERVICE_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"SERVICE_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"HEURES_COMPL_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"HEURES_COMPL_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"HEURES_COMPL_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"HEURES_COMPL_FC_MAJOREES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"SERVICE_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"SERVICE_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"SERVICE_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE
    ) NOLOGGING;
 /
@@ -1023,8 +1023,8 @@ CREATE TABLE "FORMULE_RESULTAT_SERVICE_REF"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
 	"FORMULE_RESULTAT_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"SERVICE_REFERENTIEL_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"HEURES_COMPL_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"SERVICE_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"HEURES_COMPL_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE
    ) NOLOGGING;
 /
@@ -1033,13 +1033,13 @@ CREATE TABLE "FORMULE_RESULTAT_VH"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
 	"FORMULE_RESULTAT_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"VOLUME_HORAIRE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"SERVICE_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"SERVICE_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"SERVICE_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"HEURES_COMPL_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"HEURES_COMPL_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"HEURES_COMPL_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"HEURES_COMPL_FC_MAJOREES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"SERVICE_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"SERVICE_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"SERVICE_FI" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE
    ) NOLOGGING;
 /
@@ -1048,8 +1048,8 @@ CREATE TABLE "FORMULE_RESULTAT_VH_REF"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
 	"FORMULE_RESULTAT_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"VOLUME_HORAIRE_REF_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"HEURES_COMPL_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"SERVICE_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
+	"HEURES_COMPL_REFERENTIEL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"TOTAL" FLOAT(126) DEFAULT 0 NOT NULL ENABLE
    ) NOLOGGING;
 /
@@ -1106,7 +1106,6 @@ CREATE TABLE "FORMULE_TEST_VOLUME_HORAIRE"
 	"TAUX_FI" FLOAT(126) DEFAULT 1 NOT NULL ENABLE,
 	"TAUX_FA" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"TAUX_FC" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"TYPE_INTERVENTION_CODE" VARCHAR2(15 CHAR),
 	"PONDERATION_SERVICE_DU" FLOAT(126) DEFAULT 1 NOT NULL ENABLE,
 	"PONDERATION_SERVICE_COMPL" FLOAT(126) DEFAULT 1 NOT NULL ENABLE,
 	"PARAM_1" VARCHAR2(100 CHAR),
@@ -1133,7 +1132,8 @@ CREATE TABLE "FORMULE_TEST_VOLUME_HORAIRE"
 	"C_HEURES_COMPL_FC" FLOAT(126),
 	"C_HEURES_COMPL_FC_MAJOREES" FLOAT(126),
 	"C_HEURES_COMPL_REFERENTIEL" FLOAT(126),
-	"DEBUG_INFO" CLOB
+	"DEBUG_INFO" CLOB,
+	"TYPE_INTERVENTION_CODE" VARCHAR2(15 CHAR)
    );
 /
 
@@ -1215,12 +1215,12 @@ CREATE TABLE "INDICATEUR"
 	"ORDRE" NUMBER(*,0) DEFAULT 100 NOT NULL ENABLE,
 	"ENABLED" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE,
 	"NUMERO" NUMBER DEFAULT 0 NOT NULL ENABLE,
-	"LIBELLE_PLURIEL" VARCHAR2(255 CHAR) NOT NULL ENABLE,
 	"LIBELLE_SINGULIER" VARCHAR2(255 CHAR) NOT NULL ENABLE,
-	"MESSAGE" VARCHAR2(800 CHAR),
+	"LIBELLE_PLURIEL" VARCHAR2(255 CHAR) NOT NULL ENABLE,
 	"ROUTE" VARCHAR2(250 CHAR) NOT NULL ENABLE,
 	"TEM_DISTINCT" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE,
-	"TEM_NOT_STRUCTURE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE
+	"TEM_NOT_STRUCTURE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
+	"MESSAGE" VARCHAR2(800 CHAR)
    );
 /
 
@@ -1244,10 +1244,10 @@ CREATE TABLE "INDIC_MODIF_DOSSIER"
 
 CREATE TABLE "INTERVENANT"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
-	"CIVILITE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"CIVILITE_ID" NUMBER(*,0),
 	"NOM_USUEL" VARCHAR2(60 CHAR) NOT NULL ENABLE,
 	"PRENOM" VARCHAR2(60 CHAR) NOT NULL ENABLE,
-	"NOM_PATRONYMIQUE" VARCHAR2(60 CHAR) NOT NULL ENABLE,
+	"NOM_PATRONYMIQUE" VARCHAR2(60 CHAR),
 	"DATE_NAISSANCE" DATE NOT NULL ENABLE,
 	"VILLE_NAISSANCE_CODE_INSEE" VARCHAR2(5 CHAR),
 	"VILLE_NAISSANCE_LIBELLE" VARCHAR2(60 CHAR),
@@ -1255,7 +1255,7 @@ CREATE TABLE "INTERVENANT"
 	"TEL_MOBILE" VARCHAR2(20 CHAR),
 	"EMAIL" VARCHAR2(255 CHAR),
 	"STATUT_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"STRUCTURE_ID" NUMBER(*,0),
 	"DISCIPLINE_ID" NUMBER(*,0),
 	"SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"SOURCE_CODE" VARCHAR2(100 CHAR),
@@ -1264,6 +1264,7 @@ CREATE TABLE "INTERVENANT"
 	"NUMERO_INSEE_PROVISOIRE" NUMBER(1,0),
 	"IBAN" VARCHAR2(50 CHAR),
 	"BIC" VARCHAR2(20 CHAR),
+	"MONTANT_INDEMNITE_FC" FLOAT(126),
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
@@ -1273,13 +1274,12 @@ CREATE TABLE "INTERVENANT"
 	"PREMIER_RECRUTEMENT" NUMBER(1,0),
 	"ANNEE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"GRADE_ID" NUMBER(*,0),
-	"MONTANT_INDEMNITE_FC" FLOAT(126),
 	"CRITERE_RECHERCHE" VARCHAR2(255 CHAR),
 	"CODE" VARCHAR2(60 CHAR),
-	"PAYS_NAISSANCE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"UTILISATEUR_CODE" VARCHAR2(60 CHAR),
+	"PAYS_NAISSANCE_ID" NUMBER(*,0),
 	"DEP_NAISSANCE_ID" NUMBER(*,0),
-	"PAYS_NATIONALITE_ID" NUMBER(*,0),
-	"UTILISATEUR_CODE" VARCHAR2(60 CHAR)
+	"PAYS_NATIONALITE_ID" NUMBER(*,0)
    );
 /
 
@@ -1313,8 +1313,14 @@ CREATE TABLE "LISTE_NOIRE"
 
 CREATE TABLE "MISE_EN_PAIEMENT"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
+	"FORMULE_RES_SERVICE_ID" NUMBER(*,0),
+	"FORMULE_RES_SERVICE_REF_ID" NUMBER(*,0),
 	"DATE_MISE_EN_PAIEMENT" DATE,
 	"PERIODE_PAIEMENT_ID" NUMBER(*,0),
+	"CENTRE_COUT_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"DOMAINE_FONCTIONNEL_ID" NUMBER(*,0),
+	"TYPE_HEURES_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
 	"VALIDATION_ID" NUMBER(*,0),
 	"DATE_VALIDATION" DATE,
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
@@ -1322,13 +1328,7 @@ CREATE TABLE "MISE_EN_PAIEMENT"
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
-	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"CENTRE_COUT_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"FORMULE_RES_SERVICE_ID" NUMBER(*,0),
-	"FORMULE_RES_SERVICE_REF_ID" NUMBER(*,0),
-	"HEURES" FLOAT(126) DEFAULT 0 NOT NULL ENABLE,
-	"TYPE_HEURES_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"DOMAINE_FONCTIONNEL_ID" NUMBER(*,0)
+	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0)
    );
 /
 
@@ -1408,13 +1408,13 @@ CREATE TABLE "MOTIF_MODIFICATION_SERVICE"
 	"CODE" VARCHAR2(64 CHAR) NOT NULL ENABLE,
 	"LIBELLE" VARCHAR2(150 CHAR) NOT NULL ENABLE,
 	"MULTIPLICATEUR" NUMBER(*,0) NOT NULL ENABLE,
+	"DECHARGE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
-	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"DECHARGE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE
+	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0)
    );
 /
 
@@ -1455,10 +1455,10 @@ CREATE TABLE "NOEUD"
 CREATE TABLE "NOTIFICATION_INDICATEUR"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
 	"INDICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"AFFECTATION_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"FREQUENCE" NUMBER(*,0),
 	"DATE_ABONNEMENT" DATE NOT NULL ENABLE,
 	"DATE_DERN_NOTIF" DATE,
-	"AFFECTATION_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"IN_HOME" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE
    );
 /
@@ -1507,6 +1507,8 @@ CREATE TABLE "PERIODE"
 	"CODE" VARCHAR2(3 CHAR) NOT NULL ENABLE,
 	"LIBELLE_LONG" VARCHAR2(40 CHAR) NOT NULL ENABLE,
 	"LIBELLE_COURT" VARCHAR2(15 CHAR),
+	"ECART_MOIS" NUMBER NOT NULL ENABLE,
+	"ECART_MOIS_PAIEMENT" NUMBER NOT NULL ENABLE,
 	"ORDRE" NUMBER(*,0) NOT NULL ENABLE,
 	"ENSEIGNEMENT" NUMBER(1,0),
 	"PAIEMENT" NUMBER(1,0),
@@ -1515,23 +1517,21 @@ CREATE TABLE "PERIODE"
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
-	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"ECART_MOIS" NUMBER NOT NULL ENABLE,
-	"ECART_MOIS_PAIEMENT" NUMBER NOT NULL ENABLE
+	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0)
    );
 /
 
 CREATE TABLE "PIECE_JOINTE"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
 	"TYPE_PIECE_JOINTE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
 	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"VALIDATION_ID" NUMBER(*,0),
-	"INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE
+	"VALIDATION_ID" NUMBER(*,0)
    );
 /
 
@@ -1567,9 +1567,9 @@ CREATE TABLE "PLAFOND_ETAT"
 
 CREATE TABLE "PRIVILEGE"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
+	"CATEGORIE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"CODE" VARCHAR2(150 CHAR) NOT NULL ENABLE,
 	"LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE,
-	"CATEGORIE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"ORDRE" NUMBER(*,0)
    );
 /
@@ -1585,16 +1585,16 @@ CREATE TABLE "REGLE_STRUCTURE_VALIDATION"
 
 CREATE TABLE "ROLE"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
+	"CODE" VARCHAR2(64 CHAR) NOT NULL ENABLE,
+	"LIBELLE" VARCHAR2(50 CHAR) NOT NULL ENABLE,
+	"PERIMETRE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"PEUT_CHANGER_STRUCTURE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
-	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"CODE" VARCHAR2(64 CHAR) NOT NULL ENABLE,
-	"LIBELLE" VARCHAR2(50 CHAR) NOT NULL ENABLE,
-	"PERIMETRE_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"PEUT_CHANGER_STRUCTURE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE
+	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0)
    );
 /
 
@@ -1754,16 +1754,16 @@ CREATE TABLE "STATUT_INTERVENANT"
 	"PEUT_SAISIR_SERVICE" NUMBER(1,0) NOT NULL ENABLE,
 	"PEUT_CHOISIR_DANS_DOSSIER" NUMBER(1,0) NOT NULL ENABLE,
 	"PEUT_SAISIR_DOSSIER" NUMBER(1,0) NOT NULL ENABLE,
+	"PEUT_SAISIR_REFERENTIEL" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
 	"PEUT_SAISIR_MOTIF_NON_PAIEMENT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
 	"PEUT_AVOIR_CONTRAT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
-	"PEUT_SAISIR_REFERENTIEL" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
 	"PLAFOND_HC_HORS_REMU_FC" FLOAT(126) DEFAULT 9999 NOT NULL ENABLE,
 	"PLAFOND_HC_REMU_FC" FLOAT(126) DEFAULT 13502 NOT NULL ENABLE,
 	"DEPASSEMENT_SERVICE_DU_SANS_HC" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
 	"PEUT_CLOTURER_SAISIE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
-	"TEM_BIATSS" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
 	"PEUT_SAISIR_SERVICE_EXT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
-	"TEM_ATV" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE
+	"TEM_ATV" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
+	"TEM_BIATSS" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE
    );
 /
 
@@ -1775,8 +1775,12 @@ CREATE TABLE "STATUT_PRIVILEGE"
 
 CREATE TABLE "STRUCTURE"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
-	"LIBELLE_LONG" VARCHAR2(100 CHAR) NOT NULL ENABLE,
+	"CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE,
 	"LIBELLE_COURT" VARCHAR2(25 CHAR) NOT NULL ENABLE,
+	"LIBELLE_LONG" VARCHAR2(100 CHAR) NOT NULL ENABLE,
+	"CONTACT_PJ" VARCHAR2(255 CHAR),
+	"ENSEIGNEMENT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
+	"AFF_ADRESSE_CONTRAT" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE,
 	"SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"SOURCE_CODE" VARCHAR2(100 CHAR),
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
@@ -1785,10 +1789,6 @@ CREATE TABLE "STRUCTURE"
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
 	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"CONTACT_PJ" VARCHAR2(255 CHAR),
-	"AFF_ADRESSE_CONTRAT" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE,
-	"ENSEIGNEMENT" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
-	"CODE" VARCHAR2(50 CHAR) NOT NULL ENABLE,
 	"PLAFOND_REFERENTIEL" FLOAT(126)
    );
 /
@@ -1796,8 +1796,8 @@ CREATE TABLE "STRUCTURE"
 CREATE TABLE "SYNC_LOG"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
 	"DATE_SYNC" DATE NOT NULL ENABLE,
-	"SOURCE_CODE" VARCHAR2(200 CHAR),
 	"TABLE_NAME" VARCHAR2(30 CHAR),
+	"SOURCE_CODE" VARCHAR2(200 CHAR),
 	"MESSAGE" VARCHAR2(4000 CHAR)
    );
 /
@@ -2023,7 +2023,7 @@ CREATE TABLE "TBL_SERVICE"
 	"ETAPE_HISTO" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE,
 	"HAS_HEURES_MAUVAISE_PERIODE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
 	"SERVICE_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"INTERVENANT_STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"INTERVENANT_STRUCTURE_ID" NUMBER(*,0),
 	"TYPE_INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"TYPE_INTERVENANT_CODE" VARCHAR2(5 CHAR) NOT NULL ENABLE,
 	"TYPE_VOLUME_HORAIRE_CODE" VARCHAR2(15 CHAR),
@@ -2164,13 +2164,13 @@ CREATE TABLE "TYPE_DOTATION"
 	"LIBELLE" VARCHAR2(200 CHAR) NOT NULL ENABLE,
 	"SOURCE_CODE" VARCHAR2(100 CHAR),
 	"SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"TYPE_RESSOURCE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
-	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"TYPE_RESSOURCE_ID" NUMBER(*,0) NOT NULL ENABLE
+	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0)
    );
 /
 
@@ -2230,13 +2230,13 @@ CREATE TABLE "TYPE_INTERVENTION"
 	"ORDRE" NUMBER(*,0) NOT NULL ENABLE,
 	"TAUX_HETD_SERVICE" FLOAT(126) DEFAULT 1 NOT NULL ENABLE,
 	"TAUX_HETD_COMPLEMENTAIRE" FLOAT(126) DEFAULT 1 NOT NULL ENABLE,
+	"VISIBLE" NUMBER(1,0) NOT NULL ENABLE,
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
 	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"VISIBLE" NUMBER(1,0) NOT NULL ENABLE,
 	"ANNEE_DEBUT_ID" NUMBER(*,0),
 	"ANNEE_FIN_ID" NUMBER(*,0),
 	"REGLE_FOAD" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
@@ -2275,14 +2275,14 @@ CREATE TABLE "TYPE_INTERVENTION_STRUCTURE"
 	"TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"VISIBLE" NUMBER(1,0) NOT NULL ENABLE,
+	"ANNEE_DEBUT_ID" NUMBER(*,0),
+	"ANNEE_FIN_ID" NUMBER(*,0),
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
-	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"ANNEE_DEBUT_ID" NUMBER(*,0),
-	"ANNEE_FIN_ID" NUMBER(*,0)
+	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0)
    );
 /
 
@@ -2321,14 +2321,14 @@ CREATE TABLE "TYPE_MODULATEUR_STRUCTURE"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
 	"TYPE_MODULATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"ANNEE_DEBUT_ID" NUMBER(*,0),
+	"ANNEE_FIN_ID" NUMBER(*,0),
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
-	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"ANNEE_DEBUT_ID" NUMBER(*,0),
-	"ANNEE_FIN_ID" NUMBER(*,0)
+	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0)
    );
 /
 
@@ -2362,8 +2362,8 @@ CREATE TABLE "TYPE_PIECE_JOINTE_STATUT"
 	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
 	"ANNEE_DEBUT_ID" NUMBER(*,0),
 	"ANNEE_FIN_ID" NUMBER(*,0),
-	"FC" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
-	"CHANGEMENT_RIB" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE
+	"CHANGEMENT_RIB" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
+	"FC" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE
    );
 /
 
@@ -2417,7 +2417,7 @@ CREATE TABLE "VALIDATION"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
 	"TYPE_VALIDATION_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"INTERVENANT_ID" NUMBER(*,0) NOT NULL ENABLE,
-	"STRUCTURE_ID" NUMBER(*,0) NOT NULL ENABLE,
+	"STRUCTURE_ID" NUMBER(*,0),
 	"HISTO_CREATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
 	"HISTO_CREATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_MODIFICATION" DATE DEFAULT SYSDATE NOT NULL ENABLE,
@@ -2486,6 +2486,7 @@ CREATE TABLE "VOLUME_HORAIRE_CHARGE"
 
 CREATE TABLE "VOLUME_HORAIRE_ENS"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
+	"ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"TYPE_INTERVENTION_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HEURES" FLOAT(126) NOT NULL ENABLE,
 	"SOURCE_ID" NUMBER(*,0) NOT NULL ENABLE,
@@ -2496,7 +2497,6 @@ CREATE TABLE "VOLUME_HORAIRE_ENS"
 	"HISTO_MODIFICATEUR_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"HISTO_DESTRUCTION" DATE,
 	"HISTO_DESTRUCTEUR_ID" NUMBER(*,0),
-	"ELEMENT_PEDAGOGIQUE_ID" NUMBER(*,0) NOT NULL ENABLE,
 	"GROUPES" FLOAT(126)
    );
 /
@@ -2532,12 +2532,12 @@ CREATE TABLE "WF_ETAPE"
    (	"ID" NUMBER(*,0) NOT NULL ENABLE,
 	"CODE" VARCHAR2(64 CHAR) NOT NULL ENABLE,
 	"ORDRE" NUMBER(*,0) DEFAULT 1 NOT NULL ENABLE,
-	"DESC_NON_FRANCHIE" VARCHAR2(250 CHAR) NOT NULL ENABLE,
-	"DESC_SANS_OBJECTIF" VARCHAR2(250 CHAR),
-	"LIBELLE_AUTRES" VARCHAR2(150 CHAR) NOT NULL ENABLE,
 	"LIBELLE_INTERVENANT" VARCHAR2(150 CHAR) NOT NULL ENABLE,
-	"OBLIGATOIRE" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE,
+	"LIBELLE_AUTRES" VARCHAR2(150 CHAR) NOT NULL ENABLE,
 	"ROUTE" VARCHAR2(200 CHAR) NOT NULL ENABLE,
+	"DESC_NON_FRANCHIE" VARCHAR2(250 CHAR) NOT NULL ENABLE,
+	"OBLIGATOIRE" NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE,
+	"DESC_SANS_OBJECTIF" VARCHAR2(250 CHAR),
 	"ROUTE_INTERVENANT" VARCHAR2(200 CHAR)
    );
 /
@@ -3014,7 +3014,12 @@ WITH hs AS (
   SELECT contrat_id, sum(heures) "serviceTotal" FROM V_CONTRAT_SERVICES GROUP BY contrat_id
 )
 SELECT
+  ct.annee_id,
+  ct.structure_id,
+  ct.intervenant_id,
+  ct.formule_resultat_id,
   ct.id contrat_id,
+
   ct."annee",
   ct."nom",
   ct."prenom",
@@ -3058,56 +3063,58 @@ SELECT
   END                                         "titreCourt"
 FROM
 (
-SELECT
-  c.*,
-  a.libelle                                                                                     "annee",
-  COALESCE(d.nom_usuel,i.nom_usuel)                                                             "nom",
-  COALESCE(d.prenom,i.prenom)                                                                   "prenom",
-  civ.libelle_court                                                                             "civilite",
-  CASE WHEN civ.sexe = 'F' THEN 'e' ELSE '' END                                                 "e",
-  to_char(COALESCE(d.date_naissance,i.date_naissance), 'dd/mm/YYYY')                            "dateNaissance",
-  COALESCE(d.adresse,ose_divers.formatted_adresse(
-      ai.NO_VOIE, ai.NOM_VOIE, ai.BATIMENT, ai.MENTION_COMPLEMENTAIRE, ai.LOCALITE,
-      ai.CODE_POSTAL, ai.VILLE, ai.PAYS_LIBELLE))                                               "adresse",
-  COALESCE(d.numero_insee,i.numero_insee || ' ' || COALESCE(LPAD(i.numero_insee_cle,2,'0'),'')) "numInsee",
-  si.libelle                                                                                    "statut",
-  replace(ltrim(to_char(COALESCE(fr.total,0), '999999.00')),'.',',')                            "totalHETD",
-  replace(ltrim(to_char(COALESCE(th.valeur,0), '999999.00')),'.',',')                           "tauxHoraireValeur",
-  COALESCE(to_char(th.histo_creation, 'dd/mm/YYYY'), 'TAUX INTROUVABLE')                        "tauxHoraireDate",
-  to_char(COALESCE(v.histo_creation, c.histo_creation), 'dd/mm/YYYY')                           "dateSignature",
-  CASE WHEN c.structure_id <> COALESCE(cp.structure_id,0) THEN 'modifié' ELSE 'complété' END    "modifieComplete",
-  CASE WHEN s.aff_adresse_contrat = 1 THEN
-    ' signé à l''adresse suivante :' || CHR(13) || CHR(10) ||
-    s.libelle_court || ' - ' || REPLACE(ose_divers.formatted_adresse(
-      astr.NO_VOIE, astr.NOM_VOIE, null, null, astr.LOCALITE,
-      astr.CODE_POSTAL, astr.VILLE, null), CHR(13), ' - ')
-  ELSE '' END                                                                                   "exemplaire2",
-  replace(ltrim(to_char(COALESCE(hs."serviceTotal",0), '999999.00')),'.',',')                   "serviceTotal",
-  CASE WHEN c.contrat_id IS NULL THEN 1 ELSE 0 END                                              est_contrat,
-  CASE WHEN v.id IS NULL THEN 1 ELSE 0 END                                                      est_projet,
-  si.tem_atv                                                                                    est_atv
+  SELECT
+    c.*,
+    i.annee_id                                                                                    annee_id,
+    fr.id                                                                                         formule_resultat_id,
+    a.libelle                                                                                     "annee",
+    COALESCE(d.nom_usuel,i.nom_usuel)                                                             "nom",
+    COALESCE(d.prenom,i.prenom)                                                                   "prenom",
+    civ.libelle_court                                                                             "civilite",
+    CASE WHEN civ.sexe = 'F' THEN 'e' ELSE '' END                                                 "e",
+    to_char(COALESCE(d.date_naissance,i.date_naissance), 'dd/mm/YYYY')                            "dateNaissance",
+    COALESCE(d.adresse,ose_divers.formatted_adresse(
+        ai.NO_VOIE, ai.NOM_VOIE, ai.BATIMENT, ai.MENTION_COMPLEMENTAIRE, ai.LOCALITE,
+        ai.CODE_POSTAL, ai.VILLE, ai.PAYS_LIBELLE))                                               "adresse",
+    COALESCE(d.numero_insee,i.numero_insee || ' ' || COALESCE(LPAD(i.numero_insee_cle,2,'0'),'')) "numInsee",
+    si.libelle                                                                                    "statut",
+    replace(ltrim(to_char(COALESCE(fr.total,0), '999999.00')),'.',',')                            "totalHETD",
+    replace(ltrim(to_char(COALESCE(th.valeur,0), '999999.00')),'.',',')                           "tauxHoraireValeur",
+    COALESCE(to_char(th.histo_creation, 'dd/mm/YYYY'), 'TAUX INTROUVABLE')                        "tauxHoraireDate",
+    to_char(COALESCE(v.histo_creation, c.histo_creation), 'dd/mm/YYYY')                           "dateSignature",
+    CASE WHEN c.structure_id <> COALESCE(cp.structure_id,0) THEN 'modifié' ELSE 'complété' END    "modifieComplete",
+    CASE WHEN s.aff_adresse_contrat = 1 THEN
+      ' signé à l''adresse suivante :' || CHR(13) || CHR(10) ||
+      s.libelle_court || ' - ' || REPLACE(ose_divers.formatted_adresse(
+        astr.NO_VOIE, astr.NOM_VOIE, null, null, astr.LOCALITE,
+        astr.CODE_POSTAL, astr.VILLE, null), CHR(13), ' - ')
+    ELSE '' END                                                                                   "exemplaire2",
+    replace(ltrim(to_char(COALESCE(hs."serviceTotal",0), '999999.00')),'.',',')                   "serviceTotal",
+    CASE WHEN c.contrat_id IS NULL THEN 1 ELSE 0 END                                              est_contrat,
+    CASE WHEN v.id IS NULL THEN 1 ELSE 0 END                                                      est_projet,
+    si.tem_atv                                                                                    est_atv
 
-FROM
-            contrat               c
-       JOIN type_contrat         tc ON tc.id = c.type_contrat_id
-       JOIN intervenant           i ON i.id = c.intervenant_id
-       JOIN annee                 a ON a.id = i.annee_id
-       JOIN statut_intervenant   si ON si.id = i.statut_id
-       JOIN structure             s ON s.id = c.structure_id
-  LEFT JOIN adresse_structure  astr ON astr.structure_id = s.id AND astr.principale = 1 AND astr.histo_destruction IS NULL
-  LEFT JOIN dossier               d ON d.intervenant_id = i.id AND d.histo_destruction IS NULL
-       JOIN civilite            civ ON civ.id = COALESCE(d.civilite_id,i.civilite_id)
-  LEFT JOIN validation            v ON v.id = c.validation_id AND v.histo_destruction IS NULL
-  LEFT JOIN adresse_intervenant  ai ON ai.intervenant_id = i.id AND ai.histo_destruction IS NULL
-
-       JOIN type_volume_horaire tvh ON tvh.code = 'PREVU'
-       JOIN etat_volume_horaire evh ON evh.code = 'valide'
-  LEFT JOIN formule_resultat     fr ON fr.intervenant_id = i.id AND fr.type_volume_horaire_id = tvh.id AND fr.etat_volume_horaire_id = evh.id
-  LEFT JOIN taux_horaire_hetd    th ON c.histo_creation BETWEEN th.histo_creation AND COALESCE(th.histo_destruction,SYSDATE)
-  LEFT JOIN                      hs ON hs.contrat_id = c.id
-  LEFT JOIN contrat              cp ON cp.id = c.contrat_id
-WHERE
-  c.histo_destruction IS NULL
+  FROM
+              contrat               c
+         JOIN type_contrat         tc ON tc.id = c.type_contrat_id
+         JOIN intervenant           i ON i.id = c.intervenant_id
+         JOIN annee                 a ON a.id = i.annee_id
+         JOIN statut_intervenant   si ON si.id = i.statut_id
+         JOIN structure             s ON s.id = c.structure_id
+    LEFT JOIN adresse_structure  astr ON astr.structure_id = s.id AND astr.principale = 1 AND astr.histo_destruction IS NULL
+    LEFT JOIN dossier               d ON d.intervenant_id = i.id AND d.histo_destruction IS NULL
+         JOIN civilite            civ ON civ.id = COALESCE(d.civilite_id,i.civilite_id)
+    LEFT JOIN validation            v ON v.id = c.validation_id AND v.histo_destruction IS NULL
+    LEFT JOIN adresse_intervenant  ai ON ai.intervenant_id = i.id AND ai.histo_destruction IS NULL
+
+         JOIN type_volume_horaire tvh ON tvh.code = 'PREVU'
+         JOIN etat_volume_horaire evh ON evh.code = 'valide'
+    LEFT JOIN formule_resultat     fr ON fr.intervenant_id = i.id AND fr.type_volume_horaire_id = tvh.id AND fr.etat_volume_horaire_id = evh.id
+    LEFT JOIN taux_horaire_hetd    th ON c.histo_creation BETWEEN th.histo_creation AND COALESCE(th.histo_destruction,SYSDATE)
+    LEFT JOIN                      hs ON hs.contrat_id = c.id
+    LEFT JOIN contrat              cp ON cp.id = c.contrat_id
+  WHERE
+    c.histo_destruction IS NULL
 ) ct;
 /
 
@@ -3749,8 +3756,9 @@ FROM (
     t2.structure_id                                                                                     structure_id,
     t2.periode_paiement_id                                                                              periode_id,
     i.id                                                                                                intervenant_id,
-
-    '''' || TRIM( i.numero_insee || NVL(TRIM(i.numero_insee_cle),'00') )                                insee,
+    CASE WHEN i.numero_insee IS NULL THEN '''' ELSE
+      '''' || TRIM(i.numero_insee) || COALESCE(LPAD(TRIM(i.numero_insee_cle), 2, '0'),'00')
+    END                                                                                                 insee,
     i.nom_usuel || ',' || i.prenom                                                                      nom,
     t2.code_origine                                                                                     code_origine,
     CASE WHEN ind <> CEIL(t2.nbu/max_nbu) THEN max_nbu ELSE t2.nbu - max_nbu*(ind-1) END                nbu,
@@ -4182,7 +4190,7 @@ SELECT
 FROM
   formule_resultat_vh_ref       frvr
   JOIN formule_resultat           fr ON fr.id = frvr.formule_resultat_id
-  JOIN volume_horaire_ref        vhr ON vhr.id =  frvr.volume_horaire_ref_id
+  JOIN volume_horaire_ref        vhr ON vhr.id =  frvr.volume_horaire_ref_id AND vhr.histo_destruction IS NULL
   JOIN service_referentiel        sr ON sr.id = vhr.service_referentiel_id AND sr.intervenant_id = fr.intervenant_id AND sr.histo_destruction IS NULL
 
 UNION ALL
@@ -4543,6 +4551,61 @@ GROUP BY
   i.id, i.annee_id, i.structure_id, ti.code, si.service_statutaire, si.depassement_service_du_sans_hc;
 /
 
+CREATE OR REPLACE FORCE VIEW V_FORMULE_LOCAL_I_PARAMS AS
+SELECT
+  null intervenant_id,
+  null param_1,
+  null param_2,
+  null param_3,
+  null param_4,
+  null param_5
+FROM
+  dual;
+/
+
+CREATE OR REPLACE FORCE VIEW V_FORMULE_LOCAL_VH_PARAMS AS
+SELECT
+  vh.id     volume_horaire_id,
+  null      volume_horaire_ref_id,
+  str.code  param_1,
+  null      param_2,
+  null      param_3,
+  null      param_4,
+  null      param_5
+FROM
+            volume_horaire            vh
+       JOIN service                    s ON s.id = vh.service_id
+       JOIN intervenant                i ON i.id = s.intervenant_id
+  LEFT JOIN element_pedagogique       ep ON ep.id = s.element_pedagogique_id
+       JOIN structure                str ON str.id = COALESCE(ep.structure_id,i.structure_id)
+WHERE
+  vh.histo_destruction IS NULL
+  AND s.histo_destruction IS NULL
+  AND vh.heures <> 0
+  AND vh.motif_non_paiement_id IS NULL
+  AND s.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, s.intervenant_id )
+
+UNION ALL
+
+SELECT
+  null      volume_horaire_id,
+  vhr.id    volume_horaire_ref_id,
+  str.code  param_1,
+  null      param_2,
+  null      param_3,
+  null      param_4,
+  null      param_5
+FROM
+  volume_horaire_ref               vhr
+  JOIN service_referentiel          sr ON sr.id = vhr.service_referentiel_id
+  JOIN structure                   str ON str.id = sr.structure_id
+WHERE
+  vhr.histo_destruction IS NULL
+  AND sr.histo_destruction IS NULL
+  AND vhr.heures <> 0
+  AND sr.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, sr.intervenant_id );
+/
+
 CREATE OR REPLACE FORCE VIEW V_FORMULE_VOLUME_HORAIRE AS
 SELECT
   rownum ordre,
@@ -7856,6 +7919,9 @@ CREATE OR REPLACE PACKAGE FORMULE_ENSICAEN AS
 
   FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT;
 
+  FUNCTION INTERVENANT_QUERY RETURN CLOB;
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB;
+
 END FORMULE_ENSICAEN;
 /
 
@@ -7865,6 +7931,9 @@ CREATE OR REPLACE PACKAGE "FORMULE_MONTPELLIER" AS
 
   FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT;
 
+  FUNCTION INTERVENANT_QUERY RETURN CLOB;
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB;
+
 END FORMULE_MONTPELLIER;
 /
 
@@ -7874,6 +7943,9 @@ CREATE OR REPLACE PACKAGE FORMULE_NANTERRE AS
 
   FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT;
 
+  FUNCTION INTERVENANT_QUERY RETURN CLOB;
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB;
+
 END FORMULE_NANTERRE;
 /
 
@@ -7883,6 +7955,9 @@ CREATE OR REPLACE PACKAGE "FORMULE_UBO" AS
 
   FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT;
 
+  FUNCTION INTERVENANT_QUERY RETURN CLOB;
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB;
+
 END FORMULE_UBO;
 /
 
@@ -7892,6 +7967,9 @@ CREATE OR REPLACE PACKAGE "FORMULE_ULHN" AS
 
   FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT;
 
+  FUNCTION INTERVENANT_QUERY RETURN CLOB;
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB;
+
 END FORMULE_ULHN;
 /
 
@@ -7906,6 +7984,9 @@ CREATE OR REPLACE PACKAGE "FORMULE_UNICAEN" AS
 
   PROCEDURE PURGE_EM_NON_FC;
 
+  FUNCTION INTERVENANT_QUERY RETURN CLOB;
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB;
+
 END FORMULE_UNICAEN;
 /
 
@@ -8664,6 +8745,41 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_ENSICAEN AS
     END LOOP;
   END;
 
+
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN '
+    SELECT
+      fi.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_intervenant fi
+    ';
+  END;
+
+
+
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN '
+    SELECT
+      fvh.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_volume_horaire fvh
+    ORDER BY
+      ordre';
+  END;
+
 END FORMULE_ENSICAEN;
 /
 
@@ -8689,7 +8805,7 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_MONTPELLIER" AS
   PROCEDURE dbg( val CLOB ) IS
   BEGIN
     ose_formule.volumes_horaires.items(debugLine).debug_info :=
-      ose_formule.volumes_horaires.items(debugLine).debug_info || val;
+    ose_formule.volumes_horaires.items(debugLine).debug_info || val;
   END;
 
 
@@ -9169,7 +9285,6 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_MONTPELLIER" AS
       END IF;
 
 
-
     -- x =SI(ESTVIDE(composante_affectation);0;SI(OU(ESTVIDE($C21);NON(C21="Référentiel");ET(HC=0;H21="Non"));0;SI(H21="Non";O21;SI($M21>0;(($M21*$N21)+($I21-$M21)*J21);$K21))))
     WHEN c = 'x' AND v >= 1 THEN
       IF i.type_intervenant_code = 'E' THEN
@@ -9285,11 +9400,46 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_MONTPELLIER" AS
     END LOOP;
   END;
 
-END FORMULE_MONTPELLIER;
-/
 
-CREATE OR REPLACE PACKAGE BODY FORMULE_NANTERRE AS
-  decalageLigne NUMERIC DEFAULT 21;
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN '
+    SELECT
+      fi.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_intervenant fi
+    ';
+  END;
+
+
+
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN '
+    SELECT
+      fvh.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_volume_horaire fvh
+    ORDER BY
+      ordre';
+  END;
+
+END FORMULE_MONTPELLIER;
+/
+
+CREATE OR REPLACE PACKAGE BODY FORMULE_NANTERRE AS
+  decalageLigne NUMERIC DEFAULT 21;
 
 
   /* Stockage des valeurs intermédiaires */
@@ -10095,6 +10245,43 @@ CREATE OR REPLACE PACKAGE BODY FORMULE_NANTERRE AS
     END LOOP;
   END;
 
+
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN '
+    SELECT
+      fi.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_intervenant fi
+    ';
+  END;
+
+
+
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN '
+    SELECT
+      fvh.*,
+      str.code param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_volume_horaire fvh
+      JOIN intervenant i ON i.id = fvh.intervenant_id
+      LEFT JOIN structure str ON str.id = COALESCE(fvh.structure_id,i.structure_id)
+    ORDER BY
+      ordre';
+  END;
+
 END FORMULE_NANTERRE;
 /
 
@@ -11027,6 +11214,43 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_UBO" AS
     END LOOP;
   END;
 
+
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN '
+    SELECT
+      fi.*,
+      CASE WHEN fi.type_intervenant_code = ''P'' AND si.source_code NOT IN (''ATER'',''ATER_MI_TPS'',''LECTEUR'') THEN ''oui'' ELSE ''non'' END param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_intervenant fi
+      JOIN intervenant i ON i.id = fi.intervenant_id
+      JOIN statut_intervenant si ON si.id = i.id
+    ';
+  END;
+
+
+
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN '
+    SELECT
+      fvh.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_volume_horaire fvh
+    ORDER BY
+      ordre';
+  END;
+
 END FORMULE_UBO;
 /
 
@@ -11422,6 +11646,41 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_ULHN" AS
     END LOOP;
   END;
 
+
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN '
+    SELECT
+      fi.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_intervenant fi
+    ';
+  END;
+
+
+
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN '
+    SELECT
+      fvh.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_volume_horaire fvh
+    ORDER BY
+      ordre';
+  END;
+
 END FORMULE_ULHN;
 /
 
@@ -12421,6 +12680,41 @@ CREATE OR REPLACE PACKAGE BODY "FORMULE_UNICAEN" AS
   END;
 
 
+
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN '
+    SELECT
+      fi.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_intervenant fi
+    ';
+  END;
+
+
+
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN '
+    SELECT
+      fvh.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_volume_horaire fvh
+    ORDER BY
+      ordre';
+  END;
+
 END FORMULE_UNICAEN;
 /
 
@@ -13420,54 +13714,46 @@ CREATE OR REPLACE PACKAGE BODY "OSE_FORMULE" AS
 
 
   PROCEDURE LOAD_INTERVENANT_FROM_BDD IS
-    dsdushc NUMERIC DEFAULT 0;
+    cur SYS_REFCURSOR;
+    query CLOB;
+    i_dep_service_du_sans_hc NUMERIC DEFAULT 0;
   BEGIN
     intervenant.service_du := 0;
     intervenant.total      := NULL;
     intervenant.solde      := NULL;
 
-    SELECT
-      fi.intervenant_id,
-      fi.annee_id,
-      fi.structure_id,
-      fi.type_intervenant_code,
-      fi.heures_service_statutaire,
-      fi.depassement_service_du_sans_hc,
-      fi.heures_service_modifie,
-      fi.heures_decharge,
-      fli.param_1,
-      fli.param_2,
-      fli.param_3,
-      fli.param_4,
-      fli.param_5
-    INTO
-      intervenant.id,
-      intervenant.annee_id,
-      intervenant.structure_id,
-      intervenant.type_intervenant_code,
-      intervenant.heures_service_statutaire,
-      dsdushc,
-      intervenant.heures_service_modifie,
-      intervenant.heures_decharge,
-      intervenant.param_1,
-      intervenant.param_2,
-      intervenant.param_3,
-      intervenant.param_4,
-      intervenant.param_5
-    FROM
-      v_formule_intervenant fi
-      LEFT JOIN v_formule_local_i_params fli ON fli.intervenant_id = fi.intervenant_id
-    WHERE
-      fi.intervenant_id = intervenant.id;
+    EXECUTE IMMEDIATE 'SELECT ' || formule_definition.package_name || '.intervenant_query FROM DUAL' INTO query;
+    OPEN cur FOR query;
 
-    intervenant.depassement_service_du_sans_hc := (dsdushc = 1);
-    intervenant.service_du := CASE
-      WHEN intervenant.depassement_service_du_sans_hc -- HC traitées comme du service
-        OR intervenant.heures_decharge < 0 -- s'il y a une décharge => aucune HC
+    LOOP
+      FETCH cur INTO
+        intervenant.id,
+        intervenant.annee_id,
+        intervenant.structure_id,
+        intervenant.type_intervenant_code,
+        intervenant.heures_service_statutaire,
+        i_dep_service_du_sans_hc,
+        intervenant.heures_service_modifie,
+        intervenant.heures_decharge,
+        intervenant.param_1,
+        intervenant.param_2,
+        intervenant.param_3,
+        intervenant.param_4,
+        intervenant.param_5
+      ;
 
-      THEN 9999
-      ELSE intervenant.heures_service_statutaire + intervenant.heures_service_modifie
-    END;
+      intervenant.depassement_service_du_sans_hc := (i_dep_service_du_sans_hc = 1);
+      intervenant.service_du := CASE
+        WHEN intervenant.depassement_service_du_sans_hc -- HC traitées comme du service
+          OR intervenant.heures_decharge < 0 -- s'il y a une décharge => aucune HC
+
+        THEN 9999
+        ELSE intervenant.heures_service_statutaire + intervenant.heures_service_modifie
+      END;
+
+      EXIT WHEN cur%NOTFOUND;
+    END LOOP;
+    CLOSE cur;
 
     EXCEPTION WHEN NO_DATA_FOUND THEN
       intervenant.id                             := NULL;
@@ -13563,58 +13849,77 @@ CREATE OR REPLACE PACKAGE BODY "OSE_FORMULE" AS
 
 
   PROCEDURE LOAD_VH_FROM_BDD IS
+    cur SYS_REFCURSOR;
+    query CLOB;
+    vh_ordre NUMERIC;
+    vh_id NUMERIC;
+    vh_type_intervention_id NUMERIC;
+    vh_horaire_debut DATE;
+    vh_horaire_fin DATE;
+    vh_intervenant_id NUMERIC;
+    vh_type_volume_horaire_id NUMERIC;
+    vh_etat_volume_horaire_id NUMERIC;
+    vh_structure_is_affectation NUMERIC;
+    vh_structure_is_univ NUMERIC;
     vh t_volume_horaire;
     etat_volume_horaire_id NUMERIC DEFAULT 1;
-    structure_univ NUMERIC;
     length NUMERIC;
   BEGIN
     all_volumes_horaires.delete;
 
-    SELECT to_number(valeur) INTO structure_univ FROM parametre WHERE nom = 'structure_univ';
+    EXECUTE IMMEDIATE 'SELECT ' || formule_definition.package_name || '.volume_horaire_query FROM DUAL' INTO query;
+    OPEN cur FOR query;
 
-    FOR d IN (
-      SELECT
-        fvh.*, flvh.param_1, flvh.param_2, flvh.param_3, flvh.param_4, flvh.param_5
-      FROM
-        v_formule_volume_horaire fvh
-        LEFT JOIN v_formule_local_vh_params flvh ON COALESCE(to_number(flvh.volume_horaire_id),0) = COALESCE(fvh.volume_horaire_id,0) AND COALESCE(to_number(flvh.volume_horaire_ref_id),0) = COALESCE(fvh.volume_horaire_ref_id,0)
-      ORDER BY
-        ordre
-    ) LOOP
-      vh.volume_horaire_id         := d.volume_horaire_id;
-      vh.volume_horaire_ref_id     := d.volume_horaire_ref_id;
-      vh.service_id                := d.service_id;
-      vh.service_referentiel_id    := d.service_referentiel_id;
-      vh.taux_fi                   := d.taux_fi;
-      vh.taux_fa                   := d.taux_fa;
-      vh.taux_fc                   := d.taux_fc;
-      vh.ponderation_service_du    := d.ponderation_service_du;
-      vh.ponderation_service_compl := d.ponderation_service_compl;
-      vh.structure_id              := d.structure_id;
-      vh.structure_is_affectation  := d.structure_is_affectation = 1;
-      vh.structure_is_univ         := d.structure_is_univ = 1;
-      vh.service_statutaire        := d.service_statutaire = 1;
-      vh.heures                    := d.heures;
-      vh.type_intervention_code    := d.type_intervention_code;
-      vh.taux_service_du           := d.taux_service_du;
-      vh.taux_service_compl        := d.taux_service_compl;
-      vh.param_1                   := d.param_1;
-      vh.param_2                   := d.param_2;
-      vh.param_3                   := d.param_3;
-      vh.param_4                   := d.param_4;
-      vh.param_5                   := d.param_5;
-
-      FOR etat_volume_horaire_id IN 1 .. d.etat_volume_horaire_id LOOP
+    LOOP
+      FETCH cur INTO
+        vh_ordre,
+        vh_id,
+        vh.volume_horaire_id,
+        vh.volume_horaire_ref_id,
+        vh.service_id,
+        vh.service_referentiel_id,
+        vh_intervenant_id,
+        vh_type_intervention_id,
+        vh_type_volume_horaire_id,
+        vh_etat_volume_horaire_id,
+        vh.taux_fi,
+        vh.taux_fa,
+        vh.taux_fc,
+        vh.structure_id,
+        vh_structure_is_affectation,
+        vh_structure_is_univ,
+        vh.ponderation_service_du,
+        vh.ponderation_service_compl,
+        vh.service_statutaire,
+        vh.heures,
+        vh_horaire_debut,
+        vh_horaire_fin,
+        vh.type_intervention_code,
+        vh.taux_service_du,
+        vh.taux_service_compl,
+        vh.param_1,
+        vh.param_2,
+        vh.param_3,
+        vh.param_4,
+        vh.param_5
+      ;
+      vh.structure_is_affectation := vh_structure_is_affectation = 1;
+      vh.structure_is_univ        := vh_structure_is_univ = 1;
+
+      FOR etat_volume_horaire_id IN 1 .. vh_etat_volume_horaire_id LOOP
         BEGIN
-          length := all_volumes_horaires(d.intervenant_id)(d.type_volume_horaire_id)(etat_volume_horaire_id).length;
+          length := all_volumes_horaires(vh_intervenant_id)(vh_type_volume_horaire_id)(etat_volume_horaire_id).length;
         EXCEPTION WHEN NO_DATA_FOUND THEN
           length := 0;
         END;
         length := length + 1;
-        all_volumes_horaires(d.intervenant_id)(d.type_volume_horaire_id)(etat_volume_horaire_id).length := length;
-        all_volumes_horaires(d.intervenant_id)(d.type_volume_horaire_id)(etat_volume_horaire_id).items(length) := vh;
+        all_volumes_horaires(vh_intervenant_id)(vh_type_volume_horaire_id)(etat_volume_horaire_id).length := length;
+        all_volumes_horaires(vh_intervenant_id)(vh_type_volume_horaire_id)(etat_volume_horaire_id).items(length) := vh;
       END LOOP;
+
+      EXIT WHEN cur%NOTFOUND;
     END LOOP;
+    CLOSE cur;
   END;
 
 
@@ -17230,6 +17535,9 @@ CREATE INDEX ADRESSE_INTERVENANT_HMFK_IDX ON ADRESSE_INTERVENANT (HISTO_MODIFICA
 CREATE UNIQUE INDEX ADRESSE_INTERVENANT_PK ON ADRESSE_INTERVENANT (ID);
 /
 
+CREATE INDEX ADRESSE_INTERVENANT_SOURCE_FK ON ADRESSE_INTERVENANT (SOURCE_ID);
+/
+
 CREATE UNIQUE INDEX ADRESSE_INTERVENANT_SOURCE_UN ON ADRESSE_INTERVENANT (SOURCE_CODE);
 /
 
@@ -17248,9 +17556,15 @@ CREATE INDEX ADRESSE_STRUCTURE_HMFK_IDX ON ADRESSE_STRUCTURE (HISTO_MODIFICATEUR
 CREATE UNIQUE INDEX ADRESSE_STRUCTURE_PK ON ADRESSE_STRUCTURE (ID);
 /
 
+CREATE INDEX ADRESSE_STRUCTURE_SOURCE_FK ON ADRESSE_STRUCTURE (SOURCE_ID);
+/
+
 CREATE UNIQUE INDEX ADRESSE_STRUCTURE_SOURCE_UN ON ADRESSE_STRUCTURE (SOURCE_CODE);
 /
 
+CREATE INDEX ADRESSE_STRUCTURE_STRUCTURE_FK ON ADRESSE_STRUCTURE (STRUCTURE_ID);
+/
+
 CREATE INDEX AFFECTATION_HCFK_IDX ON AFFECTATION (HISTO_CREATEUR_ID);
 /
 
@@ -17263,6 +17577,9 @@ CREATE INDEX AFFECTATION_HMFK_IDX ON AFFECTATION (HISTO_MODIFICATEUR_ID);
 CREATE UNIQUE INDEX AFFECTATION_PK ON AFFECTATION (ID);
 /
 
+CREATE INDEX AFFECTATION_RECHERCH_SOURCE_FK ON AFFECTATION_RECHERCHE (SOURCE_ID);
+/
+
 CREATE INDEX AFFECTATION_ROLE_FK_IDX ON AFFECTATION (ROLE_ID);
 /
 
@@ -17275,10 +17592,10 @@ CREATE INDEX AFFECTATION_R_HDFK_IDX ON AFFECTATION_RECHERCHE (HISTO_DESTRUCTEUR_
 CREATE INDEX AFFECTATION_R_HMFK_IDX ON AFFECTATION_RECHERCHE (HISTO_MODIFICATEUR_ID);
 /
 
-CREATE UNIQUE INDEX AFFECTATION_R_PK ON AFFECTATION_RECHERCHE (ID);
+CREATE INDEX AFFECTATION_R_INTERVENANT_FK ON AFFECTATION_RECHERCHE (INTERVENANT_ID);
 /
 
-CREATE INDEX AFFECTATION_R_SOURCE_FK_IDX ON AFFECTATION_RECHERCHE (SOURCE_ID);
+CREATE UNIQUE INDEX AFFECTATION_R_PK ON AFFECTATION_RECHERCHE (ID);
 /
 
 CREATE UNIQUE INDEX AFFECTATION_R_SRC_UN ON AFFECTATION_RECHERCHE (SOURCE_CODE);
@@ -17323,24 +17640,12 @@ CREATE INDEX AGREMENT_TYPE_AGREMENT_FK_IDX ON AGREMENT (TYPE_AGREMENT_ID);
 CREATE UNIQUE INDEX AGREMENT__UN ON AGREMENT (TYPE_AGREMENT_ID, INTERVENANT_ID, STRUCTURE_ID, HISTO_DESTRUCTION);
 /
 
-CREATE INDEX AII_FK_IDX ON ADRESSE_INTERVENANT (INTERVENANT_ID);
-/
-
-CREATE INDEX AI_SOURCE_FK_IDX ON ADRESSE_INTERVENANT (SOURCE_ID);
+CREATE INDEX AII_FK ON ADRESSE_INTERVENANT (INTERVENANT_ID);
 /
 
 CREATE UNIQUE INDEX ANNEE_PK ON ANNEE (ID);
 /
 
-CREATE INDEX AR_INTERVENANT_FK_IDX ON AFFECTATION_RECHERCHE (INTERVENANT_ID);
-/
-
-CREATE INDEX AS_SOURCE_FK_IDX ON ADRESSE_STRUCTURE (SOURCE_ID);
-/
-
-CREATE INDEX AS_STRUCTURE_FK_IDX ON ADRESSE_STRUCTURE (STRUCTURE_ID);
-/
-
 CREATE UNIQUE INDEX CAMPAGNE_PK_IDX ON CAMPAGNE_SAISIE (ID);
 /
 
@@ -17359,10 +17664,7 @@ CREATE UNIQUE INDEX CATEGORIE_PRIVILEGE__UN ON CATEGORIE_PRIVILEGE (CODE);
 CREATE INDEX CCEP_CENTRE_COUT_FK_IDX ON CENTRE_COUT_EP (CENTRE_COUT_ID);
 /
 
-CREATE INDEX CCEP_EP_FK_IDX ON CENTRE_COUT_EP (ELEMENT_PEDAGOGIQUE_ID);
-/
-
-CREATE INDEX CCEP_SOURCE_FK_IDX ON CENTRE_COUT_EP (SOURCE_ID);
+CREATE INDEX CCEP_ELEMENT_PEDAGOGIQUE_FK ON CENTRE_COUT_EP (ELEMENT_PEDAGOGIQUE_ID);
 /
 
 CREATE INDEX CCEP_TYPE_HEURES_FK_IDX ON CENTRE_COUT_EP (TYPE_HEURES_ID);
@@ -17404,9 +17706,6 @@ CREATE UNIQUE INDEX CC_ACTIVITE_PK ON CC_ACTIVITE (ID);
 CREATE INDEX CC_ACTIVITE_REF ON CC_ACTIVITE (REFERENTIEL);
 /
 
-CREATE INDEX CC_TYPE_RESSOURCE_FK_IDX ON CENTRE_COUT (TYPE_RESSOURCE_ID);
-/
-
 CREATE INDEX CENTRE_COUT_ACTIVITE_FK_IDX ON CENTRE_COUT (ACTIVITE_ID);
 /
 
@@ -17425,6 +17724,9 @@ CREATE INDEX CENTRE_COUT_EP_HMFK_IDX ON CENTRE_COUT_EP (HISTO_MODIFICATEUR_ID);
 CREATE UNIQUE INDEX CENTRE_COUT_EP_PK ON CENTRE_COUT_EP (ID);
 /
 
+CREATE INDEX CENTRE_COUT_EP_SOURCE_FK ON CENTRE_COUT_EP (SOURCE_ID);
+/
+
 CREATE UNIQUE INDEX CENTRE_COUT_EP__UN ON CENTRE_COUT_EP (CENTRE_COUT_ID, ELEMENT_PEDAGOGIQUE_ID, TYPE_HEURES_ID, HISTO_DESTRUCTION);
 /
 
@@ -17455,6 +17757,12 @@ CREATE INDEX CENTRE_COUT_STRUCTURE_HMFK_IDX ON CENTRE_COUT_STRUCTURE (HISTO_MODI
 CREATE UNIQUE INDEX CENTRE_COUT_STRUCTURE_PK_IDX ON CENTRE_COUT_STRUCTURE (ID);
 /
 
+CREATE INDEX CENTRE_COUT_TYPE_RESSOURCE_FK ON CENTRE_COUT (TYPE_RESSOURCE_ID);
+/
+
+CREATE INDEX CHEMIN_PEDAGOGIQUE_ETAPE_FK ON CHEMIN_PEDAGOGIQUE (ETAPE_ID);
+/
+
 CREATE INDEX CHEMIN_PEDAGOGIQUE_HCFK_IDX ON CHEMIN_PEDAGOGIQUE (HISTO_CREATEUR_ID);
 /
 
@@ -17467,6 +17775,12 @@ CREATE INDEX CHEMIN_PEDAGOGIQUE_HMFK_IDX ON CHEMIN_PEDAGOGIQUE (HISTO_MODIFICATE
 CREATE UNIQUE INDEX CHEMIN_PEDAGOGIQUE_PK ON CHEMIN_PEDAGOGIQUE (ID);
 /
 
+CREATE INDEX CHEMIN_PEDAGOGIQUE_SOURCE_FK ON CHEMIN_PEDAGOGIQUE (SOURCE_ID);
+/
+
+CREATE UNIQUE INDEX CHEMIN_PEDAGOGIQUE__UN ON CHEMIN_PEDAGOGIQUE (ELEMENT_PEDAGOGIQUE_ID, ETAPE_ID, HISTO_DESTRUCTION);
+/
+
 CREATE UNIQUE INDEX CHEMIN_PEDAGO_SRC_ID_UN ON CHEMIN_PEDAGOGIQUE (SOURCE_CODE);
 /
 
@@ -17536,12 +17850,6 @@ CREATE UNIQUE INDEX CORPS_SOURCE_UN ON CORPS (SOURCE_CODE);
 CREATE INDEX CPEP_FK_IDX ON CHEMIN_PEDAGOGIQUE (ELEMENT_PEDAGOGIQUE_ID);
 /
 
-CREATE INDEX CP_ETAPE_FK_IDX ON CHEMIN_PEDAGOGIQUE (ETAPE_ID);
-/
-
-CREATE INDEX CP_SOURCE_FK_IDX ON CHEMIN_PEDAGOGIQUE (SOURCE_ID);
-/
-
 CREATE INDEX CS_TYPE_INTERVENANT_FK_IDX ON CAMPAGNE_SAISIE (TYPE_INTERVENANT_ID);
 /
 
@@ -17563,9 +17871,6 @@ CREATE UNIQUE INDEX DEPARTEMENT_PK ON DEPARTEMENT (ID);
 CREATE INDEX DEPARTEMENT_SOURCE_FK_IDX ON DEPARTEMENT (SOURCE_ID);
 /
 
-CREATE INDEX DF_SOURCE_FK_IDX ON DOMAINE_FONCTIONNEL (SOURCE_ID);
-/
-
 CREATE INDEX DISCIPLINE_HCFK_IDX ON DISCIPLINE (HISTO_CREATEUR_ID);
 /
 
@@ -17596,6 +17901,9 @@ CREATE INDEX DOMAINE_FONCTIONNEL_HMFK_IDX ON DOMAINE_FONCTIONNEL (HISTO_MODIFICA
 CREATE UNIQUE INDEX DOMAINE_FONCTIONNEL_PK ON DOMAINE_FONCTIONNEL (ID);
 /
 
+CREATE INDEX DOMAINE_FONCTIONNEL_SOURCE_FK ON DOMAINE_FONCTIONNEL (SOURCE_ID);
+/
+
 CREATE INDEX DOSSIER_D_FK ON DOSSIER (DEPT_NAISSANCE_ID);
 /
 
@@ -17638,7 +17946,7 @@ CREATE UNIQUE INDEX DOTATION_PK ON DOTATION (ID);
 CREATE INDEX DOTATION_STRUCTURE_FK_IDX ON DOTATION (STRUCTURE_ID);
 /
 
-CREATE INDEX DOTATION_TYPE_DOTATION_FK_IDX ON DOTATION (TYPE_RESSOURCE_ID);
+CREATE INDEX DOTATION_TYPE_RESSOURCE_FK ON DOTATION (TYPE_RESSOURCE_ID);
 /
 
 CREATE UNIQUE INDEX DOTATION__UN ON DOTATION (TYPE_RESSOURCE_ID, ANNEE_ID, ANNEE_CIVILE, STRUCTURE_ID, LIBELLE, HISTO_DESTRUCTION);
@@ -17686,6 +17994,12 @@ CREATE UNIQUE INDEX ELEMENT_MODULATEUR_PK ON ELEMENT_MODULATEUR (ID);
 CREATE UNIQUE INDEX ELEMENT_MODULATEUR__UN ON ELEMENT_MODULATEUR (ELEMENT_ID, MODULATEUR_ID, HISTO_DESTRUCTION);
 /
 
+CREATE INDEX ELEMENT_PEDAGOGIQUE_ANNEE_FK ON ELEMENT_PEDAGOGIQUE (ANNEE_ID);
+/
+
+CREATE INDEX ELEMENT_PEDAGOGIQUE_ETAPE_FK ON ELEMENT_PEDAGOGIQUE (ETAPE_ID);
+/
+
 CREATE INDEX ELEMENT_PEDAGOGIQUE_HCFK_IDX ON ELEMENT_PEDAGOGIQUE (HISTO_CREATEUR_ID);
 /
 
@@ -17695,9 +18009,15 @@ CREATE INDEX ELEMENT_PEDAGOGIQUE_HDFK_IDX ON ELEMENT_PEDAGOGIQUE (HISTO_DESTRUCT
 CREATE INDEX ELEMENT_PEDAGOGIQUE_HMFK_IDX ON ELEMENT_PEDAGOGIQUE (HISTO_MODIFICATEUR_ID);
 /
 
+CREATE INDEX ELEMENT_PEDAGOGIQUE_PERIODE_FK ON ELEMENT_PEDAGOGIQUE (PERIODE_ID);
+/
+
 CREATE UNIQUE INDEX ELEMENT_PEDAGOGIQUE_PK ON ELEMENT_PEDAGOGIQUE (ID);
 /
 
+CREATE INDEX ELEMENT_PEDAGOGIQUE_SOURCE_FK ON ELEMENT_PEDAGOGIQUE (SOURCE_ID);
+/
+
 CREATE INDEX ELEMENT_TAUX_REGIMES_HCFK_IDX ON ELEMENT_TAUX_REGIMES (HISTO_CREATEUR_ID);
 /
 
@@ -17710,6 +18030,9 @@ CREATE INDEX ELEMENT_TAUX_REGIMES_HMFK_IDX ON ELEMENT_TAUX_REGIMES (HISTO_MODIFI
 CREATE UNIQUE INDEX ELEMENT_TAUX_REGIMES_PK ON ELEMENT_TAUX_REGIMES (ID);
 /
 
+CREATE INDEX ELEMENT_TAUX_REGIMES_SOURCE_FK ON ELEMENT_TAUX_REGIMES (SOURCE_ID);
+/
+
 CREATE UNIQUE INDEX ELEMENT_TAUX_REGIMES__UN ON ELEMENT_TAUX_REGIMES (SOURCE_CODE, HISTO_DESTRUCTION);
 /
 
@@ -17725,9 +18048,6 @@ CREATE INDEX EM_MODULATEUR_FK_IDX ON ELEMENT_MODULATEUR (MODULATEUR_ID);
 CREATE INDEX EPS_FK_IDX ON ELEMENT_PEDAGOGIQUE (STRUCTURE_ID);
 /
 
-CREATE INDEX EP_ANNEE_FK_IDX ON ELEMENT_PEDAGOGIQUE (ANNEE_ID);
-/
-
 CREATE UNIQUE INDEX EP_CODE_UN ON ELEMENT_PEDAGOGIQUE (CODE, HISTO_DESTRUCTION, ANNEE_ID);
 /
 
@@ -17737,15 +18057,6 @@ CREATE UNIQUE INDEX EP_CODE__UN ON ELEMENT_PEDAGOGIQUE (SOURCE_CODE, ANNEE_ID);
 CREATE INDEX EP_DISCIPLINE_FK_IDX ON ELEMENT_PEDAGOGIQUE (DISCIPLINE_ID);
 /
 
-CREATE INDEX EP_ETAPE_FK_IDX ON ELEMENT_PEDAGOGIQUE (ETAPE_ID);
-/
-
-CREATE INDEX EP_PERIODE_FK_IDX ON ELEMENT_PEDAGOGIQUE (PERIODE_ID);
-/
-
-CREATE INDEX EP_SOURCE_FK_IDX ON ELEMENT_PEDAGOGIQUE (SOURCE_ID);
-/
-
 CREATE UNIQUE INDEX EP_SRC_UN ON ELEMENT_PEDAGOGIQUE (SOURCE_CODE, ANNEE_ID, HISTO_DESTRUCTION);
 /
 
@@ -17767,13 +18078,16 @@ CREATE INDEX ETABLISSEMENT_SOURCE_FK_IDX ON ETABLISSEMENT (SOURCE_ID);
 CREATE UNIQUE INDEX ETABLISSEMENT_SOURCE_ID_UN ON ETABLISSEMENT (SOURCE_CODE);
 /
 
-CREATE INDEX ETAPE_ANNEE_IDX ON ETAPE (ANNEE_ID);
+CREATE UNIQUE INDEX ETABLISSEMENT_SOURCE_UN ON ETABLISSEMENT (SOURCE_CODE, HISTO_DESTRUCTION);
+/
+
+CREATE INDEX ETAPE_ANNEE_FK ON ETAPE (ANNEE_ID);
 /
 
 CREATE UNIQUE INDEX ETAPE_CODE_UN ON ETAPE (CODE, ANNEE_ID, HISTO_DESTRUCTION);
 /
 
-CREATE INDEX ETAPE_DF_FK_IDX ON ETAPE (DOMAINE_FONCTIONNEL_ID);
+CREATE INDEX ETAPE_DOMAINE_FONCTIONNEL_FK ON ETAPE (DOMAINE_FONCTIONNEL_ID);
 /
 
 CREATE INDEX ETAPE_HCFK_IDX ON ETAPE (HISTO_CREATEUR_ID);
@@ -17815,9 +18129,6 @@ CREATE UNIQUE INDEX ETAT_VOLUME_HORAIRE__UN ON ETAT_VOLUME_HORAIRE (CODE);
 CREATE INDEX ETR_ELEMENT_FK_IDX ON ELEMENT_TAUX_REGIMES (ELEMENT_PEDAGOGIQUE_ID);
 /
 
-CREATE INDEX ETR_SOURCE_FK_IDX ON ELEMENT_TAUX_REGIMES (SOURCE_ID);
-/
-
 CREATE INDEX FICHIER_HCFK_IDX ON FICHIER (HISTO_CREATEUR_ID);
 /
 
@@ -17890,13 +18201,13 @@ CREATE UNIQUE INDEX FORMULE_TEST_VOLUME_HORAIRE_PK ON FORMULE_TEST_VOLUME_HORAIR
 CREATE UNIQUE INDEX FORMULE__UN ON FORMULE (LIBELLE);
 /
 
-CREATE INDEX FRES_EVH_FK_IDX ON FORMULE_RESULTAT (ETAT_VOLUME_HORAIRE_ID);
+CREATE INDEX FRES_ETAT_VOLUME_HORAIRE_FK ON FORMULE_RESULTAT (ETAT_VOLUME_HORAIRE_ID);
 /
 
 CREATE INDEX FRES_INTERVENANT_FK_IDX ON FORMULE_RESULTAT (INTERVENANT_ID);
 /
 
-CREATE INDEX FRES_TVH_FK_IDX ON FORMULE_RESULTAT (TYPE_VOLUME_HORAIRE_ID);
+CREATE INDEX FRES_TYPE_VOLUME_HORAIRE_FK ON FORMULE_RESULTAT (TYPE_VOLUME_HORAIRE_ID);
 /
 
 CREATE INDEX FRR_FORMULE_RESULTAT_FK_IDX ON FORMULE_RESULTAT_SERVICE_REF (FORMULE_RESULTAT_ID);
@@ -17905,7 +18216,7 @@ CREATE INDEX FRR_FORMULE_RESULTAT_FK_IDX ON FORMULE_RESULTAT_SERVICE_REF (FORMUL
 CREATE UNIQUE INDEX FRSR_PK ON FORMULE_RESULTAT_SERVICE_REF (ID);
 /
 
-CREATE INDEX FRSR_SR_FK_IDX ON FORMULE_RESULTAT_SERVICE_REF (SERVICE_REFERENTIEL_ID);
+CREATE INDEX FRSR_SERVICE_REFERENTIEL_FK ON FORMULE_RESULTAT_SERVICE_REF (SERVICE_REFERENTIEL_ID);
 /
 
 CREATE INDEX FRS_FORMULE_RESULTAT_FK_IDX ON FORMULE_RESULTAT_SERVICE (FORMULE_RESULTAT_ID);
@@ -17917,7 +18228,7 @@ CREATE INDEX FRS_SERVICE_FK_IDX ON FORMULE_RESULTAT_SERVICE (SERVICE_ID);
 CREATE INDEX FRVHR_FORMULE_RESULTAT_FK_IDX ON FORMULE_RESULTAT_VH_REF (FORMULE_RESULTAT_ID);
 /
 
-CREATE INDEX FRVHR_VHR_FK_IDX ON FORMULE_RESULTAT_VH_REF (VOLUME_HORAIRE_REF_ID);
+CREATE INDEX FRVHR_VOLUME_HORAIRE_REF_FK ON FORMULE_RESULTAT_VH_REF (VOLUME_HORAIRE_REF_ID);
 /
 
 CREATE INDEX FRVH_FORMULE_RESULTAT_FK_IDX ON FORMULE_RESULTAT_VH (FORMULE_RESULTAT_ID);
@@ -17941,7 +18252,7 @@ CREATE INDEX GRADE_HMFK_IDX ON GRADE (HISTO_MODIFICATEUR_ID);
 CREATE UNIQUE INDEX GRADE_PK ON GRADE (ID);
 /
 
-CREATE INDEX GROUPE_EP_FK_IDX ON GROUPE (ELEMENT_PEDAGOGIQUE_ID);
+CREATE INDEX GROUPE_ELEMENT_PEDAGOGIQUE_FK ON GROUPE (ELEMENT_PEDAGOGIQUE_ID);
 /
 
 CREATE INDEX GROUPE_HCFK_IDX ON GROUPE (HISTO_CREATEUR_ID);
@@ -17956,9 +18267,6 @@ CREATE INDEX GROUPE_HMFK_IDX ON GROUPE (HISTO_MODIFICATEUR_ID);
 CREATE UNIQUE INDEX GROUPE_PK ON GROUPE (ID);
 /
 
-CREATE INDEX GROUPE_TI_FK_IDX ON GROUPE (TYPE_INTERVENTION_ID);
-/
-
 CREATE INDEX GROUPE_TYPE_FORMATION_HCFK_IDX ON GROUPE_TYPE_FORMATION (HISTO_CREATEUR_ID);
 /
 
@@ -17971,10 +18279,13 @@ CREATE INDEX GROUPE_TYPE_FORMATION_HMFK_IDX ON GROUPE_TYPE_FORMATION (HISTO_MODI
 CREATE UNIQUE INDEX GROUPE_TYPE_FORMATION_PK ON GROUPE_TYPE_FORMATION (ID);
 /
 
-CREATE UNIQUE INDEX GROUPE__UN ON GROUPE (ELEMENT_PEDAGOGIQUE_ID, HISTO_DESTRUCTEUR_ID, TYPE_INTERVENTION_ID);
+CREATE INDEX GROUPE_TYPE_FORMATIO_SOURCE_FK ON GROUPE_TYPE_FORMATION (SOURCE_ID);
 /
 
-CREATE INDEX GTYPE_FORMATION_SOURCE_FK_IDX ON GROUPE_TYPE_FORMATION (SOURCE_ID);
+CREATE INDEX GROUPE_TYPE_INTERVENTION_FK ON GROUPE (TYPE_INTERVENTION_ID);
+/
+
+CREATE UNIQUE INDEX GROUPE__UN ON GROUPE (ELEMENT_PEDAGOGIQUE_ID, HISTO_DESTRUCTEUR_ID, TYPE_INTERVENTION_ID);
 /
 
 CREATE UNIQUE INDEX GTYPE_FORMATION_SOURCE_UN ON GROUPE_TYPE_FORMATION (SOURCE_CODE);
@@ -18001,7 +18312,7 @@ CREATE UNIQUE INDEX IMPORT_TABLES_PK ON IMPORT_TABLES (TABLE_NAME);
 CREATE UNIQUE INDEX INDICATEUR_PK ON INDICATEUR (ID);
 /
 
-CREATE INDEX INDIC_DIFF_DOSSIER_INT_FK_IDX ON INDIC_MODIF_DOSSIER (INTERVENANT_ID);
+CREATE INDEX INDIC_DIFF_DOSSIER_INT_FK ON INDIC_MODIF_DOSSIER (INTERVENANT_ID);
 /
 
 CREATE INDEX INDIC_MODIF_DOSSIER_HCFK_IDX ON INDIC_MODIF_DOSSIER (HISTO_CREATEUR_ID);
@@ -18025,7 +18336,7 @@ CREATE INDEX INTERVENANT_ANNEE_FK_IDX ON INTERVENANT (ANNEE_ID);
 CREATE UNIQUE INDEX INTERVENANT_CODE_UN ON INTERVENANT (CODE, ANNEE_ID);
 /
 
-CREATE INDEX INTERVENANT_DEP_NAISSANCE_IDX ON INTERVENANT (DEP_NAISSANCE_ID);
+CREATE INDEX INTERVENANT_DEPARTEMENT_FK ON INTERVENANT (DEP_NAISSANCE_ID);
 /
 
 CREATE INDEX INTERVENANT_DISCIPLINE_FK_IDX ON INTERVENANT (DISCIPLINE_ID);
@@ -18052,10 +18363,10 @@ CREATE INDEX INTERVENANT_NOM_PATRO_IDX ON INTERVENANT (NOM_PATRONYMIQUE);
 CREATE INDEX INTERVENANT_NOM_USUEL_IDX ON INTERVENANT (NOM_USUEL);
 /
 
-CREATE INDEX INTERVENANT_PAYS_NAISSANCE_IDX ON INTERVENANT (PAYS_NAISSANCE_ID);
+CREATE INDEX INTERVENANT_PAYS_NAISS_FK ON INTERVENANT (PAYS_NAISSANCE_ID);
 /
 
-CREATE INDEX INTERVENANT_PAYS_NAT_IDX ON INTERVENANT (PAYS_NATIONALITE_ID);
+CREATE INDEX INTERVENANT_PAYS_NAT_FK ON INTERVENANT (PAYS_NATIONALITE_ID);
 /
 
 CREATE UNIQUE INDEX INTERVENANT_PK ON INTERVENANT (ID);
@@ -18070,9 +18381,6 @@ CREATE INDEX INTERVENANT_RECHERCHE_IDX ON INTERVENANT (CRITERE_RECHERCHE);
 CREATE UNIQUE INDEX INTERVENANT_SAISIE_PK ON INTERVENANT_SAISIE (ID);
 /
 
-CREATE INDEX INTERVENANT_SAISIE_STT_IDX ON INTERVENANT_SAISIE (STATUT_ID);
-/
-
 CREATE UNIQUE INDEX INTERVENANT_SAISIE__UN ON INTERVENANT_SAISIE (INTERVENANT_ID);
 /
 
@@ -18082,6 +18390,9 @@ CREATE INDEX INTERVENANT_SOURCE_CODE_IDX ON INTERVENANT (SOURCE_CODE);
 CREATE INDEX INTERVENANT_SOURCE_FK_IDX ON INTERVENANT (SOURCE_ID);
 /
 
+CREATE UNIQUE INDEX INTERVENANT_SOURCE_UN ON INTERVENANT (SOURCE_CODE, ANNEE_ID, HISTO_DESTRUCTION);
+/
+
 CREATE UNIQUE INDEX INTERVENANT_SOURCE__UN ON INTERVENANT (SOURCE_CODE, ANNEE_ID);
 /
 
@@ -18094,31 +18405,34 @@ CREATE INDEX INTERVENANT_STRUCTURE_FK_IDX ON INTERVENANT (STRUCTURE_ID);
 CREATE UNIQUE INDEX INTERVENANT_UTIL_CODE_UN ON INTERVENANT (UTILISATEUR_CODE, ANNEE_ID, STATUT_ID);
 /
 
-CREATE INDEX LIEN_HISTO_CREATEUR_IDX ON LIEN (HISTO_CREATEUR_ID);
+CREATE INDEX IS_STATUT_INTERVENANT_FK ON INTERVENANT_SAISIE (STATUT_ID);
+/
+
+CREATE INDEX LIEN_HCFK ON LIEN (HISTO_CREATEUR_ID);
 /
 
-CREATE INDEX LIEN_HISTO_DESTRUCTEUR_IDX ON LIEN (HISTO_DESTRUCTEUR_ID);
+CREATE INDEX LIEN_HDFK ON LIEN (HISTO_DESTRUCTEUR_ID);
 /
 
-CREATE INDEX LIEN_HISTO_MODIFICATEUR_IDX ON LIEN (HISTO_MODIFICATEUR_ID);
+CREATE INDEX LIEN_HMFK ON LIEN (HISTO_MODIFICATEUR_ID);
 /
 
-CREATE INDEX LIEN_NOEUD_INF_IDX ON LIEN (NOEUD_INF_ID);
+CREATE INDEX LIEN_NOEUD_INF_FK ON LIEN (NOEUD_INF_ID);
 /
 
-CREATE INDEX LIEN_NOEUD_SUP_IDX ON LIEN (NOEUD_SUP_ID);
+CREATE INDEX LIEN_NOEUD_SUP_FK ON LIEN (NOEUD_SUP_ID);
 /
 
 CREATE UNIQUE INDEX LIEN_PK ON LIEN (ID);
 /
 
-CREATE INDEX LIEN_SOURCE_IDX ON LIEN (SOURCE_ID);
+CREATE INDEX LIEN_SOURCE_FK ON LIEN (SOURCE_ID);
 /
 
 CREATE UNIQUE INDEX LIEN_SRC_UN ON LIEN (SOURCE_CODE, HISTO_DESTRUCTION);
 /
 
-CREATE INDEX LIEN_STRUCTURE_IDX ON LIEN (STRUCTURE_ID);
+CREATE INDEX LIEN_STRUCTURE_FK ON LIEN (STRUCTURE_ID);
 /
 
 CREATE INDEX MEP_CENTRE_COUT_FK_IDX ON MISE_EN_PAIEMENT (CENTRE_COUT_ID);
@@ -18133,15 +18447,9 @@ CREATE INDEX MEP_FR_SERVICE_FK_IDX ON MISE_EN_PAIEMENT (FORMULE_RES_SERVICE_ID);
 CREATE INDEX MEP_FR_SERVICE_REF_FK_IDX ON MISE_EN_PAIEMENT (FORMULE_RES_SERVICE_REF_ID);
 /
 
-CREATE INDEX MEP_PERIODE_FK_IDX ON MISE_EN_PAIEMENT (PERIODE_PAIEMENT_ID);
-/
-
 CREATE INDEX MEP_TYPE_HEURES_FK_IDX ON MISE_EN_PAIEMENT (TYPE_HEURES_ID);
 /
 
-CREATE INDEX MEP_VALIDATION_FK_IDX ON MISE_EN_PAIEMENT (VALIDATION_ID);
-/
-
 CREATE INDEX MISE_EN_PAIEMENT_HCFK_IDX ON MISE_EN_PAIEMENT (HISTO_CREATEUR_ID);
 /
 
@@ -18151,19 +18459,25 @@ CREATE INDEX MISE_EN_PAIEMENT_HDFK_IDX ON MISE_EN_PAIEMENT (HISTO_DESTRUCTEUR_ID
 CREATE INDEX MISE_EN_PAIEMENT_HMFK_IDX ON MISE_EN_PAIEMENT (HISTO_MODIFICATEUR_ID);
 /
 
+CREATE INDEX MISE_EN_PAIEMENT_PERIODE_FK ON MISE_EN_PAIEMENT (PERIODE_PAIEMENT_ID);
+/
+
 CREATE UNIQUE INDEX MISE_EN_PAIEMENT_PK ON MISE_EN_PAIEMENT (ID);
 /
 
-CREATE INDEX MMSD_HCFK_IDX ON MOTIF_MODIFICATION_SERVICE (HISTO_CREATEUR_ID);
+CREATE INDEX MISE_EN_PAIEMENT_VALIDATION_FK ON MISE_EN_PAIEMENT (VALIDATION_ID);
 /
 
-CREATE INDEX MMSD_HDFK_IDX ON MOTIF_MODIFICATION_SERVICE (HISTO_DESTRUCTEUR_ID);
+CREATE UNIQUE INDEX MODELE_CONTRAT_PK ON MODELE_CONTRAT (ID);
 /
 
-CREATE INDEX MMSD_HMFK_IDX ON MOTIF_MODIFICATION_SERVICE (HISTO_MODIFICATEUR_ID);
+CREATE INDEX MODIFICATION_SERVICE_DU_HCFK ON MODIFICATION_SERVICE_DU (HISTO_CREATEUR_ID);
 /
 
-CREATE UNIQUE INDEX MODELE_CONTRAT_PK ON MODELE_CONTRAT (ID);
+CREATE INDEX MODIFICATION_SERVICE_DU_HDFK ON MODIFICATION_SERVICE_DU (HISTO_DESTRUCTEUR_ID);
+/
+
+CREATE INDEX MODIFICATION_SERVICE_DU_HMFK ON MODIFICATION_SERVICE_DU (HISTO_MODIFICATEUR_ID);
 /
 
 CREATE UNIQUE INDEX MODIFICATION_SERVICE_DU_PK ON MODIFICATION_SERVICE_DU (ID);
@@ -18181,7 +18495,7 @@ CREATE INDEX MODULATEUR_HMFK_IDX ON MODULATEUR (HISTO_MODIFICATEUR_ID);
 CREATE UNIQUE INDEX MODULATEUR_PK ON MODULATEUR (ID);
 /
 
-CREATE INDEX MODULATEUR_TM_FK_IDX ON MODULATEUR (TYPE_MODULATEUR_ID);
+CREATE INDEX MODULATEUR_TYPE_MODULATEUR_FK ON MODULATEUR (TYPE_MODULATEUR_ID);
 /
 
 CREATE UNIQUE INDEX MODULATEUR__UN ON MODULATEUR (CODE);
@@ -18190,61 +18504,61 @@ CREATE UNIQUE INDEX MODULATEUR__UN ON MODULATEUR (CODE);
 CREATE UNIQUE INDEX MOTIF_MODIFICATION_SERVICE_PK ON MOTIF_MODIFICATION_SERVICE (ID);
 /
 
-CREATE UNIQUE INDEX MOTIF_MODIFICATION_SERVIC_UK1 ON MOTIF_MODIFICATION_SERVICE (CODE);
+CREATE INDEX MOTIF_MODIFICATION_SERVIC_HCFK ON MOTIF_MODIFICATION_SERVICE (HISTO_CREATEUR_ID);
 /
 
-CREATE INDEX MOTIF_NON_PAIEMENT_HCFK_IDX ON MOTIF_NON_PAIEMENT (HISTO_CREATEUR_ID);
+CREATE INDEX MOTIF_MODIFICATION_SERVIC_HDFK ON MOTIF_MODIFICATION_SERVICE (HISTO_DESTRUCTEUR_ID);
 /
 
-CREATE INDEX MOTIF_NON_PAIEMENT_HDFK_IDX ON MOTIF_NON_PAIEMENT (HISTO_DESTRUCTEUR_ID);
+CREATE INDEX MOTIF_MODIFICATION_SERVIC_HMFK ON MOTIF_MODIFICATION_SERVICE (HISTO_MODIFICATEUR_ID);
 /
 
-CREATE INDEX MOTIF_NON_PAIEMENT_HMFK_IDX ON MOTIF_NON_PAIEMENT (HISTO_MODIFICATEUR_ID);
+CREATE UNIQUE INDEX MOTIF_MODIFICATION_SERVIC_UK1 ON MOTIF_MODIFICATION_SERVICE (CODE);
 /
 
-CREATE UNIQUE INDEX MOTIF_NON_PAIEMENT_PK ON MOTIF_NON_PAIEMENT (ID);
+CREATE INDEX MOTIF_NON_PAIEMENT_HCFK_IDX ON MOTIF_NON_PAIEMENT (HISTO_CREATEUR_ID);
 /
 
-CREATE INDEX MSD_HCFK_IDX ON MODIFICATION_SERVICE_DU (HISTO_CREATEUR_ID);
+CREATE INDEX MOTIF_NON_PAIEMENT_HDFK_IDX ON MOTIF_NON_PAIEMENT (HISTO_DESTRUCTEUR_ID);
 /
 
-CREATE INDEX MSD_HDFK_IDX ON MODIFICATION_SERVICE_DU (HISTO_DESTRUCTEUR_ID);
+CREATE INDEX MOTIF_NON_PAIEMENT_HMFK_IDX ON MOTIF_NON_PAIEMENT (HISTO_MODIFICATEUR_ID);
 /
 
-CREATE INDEX MSD_HMFK_IDX ON MODIFICATION_SERVICE_DU (HISTO_MODIFICATEUR_ID);
+CREATE UNIQUE INDEX MOTIF_NON_PAIEMENT_PK ON MOTIF_NON_PAIEMENT (ID);
 /
 
 CREATE INDEX MSD_INTERVENANT_FK_IDX ON MODIFICATION_SERVICE_DU (INTERVENANT_ID);
 /
 
-CREATE INDEX NOEUD_ANNEE_IDX ON NOEUD (ANNEE_ID);
+CREATE INDEX NOEUD_ANNEE_FK ON NOEUD (ANNEE_ID);
 /
 
-CREATE INDEX NOEUD_EP_IDX ON NOEUD (ELEMENT_PEDAGOGIQUE_ID);
+CREATE INDEX NOEUD_ELEMENT_PEDAGOGIQUE_FK ON NOEUD (ELEMENT_PEDAGOGIQUE_ID);
 /
 
-CREATE INDEX NOEUD_ETAPE_IDX ON NOEUD (ETAPE_ID);
+CREATE INDEX NOEUD_ETAPE_FK ON NOEUD (ETAPE_ID);
 /
 
-CREATE INDEX NOEUD_HISTO_CREATEUR_IDX ON NOEUD (HISTO_CREATEUR_ID);
+CREATE INDEX NOEUD_HCFK ON NOEUD (HISTO_CREATEUR_ID);
 /
 
-CREATE INDEX NOEUD_HISTO_DESTRUCTEUR_IDX ON NOEUD (HISTO_DESTRUCTEUR_ID);
+CREATE INDEX NOEUD_HDFK ON NOEUD (HISTO_DESTRUCTEUR_ID);
 /
 
-CREATE INDEX NOEUD_HISTO_MODIFICATEUR_IDX ON NOEUD (HISTO_MODIFICATEUR_ID);
+CREATE INDEX NOEUD_HMFK ON NOEUD (HISTO_MODIFICATEUR_ID);
 /
 
 CREATE UNIQUE INDEX NOEUD_PK ON NOEUD (ID);
 /
 
-CREATE INDEX NOEUD_SOURCE_IDX ON NOEUD (SOURCE_ID);
+CREATE INDEX NOEUD_SOURCE_FK ON NOEUD (SOURCE_ID);
 /
 
 CREATE UNIQUE INDEX NOEUD_SRC_UN ON NOEUD (SOURCE_CODE, HISTO_DESTRUCTION);
 /
 
-CREATE INDEX NOEUD_STRUCTURE_IDX ON NOEUD (STRUCTURE_ID);
+CREATE INDEX NOEUD_STRUCTURE_FK ON NOEUD (STRUCTURE_ID);
 /
 
 CREATE UNIQUE INDEX NOTIFICATION_INDICATEUR__UN ON NOTIFICATION_INDICATEUR (INDICATEUR_ID, AFFECTATION_ID);
@@ -18271,9 +18585,6 @@ CREATE INDEX PARAMETRE_HMFK_IDX ON PARAMETRE (HISTO_MODIFICATEUR_ID);
 CREATE UNIQUE INDEX PARAMETRE_PK ON PARAMETRE (ID);
 /
 
-CREATE UNIQUE INDEX PARAMETRE_UK ON PARAMETRE (NOM);
-/
-
 CREATE INDEX PAYS_HCFK_IDX ON PAYS (HISTO_CREATEUR_ID);
 /
 
@@ -18289,6 +18600,9 @@ CREATE UNIQUE INDEX PAYS_PK ON PAYS (ID);
 CREATE INDEX PAYS_SOURCE_FK_IDX ON PAYS (SOURCE_ID);
 /
 
+CREATE UNIQUE INDEX PAYS_SRC_UN ON PAYS (SOURCE_ID, SOURCE_CODE, HISTO_DESTRUCTION);
+/
+
 CREATE UNIQUE INDEX PERIMETRE_CODE_UN ON PERIMETRE (CODE);
 /
 
@@ -18331,6 +18645,9 @@ CREATE INDEX PIECE_JOINTE_HDFK_IDX ON PIECE_JOINTE (HISTO_DESTRUCTEUR_ID);
 CREATE INDEX PIECE_JOINTE_HMFK_IDX ON PIECE_JOINTE (HISTO_MODIFICATEUR_ID);
 /
 
+CREATE INDEX PIECE_JOINTE_INTERVENANT_FK ON PIECE_JOINTE (INTERVENANT_ID);
+/
+
 CREATE UNIQUE INDEX PIECE_JOINTE_PK ON PIECE_JOINTE (ID);
 /
 
@@ -18340,9 +18657,6 @@ CREATE INDEX PIECE_JOINTE_VFK_IDX ON PIECE_JOINTE (VALIDATION_ID);
 CREATE UNIQUE INDEX PIECE_JOINTE__UN ON PIECE_JOINTE (TYPE_PIECE_JOINTE_ID, INTERVENANT_ID, HISTO_DESTRUCTION);
 /
 
-CREATE INDEX PJ_DOSSIER_FK_IDX ON PIECE_JOINTE (INTERVENANT_ID);
-/
-
 CREATE INDEX PJ_TYPE_PIECE_JOINTE_FK_IDX ON PIECE_JOINTE (TYPE_PIECE_JOINTE_ID);
 /
 
@@ -18391,10 +18705,10 @@ CREATE UNIQUE INDEX ROLE_PK ON ROLE (ID);
 CREATE UNIQUE INDEX ROLE_PRIVILEGE_PK ON ROLE_PRIVILEGE (PRIVILEGE_ID, ROLE_ID);
 /
 
-CREATE INDEX ROLE_PRIVILEGE_ROLE_FK_IDX ON ROLE_PRIVILEGE (ROLE_ID);
+CREATE INDEX ROLE_PRIVILEGE_PRIVILEGE_FK ON ROLE_PRIVILEGE (PRIVILEGE_ID);
 /
 
-CREATE INDEX RP_PRIVILEGE_FK_IDX ON ROLE_PRIVILEGE (PRIVILEGE_ID);
+CREATE INDEX ROLE_PRIVILEGE_ROLE_FK_IDX ON ROLE_PRIVILEGE (ROLE_ID);
 /
 
 CREATE INDEX RSV_TYPE_INTERVENANT_FK_IDX ON REGLE_STRUCTURE_VALIDATION (TYPE_INTERVENANT_ID);
@@ -18403,34 +18717,34 @@ CREATE INDEX RSV_TYPE_INTERVENANT_FK_IDX ON REGLE_STRUCTURE_VALIDATION (TYPE_INT
 CREATE INDEX RSV_TYPE_VOLUME_HORAIRE_FK_IDX ON REGLE_STRUCTURE_VALIDATION (TYPE_VOLUME_HORAIRE_ID);
 /
 
-CREATE INDEX SCENARIO_HC_IDX ON SCENARIO (HISTO_CREATEUR_ID);
+CREATE INDEX SCENARIO_HCFK ON SCENARIO (HISTO_CREATEUR_ID);
 /
 
-CREATE INDEX SCENARIO_HD_IDX ON SCENARIO (HISTO_DESTRUCTEUR_ID);
+CREATE INDEX SCENARIO_HDFK ON SCENARIO (HISTO_DESTRUCTEUR_ID);
 /
 
-CREATE INDEX SCENARIO_HM_IDX ON SCENARIO (HISTO_MODIFICATEUR_ID);
+CREATE INDEX SCENARIO_HMFK ON SCENARIO (HISTO_MODIFICATEUR_ID);
 /
 
-CREATE INDEX SCENARIO_LIEN_HC_IDX ON SCENARIO_LIEN (HISTO_CREATEUR_ID);
+CREATE INDEX SCENARIO_LIEN_HCFK ON SCENARIO_LIEN (HISTO_CREATEUR_ID);
 /
 
-CREATE INDEX SCENARIO_LIEN_HD_IDX ON SCENARIO_LIEN (HISTO_DESTRUCTEUR_ID);
+CREATE INDEX SCENARIO_LIEN_HDFK ON SCENARIO_LIEN (HISTO_DESTRUCTEUR_ID);
 /
 
-CREATE INDEX SCENARIO_LIEN_HM_IDX ON SCENARIO_LIEN (HISTO_MODIFICATEUR_ID);
+CREATE INDEX SCENARIO_LIEN_HMFK ON SCENARIO_LIEN (HISTO_MODIFICATEUR_ID);
 /
 
-CREATE INDEX SCENARIO_LIEN_LIEN_IDX ON SCENARIO_LIEN (LIEN_ID);
+CREATE INDEX SCENARIO_LIEN_LIEN_FK ON SCENARIO_LIEN (LIEN_ID);
 /
 
 CREATE UNIQUE INDEX SCENARIO_LIEN_PK ON SCENARIO_LIEN (ID);
 /
 
-CREATE INDEX SCENARIO_LIEN_SCENARIO_IDX ON SCENARIO_LIEN (SCENARIO_ID);
+CREATE INDEX SCENARIO_LIEN_SCENARIO_FK ON SCENARIO_LIEN (SCENARIO_ID);
 /
 
-CREATE INDEX SCENARIO_LIEN_SOURCE_IDX ON SCENARIO_LIEN (SOURCE_ID);
+CREATE INDEX SCENARIO_LIEN_SOURCE_FK ON SCENARIO_LIEN (SOURCE_ID);
 /
 
 CREATE UNIQUE INDEX SCENARIO_LIEN_SRC_UN ON SCENARIO_LIEN (SOURCE_CODE, HISTO_DESTRUCTION);
@@ -18442,43 +18756,28 @@ CREATE UNIQUE INDEX SCENARIO_LIEN__UN ON SCENARIO_LIEN (SCENARIO_ID, LIEN_ID, HI
 CREATE UNIQUE INDEX SCENARIO_NOEUD_EFFECTIF_PK ON SCENARIO_NOEUD_EFFECTIF (ID);
 /
 
-CREATE INDEX SCENARIO_NOEUD_EFFECTIF_SN_IDX ON SCENARIO_NOEUD_EFFECTIF (SCENARIO_NOEUD_ID);
-/
-
-CREATE INDEX SCENARIO_NOEUD_EFFECTIF_TH_IDX ON SCENARIO_NOEUD_EFFECTIF (TYPE_HEURES_ID);
-/
-
-CREATE INDEX SCENARIO_NOEUD_EFF_ETP_IDX ON SCENARIO_NOEUD_EFFECTIF (ETAPE_ID);
-/
-
-CREATE INDEX SCENARIO_NOEUD_HC_IDX ON SCENARIO_NOEUD (HISTO_CREATEUR_ID);
+CREATE INDEX SCENARIO_NOEUD_HCFK ON SCENARIO_NOEUD (HISTO_CREATEUR_ID);
 /
 
-CREATE INDEX SCENARIO_NOEUD_HD_IDX ON SCENARIO_NOEUD (HISTO_DESTRUCTEUR_ID);
+CREATE INDEX SCENARIO_NOEUD_HDFK ON SCENARIO_NOEUD (HISTO_DESTRUCTEUR_ID);
 /
 
-CREATE INDEX SCENARIO_NOEUD_HM_IDX ON SCENARIO_NOEUD (HISTO_MODIFICATEUR_ID);
+CREATE INDEX SCENARIO_NOEUD_HMFK ON SCENARIO_NOEUD (HISTO_MODIFICATEUR_ID);
 /
 
-CREATE INDEX SCENARIO_NOEUD_NOEUD_IDX ON SCENARIO_NOEUD (NOEUD_ID);
+CREATE INDEX SCENARIO_NOEUD_NOEUD_FK ON SCENARIO_NOEUD (NOEUD_ID);
 /
 
 CREATE UNIQUE INDEX SCENARIO_NOEUD_PK ON SCENARIO_NOEUD (ID);
 /
 
-CREATE INDEX SCENARIO_NOEUD_SCENARIO_IDX ON SCENARIO_NOEUD (SCENARIO_ID);
+CREATE INDEX SCENARIO_NOEUD_SCENARIO_FK ON SCENARIO_NOEUD (SCENARIO_ID);
 /
 
 CREATE UNIQUE INDEX SCENARIO_NOEUD_SEUIL_PK ON SCENARIO_NOEUD_SEUIL (ID);
 /
 
-CREATE INDEX SCENARIO_NOEUD_SEUIL_SN_IDX ON SCENARIO_NOEUD_SEUIL (SCENARIO_NOEUD_ID);
-/
-
-CREATE INDEX SCENARIO_NOEUD_SEUIL_TI_IDX ON SCENARIO_NOEUD_SEUIL (TYPE_INTERVENTION_ID);
-/
-
-CREATE INDEX SCENARIO_NOEUD_SOURCE_IDX ON SCENARIO_NOEUD (SOURCE_ID);
+CREATE INDEX SCENARIO_NOEUD_SOURCE_FK ON SCENARIO_NOEUD (SOURCE_ID);
 /
 
 CREATE UNIQUE INDEX SCENARIO_NOEUD_SRC_UN ON SCENARIO_NOEUD (SOURCE_CODE, HISTO_DESTRUCTION);
@@ -18490,7 +18789,10 @@ CREATE UNIQUE INDEX SCENARIO_NOEUD__UN ON SCENARIO_NOEUD (SCENARIO_ID, NOEUD_ID,
 CREATE UNIQUE INDEX SCENARIO_PK ON SCENARIO (ID);
 /
 
-CREATE INDEX SCENARIO_STRUCTURE_IDX ON SCENARIO (STRUCTURE_ID);
+CREATE INDEX SCENARIO_STRUCTURE_FK ON SCENARIO (STRUCTURE_ID);
+/
+
+CREATE INDEX SERVICE_ELEMENT_PEDAGOGIQUE_FK ON SERVICE (ELEMENT_PEDAGOGIQUE_ID);
 /
 
 CREATE INDEX SERVICE_ETABLISSEMENT_FK_IDX ON SERVICE (ETABLISSEMENT_ID);
@@ -18532,34 +18834,46 @@ CREATE UNIQUE INDEX SERVICE_SOURCE_UN ON SERVICE (SOURCE_CODE, HISTO_DESTRUCTION
 CREATE UNIQUE INDEX SERVICE__UN ON SERVICE (INTERVENANT_ID, ELEMENT_PEDAGOGIQUE_ID, ETABLISSEMENT_ID, HISTO_DESTRUCTION);
 /
 
-CREATE INDEX SEUIL_CHARGE_ANNEE_IDX ON SEUIL_CHARGE (ANNEE_ID);
+CREATE INDEX SEUIL_CHARGE_ANNEE_FK ON SEUIL_CHARGE (ANNEE_ID);
 /
 
-CREATE INDEX SEUIL_CHARGE_GTF_IDX ON SEUIL_CHARGE (GROUPE_TYPE_FORMATION_ID);
+CREATE UNIQUE INDEX SEUIL_CHARGE_PK ON SEUIL_CHARGE (ID);
 /
 
-CREATE INDEX SEUIL_CHARGE_HC_IDX ON SEUIL_CHARGE (HISTO_CREATEUR_ID);
+CREATE INDEX SEUIL_CH_GT_FORMATION_FK ON SEUIL_CHARGE (GROUPE_TYPE_FORMATION_ID);
 /
 
-CREATE INDEX SEUIL_CHARGE_HD_IDX ON SEUIL_CHARGE (HISTO_DESTRUCTEUR_ID);
+CREATE INDEX SEUIL_CH_SCENARIO_FK ON SEUIL_CHARGE (SCENARIO_ID);
 /
 
-CREATE INDEX SEUIL_CHARGE_HM_IDX ON SEUIL_CHARGE (HISTO_MODIFICATEUR_ID);
+CREATE INDEX SEUIL_CH_STRUCTURE_FK ON SEUIL_CHARGE (STRUCTURE_ID);
 /
 
-CREATE UNIQUE INDEX SEUIL_CHARGE_PK ON SEUIL_CHARGE (ID);
+CREATE INDEX SEUIL_CH_TYPE_INTERVENTION_FK ON SEUIL_CHARGE (TYPE_INTERVENTION_ID);
+/
+
+CREATE INDEX SEUIL_CH_UTILISATEUR_HCFK ON SEUIL_CHARGE (HISTO_CREATEUR_ID);
+/
+
+CREATE INDEX SEUIL_CH_UTILISATEUR_HDFK ON SEUIL_CHARGE (HISTO_DESTRUCTEUR_ID);
 /
 
-CREATE INDEX SEUIL_CHARGE_SCENARIO_IDX ON SEUIL_CHARGE (SCENARIO_ID);
+CREATE INDEX SEUIL_CH_UTILISATEUR_HMFK ON SEUIL_CHARGE (HISTO_MODIFICATEUR_ID);
 /
 
-CREATE INDEX SEUIL_CHARGE_STRUCTURE_IDX ON SEUIL_CHARGE (STRUCTURE_ID);
+CREATE INDEX SNE_ETAPE_FK ON SCENARIO_NOEUD_EFFECTIF (ETAPE_ID);
 /
 
-CREATE INDEX SEUIL_CHARGE_TI_IDX ON SEUIL_CHARGE (TYPE_INTERVENTION_ID);
+CREATE INDEX SNE_SCENARIO_NOEUD_FK ON SCENARIO_NOEUD_EFFECTIF (SCENARIO_NOEUD_ID);
 /
 
-CREATE INDEX SI_SOURCE_FK_IDX ON STATUT_INTERVENANT (SOURCE_ID);
+CREATE INDEX SNE_TYPE_HEURES_FK ON SCENARIO_NOEUD_EFFECTIF (TYPE_HEURES_ID);
+/
+
+CREATE INDEX SNS_SCENARIO_NOEUD_FK ON SCENARIO_NOEUD_SEUIL (SCENARIO_NOEUD_ID);
+/
+
+CREATE INDEX SNS_TYPE_INTERVENTION_FK ON SCENARIO_NOEUD_SEUIL (TYPE_INTERVENTION_ID);
 /
 
 CREATE UNIQUE INDEX SOURCE_CODE_UN ON SOURCE (CODE);
@@ -18592,6 +18906,9 @@ CREATE UNIQUE INDEX STATUT_INTERVENANT_ODRE_UN ON STATUT_INTERVENANT (HISTO_DEST
 CREATE UNIQUE INDEX STATUT_INTERVENANT_PK ON STATUT_INTERVENANT (ID);
 /
 
+CREATE INDEX STATUT_INTERVENANT_SOURCE_FK ON STATUT_INTERVENANT (SOURCE_ID);
+/
+
 CREATE INDEX STATUT_INTERVENANT_TYPE_FK_IDX ON STATUT_INTERVENANT (TYPE_INTERVENANT_ID);
 /
 
@@ -18628,9 +18945,6 @@ CREATE UNIQUE INDEX STRUCTURE_SOURCE_CODE_UN ON STRUCTURE (SOURCE_CODE, HISTO_DE
 CREATE UNIQUE INDEX SYNC_LOG_PK ON SYNC_LOG (ID);
 /
 
-CREATE INDEX S_ELEMENT_PEDAGOGIQUE_FK_IDX ON SERVICE (ELEMENT_PEDAGOGIQUE_ID);
-/
-
 CREATE INDEX TAS_STATUT_INTERVENANT_FK_IDX ON TYPE_AGREMENT_STATUT (STATUT_INTERVENANT_ID);
 /
 
@@ -18682,7 +18996,7 @@ CREATE UNIQUE INDEX TBL_CHARGENS_SEUILS_DEF__UN ON TBL_CHARGENS_SEUILS_DEF (SCEN
 CREATE UNIQUE INDEX TBL_CHARGENS__UN ON TBL_CHARGENS (ANNEE_ID, NOEUD_ID, SCENARIO_ID, TYPE_HEURES_ID, TYPE_INTERVENTION_ID, ELEMENT_PEDAGOGIQUE_ID, ETAPE_ID, ETAPE_ENS_ID, STRUCTURE_ID, GROUPE_TYPE_FORMATION_ID);
 /
 
-CREATE INDEX TBL_CLOTURE_REALISE_ANN_FK_IDX ON TBL_CLOTURE_REALISE (ANNEE_ID);
+CREATE INDEX TBL_CLOTURE_REALISE_ANNEE_FK ON TBL_CLOTURE_REALISE (ANNEE_ID);
 /
 
 CREATE UNIQUE INDEX TBL_CLOTURE_REALISE_PK_IDX ON TBL_CLOTURE_REALISE (ID);
@@ -18706,22 +19020,22 @@ CREATE INDEX TBL_CONTRAT_STRUCTURE_FK_IDX ON TBL_CONTRAT (STRUCTURE_ID);
 CREATE UNIQUE INDEX TBL_CONTRAT__UN_IDX ON TBL_CONTRAT (INTERVENANT_ID, STRUCTURE_ID, TO_DELETE);
 /
 
-CREATE INDEX TBL_CSD_ANNEE_IDX ON TBL_CHARGENS_SEUILS_DEF (ANNEE_ID);
+CREATE INDEX TBL_CSD_ANNEE_FK ON TBL_CHARGENS_SEUILS_DEF (ANNEE_ID);
 /
 
-CREATE INDEX TBL_CSD_GTF_IDX ON TBL_CHARGENS_SEUILS_DEF (GROUPE_TYPE_FORMATION_ID);
+CREATE INDEX TBL_CSD_GTF_FK ON TBL_CHARGENS_SEUILS_DEF (GROUPE_TYPE_FORMATION_ID);
 /
 
-CREATE INDEX TBL_CSD_SCENARIO_IDX ON TBL_CHARGENS_SEUILS_DEF (SCENARIO_ID);
+CREATE INDEX TBL_CSD_SCENARIO_FK ON TBL_CHARGENS_SEUILS_DEF (SCENARIO_ID);
 /
 
-CREATE INDEX TBL_CSD_STRUCTURE_IDX ON TBL_CHARGENS_SEUILS_DEF (STRUCTURE_ID);
+CREATE INDEX TBL_CSD_STRUCTURE_FK ON TBL_CHARGENS_SEUILS_DEF (STRUCTURE_ID);
 /
 
-CREATE INDEX TBL_CSD_TYPE_INTERVENTION_IDX ON TBL_CHARGENS_SEUILS_DEF (TYPE_INTERVENTION_ID);
+CREATE INDEX TBL_CSD_TYPE_INTERVENTION_FK ON TBL_CHARGENS_SEUILS_DEF (TYPE_INTERVENTION_ID);
 /
 
-CREATE INDEX TBL_DEMS_TBL_NAME_IDX ON TBL_DEMS (TBL_NAME);
+CREATE INDEX TBL_DEMS_TBL_FK ON TBL_DEMS (TBL_NAME);
 /
 
 CREATE UNIQUE INDEX TBL_DMEP_LIQUIDATION_PK_IDX ON TBL_DMEP_LIQUIDATION (ID);
@@ -18736,7 +19050,7 @@ CREATE INDEX TBL_DMLIQ_ANNEE_FK_IDX ON TBL_DMEP_LIQUIDATION (ANNEE_ID);
 CREATE INDEX TBL_DMLIQ_STRUCTURE_FK_IDX ON TBL_DMEP_LIQUIDATION (STRUCTURE_ID);
 /
 
-CREATE INDEX TBL_DMLIQ_TYPE_RESSOUR_FK ON TBL_DMEP_LIQUIDATION (TYPE_RESSOURCE_ID);
+CREATE INDEX TBL_DMLIQ_TYPE_RESSOURCE_FK ON TBL_DMEP_LIQUIDATION (TYPE_RESSOURCE_ID);
 /
 
 CREATE INDEX TBL_DOSSIER_ANNEE_FK_IDX ON TBL_DOSSIER (ANNEE_ID);
@@ -18757,25 +19071,25 @@ CREATE UNIQUE INDEX TBL_DOSSIER__UN_IDX ON TBL_DOSSIER (INTERVENANT_ID, TO_DELET
 CREATE INDEX TBL_LIEN_ACTIF_IDX ON TBL_LIEN (ACTIF);
 /
 
-CREATE INDEX TBL_LIEN_LIEN_IDX ON TBL_LIEN (LIEN_ID);
+CREATE INDEX TBL_LIEN_LIEN_FK ON TBL_LIEN (LIEN_ID);
 /
 
-CREATE INDEX TBL_LIEN_NOEUD_INF_IDX ON TBL_LIEN (NOEUD_INF_ID);
+CREATE INDEX TBL_LIEN_NOEUD_INF_FK ON TBL_LIEN (NOEUD_INF_ID);
 /
 
-CREATE INDEX TBL_LIEN_NOEUD_SUP_IDX ON TBL_LIEN (NOEUD_SUP_ID);
+CREATE INDEX TBL_LIEN_NOEUD_SUP_FK ON TBL_LIEN (NOEUD_SUP_ID);
 /
 
 CREATE UNIQUE INDEX TBL_LIEN_PK ON TBL_LIEN (ID);
 /
 
-CREATE INDEX TBL_LIEN_SCENARIO_IDX ON TBL_LIEN (SCENARIO_ID);
+CREATE INDEX TBL_LIEN_SCENARIO_FK ON TBL_LIEN (SCENARIO_ID);
 /
 
-CREATE INDEX TBL_LIEN_SCENARIO_LIEN_IDX ON TBL_LIEN (SCENARIO_LIEN_ID);
+CREATE INDEX TBL_LIEN_SCENARIO_LIEN_FK ON TBL_LIEN (SCENARIO_LIEN_ID);
 /
 
-CREATE INDEX TBL_LIEN_STRUCTURE_IDX ON TBL_LIEN (STRUCTURE_ID);
+CREATE INDEX TBL_LIEN_STRUCTURE_FK ON TBL_LIEN (STRUCTURE_ID);
 /
 
 CREATE INDEX TBL_NOEUD_ANNEE_IDX ON TBL_NOEUD (ANNEE_ID);
@@ -18805,7 +19119,7 @@ CREATE INDEX TBL_PAIEMENT_FRSR_FK_IDX ON TBL_PAIEMENT (FORMULE_RES_SERVICE_REF_I
 CREATE INDEX TBL_PAIEMENT_FRS_FK_IDX ON TBL_PAIEMENT (FORMULE_RES_SERVICE_ID);
 /
 
-CREATE INDEX TBL_PAIEMENT_INTERV_FK_IDX ON TBL_PAIEMENT (INTERVENANT_ID);
+CREATE INDEX TBL_PAIEMENT_INTERVENANT_FK ON TBL_PAIEMENT (INTERVENANT_ID);
 /
 
 CREATE INDEX TBL_PAIEMENT_MEP_FK_IDX ON TBL_PAIEMENT (MISE_EN_PAIEMENT_ID);
@@ -18841,7 +19155,7 @@ CREATE INDEX TBL_PJD_INTERVENANT_FK_IDX ON TBL_PIECE_JOINTE_DEMANDE (INTERVENANT
 CREATE UNIQUE INDEX TBL_PJD_PK_IDX ON TBL_PIECE_JOINTE_DEMANDE (ID);
 /
 
-CREATE INDEX TBL_PJD_TPJ_FK_IDX ON TBL_PIECE_JOINTE_DEMANDE (TYPE_PIECE_JOINTE_ID);
+CREATE INDEX TBL_PJD_TYPE_PIECE_JOINTE_FK ON TBL_PIECE_JOINTE_DEMANDE (TYPE_PIECE_JOINTE_ID);
 /
 
 CREATE UNIQUE INDEX TBL_PJD_UN_IDX ON TBL_PIECE_JOINTE_DEMANDE (TYPE_PIECE_JOINTE_ID, INTERVENANT_ID, TO_DELETE);
@@ -18862,7 +19176,7 @@ CREATE INDEX TBL_PJF_PIECE_JOINTE_FK_IDX ON TBL_PIECE_JOINTE_FOURNIE (PIECE_JOIN
 CREATE UNIQUE INDEX TBL_PJF_PK_IDX ON TBL_PIECE_JOINTE_FOURNIE (ID);
 /
 
-CREATE INDEX TBL_PJF_TPJ_FK_IDX ON TBL_PIECE_JOINTE_FOURNIE (TYPE_PIECE_JOINTE_ID);
+CREATE INDEX TBL_PJF_TYPE_PIECE_JOINTE_FK ON TBL_PIECE_JOINTE_FOURNIE (TYPE_PIECE_JOINTE_ID);
 /
 
 CREATE UNIQUE INDEX TBL_PJF_UN_IDX ON TBL_PIECE_JOINTE_FOURNIE (TYPE_PIECE_JOINTE_ID, INTERVENANT_ID, VALIDATION_ID, FICHIER_ID);
@@ -18874,7 +19188,7 @@ CREATE INDEX TBL_PJF_VALIDATION_FK_IDX ON TBL_PIECE_JOINTE_FOURNIE (VALIDATION_I
 CREATE INDEX TBL_PJ_INTERVENANT_FK_IDX ON TBL_PIECE_JOINTE (INTERVENANT_ID);
 /
 
-CREATE INDEX TBL_PJ_TPJ_FK_IDX ON TBL_PIECE_JOINTE (TYPE_PIECE_JOINTE_ID);
+CREATE INDEX TBL_PJ_TYPE_PIECE_JOINTE_FK ON TBL_PIECE_JOINTE (TYPE_PIECE_JOINTE_ID);
 /
 
 CREATE UNIQUE INDEX TBL_PK ON TBL (TBL_NAME);
@@ -18895,7 +19209,7 @@ CREATE INDEX TBL_SERVICE_INTERVENANT_FK_IDX ON TBL_SERVICE (INTERVENANT_ID);
 CREATE INDEX TBL_SERVICE_PERIODE_EP_FK_IDX ON TBL_SERVICE (ELEMENT_PEDAGOGIQUE_PERIODE_ID);
 /
 
-CREATE UNIQUE INDEX TBL_SERVICE_PK_IDX ON TBL_SERVICE (ID);
+CREATE UNIQUE INDEX TBL_SERVICE_PK ON TBL_SERVICE (ID);
 /
 
 CREATE UNIQUE INDEX TBL_SERVICE_REFERENTIEL_PK_IDX ON TBL_SERVICE_REFERENTIEL (ID);
@@ -18910,7 +19224,7 @@ CREATE INDEX TBL_SERVICE_REF_ANNEE_FK_IDX ON TBL_SERVICE_REFERENTIEL (ANNEE_ID);
 CREATE INDEX TBL_SERVICE_REF_INTERVENANT_FK ON TBL_SERVICE_REFERENTIEL (INTERVENANT_ID);
 /
 
-CREATE INDEX TBL_SERVICE_REF_STRUCTU_FK_IDX ON TBL_SERVICE_REFERENTIEL (STRUCTURE_ID);
+CREATE INDEX TBL_SERVICE_REF_STRUCTURE_FK ON TBL_SERVICE_REFERENTIEL (STRUCTURE_ID);
 /
 
 CREATE INDEX TBL_SERVICE_REF_TVH_FK_IDX ON TBL_SERVICE_REFERENTIEL (TYPE_VOLUME_HORAIRE_ID);
@@ -18934,7 +19248,7 @@ CREATE INDEX TBL_SERVICE_STRUCTURE_FKV1_IDX ON TBL_SERVICE (INTERVENANT_STRUCTUR
 CREATE INDEX TBL_SERVICE_STRUCTURE_FK_IDX ON TBL_SERVICE (STRUCTURE_ID);
 /
 
-CREATE INDEX TBL_SERVICE_TINTERV_FK_IDX ON TBL_SERVICE (TYPE_INTERVENANT_ID);
+CREATE INDEX TBL_SERVICE_TINTERVENANT_FK ON TBL_SERVICE (TYPE_INTERVENANT_ID);
 /
 
 CREATE INDEX TBL_SERVICE_TVH_FK_IDX ON TBL_SERVICE (TYPE_VOLUME_HORAIRE_ID);
@@ -18946,7 +19260,7 @@ CREATE INDEX TBL_SERVICE_TVH_IDX_IDX ON TBL_SERVICE (TYPE_VOLUME_HORAIRE_CODE);
 CREATE INDEX TBL_SERVICE_TYPE_INT_IDX ON TBL_SERVICE (TYPE_INTERVENANT_CODE);
 /
 
-CREATE UNIQUE INDEX TBL_SERVICE__UN_IDX ON TBL_SERVICE (SERVICE_ID, TYPE_VOLUME_HORAIRE_ID, TO_DELETE);
+CREATE UNIQUE INDEX TBL_SERVICE__UN ON TBL_SERVICE (SERVICE_ID, TYPE_VOLUME_HORAIRE_ID, TO_DELETE);
 /
 
 CREATE UNIQUE INDEX TBL_VALIDATION_ENSEIGNEMENT_PK ON TBL_VALIDATION_ENSEIGNEMENT (ID);
@@ -18958,7 +19272,7 @@ CREATE UNIQUE INDEX TBL_VALIDATION_ENSEIGNEMENT_UN ON TBL_VALIDATION_ENSEIGNEMEN
 CREATE UNIQUE INDEX TBL_VALIDATION_REFERENTIEL_PK ON TBL_VALIDATION_REFERENTIEL (ID);
 /
 
-CREATE UNIQUE INDEX TBL_VALIDATION_REFERENTIEL__UN ON TBL_VALIDATION_REFERENTIEL (INTERVENANT_ID, STRUCTURE_ID, TYPE_VOLUME_HORAIRE_ID, SERVICE_REFERENTIEL_ID, VALIDATION_ID, VOLUME_HORAIRE_REF_ID, TO_DELETE);
+CREATE UNIQUE INDEX TBL_VALIDATION_REFERENTIEL__UN ON TBL_VALIDATION_REFERENTIEL (INTERVENANT_ID, STRUCTURE_ID, TYPE_VOLUME_HORAIRE_ID, SERVICE_REFERENTIEL_ID, VOLUME_HORAIRE_REF_ID, VALIDATION_ID, TO_DELETE);
 /
 
 CREATE INDEX TBL_WORKFLOW_ANNEE_FK_IDX ON TBL_WORKFLOW (ANNEE_ID);
@@ -18979,7 +19293,7 @@ CREATE UNIQUE INDEX TBL_WORKFLOW_PK_IDX ON TBL_WORKFLOW (ID);
 CREATE INDEX TBL_WORKFLOW_SFK_IDX ON TBL_WORKFLOW (STRUCTURE_ID);
 /
 
-CREATE INDEX TBL_WORKFLOW_TINTERV_FK_IDX ON TBL_WORKFLOW (TYPE_INTERVENANT_ID);
+CREATE INDEX TBL_WORKFLOW_TINTERVENANT_FK ON TBL_WORKFLOW (TYPE_INTERVENANT_ID);
 /
 
 CREATE INDEX TBL_WORKFLOW_TYPE_INT_IDX ON TBL_WORKFLOW (TYPE_INTERVENANT_CODE);
@@ -18994,10 +19308,7 @@ CREATE INDEX TD_TYPE_RESSOURCE_FK_IDX ON TYPE_DOTATION (TYPE_RESSOURCE_ID);
 CREATE UNIQUE INDEX TEST_BUFFER_PK ON TEST_BUFFER (ID);
 /
 
-CREATE INDEX TIEP_EP_FK_IDX ON TYPE_INTERVENTION_EP (ELEMENT_PEDAGOGIQUE_ID);
-/
-
-CREATE INDEX TIEP_SOURCE_FK_IDX ON TYPE_INTERVENTION_EP (SOURCE_ID);
+CREATE INDEX TIEP_ELEMENT_PEDAGOGIQUE_FK ON TYPE_INTERVENTION_EP (ELEMENT_PEDAGOGIQUE_ID);
 /
 
 CREATE INDEX TIEP_TYPE_INTERVENTION_FK_IDX ON TYPE_INTERVENTION_EP (TYPE_INTERVENTION_ID);
@@ -19009,15 +19320,6 @@ CREATE INDEX TIS_ANNEE_DEBUT_FK_IDX ON TYPE_INTERVENTION_STRUCTURE (ANNEE_DEBUT_
 CREATE INDEX TIS_ANNEE_FIN_FK_IDX ON TYPE_INTERVENTION_STRUCTURE (ANNEE_FIN_ID);
 /
 
-CREATE INDEX TIS_HCFK_IDX ON TYPE_INTERVENTION_STRUCTURE (HISTO_CREATEUR_ID);
-/
-
-CREATE INDEX TIS_HDFK_IDX ON TYPE_INTERVENTION_STRUCTURE (HISTO_DESTRUCTEUR_ID);
-/
-
-CREATE INDEX TIS_HMFK_IDX ON TYPE_INTERVENTION_STRUCTURE (HISTO_MODIFICATEUR_ID);
-/
-
 CREATE INDEX TIS_STRUCTURE_FK_IDX ON TYPE_INTERVENTION_STRUCTURE (STRUCTURE_ID);
 /
 
@@ -19027,9 +19329,6 @@ CREATE INDEX TIS_TYPE_INTERVENTION_FK_IDX ON TYPE_INTERVENTION_STRUCTURE (TYPE_I
 CREATE INDEX TME_ELEMENT_PEDAGOGIQUE_FK_IDX ON TYPE_MODULATEUR_EP (ELEMENT_PEDAGOGIQUE_ID);
 /
 
-CREATE INDEX TME_SOURCE_FK_IDX ON TYPE_MODULATEUR_EP (SOURCE_ID);
-/
-
 CREATE INDEX TME_TYPE_MODULATEUR_FK_IDX ON TYPE_MODULATEUR_EP (TYPE_MODULATEUR_ID);
 /
 
@@ -19039,34 +19338,16 @@ CREATE INDEX TMS_ANNEE_DEBUT_FK_IDX ON TYPE_MODULATEUR_STRUCTURE (ANNEE_DEBUT_ID
 CREATE INDEX TMS_ANNEE_FIN_FK_IDX ON TYPE_MODULATEUR_STRUCTURE (ANNEE_FIN_ID);
 /
 
-CREATE INDEX TMS_HCFK_IDX ON TYPE_MODULATEUR_STRUCTURE (HISTO_CREATEUR_ID);
-/
-
-CREATE INDEX TMS_HDFK_IDX ON TYPE_MODULATEUR_STRUCTURE (HISTO_DESTRUCTEUR_ID);
-/
-
-CREATE INDEX TMS_HMFK_IDX ON TYPE_MODULATEUR_STRUCTURE (HISTO_MODIFICATEUR_ID);
-/
-
 CREATE INDEX TMS_STRUCTURE_FK_IDX ON TYPE_MODULATEUR_STRUCTURE (STRUCTURE_ID);
 /
 
 CREATE INDEX TMS_TYPE_MODUL_FK_IDX ON TYPE_MODULATEUR_STRUCTURE (TYPE_MODULATEUR_ID);
 /
 
-CREATE INDEX TPJS_ANNEE_DEBUT_IDX ON TYPE_PIECE_JOINTE_STATUT (ANNEE_DEBUT_ID);
-/
-
-CREATE INDEX TPJS_ANNEE_FIN_IDX ON TYPE_PIECE_JOINTE_STATUT (ANNEE_FIN_ID);
+CREATE INDEX TPJS_ANNEE_DEB_FK ON TYPE_PIECE_JOINTE_STATUT (ANNEE_DEBUT_ID);
 /
 
-CREATE INDEX TPJS_HCFK_IDX ON TYPE_PIECE_JOINTE_STATUT (HISTO_CREATEUR_ID);
-/
-
-CREATE INDEX TPJS_HDFK_IDX ON TYPE_PIECE_JOINTE_STATUT (HISTO_DESTRUCTEUR_ID);
-/
-
-CREATE INDEX TPJS_HMFK_IDX ON TYPE_PIECE_JOINTE_STATUT (HISTO_MODIFICATEUR_ID);
+CREATE INDEX TPJS_ANNEE_FIN_FK ON TYPE_PIECE_JOINTE_STATUT (ANNEE_FIN_ID);
 /
 
 CREATE INDEX TPJS_STATUT_INTERVENANT_FK_IDX ON TYPE_PIECE_JOINTE_STATUT (STATUT_INTERVENANT_ID);
@@ -19111,9 +19392,6 @@ CREATE INDEX TVR_STRUCTURE_FK_IDX ON TBL_VALIDATION_REFERENTIEL (STRUCTURE_ID);
 CREATE INDEX TVR_TYPE_VOLUME_HORAIRE_FK_IDX ON TBL_VALIDATION_REFERENTIEL (TYPE_VOLUME_HORAIRE_ID);
 /
 
-CREATE UNIQUE INDEX TVR_UN_IDX ON TBL_VALIDATION_REFERENTIEL (INTERVENANT_ID, STRUCTURE_ID, TYPE_VOLUME_HORAIRE_ID, SERVICE_REFERENTIEL_ID, VOLUME_HORAIRE_REF_ID, VALIDATION_ID, TO_DELETE);
-/
-
 CREATE INDEX TVR_VALIDATION_FK_IDX ON TBL_VALIDATION_REFERENTIEL (VALIDATION_ID);
 /
 
@@ -19231,6 +19509,12 @@ CREATE INDEX TYPE_INTERVENANT_HMFK_IDX ON TYPE_INTERVENANT (HISTO_MODIFICATEUR_I
 CREATE UNIQUE INDEX TYPE_INTERVENANT_PK ON TYPE_INTERVENANT (ID);
 /
 
+CREATE INDEX TYPE_INTERVENTION_ANNEE_FK ON TYPE_INTERVENTION (ANNEE_DEBUT_ID);
+/
+
+CREATE INDEX TYPE_INTERVENTION_ANNEE_FKV1 ON TYPE_INTERVENTION (ANNEE_FIN_ID);
+/
+
 CREATE INDEX TYPE_INTERVENTION_EP_HCFK_IDX ON TYPE_INTERVENTION_EP (HISTO_CREATEUR_ID);
 /
 
@@ -19243,6 +19527,9 @@ CREATE INDEX TYPE_INTERVENTION_EP_HMFK_IDX ON TYPE_INTERVENTION_EP (HISTO_MODIFI
 CREATE UNIQUE INDEX TYPE_INTERVENTION_EP_PK ON TYPE_INTERVENTION_EP (ID);
 /
 
+CREATE INDEX TYPE_INTERVENTION_EP_SOURCE_FK ON TYPE_INTERVENTION_EP (SOURCE_ID);
+/
+
 CREATE INDEX TYPE_INTERVENTION_HCFK_IDX ON TYPE_INTERVENTION (HISTO_CREATEUR_ID);
 /
 
@@ -19264,10 +19551,13 @@ CREATE UNIQUE INDEX TYPE_INTERVENTION_STATUT__UN ON TYPE_INTERVENTION_STATUT (TY
 CREATE UNIQUE INDEX TYPE_INTERVENTION_STRUCTURE_PK ON TYPE_INTERVENTION_STRUCTURE (ID);
 /
 
-CREATE INDEX TYPE_INTERV_ANNEE_DEBUT_IDX ON TYPE_INTERVENTION (ANNEE_DEBUT_ID);
+CREATE INDEX TYPE_INTERVENTION_STRUCTU_HCFK ON TYPE_INTERVENTION_STRUCTURE (HISTO_CREATEUR_ID);
+/
+
+CREATE INDEX TYPE_INTERVENTION_STRUCTU_HDFK ON TYPE_INTERVENTION_STRUCTURE (HISTO_DESTRUCTEUR_ID);
 /
 
-CREATE INDEX TYPE_INTERV_ANNEE_FIN_IDX ON TYPE_INTERVENTION (ANNEE_FIN_ID);
+CREATE INDEX TYPE_INTERVENTION_STRUCTU_HMFK ON TYPE_INTERVENTION_STRUCTURE (HISTO_MODIFICATEUR_ID);
 /
 
 CREATE INDEX TYPE_MODULATEUR_EP_HCFK_IDX ON TYPE_MODULATEUR_EP (HISTO_CREATEUR_ID);
@@ -19282,6 +19572,9 @@ CREATE INDEX TYPE_MODULATEUR_EP_HMFK_IDX ON TYPE_MODULATEUR_EP (HISTO_MODIFICATE
 CREATE UNIQUE INDEX TYPE_MODULATEUR_EP_PK ON TYPE_MODULATEUR_EP (ID);
 /
 
+CREATE INDEX TYPE_MODULATEUR_EP_SOURCE_FK ON TYPE_MODULATEUR_EP (SOURCE_ID);
+/
+
 CREATE UNIQUE INDEX TYPE_MODULATEUR_EP__UN ON TYPE_MODULATEUR_EP (SOURCE_CODE);
 /
 
@@ -19300,10 +19593,19 @@ CREATE INDEX TYPE_MODULATEUR_HMFK_IDX ON TYPE_MODULATEUR (HISTO_MODIFICATEUR_ID)
 CREATE UNIQUE INDEX TYPE_MODULATEUR_PK ON TYPE_MODULATEUR (ID);
 /
 
+CREATE INDEX TYPE_MODULATEUR_STRUCTURE_HCFK ON TYPE_MODULATEUR_STRUCTURE (HISTO_CREATEUR_ID);
+/
+
+CREATE INDEX TYPE_MODULATEUR_STRUCTURE_HDFK ON TYPE_MODULATEUR_STRUCTURE (HISTO_DESTRUCTEUR_ID);
+/
+
+CREATE INDEX TYPE_MODULATEUR_STRUCTURE_HMFK ON TYPE_MODULATEUR_STRUCTURE (HISTO_MODIFICATEUR_ID);
+/
+
 CREATE UNIQUE INDEX TYPE_MODULATEUR_STRUCTURE_PK ON TYPE_MODULATEUR_STRUCTURE (ID);
 /
 
-CREATE UNIQUE INDEX TYPE_MODULATEUR_STRUCTURE_UN ON TYPE_MODULATEUR_STRUCTURE (TYPE_MODULATEUR_ID, STRUCTURE_ID);
+CREATE UNIQUE INDEX TYPE_MODULATEUR_STRUCTURE_UN ON TYPE_MODULATEUR_STRUCTURE (TYPE_MODULATEUR_ID, STRUCTURE_ID, ANNEE_DEBUT_ID, HISTO_DESTRUCTION);
 /
 
 CREATE INDEX TYPE_PIECE_JOINTE_HCFK_IDX ON TYPE_PIECE_JOINTE (HISTO_CREATEUR_ID);
@@ -19318,6 +19620,15 @@ CREATE INDEX TYPE_PIECE_JOINTE_HMFK_IDX ON TYPE_PIECE_JOINTE (HISTO_MODIFICATEUR
 CREATE UNIQUE INDEX TYPE_PIECE_JOINTE_PK ON TYPE_PIECE_JOINTE (ID);
 /
 
+CREATE INDEX TYPE_PIECE_JOINTE_STATUT_HCFK ON TYPE_PIECE_JOINTE_STATUT (HISTO_CREATEUR_ID);
+/
+
+CREATE INDEX TYPE_PIECE_JOINTE_STATUT_HDFK ON TYPE_PIECE_JOINTE_STATUT (HISTO_DESTRUCTEUR_ID);
+/
+
+CREATE INDEX TYPE_PIECE_JOINTE_STATUT_HMFK ON TYPE_PIECE_JOINTE_STATUT (HISTO_MODIFICATEUR_ID);
+/
+
 CREATE UNIQUE INDEX TYPE_PIECE_JOINTE_STATUT_PK ON TYPE_PIECE_JOINTE_STATUT (ID);
 /
 
@@ -19354,6 +19665,9 @@ CREATE UNIQUE INDEX TYPE_VOLUME_HORAIRE_PK ON TYPE_VOLUME_HORAIRE (ID);
 CREATE UNIQUE INDEX TYPE_VOLUME_HORAIRE__UN ON TYPE_VOLUME_HORAIRE (CODE);
 /
 
+CREATE UNIQUE INDEX USER_PASSWORD_RESET_TOKEN_UN ON UTILISATEUR (PASSWORD_RESET_TOKEN);
+/
+
 CREATE UNIQUE INDEX UTILISATEUR_PK ON UTILISATEUR (ID);
 /
 
@@ -19393,13 +19707,16 @@ CREATE UNIQUE INDEX VERSION_PK ON VERSION (NUMERO);
 CREATE UNIQUE INDEX VHC_HISTO_UN ON VOLUME_HORAIRE_CHARGE (SOURCE_CODE, HISTO_DESTRUCTION);
 /
 
-CREATE INDEX VHENS_EP_FK_IDX ON VOLUME_HORAIRE_ENS (ELEMENT_PEDAGOGIQUE_ID);
+CREATE INDEX VHC_SCENARIO_FK ON VOLUME_HORAIRE_CHARGE (SCENARIO_ID);
 /
 
-CREATE INDEX VHENS_TYPE_INTERVENTION_FK_IDX ON VOLUME_HORAIRE_ENS (TYPE_INTERVENTION_ID);
+CREATE INDEX VHC_TYPE_INTERVENTION_FK ON VOLUME_HORAIRE_CHARGE (TYPE_INTERVENTION_ID);
 /
 
-CREATE INDEX VHE_SOURCE_FK_IDX ON VOLUME_HORAIRE_ENS (SOURCE_ID);
+CREATE INDEX VHENS_ELEMENT_PEDAGOGIQUE_FK ON VOLUME_HORAIRE_ENS (ELEMENT_PEDAGOGIQUE_ID);
+/
+
+CREATE INDEX VHENS_TYPE_INTERVENTION_FK_IDX ON VOLUME_HORAIRE_ENS (TYPE_INTERVENTION_ID);
 /
 
 CREATE INDEX VHIT_FK_IDX ON VOLUME_HORAIRE (TYPE_INTERVENTION_ID);
@@ -19417,34 +19734,28 @@ CREATE INDEX VHR_TYPE_VOLUME_HORAIRE_FK_IDX ON VOLUME_HORAIRE_REF (TYPE_VOLUME_H
 CREATE INDEX VH_PERIODE_FK_IDX ON VOLUME_HORAIRE (PERIODE_ID);
 /
 
-CREATE INDEX VH_SERVICES_FK_IDX ON VOLUME_HORAIRE (SERVICE_ID);
-/
-
 CREATE INDEX VH_TYPE_VOLUME_HORAIRE_FK_IDX ON VOLUME_HORAIRE (TYPE_VOLUME_HORAIRE_ID);
 /
 
-CREATE INDEX VOLUME_HORAIRE_CHARGE_HC_IDX ON VOLUME_HORAIRE_CHARGE (HISTO_CREATEUR_ID);
+CREATE INDEX VOLUMES_HORAIRES_SERVICES_FK ON VOLUME_HORAIRE (SERVICE_ID);
 /
 
-CREATE INDEX VOLUME_HORAIRE_CHARGE_HD_IDX ON VOLUME_HORAIRE_CHARGE (HISTO_DESTRUCTEUR_ID);
+CREATE INDEX VOLUME_HORAIRE_CHARGE_HCFK ON VOLUME_HORAIRE_CHARGE (HISTO_CREATEUR_ID);
 /
 
-CREATE INDEX VOLUME_HORAIRE_CHARGE_HM_IDX ON VOLUME_HORAIRE_CHARGE (HISTO_MODIFICATEUR_ID);
-/
-
-CREATE UNIQUE INDEX VOLUME_HORAIRE_CHARGE_PK ON VOLUME_HORAIRE_CHARGE (ID);
+CREATE INDEX VOLUME_HORAIRE_CHARGE_HDFK ON VOLUME_HORAIRE_CHARGE (HISTO_DESTRUCTEUR_ID);
 /
 
-CREATE INDEX VOLUME_HORAIRE_CHARGE_SC_IDX ON VOLUME_HORAIRE_CHARGE (SCENARIO_ID);
+CREATE INDEX VOLUME_HORAIRE_CHARGE_HMFK ON VOLUME_HORAIRE_CHARGE (HISTO_MODIFICATEUR_ID);
 /
 
-CREATE INDEX VOLUME_HORAIRE_CHARGE_SRC_IDX ON VOLUME_HORAIRE_CHARGE (SOURCE_ID);
+CREATE UNIQUE INDEX VOLUME_HORAIRE_CHARGE_PK ON VOLUME_HORAIRE_CHARGE (ID);
 /
 
-CREATE INDEX VOLUME_HORAIRE_CHARGE_TI_IDX ON VOLUME_HORAIRE_CHARGE (TYPE_INTERVENTION_ID);
+CREATE UNIQUE INDEX VOLUME_HORAIRE_CHARGE__UN ON VOLUME_HORAIRE_CHARGE (ELEMENT_PEDAGOGIQUE_ID, TYPE_INTERVENTION_ID, HISTO_DESTRUCTION);
 /
 
-CREATE UNIQUE INDEX VOLUME_HORAIRE_CHARGE__UN ON VOLUME_HORAIRE_CHARGE (ELEMENT_PEDAGOGIQUE_ID, TYPE_INTERVENTION_ID, HISTO_DESTRUCTION);
+CREATE INDEX VOLUME_HORAIRE_CHARG_SOURCE_FK ON VOLUME_HORAIRE_CHARGE (SOURCE_ID);
 /
 
 CREATE INDEX VOLUME_HORAIRE_CONTRAT_FK_IDX ON VOLUME_HORAIRE (CONTRAT_ID);
@@ -19462,6 +19773,9 @@ CREATE INDEX VOLUME_HORAIRE_ENS_HMFK_IDX ON VOLUME_HORAIRE_ENS (HISTO_MODIFICATE
 CREATE UNIQUE INDEX VOLUME_HORAIRE_ENS_PK ON VOLUME_HORAIRE_ENS (ID);
 /
 
+CREATE INDEX VOLUME_HORAIRE_ENS_SOURCE_FK ON VOLUME_HORAIRE_ENS (SOURCE_ID);
+/
+
 CREATE UNIQUE INDEX VOLUME_HORAIRE_ENS_UK1 ON VOLUME_HORAIRE_ENS (SOURCE_CODE, HISTO_DESTRUCTION);
 /
 
@@ -19694,6 +20008,9 @@ ALTER TABLE IMPORT_TABLES ADD CONSTRAINT IMPORT_TABLES_PK PRIMARY KEY (TABLE_NAM
 ALTER TABLE INDICATEUR ADD CONSTRAINT INDICATEUR_PK PRIMARY KEY (ID) USING INDEX INDICATEUR_PK ENABLE;
 /
 
+ALTER TABLE INDIC_MODIF_DOSSIER ADD CONSTRAINT INDIC_MODIF_DOSSIER_PK PRIMARY KEY (ID) USING INDEX INDIC_MODIF_DOSSIER_PK ENABLE;
+/
+
 ALTER TABLE LISTE_NOIRE ADD CONSTRAINT INTERVENANT_LISTE_NOIRE_PK PRIMARY KEY (CODE) USING INDEX INTERVENANT_LISTE_NOIRE_PK ENABLE;
 /
 
@@ -19838,19 +20155,19 @@ ALTER TABLE TBL_LIEN ADD CONSTRAINT TBL_LIEN_PK PRIMARY KEY (ID) USING INDEX TBL
 ALTER TABLE TBL_PAIEMENT ADD CONSTRAINT TBL_PAIEMENT_PK PRIMARY KEY (ID) USING INDEX TBL_PAIEMENT_PK_IDX ENABLE;
 /
 
-ALTER TABLE TBL_PIECE_JOINTE_DEMANDE ADD CONSTRAINT TBL_PIECE_JOINTE_DEMANDE_PK PRIMARY KEY (ID) USING INDEX TBL_PJD_PK_IDX ENABLE;
+ALTER TABLE TBL_PIECE_JOINTE ADD CONSTRAINT TBL_PIECE_JOINTE_PK PRIMARY KEY (ID) USING INDEX TBL_PIECE_JOINTE_PK_IDX ENABLE;
 /
 
-ALTER TABLE TBL_PIECE_JOINTE_FOURNIE ADD CONSTRAINT TBL_PIECE_JOINTE_FOURNIE_PK PRIMARY KEY (ID) USING INDEX TBL_PJF_PK_IDX ENABLE;
+ALTER TABLE TBL_PIECE_JOINTE_DEMANDE ADD CONSTRAINT TBL_PJD_PK PRIMARY KEY (ID) USING INDEX TBL_PJD_PK_IDX ENABLE;
 /
 
-ALTER TABLE TBL_PIECE_JOINTE ADD CONSTRAINT TBL_PIECE_JOINTE_PK PRIMARY KEY (ID) USING INDEX TBL_PIECE_JOINTE_PK_IDX ENABLE;
+ALTER TABLE TBL_PIECE_JOINTE_FOURNIE ADD CONSTRAINT TBL_PJF_PK PRIMARY KEY (ID) USING INDEX TBL_PJF_PK_IDX ENABLE;
 /
 
 ALTER TABLE TBL ADD CONSTRAINT TBL_PK PRIMARY KEY (TBL_NAME) USING INDEX TBL_PK ENABLE;
 /
 
-ALTER TABLE TBL_SERVICE ADD CONSTRAINT TBL_SERVICE_PK PRIMARY KEY (ID) USING INDEX TBL_SERVICE_PK_IDX ENABLE;
+ALTER TABLE TBL_SERVICE ADD CONSTRAINT TBL_SERVICE_PK PRIMARY KEY (ID) USING INDEX TBL_SERVICE_PK ENABLE;
 /
 
 ALTER TABLE TBL_SERVICE_REFERENTIEL ADD CONSTRAINT TBL_SERVICE_REFERENTIEL_PK PRIMARY KEY (ID) USING INDEX TBL_SERVICE_REFERENTIEL_PK_IDX ENABLE;
@@ -19964,9 +20281,6 @@ ALTER TABLE WF_ETAPE_DEP ADD CONSTRAINT WF_ETAPE_DEP_PK PRIMARY KEY (ID) USING I
 ALTER TABLE WF_ETAPE ADD CONSTRAINT WF_ETAPE_PK PRIMARY KEY (ID) USING INDEX WF_ETAPE_PK ENABLE;
 /
 
-ALTER TABLE INDIC_MODIF_DOSSIER ADD CONSTRAINT indic_diff_dossier_PK PRIMARY KEY (ID) USING INDEX INDIC_MODIF_DOSSIER_PK ENABLE;
-/
-
 
 
 
@@ -19987,7 +20301,7 @@ ALTER TABLE ADRESSE_INTERVENANT ADD CONSTRAINT ADRESSE_INTERVENANT_HMFK FOREIGN
 /
 
 ALTER TABLE ADRESSE_INTERVENANT ADD CONSTRAINT ADRESSE_INTERVENANT_SOURCE_FK FOREIGN KEY (SOURCE_ID) 
-        REFERENCES SOURCE (ID) ON DELETE CASCADE ENABLE;
+        REFERENCES SOURCE (ID) ENABLE;
 /
 
 ALTER TABLE ADRESSE_STRUCTURE ADD CONSTRAINT ADRESSE_STRUCTURE_HCFK FOREIGN KEY (HISTO_CREATEUR_ID) 
@@ -20003,7 +20317,7 @@ ALTER TABLE ADRESSE_STRUCTURE ADD CONSTRAINT ADRESSE_STRUCTURE_HMFK FOREIGN KEY
 /
 
 ALTER TABLE ADRESSE_STRUCTURE ADD CONSTRAINT ADRESSE_STRUCTURE_SOURCE_FK FOREIGN KEY (SOURCE_ID) 
-        REFERENCES SOURCE (ID) ON DELETE CASCADE ENABLE;
+        REFERENCES SOURCE (ID) ENABLE;
 /
 
 ALTER TABLE ADRESSE_STRUCTURE ADD CONSTRAINT ADRESSE_STRUCTURE_STRUCTURE_FK FOREIGN KEY (STRUCTURE_ID) 
@@ -20147,7 +20461,7 @@ ALTER TABLE CENTRE_COUT_EP ADD CONSTRAINT CENTRE_COUT_EP_HMFK FOREIGN KEY (HISTO
 /
 
 ALTER TABLE CENTRE_COUT_EP ADD CONSTRAINT CENTRE_COUT_EP_SOURCE_FK FOREIGN KEY (SOURCE_ID) 
-        REFERENCES SOURCE (ID) ON DELETE CASCADE ENABLE;
+        REFERENCES SOURCE (ID) ENABLE;
 /
 
 ALTER TABLE CENTRE_COUT ADD CONSTRAINT CENTRE_COUT_HCFK FOREIGN KEY (HISTO_CREATEUR_ID) 
@@ -20163,7 +20477,7 @@ ALTER TABLE CENTRE_COUT ADD CONSTRAINT CENTRE_COUT_HMFK FOREIGN KEY (HISTO_MODIF
 /
 
 ALTER TABLE CENTRE_COUT ADD CONSTRAINT CENTRE_COUT_SOURCE_FK FOREIGN KEY (SOURCE_ID) 
-        REFERENCES SOURCE (ID) ON DELETE CASCADE ENABLE;
+        REFERENCES SOURCE (ID) ENABLE;
 /
 
 ALTER TABLE CENTRE_COUT_STRUCTURE ADD CONSTRAINT CENTRE_COUT_STRUCTURE_HCFK FOREIGN KEY (HISTO_CREATEUR_ID) 
@@ -20203,7 +20517,7 @@ ALTER TABLE CHEMIN_PEDAGOGIQUE ADD CONSTRAINT CHEMIN_PEDAGOGIQUE_HMFK FOREIGN KE
 /
 
 ALTER TABLE CHEMIN_PEDAGOGIQUE ADD CONSTRAINT CHEMIN_PEDAGOGIQUE_SOURCE_FK FOREIGN KEY (SOURCE_ID) 
-        REFERENCES SOURCE (ID) ON DELETE CASCADE ENABLE;
+        REFERENCES SOURCE (ID) ENABLE;
 /
 
 ALTER TABLE CONTRAT ADD CONSTRAINT CONTRAT_CONTRAT_FK FOREIGN KEY (CONTRAT_ID) 
@@ -20259,7 +20573,7 @@ ALTER TABLE CORPS ADD CONSTRAINT CORPS_HMFK FOREIGN KEY (HISTO_MODIFICATEUR_ID)
 /
 
 ALTER TABLE CORPS ADD CONSTRAINT CORPS_SOURCE_FK FOREIGN KEY (SOURCE_ID) 
-        REFERENCES SOURCE (ID) ON DELETE CASCADE ENABLE;
+        REFERENCES SOURCE (ID) ENABLE;
 /
 
 ALTER TABLE CHEMIN_PEDAGOGIQUE ADD CONSTRAINT CPEP_FK FOREIGN KEY (ELEMENT_PEDAGOGIQUE_ID) 
@@ -20483,7 +20797,7 @@ ALTER TABLE ETABLISSEMENT ADD CONSTRAINT ETABLISSEMENT_HMFK FOREIGN KEY (HISTO_M
 /
 
 ALTER TABLE ETABLISSEMENT ADD CONSTRAINT ETABLISSEMENT_SOURCE_FK FOREIGN KEY (SOURCE_ID) 
-        REFERENCES SOURCE (ID) ON DELETE CASCADE ENABLE;
+        REFERENCES SOURCE (ID) ENABLE;
 /
 
 ALTER TABLE ETAPE ADD CONSTRAINT ETAPE_ANNEE_FK FOREIGN KEY (ANNEE_ID) 
@@ -20706,6 +21020,10 @@ ALTER TABLE HISTO_INTERVENANT_SERVICE ADD CONSTRAINT HSM_UTILISATEUR_FK FOREIGN
         REFERENCES UTILISATEUR (ID) ON DELETE CASCADE ENABLE;
 /
 
+ALTER TABLE INDIC_MODIF_DOSSIER ADD CONSTRAINT INDIC_DIFF_DOSSIER_INT_FK FOREIGN KEY (INTERVENANT_ID) 
+        REFERENCES INTERVENANT (ID) ON DELETE CASCADE ENABLE;
+/
+
 ALTER TABLE INDIC_MODIF_DOSSIER ADD CONSTRAINT INDIC_MODIF_DOSSIER_HCFK FOREIGN KEY (HISTO_CREATEUR_ID) 
         REFERENCES UTILISATEUR (ID) ENABLE;
 /
@@ -20763,7 +21081,7 @@ ALTER TABLE INTERVENANT_SAISIE ADD CONSTRAINT INTERVENANT_SAISIE_INTERV_FK FOREI
 /
 
 ALTER TABLE INTERVENANT ADD CONSTRAINT INTERVENANT_SOURCE_FK FOREIGN KEY (SOURCE_ID) 
-        REFERENCES SOURCE (ID) ON DELETE CASCADE ENABLE;
+        REFERENCES SOURCE (ID) ENABLE;
 /
 
 ALTER TABLE INTERVENANT ADD CONSTRAINT INTERVENANT_STATUT_FK FOREIGN KEY (STATUT_ID) 
@@ -21815,7 +22133,7 @@ ALTER TABLE TYPE_DOTATION ADD CONSTRAINT TYPE_DOTATION_HMFK FOREIGN KEY (HISTO_M
 /
 
 ALTER TABLE TYPE_DOTATION ADD CONSTRAINT TYPE_DOTATION_SOURCE_FK FOREIGN KEY (SOURCE_ID) 
-        REFERENCES SOURCE (ID) ON DELETE CASCADE ENABLE;
+        REFERENCES SOURCE (ID) ENABLE;
 /
 
 ALTER TABLE TYPE_FORMATION ADD CONSTRAINT TYPE_FORMATION_GROUPE_FK FOREIGN KEY (GROUPE_ID) 
@@ -21887,7 +22205,7 @@ ALTER TABLE TYPE_INTERVENTION_EP ADD CONSTRAINT TYPE_INTERVENTION_EP_HMFK FOREIG
 /
 
 ALTER TABLE TYPE_INTERVENTION_EP ADD CONSTRAINT TYPE_INTERVENTION_EP_SOURCE_FK FOREIGN KEY (SOURCE_ID) 
-        REFERENCES SOURCE (ID) ON DELETE CASCADE ENABLE;
+        REFERENCES SOURCE (ID) ENABLE;
 /
 
 ALTER TABLE TYPE_INTERVENTION ADD CONSTRAINT TYPE_INTERVENTION_HCFK FOREIGN KEY (HISTO_CREATEUR_ID) 
@@ -22166,10 +22484,6 @@ ALTER TABLE WF_DEP_BLOQUANTE ADD CONSTRAINT WF_DB_TBL_WORKFLOW_FK FOREIGN KEY (T
         REFERENCES TBL_WORKFLOW (ID) ON DELETE CASCADE ENABLE;
 /
 
-ALTER TABLE INDIC_MODIF_DOSSIER ADD CONSTRAINT indic_diff_dossier_INT_FK FOREIGN KEY (INTERVENANT_ID) 
-        REFERENCES INTERVENANT (ID) ON DELETE CASCADE ENABLE;
-/
-
 
 
 
@@ -22186,7 +22500,7 @@ ALTER TABLE ADRESSE_INTERVENANT ADD CONSTRAINT ADRESSE_INTERVENANT__UN UNIQUE (I
 ALTER TABLE ADRESSE_STRUCTURE ADD CONSTRAINT ADRESSE_STRUCTURE_SOURCE_UN UNIQUE (SOURCE_CODE) USING INDEX ADRESSE_STRUCTURE_SOURCE_UN ENABLE;
 /
 
-ALTER TABLE AFFECTATION_RECHERCHE ADD CONSTRAINT AFFECTATION_RECHERCH_SRC_UN UNIQUE (SOURCE_CODE) USING INDEX AFFECTATION_R_SRC_UN ENABLE;
+ALTER TABLE AFFECTATION_RECHERCHE ADD CONSTRAINT AFFECTATION_RECHERCH_SOURCE_UN UNIQUE (SOURCE_CODE) USING INDEX AFFECTATION_R_SRC_UN ENABLE;
 /
 
 ALTER TABLE AFFECTATION ADD CONSTRAINT AFFECTATION_SOURCE_UN UNIQUE (SOURCE_CODE) USING INDEX AFFECTATION_SOURCE_UN ENABLE;
@@ -22207,16 +22521,16 @@ ALTER TABLE CATEGORIE_PRIVILEGE ADD CONSTRAINT CATEGORIE_PRIVILEGE__UN UNIQUE (C
 ALTER TABLE CENTRE_COUT_STRUCTURE ADD CONSTRAINT CCS_CC_S__UN UNIQUE (CENTRE_COUT_ID, STRUCTURE_ID, HISTO_DESTRUCTION) USING INDEX CCS_CC_S__UN_IDX ENABLE;
 /
 
-ALTER TABLE CENTRE_COUT_STRUCTURE ADD CONSTRAINT CCS_SOURCE_CODE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX CCS_SOURCE_CODE_UN_IDX ENABLE;
+ALTER TABLE CENTRE_COUT_EP ADD CONSTRAINT CENTRE_COUT_EP__UN UNIQUE (CENTRE_COUT_ID, ELEMENT_PEDAGOGIQUE_ID, TYPE_HEURES_ID, HISTO_DESTRUCTION) USING INDEX CENTRE_COUT_EP__UN ENABLE;
 /
 
-ALTER TABLE CENTRE_COUT_EP ADD CONSTRAINT CENTRE_COUT_EP__UN UNIQUE (CENTRE_COUT_ID, ELEMENT_PEDAGOGIQUE_ID, TYPE_HEURES_ID, HISTO_DESTRUCTION) USING INDEX CENTRE_COUT_EP__UN ENABLE;
+ALTER TABLE CENTRE_COUT_STRUCTURE ADD CONSTRAINT CENTRE_COUT_STRUCTUR_SOURCE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX CCS_SOURCE_CODE_UN_IDX ENABLE;
 /
 
-ALTER TABLE CHEMIN_PEDAGOGIQUE ADD CONSTRAINT CHEMIN_PEDAGOGIQUE__UN UNIQUE (ELEMENT_PEDAGOGIQUE_ID, ETAPE_ID) ENABLE;
+ALTER TABLE CHEMIN_PEDAGOGIQUE ADD CONSTRAINT CHEMIN_PEDAGOGIQUE_SOURCE_UN UNIQUE (SOURCE_CODE) USING INDEX CHEMIN_PEDAGO_SRC_ID_UN ENABLE;
 /
 
-ALTER TABLE CHEMIN_PEDAGOGIQUE ADD CONSTRAINT CHEMIN_PEDAGO_SRC_ID_UN UNIQUE (SOURCE_CODE) USING INDEX CHEMIN_PEDAGO_SRC_ID_UN ENABLE;
+ALTER TABLE CHEMIN_PEDAGOGIQUE ADD CONSTRAINT CHEMIN_PEDAGOGIQUE__UN UNIQUE (ELEMENT_PEDAGOGIQUE_ID, ETAPE_ID, HISTO_DESTRUCTION) USING INDEX CHEMIN_PEDAGOGIQUE__UN ENABLE;
 /
 
 ALTER TABLE CIVILITE ADD CONSTRAINT CIVILITE_LIBELLE_COURT_UN UNIQUE (LIBELLE_COURT) USING INDEX CIVILITE_LIBELLE_COURT_UN ENABLE;
@@ -22237,31 +22551,31 @@ ALTER TABLE DOSSIER ADD CONSTRAINT DOSSIER_UK1 UNIQUE (HISTO_DESTRUCTION) USING
 ALTER TABLE DOTATION ADD CONSTRAINT DOTATION__UN UNIQUE (TYPE_RESSOURCE_ID, ANNEE_ID, ANNEE_CIVILE, STRUCTURE_ID, LIBELLE, HISTO_DESTRUCTION) USING INDEX DOTATION__UN ENABLE;
 /
 
-ALTER TABLE EFFECTIFS ADD CONSTRAINT EFFECTIFS__UN UNIQUE (SOURCE_CODE, ANNEE_ID) USING INDEX EFFECTIFS__UN ENABLE;
+ALTER TABLE EFFECTIFS ADD CONSTRAINT EFFECTIFS_SOURCE_UN UNIQUE (SOURCE_CODE, ANNEE_ID) USING INDEX EFFECTIFS__UN ENABLE;
 /
 
 ALTER TABLE ELEMENT_MODULATEUR ADD CONSTRAINT ELEMENT_MODULATEUR__UN UNIQUE (ELEMENT_ID, MODULATEUR_ID, HISTO_DESTRUCTION) USING INDEX ELEMENT_MODULATEUR__UN ENABLE;
 /
 
-ALTER TABLE ELEMENT_TAUX_REGIMES ADD CONSTRAINT ELEMENT_TAUX_REGIMES__UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX ELEMENT_TAUX_REGIMES__UN ENABLE;
+ALTER TABLE ELEMENT_PEDAGOGIQUE ADD CONSTRAINT ELEMENT_PEDAGOGIQUE_SOURCE_UN UNIQUE (SOURCE_CODE, ANNEE_ID, HISTO_DESTRUCTION) USING INDEX EP_SRC_UN ENABLE;
 /
 
-ALTER TABLE ELEMENT_TAUX_REGIMES ADD CONSTRAINT ELEMENT_TAUX_REGIMES__UNV1 UNIQUE (ELEMENT_PEDAGOGIQUE_ID, HISTO_DESTRUCTION) USING INDEX ELEMENT_TAUX_REGIMES__UNV1 ENABLE;
+ALTER TABLE ELEMENT_TAUX_REGIMES ADD CONSTRAINT ELEMENT_TAUX_REGIMES_SOURCE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX ELEMENT_TAUX_REGIMES__UN ENABLE;
 /
 
-ALTER TABLE ELEMENT_PEDAGOGIQUE ADD CONSTRAINT EP_CODE_UN UNIQUE (CODE, HISTO_DESTRUCTION, ANNEE_ID) USING INDEX EP_CODE_UN ENABLE;
+ALTER TABLE ELEMENT_TAUX_REGIMES ADD CONSTRAINT ELEMENT_TAUX_REGIMES__UNV1 UNIQUE (ELEMENT_PEDAGOGIQUE_ID, HISTO_DESTRUCTION) USING INDEX ELEMENT_TAUX_REGIMES__UNV1 ENABLE;
 /
 
-ALTER TABLE ELEMENT_PEDAGOGIQUE ADD CONSTRAINT EP_SRC_UN UNIQUE (SOURCE_CODE, ANNEE_ID, HISTO_DESTRUCTION) USING INDEX EP_SRC_UN ENABLE;
+ALTER TABLE ELEMENT_PEDAGOGIQUE ADD CONSTRAINT EP_CODE_UN UNIQUE (CODE, HISTO_DESTRUCTION, ANNEE_ID) USING INDEX EP_CODE_UN ENABLE;
 /
 
-ALTER TABLE ETABLISSEMENT ADD CONSTRAINT ETABLISSEMENT_SOURCE_ID_UN UNIQUE (SOURCE_CODE) USING INDEX ETABLISSEMENT_SOURCE_ID_UN ENABLE;
+ALTER TABLE ETABLISSEMENT ADD CONSTRAINT ETABLISSEMENT_SOURCE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX ETABLISSEMENT_SOURCE_UN ENABLE;
 /
 
 ALTER TABLE ETAPE ADD CONSTRAINT ETAPE_CODE_UN UNIQUE (CODE, ANNEE_ID, HISTO_DESTRUCTION) USING INDEX ETAPE_CODE_UN ENABLE;
 /
 
-ALTER TABLE ETAPE ADD CONSTRAINT ETAPE_SRC_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION, ANNEE_ID) USING INDEX ETAPE_SRC_UN ENABLE;
+ALTER TABLE ETAPE ADD CONSTRAINT ETAPE_SOURCE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION, ANNEE_ID) USING INDEX ETAPE_SRC_UN ENABLE;
 /
 
 ALTER TABLE ETAT_SORTIE ADD CONSTRAINT ETAT_SORTIE_CODE_UN UNIQUE (CODE) USING INDEX ETAT_SORTIE_CODE_UN ENABLE;
@@ -22282,10 +22596,10 @@ ALTER TABLE FORMULE_TEST_STRUCTURE ADD CONSTRAINT FORMULE_TEST_STRUCTURE__UN UNI
 ALTER TABLE FORMULE ADD CONSTRAINT FORMULE__UN UNIQUE (LIBELLE) USING INDEX FORMULE__UN ENABLE;
 /
 
-ALTER TABLE GROUPE ADD CONSTRAINT GROUPE__UN UNIQUE (ELEMENT_PEDAGOGIQUE_ID, HISTO_DESTRUCTEUR_ID, TYPE_INTERVENTION_ID) USING INDEX GROUPE__UN ENABLE;
+ALTER TABLE GROUPE_TYPE_FORMATION ADD CONSTRAINT GROUPE_TYPE_FORMATIO_SOURCE_UN UNIQUE (SOURCE_CODE) USING INDEX GTYPE_FORMATION_SOURCE_UN ENABLE;
 /
 
-ALTER TABLE GROUPE_TYPE_FORMATION ADD CONSTRAINT GTYPE_FORMATION_SOURCE_UN UNIQUE (SOURCE_CODE) USING INDEX GTYPE_FORMATION_SOURCE_UN ENABLE;
+ALTER TABLE GROUPE ADD CONSTRAINT GROUPE__UN UNIQUE (ELEMENT_PEDAGOGIQUE_ID, HISTO_DESTRUCTEUR_ID, TYPE_INTERVENTION_ID) USING INDEX GROUPE__UN ENABLE;
 /
 
 ALTER TABLE HISTO_INTERVENANT_SERVICE ADD CONSTRAINT HISTO_INTERVENANT_SERVICE__UN UNIQUE (INTERVENANT_ID, TYPE_VOLUME_HORAIRE_ID, REFERENTIEL) USING INDEX HISTO_INTERVENANT_SERVICE__UN ENABLE;
@@ -22297,13 +22611,13 @@ ALTER TABLE INTERVENANT ADD CONSTRAINT INTERVENANT_CODE_UN UNIQUE (CODE, ANNEE_I
 ALTER TABLE INTERVENANT_SAISIE ADD CONSTRAINT INTERVENANT_SAISIE__UN UNIQUE (INTERVENANT_ID) USING INDEX INTERVENANT_SAISIE__UN ENABLE;
 /
 
-ALTER TABLE INTERVENANT ADD CONSTRAINT INTERVENANT_SOURCE__UN UNIQUE (SOURCE_CODE, ANNEE_ID) USING INDEX INTERVENANT_SOURCE__UN ENABLE;
+ALTER TABLE INTERVENANT ADD CONSTRAINT INTERVENANT_SOURCE_UN UNIQUE (SOURCE_CODE, ANNEE_ID, HISTO_DESTRUCTION) USING INDEX INTERVENANT_SOURCE_UN ENABLE;
 /
 
 ALTER TABLE INTERVENANT ADD CONSTRAINT INTERVENANT_UTIL_CODE_UN UNIQUE (UTILISATEUR_CODE, ANNEE_ID, STATUT_ID) USING INDEX INTERVENANT_UTIL_CODE_UN ENABLE;
 /
 
-ALTER TABLE LIEN ADD CONSTRAINT LIEN_SRC_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX LIEN_SRC_UN ENABLE;
+ALTER TABLE LIEN ADD CONSTRAINT LIEN_SOURCE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX LIEN_SRC_UN ENABLE;
 /
 
 ALTER TABLE MODULATEUR ADD CONSTRAINT MODULATEUR__UN UNIQUE (CODE) USING INDEX MODULATEUR__UN ENABLE;
@@ -22312,13 +22626,13 @@ ALTER TABLE MODULATEUR ADD CONSTRAINT MODULATEUR__UN UNIQUE (CODE) USING INDEX M
 ALTER TABLE MOTIF_MODIFICATION_SERVICE ADD CONSTRAINT MOTIF_MODIFICATION_SERVIC_UK1 UNIQUE (CODE) USING INDEX MOTIF_MODIFICATION_SERVIC_UK1 ENABLE;
 /
 
-ALTER TABLE NOEUD ADD CONSTRAINT NOEUD_SRC_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX NOEUD_SRC_UN ENABLE;
+ALTER TABLE NOEUD ADD CONSTRAINT NOEUD_SOURCE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX NOEUD_SRC_UN ENABLE;
 /
 
 ALTER TABLE NOTIFICATION_INDICATEUR ADD CONSTRAINT NOTIFICATION_INDICATEUR__UN UNIQUE (INDICATEUR_ID, AFFECTATION_ID) USING INDEX NOTIFICATION_INDICATEUR__UN ENABLE;
 /
 
-ALTER TABLE PARAMETRE ADD CONSTRAINT PARAMETRE_UK UNIQUE (NOM) USING INDEX PARAMETRE_UK ENABLE;
+ALTER TABLE PAYS ADD CONSTRAINT PAYS_SRC_UN UNIQUE (SOURCE_ID, SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX PAYS_SRC_UN ENABLE;
 /
 
 ALTER TABLE PERIMETRE ADD CONSTRAINT PERIMETRE_CODE_UN UNIQUE (CODE) USING INDEX PERIMETRE_CODE_UN ENABLE;
@@ -22342,13 +22656,13 @@ ALTER TABLE REGLE_STRUCTURE_VALIDATION ADD CONSTRAINT REGLE_STRUCTURE_VALIDATION
 ALTER TABLE ROLE ADD CONSTRAINT ROLE_CODE_UN UNIQUE (CODE) USING INDEX ROLE_CODE_UN ENABLE;
 /
 
-ALTER TABLE SCENARIO_LIEN ADD CONSTRAINT SCENARIO_LIEN_SRC_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX SCENARIO_LIEN_SRC_UN ENABLE;
+ALTER TABLE SCENARIO_LIEN ADD CONSTRAINT SCENARIO_LIEN_SOURCE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX SCENARIO_LIEN_SRC_UN ENABLE;
 /
 
 ALTER TABLE SCENARIO_LIEN ADD CONSTRAINT SCENARIO_LIEN__UN UNIQUE (SCENARIO_ID, LIEN_ID, HISTO_DESTRUCTION) USING INDEX SCENARIO_LIEN__UN ENABLE;
 /
 
-ALTER TABLE SCENARIO_NOEUD ADD CONSTRAINT SCENARIO_NOEUD_SRC_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX SCENARIO_NOEUD_SRC_UN ENABLE;
+ALTER TABLE SCENARIO_NOEUD ADD CONSTRAINT SCENARIO_NOEUD_SOURCE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX SCENARIO_NOEUD_SRC_UN ENABLE;
 /
 
 ALTER TABLE SCENARIO_NOEUD ADD CONSTRAINT SCENARIO_NOEUD__UN UNIQUE (SCENARIO_ID, NOEUD_ID, HISTO_DESTRUCTION) USING INDEX SCENARIO_NOEUD__UN ENABLE;
@@ -22369,13 +22683,13 @@ ALTER TABLE SOURCE ADD CONSTRAINT SOURCE_CODE_UN UNIQUE (CODE) USING INDEX SOURC
 ALTER TABLE STATUT_INTERVENANT ADD CONSTRAINT STATUT_INTERVENANT_ODRE_UN UNIQUE (HISTO_DESTRUCTION, ORDRE) USING INDEX STATUT_INTERVENANT_ODRE_UN ENABLE;
 /
 
-ALTER TABLE STATUT_INTERVENANT ADD CONSTRAINT STATUT_INTERVENANT__UN UNIQUE (SOURCE_CODE) USING INDEX STATUT_INTERVENANT__UN ENABLE;
+ALTER TABLE STATUT_INTERVENANT ADD CONSTRAINT STATUT_INTERVENANT_SOURCE_UN UNIQUE (SOURCE_CODE) USING INDEX STATUT_INTERVENANT__UN ENABLE;
 /
 
 ALTER TABLE STRUCTURE ADD CONSTRAINT STRUCTURE_CODE_UN UNIQUE (CODE, HISTO_DESTRUCTION) USING INDEX STRUCTURE_CODE_UN ENABLE;
 /
 
-ALTER TABLE STRUCTURE ADD CONSTRAINT STRUCTURE_SOURCE_CODE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX STRUCTURE_SOURCE_CODE_UN ENABLE;
+ALTER TABLE STRUCTURE ADD CONSTRAINT STRUCTURE_SOURCE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX STRUCTURE_SOURCE_CODE_UN ENABLE;
 /
 
 ALTER TABLE TBL_AGREMENT ADD CONSTRAINT TBL_AGREMENT__UN UNIQUE (TYPE_AGREMENT_ID, INTERVENANT_ID, STRUCTURE_ID, TO_DELETE) USING INDEX TBL_AGREMENT__UN_IDX ENABLE;
@@ -22417,13 +22731,13 @@ ALTER TABLE TBL_SERVICE_REFERENTIEL ADD CONSTRAINT TBL_SERVICE_REFERENTIEL__UN U
 ALTER TABLE TBL_SERVICE_SAISIE ADD CONSTRAINT TBL_SERVICE_SAISIE__UN UNIQUE (INTERVENANT_ID, TO_DELETE) USING INDEX TBL_SERVICE_SAISIE_UN_IDX ENABLE;
 /
 
-ALTER TABLE TBL_SERVICE ADD CONSTRAINT TBL_SERVICE__UN UNIQUE (SERVICE_ID, TYPE_VOLUME_HORAIRE_ID, TO_DELETE) USING INDEX TBL_SERVICE__UN_IDX ENABLE;
+ALTER TABLE TBL_SERVICE ADD CONSTRAINT TBL_SERVICE__UN UNIQUE (SERVICE_ID, TYPE_VOLUME_HORAIRE_ID, TO_DELETE) USING INDEX TBL_SERVICE__UN ENABLE;
 /
 
 ALTER TABLE TBL_VALIDATION_ENSEIGNEMENT ADD CONSTRAINT TBL_VALIDATION_ENSEIGNEMENT_UN UNIQUE (INTERVENANT_ID, STRUCTURE_ID, TYPE_VOLUME_HORAIRE_ID, SERVICE_ID, VOLUME_HORAIRE_ID, VALIDATION_ID, TO_DELETE) USING INDEX TBL_VALIDATION_ENSEIGNEMENT_UN ENABLE;
 /
 
-ALTER TABLE TBL_VALIDATION_REFERENTIEL ADD CONSTRAINT TBL_VALIDATION_REFERENTIEL__UN UNIQUE (INTERVENANT_ID, STRUCTURE_ID, TYPE_VOLUME_HORAIRE_ID, SERVICE_REFERENTIEL_ID, VOLUME_HORAIRE_REF_ID, VALIDATION_ID, TO_DELETE) USING INDEX TVR_UN_IDX ENABLE;
+ALTER TABLE TBL_VALIDATION_REFERENTIEL ADD CONSTRAINT TBL_VALIDATION_REFERENTIEL__UN UNIQUE (INTERVENANT_ID, STRUCTURE_ID, TYPE_VOLUME_HORAIRE_ID, SERVICE_REFERENTIEL_ID, VOLUME_HORAIRE_REF_ID, VALIDATION_ID, TO_DELETE) USING INDEX TBL_VALIDATION_REFERENTIEL__UN ENABLE;
 /
 
 ALTER TABLE TBL_WORKFLOW ADD CONSTRAINT TBL_WORKFLOW__UN UNIQUE (INTERVENANT_ID, ETAPE_ID, STRUCTURE_ID) USING INDEX TBL_WORKFLOW__UN ENABLE;
@@ -22435,7 +22749,7 @@ ALTER TABLE TYPE_AGREMENT_STATUT ADD CONSTRAINT TYPE_AGREMENT_STATUT__UN UNIQUE
 ALTER TABLE TYPE_AGREMENT ADD CONSTRAINT TYPE_AGREMENT__UN UNIQUE (CODE) USING INDEX TYPE_AGREMENT__UN ENABLE;
 /
 
-ALTER TABLE TYPE_FORMATION ADD CONSTRAINT TYPE_FORMATION__UN UNIQUE (SOURCE_CODE) USING INDEX TYPE_FORMATION__UN ENABLE;
+ALTER TABLE TYPE_FORMATION ADD CONSTRAINT TYPE_FORMATION_SOURCE_UN UNIQUE (SOURCE_CODE) USING INDEX TYPE_FORMATION__UN ENABLE;
 /
 
 ALTER TABLE TYPE_HEURES ADD CONSTRAINT TYPE_HEURES_UN UNIQUE (CODE) USING INDEX TYPE_HEURES_UN ENABLE;
@@ -22447,13 +22761,13 @@ ALTER TABLE TYPE_INTERVENANT ADD CONSTRAINT TYPE_INTERVENANT_CODE_UN UNIQUE (COD
 ALTER TABLE TYPE_INTERVENTION_STATUT ADD CONSTRAINT TYPE_INTERVENTION_STATUT__UN UNIQUE (TYPE_INTERVENTION_ID, STATUT_INTERVENANT_ID) USING INDEX TYPE_INTERVENTION_STATUT__UN ENABLE;
 /
 
-ALTER TABLE TYPE_MODULATEUR_EP ADD CONSTRAINT TYPE_MODULATEUR_EP__UN UNIQUE (SOURCE_CODE) USING INDEX TYPE_MODULATEUR_EP__UN ENABLE;
+ALTER TABLE TYPE_MODULATEUR_EP ADD CONSTRAINT TYPE_MODULATEUR_EP_SOURCE_UN UNIQUE (SOURCE_CODE) USING INDEX TYPE_MODULATEUR_EP__UN ENABLE;
 /
 
 ALTER TABLE TYPE_MODULATEUR_EP ADD CONSTRAINT TYPE_MODULATEUR_EP__UNV1 UNIQUE (TYPE_MODULATEUR_ID, ELEMENT_PEDAGOGIQUE_ID) USING INDEX TYPE_MODULATEUR_EP__UNV1 ENABLE;
 /
 
-ALTER TABLE TYPE_MODULATEUR_STRUCTURE ADD CONSTRAINT TYPE_MODULATEUR_STRUCTURE_UN UNIQUE (TYPE_MODULATEUR_ID, STRUCTURE_ID) USING INDEX TYPE_MODULATEUR_STRUCTURE_UN ENABLE;
+ALTER TABLE TYPE_MODULATEUR_STRUCTURE ADD CONSTRAINT TYPE_MODULATEUR_STRUCTURE_UN UNIQUE (TYPE_MODULATEUR_ID, STRUCTURE_ID, ANNEE_DEBUT_ID, HISTO_DESTRUCTION) USING INDEX TYPE_MODULATEUR_STRUCTURE_UN ENABLE;
 /
 
 ALTER TABLE TYPE_VOLUME_HORAIRE ADD CONSTRAINT TYPE_VOLUME_HORAIRE__UN UNIQUE (CODE) USING INDEX TYPE_VOLUME_HORAIRE__UN ENABLE;
@@ -22462,13 +22776,13 @@ ALTER TABLE TYPE_VOLUME_HORAIRE ADD CONSTRAINT TYPE_VOLUME_HORAIRE__UN UNIQUE (C
 ALTER TABLE UTILISATEUR ADD CONSTRAINT UTILISATEUR_USERNAME_UN UNIQUE (USERNAME) USING INDEX UTILISATEUR_USERNAME_UN ENABLE;
 /
 
-ALTER TABLE VOLUME_HORAIRE_CHARGE ADD CONSTRAINT VHC_HISTO_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX VHC_HISTO_UN ENABLE;
+ALTER TABLE VOLUME_HORAIRE_CHARGE ADD CONSTRAINT VOLUME_HORAIRE_CHARGE__UN UNIQUE (ELEMENT_PEDAGOGIQUE_ID, TYPE_INTERVENTION_ID, HISTO_DESTRUCTION) USING INDEX VOLUME_HORAIRE_CHARGE__UN ENABLE;
 /
 
-ALTER TABLE VOLUME_HORAIRE_CHARGE ADD CONSTRAINT VOLUME_HORAIRE_CHARGE__UN UNIQUE (ELEMENT_PEDAGOGIQUE_ID, TYPE_INTERVENTION_ID, HISTO_DESTRUCTION) USING INDEX VOLUME_HORAIRE_CHARGE__UN ENABLE;
+ALTER TABLE VOLUME_HORAIRE_CHARGE ADD CONSTRAINT VOLUME_HORAIRE_CHARG_SOURCE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX VHC_HISTO_UN ENABLE;
 /
 
-ALTER TABLE VOLUME_HORAIRE_ENS ADD CONSTRAINT VOLUME_HORAIRE_ENS_UK1 UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX VOLUME_HORAIRE_ENS_UK1 ENABLE;
+ALTER TABLE VOLUME_HORAIRE_ENS ADD CONSTRAINT VOLUME_HORAIRE_ENS_SOURCE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX VOLUME_HORAIRE_ENS_UK1 ENABLE;
 /
 
 ALTER TABLE VOLUME_HORAIRE_REF ADD CONSTRAINT VOLUME_HORAIRE_REF_SOURCE_UN UNIQUE (SOURCE_CODE, HISTO_DESTRUCTION) USING INDEX VOLUME_HORAIRE_REF_SOURCE_UN ENABLE;
@@ -23794,62 +24108,9 @@ END;
 
 
 
-
-
-
-CREATE OR REPLACE FORCE VIEW V_FORMULE_LOCAL_I_PARAMS AS 
-SELECT
-  null intervenant_id,
-  null param_1,
-  null param_2,
-  null param_3,
-  null param_4,
-  null param_5
-FROM
-  dual;
-/
-
-CREATE OR REPLACE FORCE VIEW V_FORMULE_LOCAL_VH_PARAMS AS 
-SELECT
-  vh.id     volume_horaire_id,
-  null      volume_horaire_ref_id,
-  str.code  param_1,
-  null      param_2,
-  null      param_3,
-  null      param_4,
-  null      param_5
-FROM
-            volume_horaire            vh
-       JOIN service                    s ON s.id = vh.service_id
-       JOIN intervenant                i ON i.id = s.intervenant_id
-  LEFT JOIN element_pedagogique       ep ON ep.id = s.element_pedagogique_id
-       JOIN structure                str ON str.id = COALESCE(ep.structure_id,i.structure_id)
-WHERE
-  vh.histo_destruction IS NULL
-  AND s.histo_destruction IS NULL
-  AND vh.heures <> 0
-  AND vh.motif_non_paiement_id IS NULL
-  AND s.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, s.intervenant_id )
-
-UNION ALL
-
-SELECT
-  null      volume_horaire_id,
-  vhr.id    volume_horaire_ref_id,
-  str.code  param_1,
-  null      param_2,
-  null      param_3,
-  null      param_4,
-  null      param_5
-FROM
-  volume_horaire_ref               vhr
-  JOIN service_referentiel          sr ON sr.id = vhr.service_referentiel_id
-  JOIN structure                   str ON str.id = sr.structure_id
-WHERE
-  vhr.histo_destruction IS NULL
-  AND sr.histo_destruction IS NULL
-  AND vhr.heures <> 0
-  AND sr.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, sr.intervenant_id );
+--------------------------------------------------
+-- Données de la base de données OSE
+--------------------------------------------------
 
 
 
@@ -24523,7 +24784,7 @@ INSERT INTO TYPE_VOLUME_HORAIRE(ID, CODE, LIBELLE, ORDRE) VALUES (2, q'[REALISE]
 
 
 -- Table UTILISATEUR
-INSERT INTO UTILISATEUR(ID, USERNAME, EMAIL, DISPLAY_NAME, PASSWORD, STATE, CODE) VALUES (UTILISATEUR_ID_SEQ.NEXTVAL, q'[oseappli]', q'[dsi.applications@unicaen.fr]', q'[Application OSE]', 'x', 1, NULL);
+INSERT INTO UTILISATEUR(ID, USERNAME, EMAIL, DISPLAY_NAME, PASSWORD, STATE, CODE, PASSWORD_RESET_TOKEN) VALUES (UTILISATEUR_ID_SEQ.NEXTVAL, q'[oseappli]', q'[dsi.applications@unicaen.fr]', q'[Application OSE]', 'x', 1, NULL, NULL);
 
 
 -- Table WF_ETAPE
diff --git a/data/ddl.php b/data/ddl.php
new file mode 100644
index 0000000000000000000000000000000000000000..fab350c8c82d6067bcc33c1fbd6edc7fc9128067
--- /dev/null
+++ b/data/ddl.php
@@ -0,0 +1,51527 @@
+<?php return array (
+  'BddAdmin\\Ddl\\DdlSequence' => 
+  array (
+    'ADRESSE_INTERVENANT_ID_SEQ' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT_ID_SEQ',
+    ),
+    'ADRESSE_STRUCTURE_ID_SEQ' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_ID_SEQ',
+    ),
+    'AFFECTATION_ID_SEQ' => 
+    array (
+      'name' => 'AFFECTATION_ID_SEQ',
+    ),
+    'AFFECTATION_RECHERCHE_ID_SEQ' => 
+    array (
+      'name' => 'AFFECTATION_RECHERCHE_ID_SEQ',
+    ),
+    'AGREMENT_ID_SEQ' => 
+    array (
+      'name' => 'AGREMENT_ID_SEQ',
+    ),
+    'CAMPAGNE_SAISIE_ID_SEQ' => 
+    array (
+      'name' => 'CAMPAGNE_SAISIE_ID_SEQ',
+    ),
+    'CATEGORIE_PRIVILEGE_ID_SEQ' => 
+    array (
+      'name' => 'CATEGORIE_PRIVILEGE_ID_SEQ',
+    ),
+    'CC_ACTIVITE_ID_SEQ' => 
+    array (
+      'name' => 'CC_ACTIVITE_ID_SEQ',
+    ),
+    'CENTRE_COUT_EP_ID_SEQ' => 
+    array (
+      'name' => 'CENTRE_COUT_EP_ID_SEQ',
+    ),
+    'CENTRE_COUT_ID_SEQ' => 
+    array (
+      'name' => 'CENTRE_COUT_ID_SEQ',
+    ),
+    'CENTRE_COUT_STRUCTURE_ID_SEQ' => 
+    array (
+      'name' => 'CENTRE_COUT_STRUCTURE_ID_SEQ',
+    ),
+    'CHEMIN_PEDAGOGIQUE_ID_SEQ' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_ID_SEQ',
+    ),
+    'CIVILITE_ID_SEQ' => 
+    array (
+      'name' => 'CIVILITE_ID_SEQ',
+    ),
+    'CONTRAT_FICHIER_ID_SEQ' => 
+    array (
+      'name' => 'CONTRAT_FICHIER_ID_SEQ',
+    ),
+    'CONTRAT_ID_SEQ' => 
+    array (
+      'name' => 'CONTRAT_ID_SEQ',
+    ),
+    'CORPS_ID_SEQ' => 
+    array (
+      'name' => 'CORPS_ID_SEQ',
+    ),
+    'DEPARTEMENT_ID_SEQ' => 
+    array (
+      'name' => 'DEPARTEMENT_ID_SEQ',
+    ),
+    'DISCIPLINE_ID_SEQ' => 
+    array (
+      'name' => 'DISCIPLINE_ID_SEQ',
+    ),
+    'DOMAINE_FONCTIONNEL_ID_SEQ' => 
+    array (
+      'name' => 'DOMAINE_FONCTIONNEL_ID_SEQ',
+    ),
+    'DOSSIER_ID_SEQ' => 
+    array (
+      'name' => 'DOSSIER_ID_SEQ',
+    ),
+    'DOTATION_ID_SEQ' => 
+    array (
+      'name' => 'DOTATION_ID_SEQ',
+    ),
+    'EFFECTIFS_ID_SEQ' => 
+    array (
+      'name' => 'EFFECTIFS_ID_SEQ',
+    ),
+    'ELEMENT_MODULATEUR_ID_SEQ' => 
+    array (
+      'name' => 'ELEMENT_MODULATEUR_ID_SEQ',
+    ),
+    'ELEMENT_PEDAGOGIQUE_ID_SEQ' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_ID_SEQ',
+    ),
+    'ELEMENT_TAUX_REGIMES_ID_SEQ' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES_ID_SEQ',
+    ),
+    'ETABLISSEMENT_ID_SEQ' => 
+    array (
+      'name' => 'ETABLISSEMENT_ID_SEQ',
+    ),
+    'ETAPE_ID_SEQ' => 
+    array (
+      'name' => 'ETAPE_ID_SEQ',
+    ),
+    'ETAT_SORTIE_ID_SEQ' => 
+    array (
+      'name' => 'ETAT_SORTIE_ID_SEQ',
+    ),
+    'FICHIER_ID_SEQ' => 
+    array (
+      'name' => 'FICHIER_ID_SEQ',
+    ),
+    'FONCTION_REFERENTIEL_ID_SEQ' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL_ID_SEQ',
+    ),
+    'FORMULE_RESULTAT_ID_SEQ' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_ID_SEQ',
+    ),
+    'FORMULE_RESULTAT_SERVIC_ID_SEQ' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_SERVIC_ID_SEQ',
+    ),
+    'FORMULE_RESULTAT_VH_ID_SEQ' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_VH_ID_SEQ',
+    ),
+    'FORMULE_RESULTAT_VH_REF_ID_SEQ' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_VH_REF_ID_SEQ',
+    ),
+    'FTEST_INTERVENANT_ID_SEQ' => 
+    array (
+      'name' => 'FTEST_INTERVENANT_ID_SEQ',
+    ),
+    'FTEST_STRUCTURE_ID_SEQ' => 
+    array (
+      'name' => 'FTEST_STRUCTURE_ID_SEQ',
+    ),
+    'FTEST_VOLUME_HORAIRE_ID_SEQ' => 
+    array (
+      'name' => 'FTEST_VOLUME_HORAIRE_ID_SEQ',
+    ),
+    'GRADE_ID_SEQ' => 
+    array (
+      'name' => 'GRADE_ID_SEQ',
+    ),
+    'GROUPE_ID_SEQ' => 
+    array (
+      'name' => 'GROUPE_ID_SEQ',
+    ),
+    'GROUPE_TYPE_FORMATION_ID_SEQ' => 
+    array (
+      'name' => 'GROUPE_TYPE_FORMATION_ID_SEQ',
+    ),
+    'HISTO_INTERVENANT_SERVI_ID_SEQ' => 
+    array (
+      'name' => 'HISTO_INTERVENANT_SERVI_ID_SEQ',
+    ),
+    'INDICATEUR_ID_SEQ' => 
+    array (
+      'name' => 'INDICATEUR_ID_SEQ',
+    ),
+    'INDIC_MODIF_DOSSIER_ID_SEQ' => 
+    array (
+      'name' => 'INDIC_MODIF_DOSSIER_ID_SEQ',
+    ),
+    'INTERVENANT_ID_SEQ' => 
+    array (
+      'name' => 'INTERVENANT_ID_SEQ',
+    ),
+    'INTERVENANT_SAISIE_ID_SEQ' => 
+    array (
+      'name' => 'INTERVENANT_SAISIE_ID_SEQ',
+    ),
+    'LIEN_ID_SEQ' => 
+    array (
+      'name' => 'LIEN_ID_SEQ',
+    ),
+    'MISE_EN_PAIEMENT_ID_SEQ' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_ID_SEQ',
+    ),
+    'MODELE_CONTRAT_ID_SEQ' => 
+    array (
+      'name' => 'MODELE_CONTRAT_ID_SEQ',
+    ),
+    'MODIFICATION_SERVICE_DU_ID_SEQ' => 
+    array (
+      'name' => 'MODIFICATION_SERVICE_DU_ID_SEQ',
+    ),
+    'MODULATEUR_ID_SEQ' => 
+    array (
+      'name' => 'MODULATEUR_ID_SEQ',
+    ),
+    'MOTIF_MODIFICATION_SERV_ID_SEQ' => 
+    array (
+      'name' => 'MOTIF_MODIFICATION_SERV_ID_SEQ',
+    ),
+    'MOTIF_NON_PAIEMENT_ID_SEQ' => 
+    array (
+      'name' => 'MOTIF_NON_PAIEMENT_ID_SEQ',
+    ),
+    'NOEUD_ID_SEQ' => 
+    array (
+      'name' => 'NOEUD_ID_SEQ',
+    ),
+    'NOTIFICATION_INDICATEUR_ID_SEQ' => 
+    array (
+      'name' => 'NOTIFICATION_INDICATEUR_ID_SEQ',
+    ),
+    'PARAMETRE_ID_SEQ' => 
+    array (
+      'name' => 'PARAMETRE_ID_SEQ',
+    ),
+    'PAYS_ID_SEQ' => 
+    array (
+      'name' => 'PAYS_ID_SEQ',
+    ),
+    'PERIMETRE_ID_SEQ' => 
+    array (
+      'name' => 'PERIMETRE_ID_SEQ',
+    ),
+    'PERIODE_ID_SEQ' => 
+    array (
+      'name' => 'PERIODE_ID_SEQ',
+    ),
+    'PIECE_JOINTE_FICHIER_ID_SEQ' => 
+    array (
+      'name' => 'PIECE_JOINTE_FICHIER_ID_SEQ',
+    ),
+    'PIECE_JOINTE_ID_SEQ' => 
+    array (
+      'name' => 'PIECE_JOINTE_ID_SEQ',
+    ),
+    'PLAFOND_APPLICATION_ID_SEQ' => 
+    array (
+      'name' => 'PLAFOND_APPLICATION_ID_SEQ',
+    ),
+    'PLAFOND_ETAT_ID_SEQ' => 
+    array (
+      'name' => 'PLAFOND_ETAT_ID_SEQ',
+    ),
+    'PRIVILEGE_ID_SEQ' => 
+    array (
+      'name' => 'PRIVILEGE_ID_SEQ',
+    ),
+    'REGLE_STRUCTURE_VALIDAT_ID_SEQ' => 
+    array (
+      'name' => 'REGLE_STRUCTURE_VALIDAT_ID_SEQ',
+    ),
+    'ROLE_ID_SEQ' => 
+    array (
+      'name' => 'ROLE_ID_SEQ',
+    ),
+    'ROLE_PRIVILEGE_ID_SEQ' => 
+    array (
+      'name' => 'ROLE_PRIVILEGE_ID_SEQ',
+    ),
+    'SCENARIO_ID_SEQ' => 
+    array (
+      'name' => 'SCENARIO_ID_SEQ',
+    ),
+    'SCENARIO_LIEN_ID_SEQ' => 
+    array (
+      'name' => 'SCENARIO_LIEN_ID_SEQ',
+    ),
+    'SCENARIO_NOEUD_EFFECTIF_ID_SEQ' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_EFFECTIF_ID_SEQ',
+    ),
+    'SCENARIO_NOEUD_ID_SEQ' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_ID_SEQ',
+    ),
+    'SCENARIO_NOEUD_SEUIL_ID_SEQ' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_SEUIL_ID_SEQ',
+    ),
+    'SERVICE_ID_SEQ' => 
+    array (
+      'name' => 'SERVICE_ID_SEQ',
+    ),
+    'SERVICE_REFERENTIEL_ID_SEQ' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL_ID_SEQ',
+    ),
+    'SEUIL_CHARGE_ID_SEQ' => 
+    array (
+      'name' => 'SEUIL_CHARGE_ID_SEQ',
+    ),
+    'SOURCE_ID_SEQ' => 
+    array (
+      'name' => 'SOURCE_ID_SEQ',
+    ),
+    'STATUT_INTERVENANT_ID_SEQ' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_ID_SEQ',
+    ),
+    'STATUT_PRIVILEGE_ID_SEQ' => 
+    array (
+      'name' => 'STATUT_PRIVILEGE_ID_SEQ',
+    ),
+    'STRUCTURE_ID_SEQ' => 
+    array (
+      'name' => 'STRUCTURE_ID_SEQ',
+    ),
+    'SYNC_LOG_ID_SEQ' => 
+    array (
+      'name' => 'SYNC_LOG_ID_SEQ',
+    ),
+    'TAUX_HORAIRE_HETD_ID_SEQ' => 
+    array (
+      'name' => 'TAUX_HORAIRE_HETD_ID_SEQ',
+    ),
+    'TBL_AGREMENT_ID_SEQ' => 
+    array (
+      'name' => 'TBL_AGREMENT_ID_SEQ',
+    ),
+    'TBL_CHARGENS_ID_SEQ' => 
+    array (
+      'name' => 'TBL_CHARGENS_ID_SEQ',
+    ),
+    'TBL_CHARGENS_SEUILS_DEF_ID_SEQ' => 
+    array (
+      'name' => 'TBL_CHARGENS_SEUILS_DEF_ID_SEQ',
+    ),
+    'TBL_CLOTURE_REALISE_ID_SEQ' => 
+    array (
+      'name' => 'TBL_CLOTURE_REALISE_ID_SEQ',
+    ),
+    'TBL_CONTRAT_ID_SEQ' => 
+    array (
+      'name' => 'TBL_CONTRAT_ID_SEQ',
+    ),
+    'TBL_DEMS_ID_SEQ' => 
+    array (
+      'name' => 'TBL_DEMS_ID_SEQ',
+    ),
+    'TBL_DMEP_LIQUIDATION_ID_SEQ' => 
+    array (
+      'name' => 'TBL_DMEP_LIQUIDATION_ID_SEQ',
+    ),
+    'TBL_DOSSIER_ID_SEQ' => 
+    array (
+      'name' => 'TBL_DOSSIER_ID_SEQ',
+    ),
+    'TBL_LIEN_ID_SEQ' => 
+    array (
+      'name' => 'TBL_LIEN_ID_SEQ',
+    ),
+    'TBL_NOEUD_ID_SEQ' => 
+    array (
+      'name' => 'TBL_NOEUD_ID_SEQ',
+    ),
+    'TBL_PAIEMENT_ID_SEQ' => 
+    array (
+      'name' => 'TBL_PAIEMENT_ID_SEQ',
+    ),
+    'TBL_PIECE_JOINTE_DEMAND_ID_SEQ' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE_DEMAND_ID_SEQ',
+    ),
+    'TBL_PIECE_JOINTE_FOURNI_ID_SEQ' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE_FOURNI_ID_SEQ',
+    ),
+    'TBL_PIECE_JOINTE_ID_SEQ' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE_ID_SEQ',
+    ),
+    'TBL_SERVICE_ID_SEQ' => 
+    array (
+      'name' => 'TBL_SERVICE_ID_SEQ',
+    ),
+    'TBL_SERVICE_REFERENTIEL_ID_SEQ' => 
+    array (
+      'name' => 'TBL_SERVICE_REFERENTIEL_ID_SEQ',
+    ),
+    'TBL_SERVICE_SAISIE_ID_SEQ' => 
+    array (
+      'name' => 'TBL_SERVICE_SAISIE_ID_SEQ',
+    ),
+    'TBL_VALIDATION_ENSEIGNE_ID_SEQ' => 
+    array (
+      'name' => 'TBL_VALIDATION_ENSEIGNE_ID_SEQ',
+    ),
+    'TBL_VALIDATION_REFERENT_ID_SEQ' => 
+    array (
+      'name' => 'TBL_VALIDATION_REFERENT_ID_SEQ',
+    ),
+    'TBL_WORKFLOW_ID_SEQ' => 
+    array (
+      'name' => 'TBL_WORKFLOW_ID_SEQ',
+    ),
+    'TEST_BUFFER_ID_SEQ' => 
+    array (
+      'name' => 'TEST_BUFFER_ID_SEQ',
+    ),
+    'TYPE_AGREMENT_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_AGREMENT_ID_SEQ',
+    ),
+    'TYPE_AGREMENT_STATUT_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_AGREMENT_STATUT_ID_SEQ',
+    ),
+    'TYPE_CONTRAT_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_CONTRAT_ID_SEQ',
+    ),
+    'TYPE_DOTATION_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_DOTATION_ID_SEQ',
+    ),
+    'TYPE_FORMATION_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_FORMATION_ID_SEQ',
+    ),
+    'TYPE_HEURES_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_HEURES_ID_SEQ',
+    ),
+    'TYPE_INTERVENANT_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_INTERVENANT_ID_SEQ',
+    ),
+    'TYPE_INTERVENTION_EP_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_EP_ID_SEQ',
+    ),
+    'TYPE_INTERVENTION_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_ID_SEQ',
+    ),
+    'TYPE_INTERVENTION_STATU_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STATU_ID_SEQ',
+    ),
+    'TYPE_INTERVENTION_STRUC_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STRUC_ID_SEQ',
+    ),
+    'TYPE_MODULATEUR_EP_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP_ID_SEQ',
+    ),
+    'TYPE_MODULATEUR_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_ID_SEQ',
+    ),
+    'TYPE_MODULATEUR_STRUCTU_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_STRUCTU_ID_SEQ',
+    ),
+    'TYPE_PIECE_JOINTE_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_ID_SEQ',
+    ),
+    'TYPE_PIECE_JOINTE_STATU_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_STATU_ID_SEQ',
+    ),
+    'TYPE_RESSOURCE_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_RESSOURCE_ID_SEQ',
+    ),
+    'TYPE_VALIDATION_ID_SEQ' => 
+    array (
+      'name' => 'TYPE_VALIDATION_ID_SEQ',
+    ),
+    'UTILISATEUR_ID_SEQ' => 
+    array (
+      'name' => 'UTILISATEUR_ID_SEQ',
+    ),
+    'VALIDATION_ID_SEQ' => 
+    array (
+      'name' => 'VALIDATION_ID_SEQ',
+    ),
+    'VALIDATION_VOL_HORAIRE_ID_SEQ' => 
+    array (
+      'name' => 'VALIDATION_VOL_HORAIRE_ID_SEQ',
+    ),
+    'VALIDATION_VOL_HORAIRE__ID_SEQ' => 
+    array (
+      'name' => 'VALIDATION_VOL_HORAIRE__ID_SEQ',
+    ),
+    'VOLUME_HORAIRE_CHARGE_ID_SEQ' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARGE_ID_SEQ',
+    ),
+    'VOLUME_HORAIRE_ENS_ID_SEQ' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS_ID_SEQ',
+    ),
+    'VOLUME_HORAIRE_ID_SEQ' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ID_SEQ',
+    ),
+    'VOLUME_HORAIRE_REF_ID_SEQ' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_ID_SEQ',
+    ),
+    'WF_DEP_BLOQUANTE_ID_SEQ' => 
+    array (
+      'name' => 'WF_DEP_BLOQUANTE_ID_SEQ',
+    ),
+    'WF_ETAPE_DEP_ID_SEQ' => 
+    array (
+      'name' => 'WF_ETAPE_DEP_ID_SEQ',
+    ),
+    'WF_ETAPE_ID_SEQ' => 
+    array (
+      'name' => 'WF_ETAPE_ID_SEQ',
+    ),
+  ),
+  'BddAdmin\\Ddl\\DdlTable' => 
+  array (
+    'ADRESSE_INTERVENANT' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'ADRESSE_INTERVENANT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TEL_DOMICILE' => 
+        array (
+          'name' => 'TEL_DOMICILE',
+          'type' => 'VARCHAR2',
+          'length' => 25,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'MENTION_COMPLEMENTAIRE' => 
+        array (
+          'name' => 'MENTION_COMPLEMENTAIRE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BATIMENT' => 
+        array (
+          'name' => 'BATIMENT',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NO_VOIE' => 
+        array (
+          'name' => 'NO_VOIE',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NOM_VOIE' => 
+        array (
+          'name' => 'NOM_VOIE',
+          'type' => 'VARCHAR2',
+          'length' => 120,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'LOCALITE' => 
+        array (
+          'name' => 'LOCALITE',
+          'type' => 'VARCHAR2',
+          'length' => 120,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CODE_POSTAL' => 
+        array (
+          'name' => 'CODE_POSTAL',
+          'type' => 'VARCHAR2',
+          'length' => 15,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VILLE' => 
+        array (
+          'name' => 'VILLE',
+          'type' => 'VARCHAR2',
+          'length' => 120,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PAYS_CODE_INSEE' => 
+        array (
+          'name' => 'PAYS_CODE_INSEE',
+          'type' => 'VARCHAR2',
+          'length' => 3,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PAYS_LIBELLE' => 
+        array (
+          'name' => 'PAYS_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'ADRESSE_STRUCTURE' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'ADRESSE_STRUCTURE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PRINCIPALE' => 
+        array (
+          'name' => 'PRINCIPALE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TELEPHONE' => 
+        array (
+          'name' => 'TELEPHONE',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NO_VOIE' => 
+        array (
+          'name' => 'NO_VOIE',
+          'type' => 'VARCHAR2',
+          'length' => 10,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NOM_VOIE' => 
+        array (
+          'name' => 'NOM_VOIE',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'LOCALITE' => 
+        array (
+          'name' => 'LOCALITE',
+          'type' => 'VARCHAR2',
+          'length' => 26,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CODE_POSTAL' => 
+        array (
+          'name' => 'CODE_POSTAL',
+          'type' => 'VARCHAR2',
+          'length' => 15,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VILLE' => 
+        array (
+          'name' => 'VILLE',
+          'type' => 'VARCHAR2',
+          'length' => 26,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PAYS_CODE_INSEE' => 
+        array (
+          'name' => 'PAYS_CODE_INSEE',
+          'type' => 'VARCHAR2',
+          'length' => 3,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PAYS_LIBELLE' => 
+        array (
+          'name' => 'PAYS_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'AFFECTATION' => 
+    array (
+      'name' => 'AFFECTATION',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'AFFECTATION_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'UTILISATEUR_ID' => 
+        array (
+          'name' => 'UTILISATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ROLE_ID' => 
+        array (
+          'name' => 'ROLE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'AFFECTATION_RECHERCHE' => 
+    array (
+      'name' => 'AFFECTATION_RECHERCHE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => 'Un chercheur peut avoir plusieurs affectations de recherche',
+      'sequence' => 'AFFECTATION_RECHERCHE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'LABO_LIBELLE' => 
+        array (
+          'name' => 'LABO_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 300,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'AGREMENT' => 
+    array (
+      'name' => 'AGREMENT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'AGREMENT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_AGREMENT_ID' => 
+        array (
+          'name' => 'TYPE_AGREMENT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DATE_DECISION' => 
+        array (
+          'name' => 'DATE_DECISION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'ANNEE' => 
+    array (
+      'name' => 'ANNEE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => NULL,
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 9,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DATE_DEBUT' => 
+        array (
+          'name' => 'DATE_DEBUT',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DATE_FIN' => 
+        array (
+          'name' => 'DATE_FIN',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ACTIVE' => 
+        array (
+          'name' => 'ACTIVE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TAUX_HETD' => 
+        array (
+          'name' => 'TAUX_HETD',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'CAMPAGNE_SAISIE' => 
+    array (
+      'name' => 'CAMPAGNE_SAISIE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'CAMPAGNE_SAISIE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENANT_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'TYPE_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DATE_DEBUT' => 
+        array (
+          'name' => 'DATE_DEBUT',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DATE_FIN' => 
+        array (
+          'name' => 'DATE_FIN',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'MESSAGE_INTERVENANT' => 
+        array (
+          'name' => 'MESSAGE_INTERVENANT',
+          'type' => 'VARCHAR2',
+          'length' => 300,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'MESSAGE_AUTRES' => 
+        array (
+          'name' => 'MESSAGE_AUTRES',
+          'type' => 'VARCHAR2',
+          'length' => 300,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'CATEGORIE_PRIVILEGE' => 
+    array (
+      'name' => 'CATEGORIE_PRIVILEGE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'CATEGORIE_PRIVILEGE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 150,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'CC_ACTIVITE' => 
+    array (
+      'name' => 'CC_ACTIVITE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'CC_ACTIVITE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FI' => 
+        array (
+          'name' => 'FI',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FA' => 
+        array (
+          'name' => 'FA',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FC' => 
+        array (
+          'name' => 'FC',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FC_MAJOREES' => 
+        array (
+          'name' => 'FC_MAJOREES',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'REFERENTIEL' => 
+        array (
+          'name' => 'REFERENTIEL',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'CENTRE_COUT' => 
+    array (
+      'name' => 'CENTRE_COUT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'CENTRE_COUT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ACTIVITE_ID' => 
+        array (
+          'name' => 'ACTIVITE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_RESSOURCE_ID' => 
+        array (
+          'name' => 'TYPE_RESSOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PARENT_ID' => 
+        array (
+          'name' => 'PARENT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'UNITE_BUDGETAIRE' => 
+        array (
+          'name' => 'UNITE_BUDGETAIRE',
+          'type' => 'VARCHAR2',
+          'length' => 15,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'CENTRE_COUT_EP' => 
+    array (
+      'name' => 'CENTRE_COUT_EP',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'CENTRE_COUT_EP_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CENTRE_COUT_ID' => 
+        array (
+          'name' => 'CENTRE_COUT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_HEURES_ID' => 
+        array (
+          'name' => 'TYPE_HEURES_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'CENTRE_COUT_STRUCTURE' => 
+    array (
+      'name' => 'CENTRE_COUT_STRUCTURE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'CENTRE_COUT_STRUCTURE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CENTRE_COUT_ID' => 
+        array (
+          'name' => 'CENTRE_COUT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'UNITE_BUDGETAIRE' => 
+        array (
+          'name' => 'UNITE_BUDGETAIRE',
+          'type' => 'VARCHAR2',
+          'length' => 15,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'CHEMIN_PEDAGOGIQUE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ETAPE_ID' => 
+        array (
+          'name' => 'ETAPE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'CIVILITE' => 
+    array (
+      'name' => 'CIVILITE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'CIVILITE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_COURT' => 
+        array (
+          'name' => 'LIBELLE_COURT',
+          'type' => 'VARCHAR2',
+          'length' => 5,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_LONG' => 
+        array (
+          'name' => 'LIBELLE_LONG',
+          'type' => 'VARCHAR2',
+          'length' => 15,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SEXE' => 
+        array (
+          'name' => 'SEXE',
+          'type' => 'VARCHAR2',
+          'length' => 1,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'CONTRAT' => 
+    array (
+      'name' => 'CONTRAT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'CONTRAT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_CONTRAT_ID' => 
+        array (
+          'name' => 'TYPE_CONTRAT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'VALIDATION_ID' => 
+        array (
+          'name' => 'VALIDATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NUMERO_AVENANT' => 
+        array (
+          'name' => 'NUMERO_AVENANT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'DATE_RETOUR_SIGNE' => 
+        array (
+          'name' => 'DATE_RETOUR_SIGNE',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CONTRAT_ID' => 
+        array (
+          'name' => 'CONTRAT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TOTAL_HETD' => 
+        array (
+          'name' => 'TOTAL_HETD',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'CONTRAT_FICHIER' => 
+    array (
+      'name' => 'CONTRAT_FICHIER',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'CONTRAT_FICHIER_ID_SEQ',
+      'columns' => 
+      array (
+        'CONTRAT_ID' => 
+        array (
+          'name' => 'CONTRAT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FICHIER_ID' => 
+        array (
+          'name' => 'FICHIER_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'CORPS' => 
+    array (
+      'name' => 'CORPS',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'CORPS_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_LONG' => 
+        array (
+          'name' => 'LIBELLE_LONG',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_COURT' => 
+        array (
+          'name' => 'LIBELLE_COURT',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'DEPARTEMENT' => 
+    array (
+      'name' => 'DEPARTEMENT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'DEPARTEMENT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_LONG' => 
+        array (
+          'name' => 'LIBELLE_LONG',
+          'type' => 'VARCHAR2',
+          'length' => 120,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'LIBELLE_COURT' => 
+        array (
+          'name' => 'LIBELLE_COURT',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 5,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'DISCIPLINE' => 
+    array (
+      'name' => 'DISCIPLINE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'DISCIPLINE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_COURT' => 
+        array (
+          'name' => 'LIBELLE_COURT',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'LIBELLE_LONG' => 
+        array (
+          'name' => 'LIBELLE_LONG',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODES_CORRESP_1' => 
+        array (
+          'name' => 'CODES_CORRESP_1',
+          'type' => 'VARCHAR2',
+          'length' => 1000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CODES_CORRESP_2' => 
+        array (
+          'name' => 'CODES_CORRESP_2',
+          'type' => 'VARCHAR2',
+          'length' => 1000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CODES_CORRESP_3' => 
+        array (
+          'name' => 'CODES_CORRESP_3',
+          'type' => 'VARCHAR2',
+          'length' => 1000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CODES_CORRESP_4' => 
+        array (
+          'name' => 'CODES_CORRESP_4',
+          'type' => 'VARCHAR2',
+          'length' => 1000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'DOMAINE_FONCTIONNEL' => 
+    array (
+      'name' => 'DOMAINE_FONCTIONNEL',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'DOMAINE_FONCTIONNEL_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'DOSSIER' => 
+    array (
+      'name' => 'DOSSIER',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'DOSSIER_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NOM_USUEL' => 
+        array (
+          'name' => 'NOM_USUEL',
+          'type' => 'VARCHAR2',
+          'length' => 128,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NOM_PATRONYMIQUE' => 
+        array (
+          'name' => 'NOM_PATRONYMIQUE',
+          'type' => 'VARCHAR2',
+          'length' => 128,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PRENOM' => 
+        array (
+          'name' => 'PRENOM',
+          'type' => 'VARCHAR2',
+          'length' => 128,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CIVILITE_ID' => 
+        array (
+          'name' => 'CIVILITE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NUMERO_INSEE' => 
+        array (
+          'name' => 'NUMERO_INSEE',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STATUT_ID' => 
+        array (
+          'name' => 'STATUT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ADRESSE' => 
+        array (
+          'name' => 'ADRESSE',
+          'type' => 'VARCHAR2',
+          'length' => 1024,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'EMAIL' => 
+        array (
+          'name' => 'EMAIL',
+          'type' => 'VARCHAR2',
+          'length' => 128,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TELEPHONE' => 
+        array (
+          'name' => 'TELEPHONE',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PREMIER_RECRUTEMENT' => 
+        array (
+          'name' => 'PREMIER_RECRUTEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'PERTE_EMPLOI' => 
+        array (
+          'name' => 'PERTE_EMPLOI',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'RIB' => 
+        array (
+          'name' => 'RIB',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NUMERO_INSEE_EST_PROVISOIRE' => 
+        array (
+          'name' => 'NUMERO_INSEE_EST_PROVISOIRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'EMAIL_PERSO' => 
+        array (
+          'name' => 'EMAIL_PERSO',
+          'type' => 'VARCHAR2',
+          'length' => 128,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DATE_NAISSANCE' => 
+        array (
+          'name' => 'DATE_NAISSANCE',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PAYS_NAISSANCE_ID' => 
+        array (
+          'name' => 'PAYS_NAISSANCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DEPT_NAISSANCE_ID' => 
+        array (
+          'name' => 'DEPT_NAISSANCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VILLE_NAISSANCE' => 
+        array (
+          'name' => 'VILLE_NAISSANCE',
+          'type' => 'VARCHAR2',
+          'length' => 128,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'DOTATION' => 
+    array (
+      'name' => 'DOTATION',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'DOTATION_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_RESSOURCE_ID' => 
+        array (
+          'name' => 'TYPE_RESSOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HEURES' => 
+        array (
+          'name' => 'HEURES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ANNEE_CIVILE' => 
+        array (
+          'name' => 'ANNEE_CIVILE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'EFFECTIFS' => 
+    array (
+      'name' => 'EFFECTIFS',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'EFFECTIFS_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FI' => 
+        array (
+          'name' => 'FI',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'FC' => 
+        array (
+          'name' => 'FC',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'FA' => 
+        array (
+          'name' => 'FA',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'ELEMENT_MODULATEUR' => 
+    array (
+      'name' => 'ELEMENT_MODULATEUR',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'ELEMENT_MODULATEUR_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ELEMENT_ID' => 
+        array (
+          'name' => 'ELEMENT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'MODULATEUR_ID' => 
+        array (
+          'name' => 'MODULATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'ELEMENT_PEDAGOGIQUE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ETAPE_ID' => 
+        array (
+          'name' => 'ETAPE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PERIODE_ID' => 
+        array (
+          'name' => 'PERIODE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TAUX_FI' => 
+        array (
+          'name' => 'TAUX_FI',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'TAUX_FC' => 
+        array (
+          'name' => 'TAUX_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TAUX_FA' => 
+        array (
+          'name' => 'TAUX_FA',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TAUX_FOAD' => 
+        array (
+          'name' => 'TAUX_FOAD',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'FI' => 
+        array (
+          'name' => 'FI',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'FC' => 
+        array (
+          'name' => 'FC',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'FA' => 
+        array (
+          'name' => 'FA',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DISCIPLINE_ID' => 
+        array (
+          'name' => 'DISCIPLINE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'ELEMENT_TAUX_REGIMES_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TAUX_FI' => 
+        array (
+          'name' => 'TAUX_FI',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TAUX_FC' => 
+        array (
+          'name' => 'TAUX_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TAUX_FA' => 
+        array (
+          'name' => 'TAUX_FA',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'ETABLISSEMENT' => 
+    array (
+      'name' => 'ETABLISSEMENT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'ETABLISSEMENT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LOCALISATION' => 
+        array (
+          'name' => 'LOCALISATION',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DEPARTEMENT' => 
+        array (
+          'name' => 'DEPARTEMENT',
+          'type' => 'VARCHAR2',
+          'length' => 3,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'ETAPE' => 
+    array (
+      'name' => 'ETAPE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'ETAPE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_FORMATION_ID' => 
+        array (
+          'name' => 'TYPE_FORMATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NIVEAU' => 
+        array (
+          'name' => 'NIVEAU',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SPECIFIQUE_ECHANGES' => 
+        array (
+          'name' => 'SPECIFIQUE_ECHANGES',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DOMAINE_FONCTIONNEL_ID' => 
+        array (
+          'name' => 'DOMAINE_FONCTIONNEL_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'ETAT_SORTIE' => 
+    array (
+      'name' => 'ETAT_SORTIE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'ETAT_SORTIE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 150,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 250,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FICHIER' => 
+        array (
+          'name' => 'FICHIER',
+          'type' => 'BLOB',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'REQUETE' => 
+        array (
+          'name' => 'REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CLE' => 
+        array (
+          'name' => 'CLE',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CSV_PARAMS' => 
+        array (
+          'name' => 'CSV_PARAMS',
+          'type' => 'CLOB',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PDF_TRAITEMENT' => 
+        array (
+          'name' => 'PDF_TRAITEMENT',
+          'type' => 'CLOB',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC1_NOM' => 
+        array (
+          'name' => 'BLOC1_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC1_ZONE' => 
+        array (
+          'name' => 'BLOC1_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC2_NOM' => 
+        array (
+          'name' => 'BLOC2_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC1_REQUETE' => 
+        array (
+          'name' => 'BLOC1_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC2_ZONE' => 
+        array (
+          'name' => 'BLOC2_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC2_REQUETE' => 
+        array (
+          'name' => 'BLOC2_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC3_NOM' => 
+        array (
+          'name' => 'BLOC3_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC3_ZONE' => 
+        array (
+          'name' => 'BLOC3_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC3_REQUETE' => 
+        array (
+          'name' => 'BLOC3_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC4_NOM' => 
+        array (
+          'name' => 'BLOC4_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC4_ZONE' => 
+        array (
+          'name' => 'BLOC4_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC4_REQUETE' => 
+        array (
+          'name' => 'BLOC4_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC5_NOM' => 
+        array (
+          'name' => 'BLOC5_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC5_ZONE' => 
+        array (
+          'name' => 'BLOC5_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC5_REQUETE' => 
+        array (
+          'name' => 'BLOC5_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC6_NOM' => 
+        array (
+          'name' => 'BLOC6_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC6_REQUETE' => 
+        array (
+          'name' => 'BLOC6_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC6_ZONE' => 
+        array (
+          'name' => 'BLOC6_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC7_NOM' => 
+        array (
+          'name' => 'BLOC7_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC7_ZONE' => 
+        array (
+          'name' => 'BLOC7_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC7_REQUETE' => 
+        array (
+          'name' => 'BLOC7_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC8_NOM' => 
+        array (
+          'name' => 'BLOC8_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC8_ZONE' => 
+        array (
+          'name' => 'BLOC8_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC8_REQUETE' => 
+        array (
+          'name' => 'BLOC8_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC9_NOM' => 
+        array (
+          'name' => 'BLOC9_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC9_ZONE' => 
+        array (
+          'name' => 'BLOC9_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC9_REQUETE' => 
+        array (
+          'name' => 'BLOC9_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC10_NOM' => 
+        array (
+          'name' => 'BLOC10_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC10_ZONE' => 
+        array (
+          'name' => 'BLOC10_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC10_REQUETE' => 
+        array (
+          'name' => 'BLOC10_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'AUTO_BREAK' => 
+        array (
+          'name' => 'AUTO_BREAK',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+      ),
+    ),
+    'ETAT_VOLUME_HORAIRE' => 
+    array (
+      'name' => 'ETAT_VOLUME_HORAIRE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => NULL,
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'FICHIER' => 
+    array (
+      'name' => 'FICHIER',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'FICHIER_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NOM' => 
+        array (
+          'name' => 'NOM',
+          'type' => 'VARCHAR2',
+          'length' => 128,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE' => 
+        array (
+          'name' => 'TYPE',
+          'type' => 'VARCHAR2',
+          'length' => 128,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TAILLE' => 
+        array (
+          'name' => 'TAILLE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CONTENU' => 
+        array (
+          'name' => 'CONTENU',
+          'type' => 'BLOB',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DESCRIPTION' => 
+        array (
+          'name' => 'DESCRIPTION',
+          'type' => 'VARCHAR2',
+          'length' => 256,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VALIDATION_ID' => 
+        array (
+          'name' => 'VALIDATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'FONCTION_REFERENTIEL' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'FONCTION_REFERENTIEL_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 32,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_LONG' => 
+        array (
+          'name' => 'LIBELLE_LONG',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_COURT' => 
+        array (
+          'name' => 'LIBELLE_COURT',
+          'type' => 'VARCHAR2',
+          'length' => 40,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DOMAINE_FONCTIONNEL_ID' => 
+        array (
+          'name' => 'DOMAINE_FONCTIONNEL_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PLAFOND' => 
+        array (
+          'name' => 'PLAFOND',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ETAPE_REQUISE' => 
+        array (
+          'name' => 'ETAPE_REQUISE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SERVICE_STATUTAIRE' => 
+        array (
+          'name' => 'SERVICE_STATUTAIRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'PARENT_ID' => 
+        array (
+          'name' => 'PARENT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'FORMULE' => 
+    array (
+      'name' => 'FORMULE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => NULL,
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PACKAGE_NAME' => 
+        array (
+          'name' => 'PACKAGE_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PROCEDURE_NAME' => 
+        array (
+          'name' => 'PROCEDURE_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'I_PARAM_1_LIBELLE' => 
+        array (
+          'name' => 'I_PARAM_1_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'I_PARAM_2_LIBELLE' => 
+        array (
+          'name' => 'I_PARAM_2_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'I_PARAM_3_LIBELLE' => 
+        array (
+          'name' => 'I_PARAM_3_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'I_PARAM_4_LIBELLE' => 
+        array (
+          'name' => 'I_PARAM_4_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'I_PARAM_5_LIBELLE' => 
+        array (
+          'name' => 'I_PARAM_5_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VH_PARAM_1_LIBELLE' => 
+        array (
+          'name' => 'VH_PARAM_1_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VH_PARAM_2_LIBELLE' => 
+        array (
+          'name' => 'VH_PARAM_2_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VH_PARAM_3_LIBELLE' => 
+        array (
+          'name' => 'VH_PARAM_3_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VH_PARAM_4_LIBELLE' => 
+        array (
+          'name' => 'VH_PARAM_4_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VH_PARAM_5_LIBELLE' => 
+        array (
+          'name' => 'VH_PARAM_5_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'FORMULE_RESULTAT' => 
+    array (
+      'name' => 'FORMULE_RESULTAT',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'FORMULE_RESULTAT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'TYPE_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ETAT_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'ETAT_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SERVICE_DU' => 
+        array (
+          'name' => 'SERVICE_DU',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SERVICE_FI' => 
+        array (
+          'name' => 'SERVICE_FI',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SERVICE_FA' => 
+        array (
+          'name' => 'SERVICE_FA',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SERVICE_FC' => 
+        array (
+          'name' => 'SERVICE_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SERVICE_REFERENTIEL' => 
+        array (
+          'name' => 'SERVICE_REFERENTIEL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_FI' => 
+        array (
+          'name' => 'HEURES_COMPL_FI',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_FA' => 
+        array (
+          'name' => 'HEURES_COMPL_FA',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_FC' => 
+        array (
+          'name' => 'HEURES_COMPL_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_FC_MAJOREES' => 
+        array (
+          'name' => 'HEURES_COMPL_FC_MAJOREES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_REFERENTIEL' => 
+        array (
+          'name' => 'HEURES_COMPL_REFERENTIEL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TOTAL' => 
+        array (
+          'name' => 'TOTAL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SOLDE' => 
+        array (
+          'name' => 'SOLDE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SOUS_SERVICE' => 
+        array (
+          'name' => 'SOUS_SERVICE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL' => 
+        array (
+          'name' => 'HEURES_COMPL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TYPE_INTERVENANT_CODE' => 
+        array (
+          'name' => 'TYPE_INTERVENANT_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 5,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'FORMULE_RESULTAT_SERVICE' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_SERVICE',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'FORMULE_RESULTAT_SERVIC_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FORMULE_RESULTAT_ID' => 
+        array (
+          'name' => 'FORMULE_RESULTAT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SERVICE_ID' => 
+        array (
+          'name' => 'SERVICE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SERVICE_FI' => 
+        array (
+          'name' => 'SERVICE_FI',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SERVICE_FA' => 
+        array (
+          'name' => 'SERVICE_FA',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SERVICE_FC' => 
+        array (
+          'name' => 'SERVICE_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_FI' => 
+        array (
+          'name' => 'HEURES_COMPL_FI',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_FA' => 
+        array (
+          'name' => 'HEURES_COMPL_FA',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_FC' => 
+        array (
+          'name' => 'HEURES_COMPL_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_FC_MAJOREES' => 
+        array (
+          'name' => 'HEURES_COMPL_FC_MAJOREES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TOTAL' => 
+        array (
+          'name' => 'TOTAL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'FORMULE_RESULTAT_SERVICE_REF' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_SERVICE_REF',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'FORMULE_RESULTAT_SERVIC_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FORMULE_RESULTAT_ID' => 
+        array (
+          'name' => 'FORMULE_RESULTAT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SERVICE_REFERENTIEL_ID' => 
+        array (
+          'name' => 'SERVICE_REFERENTIEL_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SERVICE_REFERENTIEL' => 
+        array (
+          'name' => 'SERVICE_REFERENTIEL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_REFERENTIEL' => 
+        array (
+          'name' => 'HEURES_COMPL_REFERENTIEL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TOTAL' => 
+        array (
+          'name' => 'TOTAL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'FORMULE_RESULTAT_VH' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_VH',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'FORMULE_RESULTAT_VH_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FORMULE_RESULTAT_ID' => 
+        array (
+          'name' => 'FORMULE_RESULTAT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SERVICE_FI' => 
+        array (
+          'name' => 'SERVICE_FI',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SERVICE_FA' => 
+        array (
+          'name' => 'SERVICE_FA',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SERVICE_FC' => 
+        array (
+          'name' => 'SERVICE_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_FI' => 
+        array (
+          'name' => 'HEURES_COMPL_FI',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_FA' => 
+        array (
+          'name' => 'HEURES_COMPL_FA',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_FC' => 
+        array (
+          'name' => 'HEURES_COMPL_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_FC_MAJOREES' => 
+        array (
+          'name' => 'HEURES_COMPL_FC_MAJOREES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TOTAL' => 
+        array (
+          'name' => 'TOTAL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'FORMULE_RESULTAT_VH_REF' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_VH_REF',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'FORMULE_RESULTAT_VH_REF_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FORMULE_RESULTAT_ID' => 
+        array (
+          'name' => 'FORMULE_RESULTAT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'VOLUME_HORAIRE_REF_ID' => 
+        array (
+          'name' => 'VOLUME_HORAIRE_REF_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SERVICE_REFERENTIEL' => 
+        array (
+          'name' => 'SERVICE_REFERENTIEL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_COMPL_REFERENTIEL' => 
+        array (
+          'name' => 'HEURES_COMPL_REFERENTIEL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TOTAL' => 
+        array (
+          'name' => 'TOTAL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'FORMULE_TEST_INTERVENANT' => 
+    array (
+      'name' => 'FORMULE_TEST_INTERVENANT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => 'sequence=FTEST_INTERVENANT_ID_SEQ;',
+      'sequence' => 'FTEST_INTERVENANT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 150,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FORMULE_ID' => 
+        array (
+          'name' => 'FORMULE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENANT_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'STRUCTURE_TEST_ID' => 
+        array (
+          'name' => 'STRUCTURE_TEST_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'TYPE_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'ETAT_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'ETAT_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'HEURES_DECHARGE' => 
+        array (
+          'name' => 'HEURES_DECHARGE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HEURES_SERVICE_STATUTAIRE' => 
+        array (
+          'name' => 'HEURES_SERVICE_STATUTAIRE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_SERVICE_MODIFIE' => 
+        array (
+          'name' => 'HEURES_SERVICE_MODIFIE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'DEPASSEMENT_SERVICE_DU_SANS_HC' => 
+        array (
+          'name' => 'DEPASSEMENT_SERVICE_DU_SANS_HC',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'PARAM_1' => 
+        array (
+          'name' => 'PARAM_1',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PARAM_2' => 
+        array (
+          'name' => 'PARAM_2',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PARAM_3' => 
+        array (
+          'name' => 'PARAM_3',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PARAM_4' => 
+        array (
+          'name' => 'PARAM_4',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PARAM_5' => 
+        array (
+          'name' => 'PARAM_5',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'A_SERVICE_DU' => 
+        array (
+          'name' => 'A_SERVICE_DU',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'C_SERVICE_DU' => 
+        array (
+          'name' => 'C_SERVICE_DU',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DEBUG_INFO' => 
+        array (
+          'name' => 'DEBUG_INFO',
+          'type' => 'CLOB',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TAUX_TP_SERVICE_DU' => 
+        array (
+          'name' => 'TAUX_TP_SERVICE_DU',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'TAUX_AUTRE_SERVICE_DU' => 
+        array (
+          'name' => 'TAUX_AUTRE_SERVICE_DU',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'TAUX_AUTRE_SERVICE_COMPL' => 
+        array (
+          'name' => 'TAUX_AUTRE_SERVICE_COMPL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'TAUX_CM_SERVICE_DU' => 
+        array (
+          'name' => 'TAUX_CM_SERVICE_DU',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1.5',
+        ),
+        'TAUX_CM_SERVICE_COMPL' => 
+        array (
+          'name' => 'TAUX_CM_SERVICE_COMPL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1.5',
+        ),
+        'TAUX_TP_SERVICE_COMPL' => 
+        array (
+          'name' => 'TAUX_TP_SERVICE_COMPL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '2/3',
+        ),
+      ),
+    ),
+    'FORMULE_TEST_STRUCTURE' => 
+    array (
+      'name' => 'FORMULE_TEST_STRUCTURE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => 'sequence=FTEST_STRUCTURE_ID_SEQ;',
+      'sequence' => 'FTEST_STRUCTURE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'UNIVERSITE' => 
+        array (
+          'name' => 'UNIVERSITE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'FORMULE_TEST_VOLUME_HORAIRE' => 
+    array (
+      'name' => 'FORMULE_TEST_VOLUME_HORAIRE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => 'sequence=FTEST_VOLUME_HORAIRE_ID_SEQ;',
+      'sequence' => 'FTEST_VOLUME_HORAIRE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_TEST_ID' => 
+        array (
+          'name' => 'INTERVENANT_TEST_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_TEST_ID' => 
+        array (
+          'name' => 'STRUCTURE_TEST_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'REFERENTIEL' => 
+        array (
+          'name' => 'REFERENTIEL',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SERVICE_STATUTAIRE' => 
+        array (
+          'name' => 'SERVICE_STATUTAIRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'TAUX_FI' => 
+        array (
+          'name' => 'TAUX_FI',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'TAUX_FA' => 
+        array (
+          'name' => 'TAUX_FA',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TAUX_FC' => 
+        array (
+          'name' => 'TAUX_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'PONDERATION_SERVICE_DU' => 
+        array (
+          'name' => 'PONDERATION_SERVICE_DU',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'PONDERATION_SERVICE_COMPL' => 
+        array (
+          'name' => 'PONDERATION_SERVICE_COMPL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'PARAM_1' => 
+        array (
+          'name' => 'PARAM_1',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PARAM_2' => 
+        array (
+          'name' => 'PARAM_2',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PARAM_3' => 
+        array (
+          'name' => 'PARAM_3',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PARAM_4' => 
+        array (
+          'name' => 'PARAM_4',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PARAM_5' => 
+        array (
+          'name' => 'PARAM_5',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HEURES' => 
+        array (
+          'name' => 'HEURES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'A_SERVICE_FI' => 
+        array (
+          'name' => 'A_SERVICE_FI',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'A_SERVICE_FA' => 
+        array (
+          'name' => 'A_SERVICE_FA',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'A_SERVICE_FC' => 
+        array (
+          'name' => 'A_SERVICE_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'A_SERVICE_REFERENTIEL' => 
+        array (
+          'name' => 'A_SERVICE_REFERENTIEL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'A_HEURES_COMPL_FI' => 
+        array (
+          'name' => 'A_HEURES_COMPL_FI',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'A_HEURES_COMPL_FA' => 
+        array (
+          'name' => 'A_HEURES_COMPL_FA',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'A_HEURES_COMPL_FC' => 
+        array (
+          'name' => 'A_HEURES_COMPL_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'A_HEURES_COMPL_FC_MAJOREES' => 
+        array (
+          'name' => 'A_HEURES_COMPL_FC_MAJOREES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'A_HEURES_COMPL_REFERENTIEL' => 
+        array (
+          'name' => 'A_HEURES_COMPL_REFERENTIEL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'C_SERVICE_FI' => 
+        array (
+          'name' => 'C_SERVICE_FI',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'C_SERVICE_FA' => 
+        array (
+          'name' => 'C_SERVICE_FA',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'C_SERVICE_FC' => 
+        array (
+          'name' => 'C_SERVICE_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'C_SERVICE_REFERENTIEL' => 
+        array (
+          'name' => 'C_SERVICE_REFERENTIEL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'C_HEURES_COMPL_FI' => 
+        array (
+          'name' => 'C_HEURES_COMPL_FI',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'C_HEURES_COMPL_FA' => 
+        array (
+          'name' => 'C_HEURES_COMPL_FA',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'C_HEURES_COMPL_FC' => 
+        array (
+          'name' => 'C_HEURES_COMPL_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'C_HEURES_COMPL_FC_MAJOREES' => 
+        array (
+          'name' => 'C_HEURES_COMPL_FC_MAJOREES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'C_HEURES_COMPL_REFERENTIEL' => 
+        array (
+          'name' => 'C_HEURES_COMPL_REFERENTIEL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DEBUG_INFO' => 
+        array (
+          'name' => 'DEBUG_INFO',
+          'type' => 'CLOB',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENTION_CODE' => 
+        array (
+          'name' => 'TYPE_INTERVENTION_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 15,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'GRADE' => 
+    array (
+      'name' => 'GRADE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'GRADE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_LONG' => 
+        array (
+          'name' => 'LIBELLE_LONG',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_COURT' => 
+        array (
+          'name' => 'LIBELLE_COURT',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ECHELLE' => 
+        array (
+          'name' => 'ECHELLE',
+          'type' => 'VARCHAR2',
+          'length' => 10,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CORPS_ID' => 
+        array (
+          'name' => 'CORPS_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'GROUPE' => 
+    array (
+      'name' => 'GROUPE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'GROUPE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENTION_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENTION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NOMBRE' => 
+        array (
+          'name' => 'NOMBRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'GROUPE_TYPE_FORMATION' => 
+    array (
+      'name' => 'GROUPE_TYPE_FORMATION',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'GROUPE_TYPE_FORMATION_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_COURT' => 
+        array (
+          'name' => 'LIBELLE_COURT',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_LONG' => 
+        array (
+          'name' => 'LIBELLE_LONG',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PERTINENCE_NIVEAU' => 
+        array (
+          'name' => 'PERTINENCE_NIVEAU',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'HISTO_INTERVENANT_SERVICE' => 
+    array (
+      'name' => 'HISTO_INTERVENANT_SERVICE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'HISTO_INTERVENANT_SERVI_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'TYPE_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'REFERENTIEL' => 
+        array (
+          'name' => 'REFERENTIEL',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'IMPORT_TABLES' => 
+    array (
+      'name' => 'IMPORT_TABLES',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => NULL,
+      'columns' => 
+      array (
+        'TABLE_NAME' => 
+        array (
+          'name' => 'TABLE_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SYNC_FILTRE' => 
+        array (
+          'name' => 'SYNC_FILTRE',
+          'type' => 'VARCHAR2',
+          'length' => 2000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SYNC_ENABLED' => 
+        array (
+          'name' => 'SYNC_ENABLED',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SYNC_JOB' => 
+        array (
+          'name' => 'SYNC_JOB',
+          'type' => 'VARCHAR2',
+          'length' => 40,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SYNC_HOOK_BEFORE' => 
+        array (
+          'name' => 'SYNC_HOOK_BEFORE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SYNC_HOOK_AFTER' => 
+        array (
+          'name' => 'SYNC_HOOK_AFTER',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'INDICATEUR' => 
+    array (
+      'name' => 'INDICATEUR',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'INDICATEUR_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE' => 
+        array (
+          'name' => 'TYPE',
+          'type' => 'VARCHAR2',
+          'length' => 64,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '100',
+        ),
+        'ENABLED' => 
+        array (
+          'name' => 'ENABLED',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'NUMERO' => 
+        array (
+          'name' => 'NUMERO',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'LIBELLE_SINGULIER' => 
+        array (
+          'name' => 'LIBELLE_SINGULIER',
+          'type' => 'VARCHAR2',
+          'length' => 255,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_PLURIEL' => 
+        array (
+          'name' => 'LIBELLE_PLURIEL',
+          'type' => 'VARCHAR2',
+          'length' => 255,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ROUTE' => 
+        array (
+          'name' => 'ROUTE',
+          'type' => 'VARCHAR2',
+          'length' => 250,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TEM_DISTINCT' => 
+        array (
+          'name' => 'TEM_DISTINCT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'TEM_NOT_STRUCTURE' => 
+        array (
+          'name' => 'TEM_NOT_STRUCTURE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'MESSAGE' => 
+        array (
+          'name' => 'MESSAGE',
+          'type' => 'VARCHAR2',
+          'length' => 800,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'INDIC_MODIF_DOSSIER' => 
+    array (
+      'name' => 'INDIC_MODIF_DOSSIER',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'INDIC_MODIF_DOSSIER_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ATTR_NAME' => 
+        array (
+          'name' => 'ATTR_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 128,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ATTR_OLD_SOURCE_NAME' => 
+        array (
+          'name' => 'ATTR_OLD_SOURCE_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 128,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ATTR_OLD_VALUE' => 
+        array (
+          'name' => 'ATTR_OLD_VALUE',
+          'type' => 'VARCHAR2',
+          'length' => 1024,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ATTR_NEW_SOURCE_NAME' => 
+        array (
+          'name' => 'ATTR_NEW_SOURCE_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 128,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ATTR_NEW_VALUE' => 
+        array (
+          'name' => 'ATTR_NEW_VALUE',
+          'type' => 'VARCHAR2',
+          'length' => 1024,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'EST_CREATION_DOSSIER' => 
+        array (
+          'name' => 'EST_CREATION_DOSSIER',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'INTERVENANT' => 
+    array (
+      'name' => 'INTERVENANT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'INTERVENANT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CIVILITE_ID' => 
+        array (
+          'name' => 'CIVILITE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NOM_USUEL' => 
+        array (
+          'name' => 'NOM_USUEL',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PRENOM' => 
+        array (
+          'name' => 'PRENOM',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NOM_PATRONYMIQUE' => 
+        array (
+          'name' => 'NOM_PATRONYMIQUE',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DATE_NAISSANCE' => 
+        array (
+          'name' => 'DATE_NAISSANCE',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'VILLE_NAISSANCE_CODE_INSEE' => 
+        array (
+          'name' => 'VILLE_NAISSANCE_CODE_INSEE',
+          'type' => 'VARCHAR2',
+          'length' => 5,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VILLE_NAISSANCE_LIBELLE' => 
+        array (
+          'name' => 'VILLE_NAISSANCE_LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TEL_PRO' => 
+        array (
+          'name' => 'TEL_PRO',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TEL_MOBILE' => 
+        array (
+          'name' => 'TEL_MOBILE',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'EMAIL' => 
+        array (
+          'name' => 'EMAIL',
+          'type' => 'VARCHAR2',
+          'length' => 255,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'STATUT_ID' => 
+        array (
+          'name' => 'STATUT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DISCIPLINE_ID' => 
+        array (
+          'name' => 'DISCIPLINE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NUMERO_INSEE' => 
+        array (
+          'name' => 'NUMERO_INSEE',
+          'type' => 'VARCHAR2',
+          'length' => 13,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NUMERO_INSEE_CLE' => 
+        array (
+          'name' => 'NUMERO_INSEE_CLE',
+          'type' => 'VARCHAR2',
+          'length' => 2,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NUMERO_INSEE_PROVISOIRE' => 
+        array (
+          'name' => 'NUMERO_INSEE_PROVISOIRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'IBAN' => 
+        array (
+          'name' => 'IBAN',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BIC' => 
+        array (
+          'name' => 'BIC',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'MONTANT_INDEMNITE_FC' => 
+        array (
+          'name' => 'MONTANT_INDEMNITE_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PREMIER_RECRUTEMENT' => 
+        array (
+          'name' => 'PREMIER_RECRUTEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'GRADE_ID' => 
+        array (
+          'name' => 'GRADE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CRITERE_RECHERCHE' => 
+        array (
+          'name' => 'CRITERE_RECHERCHE',
+          'type' => 'VARCHAR2',
+          'length' => 255,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'UTILISATEUR_CODE' => 
+        array (
+          'name' => 'UTILISATEUR_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PAYS_NAISSANCE_ID' => 
+        array (
+          'name' => 'PAYS_NAISSANCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DEP_NAISSANCE_ID' => 
+        array (
+          'name' => 'DEP_NAISSANCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PAYS_NATIONALITE_ID' => 
+        array (
+          'name' => 'PAYS_NATIONALITE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'INTERVENANT_SAISIE' => 
+    array (
+      'name' => 'INTERVENANT_SAISIE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'INTERVENANT_SAISIE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STATUT_ID' => 
+        array (
+          'name' => 'STATUT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'LIEN' => 
+    array (
+      'name' => 'LIEN',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'LIEN_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NOEUD_SUP_ID' => 
+        array (
+          'name' => 'NOEUD_SUP_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NOEUD_INF_ID' => 
+        array (
+          'name' => 'NOEUD_INF_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'LISTE_NOIRE' => 
+    array (
+      'name' => 'LISTE_NOIRE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => NULL,
+      'columns' => 
+      array (
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'MISE_EN_PAIEMENT' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'MISE_EN_PAIEMENT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FORMULE_RES_SERVICE_ID' => 
+        array (
+          'name' => 'FORMULE_RES_SERVICE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'FORMULE_RES_SERVICE_REF_ID' => 
+        array (
+          'name' => 'FORMULE_RES_SERVICE_REF_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DATE_MISE_EN_PAIEMENT' => 
+        array (
+          'name' => 'DATE_MISE_EN_PAIEMENT',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PERIODE_PAIEMENT_ID' => 
+        array (
+          'name' => 'PERIODE_PAIEMENT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CENTRE_COUT_ID' => 
+        array (
+          'name' => 'CENTRE_COUT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DOMAINE_FONCTIONNEL_ID' => 
+        array (
+          'name' => 'DOMAINE_FONCTIONNEL_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TYPE_HEURES_ID' => 
+        array (
+          'name' => 'TYPE_HEURES_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HEURES' => 
+        array (
+          'name' => 'HEURES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'VALIDATION_ID' => 
+        array (
+          'name' => 'VALIDATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DATE_VALIDATION' => 
+        array (
+          'name' => 'DATE_VALIDATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'MODELE_CONTRAT' => 
+    array (
+      'name' => 'MODELE_CONTRAT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'MODELE_CONTRAT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 250,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STATUT_INTERVENANT_ID' => 
+        array (
+          'name' => 'STATUT_INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'FICHIER' => 
+        array (
+          'name' => 'FICHIER',
+          'type' => 'BLOB',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'REQUETE' => 
+        array (
+          'name' => 'REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC1_NOM' => 
+        array (
+          'name' => 'BLOC1_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC1_ZONE' => 
+        array (
+          'name' => 'BLOC1_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC1_REQUETE' => 
+        array (
+          'name' => 'BLOC1_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC2_NOM' => 
+        array (
+          'name' => 'BLOC2_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC2_ZONE' => 
+        array (
+          'name' => 'BLOC2_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC2_REQUETE' => 
+        array (
+          'name' => 'BLOC2_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC3_NOM' => 
+        array (
+          'name' => 'BLOC3_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC3_ZONE' => 
+        array (
+          'name' => 'BLOC3_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC3_REQUETE' => 
+        array (
+          'name' => 'BLOC3_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC4_NOM' => 
+        array (
+          'name' => 'BLOC4_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC4_ZONE' => 
+        array (
+          'name' => 'BLOC4_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC4_REQUETE' => 
+        array (
+          'name' => 'BLOC4_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC5_NOM' => 
+        array (
+          'name' => 'BLOC5_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC5_ZONE' => 
+        array (
+          'name' => 'BLOC5_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC5_REQUETE' => 
+        array (
+          'name' => 'BLOC5_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC6_NOM' => 
+        array (
+          'name' => 'BLOC6_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC6_ZONE' => 
+        array (
+          'name' => 'BLOC6_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC6_REQUETE' => 
+        array (
+          'name' => 'BLOC6_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC7_NOM' => 
+        array (
+          'name' => 'BLOC7_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC7_ZONE' => 
+        array (
+          'name' => 'BLOC7_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC7_REQUETE' => 
+        array (
+          'name' => 'BLOC7_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC8_NOM' => 
+        array (
+          'name' => 'BLOC8_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC8_ZONE' => 
+        array (
+          'name' => 'BLOC8_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC8_REQUETE' => 
+        array (
+          'name' => 'BLOC8_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC9_NOM' => 
+        array (
+          'name' => 'BLOC9_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC9_ZONE' => 
+        array (
+          'name' => 'BLOC9_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC9_REQUETE' => 
+        array (
+          'name' => 'BLOC9_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC10_NOM' => 
+        array (
+          'name' => 'BLOC10_NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC10_ZONE' => 
+        array (
+          'name' => 'BLOC10_ZONE',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'BLOC10_REQUETE' => 
+        array (
+          'name' => 'BLOC10_REQUETE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'MODIFICATION_SERVICE_DU' => 
+    array (
+      'name' => 'MODIFICATION_SERVICE_DU',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'MODIFICATION_SERVICE_DU_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HEURES' => 
+        array (
+          'name' => 'HEURES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'MOTIF_ID' => 
+        array (
+          'name' => 'MOTIF_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'COMMENTAIRES' => 
+        array (
+          'name' => 'COMMENTAIRES',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'MODULATEUR' => 
+    array (
+      'name' => 'MODULATEUR',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'MODULATEUR_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 40,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_MODULATEUR_ID' => 
+        array (
+          'name' => 'TYPE_MODULATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PONDERATION_SERVICE_DU' => 
+        array (
+          'name' => 'PONDERATION_SERVICE_DU',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PONDERATION_SERVICE_COMPL' => 
+        array (
+          'name' => 'PONDERATION_SERVICE_COMPL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'MOTIF_MODIFICATION_SERVICE' => 
+    array (
+      'name' => 'MOTIF_MODIFICATION_SERVICE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'MOTIF_MODIFICATION_SERV_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 64,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 150,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'MULTIPLICATEUR' => 
+        array (
+          'name' => 'MULTIPLICATEUR',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DECHARGE' => 
+        array (
+          'name' => 'DECHARGE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'MOTIF_NON_PAIEMENT' => 
+    array (
+      'name' => 'MOTIF_NON_PAIEMENT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'MOTIF_NON_PAIEMENT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 3,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_COURT' => 
+        array (
+          'name' => 'LIBELLE_COURT',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_LONG' => 
+        array (
+          'name' => 'LIBELLE_LONG',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'NOEUD' => 
+    array (
+      'name' => 'NOEUD',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'NOEUD_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 255,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LISTE' => 
+        array (
+          'name' => 'LISTE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ETAPE_ID' => 
+        array (
+          'name' => 'ETAPE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'NOTIFICATION_INDICATEUR' => 
+    array (
+      'name' => 'NOTIFICATION_INDICATEUR',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'NOTIFICATION_INDICATEUR_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INDICATEUR_ID' => 
+        array (
+          'name' => 'INDICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'AFFECTATION_ID' => 
+        array (
+          'name' => 'AFFECTATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FREQUENCE' => 
+        array (
+          'name' => 'FREQUENCE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DATE_ABONNEMENT' => 
+        array (
+          'name' => 'DATE_ABONNEMENT',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DATE_DERN_NOTIF' => 
+        array (
+          'name' => 'DATE_DERN_NOTIF',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'IN_HOME' => 
+        array (
+          'name' => 'IN_HOME',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'PARAMETRE' => 
+    array (
+      'name' => 'PARAMETRE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'PARAMETRE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NOM' => 
+        array (
+          'name' => 'NOM',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VALEUR' => 
+        array (
+          'name' => 'VALEUR',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DESCRIPTION' => 
+        array (
+          'name' => 'DESCRIPTION',
+          'type' => 'VARCHAR2',
+          'length' => 500,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'PAYS' => 
+    array (
+      'name' => 'PAYS',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'PAYS_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_LONG' => 
+        array (
+          'name' => 'LIBELLE_LONG',
+          'type' => 'VARCHAR2',
+          'length' => 120,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_COURT' => 
+        array (
+          'name' => 'LIBELLE_COURT',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TEMOIN_UE' => 
+        array (
+          'name' => 'TEMOIN_UE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'VALIDITE_DEBUT' => 
+        array (
+          'name' => 'VALIDITE_DEBUT',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'VALIDITE_FIN' => 
+        array (
+          'name' => 'VALIDITE_FIN',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'PERIMETRE' => 
+    array (
+      'name' => 'PERIMETRE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'PERIMETRE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 150,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'PERIODE' => 
+    array (
+      'name' => 'PERIODE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'PERIODE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 3,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_LONG' => 
+        array (
+          'name' => 'LIBELLE_LONG',
+          'type' => 'VARCHAR2',
+          'length' => 40,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_COURT' => 
+        array (
+          'name' => 'LIBELLE_COURT',
+          'type' => 'VARCHAR2',
+          'length' => 15,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ECART_MOIS' => 
+        array (
+          'name' => 'ECART_MOIS',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ECART_MOIS_PAIEMENT' => 
+        array (
+          'name' => 'ECART_MOIS_PAIEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ENSEIGNEMENT' => 
+        array (
+          'name' => 'ENSEIGNEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PAIEMENT' => 
+        array (
+          'name' => 'PAIEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'PIECE_JOINTE' => 
+    array (
+      'name' => 'PIECE_JOINTE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'PIECE_JOINTE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_PIECE_JOINTE_ID' => 
+        array (
+          'name' => 'TYPE_PIECE_JOINTE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VALIDATION_ID' => 
+        array (
+          'name' => 'VALIDATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'PIECE_JOINTE_FICHIER' => 
+    array (
+      'name' => 'PIECE_JOINTE_FICHIER',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'PIECE_JOINTE_FICHIER_ID_SEQ',
+      'columns' => 
+      array (
+        'PIECE_JOINTE_ID' => 
+        array (
+          'name' => 'PIECE_JOINTE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FICHIER_ID' => 
+        array (
+          'name' => 'FICHIER_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'PLAFOND' => 
+    array (
+      'name' => 'PLAFOND',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => NULL,
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 40,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 150,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'PLAFOND_APPLICATION' => 
+    array (
+      'name' => 'PLAFOND_APPLICATION',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'PLAFOND_APPLICATION_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PLAFOND_ID' => 
+        array (
+          'name' => 'PLAFOND_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PLAFOND_ETAT_ID' => 
+        array (
+          'name' => 'PLAFOND_ETAT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_DEBUT_ID' => 
+        array (
+          'name' => 'ANNEE_DEBUT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ANNEE_FIN_ID' => 
+        array (
+          'name' => 'ANNEE_FIN_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TYPE_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'TYPE_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'PLAFOND_ETAT' => 
+    array (
+      'name' => 'PLAFOND_ETAT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'PLAFOND_ETAT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'PRIVILEGE' => 
+    array (
+      'name' => 'PRIVILEGE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'PRIVILEGE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CATEGORIE_ID' => 
+        array (
+          'name' => 'CATEGORIE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 150,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'REGLE_STRUCTURE_VALIDATION' => 
+    array (
+      'name' => 'REGLE_STRUCTURE_VALIDATION',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'REGLE_STRUCTURE_VALIDAT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'TYPE_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENANT_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PRIORITE' => 
+        array (
+          'name' => 'PRIORITE',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'MESSAGE' => 
+        array (
+          'name' => 'MESSAGE',
+          'type' => 'VARCHAR2',
+          'length' => 500,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'ROLE' => 
+    array (
+      'name' => 'ROLE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'ROLE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 64,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PERIMETRE_ID' => 
+        array (
+          'name' => 'PERIMETRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PEUT_CHANGER_STRUCTURE' => 
+        array (
+          'name' => 'PEUT_CHANGER_STRUCTURE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'ROLE_PRIVILEGE' => 
+    array (
+      'name' => 'ROLE_PRIVILEGE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'ROLE_PRIVILEGE_ID_SEQ',
+      'columns' => 
+      array (
+        'ROLE_ID' => 
+        array (
+          'name' => 'ROLE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PRIVILEGE_ID' => 
+        array (
+          'name' => 'PRIVILEGE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'SCENARIO' => 
+    array (
+      'name' => 'SCENARIO',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'SCENARIO_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TYPE' => 
+        array (
+          'name' => 'TYPE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 2,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'SCENARIO_LIEN' => 
+    array (
+      'name' => 'SCENARIO_LIEN',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'SCENARIO_LIEN_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SCENARIO_ID' => 
+        array (
+          'name' => 'SCENARIO_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIEN_ID' => 
+        array (
+          'name' => 'LIEN_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ACTIF' => 
+        array (
+          'name' => 'ACTIF',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'POIDS' => 
+        array (
+          'name' => 'POIDS',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'CHOIX_MINIMUM' => 
+        array (
+          'name' => 'CHOIX_MINIMUM',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => '0',
+        ),
+        'CHOIX_MAXIMUM' => 
+        array (
+          'name' => 'CHOIX_MAXIMUM',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => '0',
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'SCENARIO_NOEUD' => 
+    array (
+      'name' => 'SCENARIO_NOEUD',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'SCENARIO_NOEUD_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SCENARIO_ID' => 
+        array (
+          'name' => 'SCENARIO_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NOEUD_ID' => 
+        array (
+          'name' => 'NOEUD_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ASSIDUITE' => 
+        array (
+          'name' => 'ASSIDUITE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HEURES' => 
+        array (
+          'name' => 'HEURES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'SCENARIO_NOEUD_EFFECTIF' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_EFFECTIF',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'SCENARIO_NOEUD_EFFECTIF_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SCENARIO_NOEUD_ID' => 
+        array (
+          'name' => 'SCENARIO_NOEUD_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_HEURES_ID' => 
+        array (
+          'name' => 'TYPE_HEURES_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'EFFECTIF' => 
+        array (
+          'name' => 'EFFECTIF',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'ETAPE_ID' => 
+        array (
+          'name' => 'ETAPE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'SCENARIO_NOEUD_SEUIL' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_SEUIL',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'SCENARIO_NOEUD_SEUIL_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SCENARIO_NOEUD_ID' => 
+        array (
+          'name' => 'SCENARIO_NOEUD_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENTION_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENTION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'OUVERTURE' => 
+        array (
+          'name' => 'OUVERTURE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => '0',
+        ),
+        'DEDOUBLEMENT' => 
+        array (
+          'name' => 'DEDOUBLEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => '0',
+        ),
+        'ASSIDUITE' => 
+        array (
+          'name' => 'ASSIDUITE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'SERVICE' => 
+    array (
+      'name' => 'SERVICE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'SERVICE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ETABLISSEMENT_ID' => 
+        array (
+          'name' => 'ETABLISSEMENT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DESCRIPTION' => 
+        array (
+          'name' => 'DESCRIPTION',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'SERVICE_REFERENTIEL' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'SERVICE_REFERENTIEL_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FONCTION_ID' => 
+        array (
+          'name' => 'FONCTION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'COMMENTAIRES' => 
+        array (
+          'name' => 'COMMENTAIRES',
+          'type' => 'VARCHAR2',
+          'length' => 256,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'FORMATION' => 
+        array (
+          'name' => 'FORMATION',
+          'type' => 'VARCHAR2',
+          'length' => 256,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'SEUIL_CHARGE' => 
+    array (
+      'name' => 'SEUIL_CHARGE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'SEUIL_CHARGE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SCENARIO_ID' => 
+        array (
+          'name' => 'SCENARIO_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'GROUPE_TYPE_FORMATION_ID' => 
+        array (
+          'name' => 'GROUPE_TYPE_FORMATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENTION_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENTION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DEDOUBLEMENT' => 
+        array (
+          'name' => 'DEDOUBLEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'SOURCE' => 
+    array (
+      'name' => 'SOURCE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'SOURCE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 15,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'IMPORTABLE' => 
+        array (
+          'name' => 'IMPORTABLE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'STATUT_INTERVENANT' => 
+    array (
+      'name' => 'STATUT_INTERVENANT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'STATUT_INTERVENANT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 128,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SERVICE_STATUTAIRE' => 
+        array (
+          'name' => 'SERVICE_STATUTAIRE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DEPASSEMENT' => 
+        array (
+          'name' => 'DEPASSEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PLAFOND_REFERENTIEL' => 
+        array (
+          'name' => 'PLAFOND_REFERENTIEL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'MAXIMUM_HETD' => 
+        array (
+          'name' => 'MAXIMUM_HETD',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TYPE_INTERVENANT_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NON_AUTORISE' => 
+        array (
+          'name' => 'NON_AUTORISE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PEUT_SAISIR_SERVICE' => 
+        array (
+          'name' => 'PEUT_SAISIR_SERVICE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PEUT_CHOISIR_DANS_DOSSIER' => 
+        array (
+          'name' => 'PEUT_CHOISIR_DANS_DOSSIER',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PEUT_SAISIR_DOSSIER' => 
+        array (
+          'name' => 'PEUT_SAISIR_DOSSIER',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PEUT_SAISIR_REFERENTIEL' => 
+        array (
+          'name' => 'PEUT_SAISIR_REFERENTIEL',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'PEUT_SAISIR_MOTIF_NON_PAIEMENT' => 
+        array (
+          'name' => 'PEUT_SAISIR_MOTIF_NON_PAIEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'PEUT_AVOIR_CONTRAT' => 
+        array (
+          'name' => 'PEUT_AVOIR_CONTRAT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'PLAFOND_HC_HORS_REMU_FC' => 
+        array (
+          'name' => 'PLAFOND_HC_HORS_REMU_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '9999',
+        ),
+        'PLAFOND_HC_REMU_FC' => 
+        array (
+          'name' => 'PLAFOND_HC_REMU_FC',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '13502',
+        ),
+        'DEPASSEMENT_SERVICE_DU_SANS_HC' => 
+        array (
+          'name' => 'DEPASSEMENT_SERVICE_DU_SANS_HC',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'PEUT_CLOTURER_SAISIE' => 
+        array (
+          'name' => 'PEUT_CLOTURER_SAISIE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'PEUT_SAISIR_SERVICE_EXT' => 
+        array (
+          'name' => 'PEUT_SAISIR_SERVICE_EXT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TEM_ATV' => 
+        array (
+          'name' => 'TEM_ATV',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TEM_BIATSS' => 
+        array (
+          'name' => 'TEM_BIATSS',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'STATUT_PRIVILEGE' => 
+    array (
+      'name' => 'STATUT_PRIVILEGE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'STATUT_PRIVILEGE_ID_SEQ',
+      'columns' => 
+      array (
+        'STATUT_ID' => 
+        array (
+          'name' => 'STATUT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PRIVILEGE_ID' => 
+        array (
+          'name' => 'PRIVILEGE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'STRUCTURE' => 
+    array (
+      'name' => 'STRUCTURE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'STRUCTURE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_COURT' => 
+        array (
+          'name' => 'LIBELLE_COURT',
+          'type' => 'VARCHAR2',
+          'length' => 25,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_LONG' => 
+        array (
+          'name' => 'LIBELLE_LONG',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CONTACT_PJ' => 
+        array (
+          'name' => 'CONTACT_PJ',
+          'type' => 'VARCHAR2',
+          'length' => 255,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ENSEIGNEMENT' => 
+        array (
+          'name' => 'ENSEIGNEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'AFF_ADRESSE_CONTRAT' => 
+        array (
+          'name' => 'AFF_ADRESSE_CONTRAT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PLAFOND_REFERENTIEL' => 
+        array (
+          'name' => 'PLAFOND_REFERENTIEL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'SYNC_LOG' => 
+    array (
+      'name' => 'SYNC_LOG',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'SYNC_LOG_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DATE_SYNC' => 
+        array (
+          'name' => 'DATE_SYNC',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TABLE_NAME' => 
+        array (
+          'name' => 'TABLE_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'MESSAGE' => 
+        array (
+          'name' => 'MESSAGE',
+          'type' => 'VARCHAR2',
+          'length' => 4000,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TAUX_HORAIRE_HETD' => 
+    array (
+      'name' => 'TAUX_HORAIRE_HETD',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TAUX_HORAIRE_HETD_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'VALEUR' => 
+        array (
+          'name' => 'VALEUR',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TBL' => 
+    array (
+      'name' => 'TBL',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => NULL,
+      'columns' => 
+      array (
+        'TBL_NAME' => 
+        array (
+          'name' => 'TBL_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TABLE_NAME' => 
+        array (
+          'name' => 'TABLE_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VIEW_NAME' => 
+        array (
+          'name' => 'VIEW_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SEQUENCE_NAME' => 
+        array (
+          'name' => 'SEQUENCE_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CONSTRAINT_NAME' => 
+        array (
+          'name' => 'CONSTRAINT_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CUSTOM_CALCUL_PROC' => 
+        array (
+          'name' => 'CUSTOM_CALCUL_PROC',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'FEUILLE_DE_ROUTE' => 
+        array (
+          'name' => 'FEUILLE_DE_ROUTE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_AGREMENT' => 
+    array (
+      'name' => 'TBL_AGREMENT',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_AGREMENT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_AGREMENT_ID' => 
+        array (
+          'name' => 'TYPE_AGREMENT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'OBLIGATOIRE' => 
+        array (
+          'name' => 'OBLIGATOIRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'AGREMENT_ID' => 
+        array (
+          'name' => 'AGREMENT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_CHARGENS' => 
+    array (
+      'name' => 'TBL_CHARGENS',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_CHARGENS_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NOEUD_ID' => 
+        array (
+          'name' => 'NOEUD_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SCENARIO_ID' => 
+        array (
+          'name' => 'SCENARIO_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_HEURES_ID' => 
+        array (
+          'name' => 'TYPE_HEURES_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENTION_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENTION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ETAPE_ID' => 
+        array (
+          'name' => 'ETAPE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ETAPE_ENS_ID' => 
+        array (
+          'name' => 'ETAPE_ENS_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'GROUPE_TYPE_FORMATION_ID' => 
+        array (
+          'name' => 'GROUPE_TYPE_FORMATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'OUVERTURE' => 
+        array (
+          'name' => 'OUVERTURE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DEDOUBLEMENT' => 
+        array (
+          'name' => 'DEDOUBLEMENT',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ASSIDUITE' => 
+        array (
+          'name' => 'ASSIDUITE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'EFFECTIF' => 
+        array (
+          'name' => 'EFFECTIF',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HEURES_ENS' => 
+        array (
+          'name' => 'HEURES_ENS',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'GROUPES' => 
+        array (
+          'name' => 'GROUPES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HEURES' => 
+        array (
+          'name' => 'HEURES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HETD' => 
+        array (
+          'name' => 'HETD',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_CHARGENS_SEUILS_DEF' => 
+    array (
+      'name' => 'TBL_CHARGENS_SEUILS_DEF',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_CHARGENS_SEUILS_DEF_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SCENARIO_ID' => 
+        array (
+          'name' => 'SCENARIO_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'GROUPE_TYPE_FORMATION_ID' => 
+        array (
+          'name' => 'GROUPE_TYPE_FORMATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENTION_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENTION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DEDOUBLEMENT' => 
+        array (
+          'name' => 'DEDOUBLEMENT',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_CLOTURE_REALISE' => 
+    array (
+      'name' => 'TBL_CLOTURE_REALISE',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_CLOTURE_REALISE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PEUT_CLOTURER_SAISIE' => 
+        array (
+          'name' => 'PEUT_CLOTURER_SAISIE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'CLOTURE' => 
+        array (
+          'name' => 'CLOTURE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_CONTRAT' => 
+    array (
+      'name' => 'TBL_CONTRAT',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_CONTRAT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PEUT_AVOIR_CONTRAT' => 
+        array (
+          'name' => 'PEUT_AVOIR_CONTRAT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NBVH' => 
+        array (
+          'name' => 'NBVH',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'EDITE' => 
+        array (
+          'name' => 'EDITE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SIGNE' => 
+        array (
+          'name' => 'SIGNE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_DEMS' => 
+    array (
+      'name' => 'TBL_DEMS',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_DEMS_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TBL_NAME' => 
+        array (
+          'name' => 'TBL_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'C1' => 
+        array (
+          'name' => 'C1',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'V1' => 
+        array (
+          'name' => 'V1',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'C2' => 
+        array (
+          'name' => 'C2',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'V2' => 
+        array (
+          'name' => 'V2',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'C3' => 
+        array (
+          'name' => 'C3',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'V3' => 
+        array (
+          'name' => 'V3',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'C4' => 
+        array (
+          'name' => 'C4',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'V4' => 
+        array (
+          'name' => 'V4',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'C5' => 
+        array (
+          'name' => 'C5',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'V5' => 
+        array (
+          'name' => 'V5',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SQLCOND' => 
+        array (
+          'name' => 'SQLCOND',
+          'type' => 'VARCHAR2',
+          'length' => 3500,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TBL_DMEP_LIQUIDATION' => 
+    array (
+      'name' => 'TBL_DMEP_LIQUIDATION',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_DMEP_LIQUIDATION_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_RESSOURCE_ID' => 
+        array (
+          'name' => 'TYPE_RESSOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HEURES' => 
+        array (
+          'name' => 'HEURES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_DOSSIER' => 
+    array (
+      'name' => 'TBL_DOSSIER',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_DOSSIER_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PEUT_SAISIR_DOSSIER' => 
+        array (
+          'name' => 'PEUT_SAISIR_DOSSIER',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'DOSSIER_ID' => 
+        array (
+          'name' => 'DOSSIER_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VALIDATION_ID' => 
+        array (
+          'name' => 'VALIDATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_LIEN' => 
+    array (
+      'name' => 'TBL_LIEN',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_LIEN_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIEN_ID' => 
+        array (
+          'name' => 'LIEN_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SCENARIO_ID' => 
+        array (
+          'name' => 'SCENARIO_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SCENARIO_LIEN_ID' => 
+        array (
+          'name' => 'SCENARIO_LIEN_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NOEUD_SUP_ID' => 
+        array (
+          'name' => 'NOEUD_SUP_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'NOEUD_INF_ID' => 
+        array (
+          'name' => 'NOEUD_INF_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ACTIF' => 
+        array (
+          'name' => 'ACTIF',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'POIDS' => 
+        array (
+          'name' => 'POIDS',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'CHOIX_MINIMUM' => 
+        array (
+          'name' => 'CHOIX_MINIMUM',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CHOIX_MAXIMUM' => 
+        array (
+          'name' => 'CHOIX_MAXIMUM',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NB_CHOIX' => 
+        array (
+          'name' => 'NB_CHOIX',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'TOTAL_POIDS' => 
+        array (
+          'name' => 'TOTAL_POIDS',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'MAX_POIDS' => 
+        array (
+          'name' => 'MAX_POIDS',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '1',
+        ),
+      ),
+    ),
+    'TBL_PAIEMENT' => 
+    array (
+      'name' => 'TBL_PAIEMENT',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_PAIEMENT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'MISE_EN_PAIEMENT_ID' => 
+        array (
+          'name' => 'MISE_EN_PAIEMENT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PERIODE_PAIEMENT_ID' => 
+        array (
+          'name' => 'PERIODE_PAIEMENT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_A_PAYER' => 
+        array (
+          'name' => 'HEURES_A_PAYER',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_A_PAYER_POND' => 
+        array (
+          'name' => 'HEURES_A_PAYER_POND',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_DEMANDEES' => 
+        array (
+          'name' => 'HEURES_DEMANDEES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_PAYEES' => 
+        array (
+          'name' => 'HEURES_PAYEES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'FORMULE_RES_SERVICE_ID' => 
+        array (
+          'name' => 'FORMULE_RES_SERVICE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'FORMULE_RES_SERVICE_REF_ID' => 
+        array (
+          'name' => 'FORMULE_RES_SERVICE_REF_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TBL_PIECE_JOINTE' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_PIECE_JOINTE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_PIECE_JOINTE_ID' => 
+        array (
+          'name' => 'TYPE_PIECE_JOINTE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DEMANDEE' => 
+        array (
+          'name' => 'DEMANDEE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'FOURNIE' => 
+        array (
+          'name' => 'FOURNIE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'VALIDEE' => 
+        array (
+          'name' => 'VALIDEE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_POUR_SEUIL' => 
+        array (
+          'name' => 'HEURES_POUR_SEUIL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_PIECE_JOINTE_DEMANDE' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE_DEMANDE',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_PIECE_JOINTE_DEMAND_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_PIECE_JOINTE_ID' => 
+        array (
+          'name' => 'TYPE_PIECE_JOINTE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_POUR_SEUIL' => 
+        array (
+          'name' => 'HEURES_POUR_SEUIL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_PIECE_JOINTE_FOURNIE' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_PIECE_JOINTE_FOURNI_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_PIECE_JOINTE_ID' => 
+        array (
+          'name' => 'TYPE_PIECE_JOINTE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'VALIDATION_ID' => 
+        array (
+          'name' => 'VALIDATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'FICHIER_ID' => 
+        array (
+          'name' => 'FICHIER_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'PIECE_JOINTE_ID' => 
+        array (
+          'name' => 'PIECE_JOINTE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TBL_SERVICE' => 
+    array (
+      'name' => 'TBL_SERVICE',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_SERVICE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PEUT_SAISIR_SERVICE' => 
+        array (
+          'name' => 'PEUT_SAISIR_SERVICE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TYPE_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'TYPE_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NBVH' => 
+        array (
+          'name' => 'NBVH',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'VALIDE' => 
+        array (
+          'name' => 'VALIDE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'ELEMENT_PEDAGOGIQUE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_PERIODE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_PERIODE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ETAPE_ID' => 
+        array (
+          'name' => 'ETAPE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_HISTO' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_HISTO',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'ETAPE_HISTO' => 
+        array (
+          'name' => 'ETAPE_HISTO',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'HAS_HEURES_MAUVAISE_PERIODE' => 
+        array (
+          'name' => 'HAS_HEURES_MAUVAISE_PERIODE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SERVICE_ID' => 
+        array (
+          'name' => 'SERVICE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_STRUCTURE_ID' => 
+        array (
+          'name' => 'INTERVENANT_STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENANT_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENANT_CODE' => 
+        array (
+          'name' => 'TYPE_INTERVENANT_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 5,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_VOLUME_HORAIRE_CODE' => 
+        array (
+          'name' => 'TYPE_VOLUME_HORAIRE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 15,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HEURES' => 
+        array (
+          'name' => 'HEURES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_SERVICE_REFERENTIEL' => 
+    array (
+      'name' => 'TBL_SERVICE_REFERENTIEL',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_SERVICE_REFERENTIEL_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PEUT_SAISIR_SERVICE' => 
+        array (
+          'name' => 'PEUT_SAISIR_SERVICE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TYPE_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'TYPE_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'NBVH' => 
+        array (
+          'name' => 'NBVH',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'VALIDE' => 
+        array (
+          'name' => 'VALIDE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_SERVICE_SAISIE' => 
+    array (
+      'name' => 'TBL_SERVICE_SAISIE',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_SERVICE_SAISIE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PEUT_SAISIR_SERVICE' => 
+        array (
+          'name' => 'PEUT_SAISIR_SERVICE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'PEUT_SAISIR_REFERENTIEL' => 
+        array (
+          'name' => 'PEUT_SAISIR_REFERENTIEL',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_SERVICE_PREV' => 
+        array (
+          'name' => 'HEURES_SERVICE_PREV',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_REFERENTIEL_PREV' => 
+        array (
+          'name' => 'HEURES_REFERENTIEL_PREV',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_SERVICE_REAL' => 
+        array (
+          'name' => 'HEURES_SERVICE_REAL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HEURES_REFERENTIEL_REAL' => 
+        array (
+          'name' => 'HEURES_REFERENTIEL_REAL',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_VALIDATION_ENSEIGNEMENT' => 
+    array (
+      'name' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_VALIDATION_ENSEIGNE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'TYPE_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SERVICE_ID' => 
+        array (
+          'name' => 'SERVICE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'VALIDATION_ID' => 
+        array (
+          'name' => 'VALIDATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'AUTO_VALIDATION' => 
+        array (
+          'name' => 'AUTO_VALIDATION',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_VALIDATION_REFERENTIEL' => 
+    array (
+      'name' => 'TBL_VALIDATION_REFERENTIEL',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_VALIDATION_REFERENT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'TYPE_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SERVICE_REFERENTIEL_ID' => 
+        array (
+          'name' => 'SERVICE_REFERENTIEL_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'VALIDATION_ID' => 
+        array (
+          'name' => 'VALIDATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'VOLUME_HORAIRE_REF_ID' => 
+        array (
+          'name' => 'VOLUME_HORAIRE_REF_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'AUTO_VALIDATION' => 
+        array (
+          'name' => 'AUTO_VALIDATION',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TBL_WORKFLOW' => 
+    array (
+      'name' => 'TBL_WORKFLOW',
+      'temporary' => false,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => 'TBL_WORKFLOW_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ETAPE_ID' => 
+        array (
+          'name' => 'ETAPE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => 'null',
+        ),
+        'ATTEIGNABLE' => 
+        array (
+          'name' => 'ATTEIGNABLE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'REALISATION' => 
+        array (
+          'name' => 'REALISATION',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'OBJECTIF' => 
+        array (
+          'name' => 'OBJECTIF',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'ANNEE_ID' => 
+        array (
+          'name' => 'ANNEE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENANT_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENANT_CODE' => 
+        array (
+          'name' => 'TYPE_INTERVENANT_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 5,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ETAPE_CODE' => 
+        array (
+          'name' => 'ETAPE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STATUT_INTERVENANT_ID' => 
+        array (
+          'name' => 'STATUT_INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TEST_BUFFER' => 
+    array (
+      'name' => 'TEST_BUFFER',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TEST_BUFFER_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TABLE_NAME' => 
+        array (
+          'name' => 'TABLE_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 30,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DATA_ID' => 
+        array (
+          'name' => 'DATA_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TMP_SCENARIO_NOEUD_EFFECTIF' => 
+    array (
+      'name' => 'TMP_SCENARIO_NOEUD_EFFECTIF',
+      'temporary' => true,
+      'logging' => false,
+      'commentaire' => NULL,
+      'sequence' => NULL,
+      'columns' => 
+      array (
+        'SCENARIO_NOEUD_ID' => 
+        array (
+          'name' => 'SCENARIO_NOEUD_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_HEURES_ID' => 
+        array (
+          'name' => 'TYPE_HEURES_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ETAPE_ID' => 
+        array (
+          'name' => 'ETAPE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'EFFECTIF' => 
+        array (
+          'name' => 'EFFECTIF',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TYPE_AGREMENT' => 
+    array (
+      'name' => 'TYPE_AGREMENT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_AGREMENT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 256,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TYPE_AGREMENT_STATUT' => 
+    array (
+      'name' => 'TYPE_AGREMENT_STATUT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_AGREMENT_STATUT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_AGREMENT_ID' => 
+        array (
+          'name' => 'TYPE_AGREMENT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STATUT_INTERVENANT_ID' => 
+        array (
+          'name' => 'STATUT_INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'OBLIGATOIRE' => 
+        array (
+          'name' => 'OBLIGATOIRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PREMIER_RECRUTEMENT' => 
+        array (
+          'name' => 'PREMIER_RECRUTEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TYPE_CONTRAT' => 
+    array (
+      'name' => 'TYPE_CONTRAT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_CONTRAT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 15,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TYPE_DOTATION' => 
+    array (
+      'name' => 'TYPE_DOTATION',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_DOTATION_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_RESSOURCE_ID' => 
+        array (
+          'name' => 'TYPE_RESSOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TYPE_FORMATION' => 
+    array (
+      'name' => 'TYPE_FORMATION',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_FORMATION_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_LONG' => 
+        array (
+          'name' => 'LIBELLE_LONG',
+          'type' => 'VARCHAR2',
+          'length' => 80,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_COURT' => 
+        array (
+          'name' => 'LIBELLE_COURT',
+          'type' => 'VARCHAR2',
+          'length' => 15,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'GROUPE_ID' => 
+        array (
+          'name' => 'GROUPE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SERVICE_STATUTAIRE' => 
+        array (
+          'name' => 'SERVICE_STATUTAIRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+      ),
+    ),
+    'TYPE_HEURES' => 
+    array (
+      'name' => 'TYPE_HEURES',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_HEURES_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 20,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_COURT' => 
+        array (
+          'name' => 'LIBELLE_COURT',
+          'type' => 'VARCHAR2',
+          'length' => 15,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_LONG' => 
+        array (
+          'name' => 'LIBELLE_LONG',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_HEURES_ELEMENT_ID' => 
+        array (
+          'name' => 'TYPE_HEURES_ELEMENT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ELIGIBLE_CENTRE_COUT_EP' => 
+        array (
+          'name' => 'ELIGIBLE_CENTRE_COUT_EP',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'ELIGIBLE_EXTRACTION_PAIE' => 
+        array (
+          'name' => 'ELIGIBLE_EXTRACTION_PAIE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ENSEIGNEMENT' => 
+        array (
+          'name' => 'ENSEIGNEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+      ),
+    ),
+    'TYPE_INTERVENANT' => 
+    array (
+      'name' => 'TYPE_INTERVENANT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_INTERVENANT_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 1,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TYPE_INTERVENTION' => 
+    array (
+      'name' => 'TYPE_INTERVENTION',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_INTERVENTION_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 10,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TAUX_HETD_SERVICE' => 
+        array (
+          'name' => 'TAUX_HETD_SERVICE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'TAUX_HETD_COMPLEMENTAIRE' => 
+        array (
+          'name' => 'TAUX_HETD_COMPLEMENTAIRE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'VISIBLE' => 
+        array (
+          'name' => 'VISIBLE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ANNEE_DEBUT_ID' => 
+        array (
+          'name' => 'ANNEE_DEBUT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ANNEE_FIN_ID' => 
+        array (
+          'name' => 'ANNEE_FIN_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'REGLE_FOAD' => 
+        array (
+          'name' => 'REGLE_FOAD',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'REGLE_FC' => 
+        array (
+          'name' => 'REGLE_FC',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'TYPE_INTERVENTION_MAQUETTE_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENTION_MAQUETTE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'VISIBLE_EXTERIEUR' => 
+        array (
+          'name' => 'VISIBLE_EXTERIEUR',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+      ),
+    ),
+    'TYPE_INTERVENTION_EP' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_EP',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_INTERVENTION_EP_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENTION_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENTION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TYPE_INTERVENTION_STATUT' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STATUT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_INTERVENTION_STATU_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENTION_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENTION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STATUT_INTERVENANT_ID' => 
+        array (
+          'name' => 'STATUT_INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TAUX_HETD_SERVICE' => 
+        array (
+          'name' => 'TAUX_HETD_SERVICE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'TAUX_HETD_COMPLEMENTAIRE' => 
+        array (
+          'name' => 'TAUX_HETD_COMPLEMENTAIRE',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TYPE_INTERVENTION_STRUCTURE' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STRUCTURE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_INTERVENTION_STRUC_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENTION_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENTION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'VISIBLE' => 
+        array (
+          'name' => 'VISIBLE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_DEBUT_ID' => 
+        array (
+          'name' => 'ANNEE_DEBUT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ANNEE_FIN_ID' => 
+        array (
+          'name' => 'ANNEE_FIN_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TYPE_MODULATEUR' => 
+    array (
+      'name' => 'TYPE_MODULATEUR',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_MODULATEUR_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 10,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PUBLIQUE' => 
+        array (
+          'name' => 'PUBLIQUE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'OBLIGATOIRE' => 
+        array (
+          'name' => 'OBLIGATOIRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SAISIE_PAR_ENSEIGNANT' => 
+        array (
+          'name' => 'SAISIE_PAR_ENSEIGNANT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TYPE_MODULATEUR_EP' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_MODULATEUR_EP_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_MODULATEUR_ID' => 
+        array (
+          'name' => 'TYPE_MODULATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TYPE_MODULATEUR_STRUCTURE' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_STRUCTURE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_MODULATEUR_STRUCTU_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_MODULATEUR_ID' => 
+        array (
+          'name' => 'TYPE_MODULATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ANNEE_DEBUT_ID' => 
+        array (
+          'name' => 'ANNEE_DEBUT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ANNEE_FIN_ID' => 
+        array (
+          'name' => 'ANNEE_FIN_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TYPE_PIECE_JOINTE' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_PIECE_JOINTE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 64,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 150,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'URL_MODELE_DOC' => 
+        array (
+          'name' => 'URL_MODELE_DOC',
+          'type' => 'VARCHAR2',
+          'length' => 256,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '1',
+        ),
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_STATUT' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_STATUT',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_PIECE_JOINTE_STATU_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_PIECE_JOINTE_ID' => 
+        array (
+          'name' => 'TYPE_PIECE_JOINTE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STATUT_INTERVENANT_ID' => 
+        array (
+          'name' => 'STATUT_INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'OBLIGATOIRE' => 
+        array (
+          'name' => 'OBLIGATOIRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SEUIL_HETD' => 
+        array (
+          'name' => 'SEUIL_HETD',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PREMIER_RECRUTEMENT' => 
+        array (
+          'name' => 'PREMIER_RECRUTEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ANNEE_DEBUT_ID' => 
+        array (
+          'name' => 'ANNEE_DEBUT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ANNEE_FIN_ID' => 
+        array (
+          'name' => 'ANNEE_FIN_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CHANGEMENT_RIB' => 
+        array (
+          'name' => 'CHANGEMENT_RIB',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'FC' => 
+        array (
+          'name' => 'FC',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TYPE_RESSOURCE' => 
+    array (
+      'name' => 'TYPE_RESSOURCE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_RESSOURCE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 50,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FI' => 
+        array (
+          'name' => 'FI',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FA' => 
+        array (
+          'name' => 'FA',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FC' => 
+        array (
+          'name' => 'FC',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'FC_MAJOREES' => 
+        array (
+          'name' => 'FC_MAJOREES',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'REFERENTIEL' => 
+        array (
+          'name' => 'REFERENTIEL',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ETABLISSEMENT' => 
+        array (
+          'name' => 'ETABLISSEMENT',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'TYPE_VALIDATION' => 
+    array (
+      'name' => 'TYPE_VALIDATION',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'TYPE_VALIDATION_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 25,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'TYPE_VOLUME_HORAIRE' => 
+    array (
+      'name' => 'TYPE_VOLUME_HORAIRE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => NULL,
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 15,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE' => 
+        array (
+          'name' => 'LIBELLE',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'UTILISATEUR' => 
+    array (
+      'name' => 'UTILISATEUR',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'UTILISATEUR_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'USERNAME' => 
+        array (
+          'name' => 'USERNAME',
+          'type' => 'VARCHAR2',
+          'length' => 255,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'EMAIL' => 
+        array (
+          'name' => 'EMAIL',
+          'type' => 'VARCHAR2',
+          'length' => 255,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'DISPLAY_NAME' => 
+        array (
+          'name' => 'DISPLAY_NAME',
+          'type' => 'VARCHAR2',
+          'length' => 64,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PASSWORD' => 
+        array (
+          'name' => 'PASSWORD',
+          'type' => 'VARCHAR2',
+          'length' => 128,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STATE' => 
+        array (
+          'name' => 'STATE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 60,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'PASSWORD_RESET_TOKEN' => 
+        array (
+          'name' => 'PASSWORD_RESET_TOKEN',
+          'type' => 'VARCHAR2',
+          'length' => 256,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => 'null',
+        ),
+      ),
+    ),
+    'VALIDATION' => 
+    array (
+      'name' => 'VALIDATION',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'VALIDATION_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_VALIDATION_ID' => 
+        array (
+          'name' => 'TYPE_VALIDATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'INTERVENANT_ID' => 
+        array (
+          'name' => 'INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'STRUCTURE_ID' => 
+        array (
+          'name' => 'STRUCTURE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'VALIDATION_VOL_HORAIRE' => 
+    array (
+      'name' => 'VALIDATION_VOL_HORAIRE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'VALIDATION_VOL_HORAIRE_ID_SEQ',
+      'columns' => 
+      array (
+        'VALIDATION_ID' => 
+        array (
+          'name' => 'VALIDATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'VALIDATION_VOL_HORAIRE_REF' => 
+    array (
+      'name' => 'VALIDATION_VOL_HORAIRE_REF',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'VALIDATION_VOL_HORAIRE__ID_SEQ',
+      'columns' => 
+      array (
+        'VALIDATION_ID' => 
+        array (
+          'name' => 'VALIDATION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'VOLUME_HORAIRE_REF_ID' => 
+        array (
+          'name' => 'VOLUME_HORAIRE_REF_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'VERSION' => 
+    array (
+      'name' => 'VERSION',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => NULL,
+      'columns' => 
+      array (
+        'NUMERO' => 
+        array (
+          'name' => 'NUMERO',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'VOLUME_HORAIRE' => 
+    array (
+      'name' => 'VOLUME_HORAIRE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'VOLUME_HORAIRE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'TYPE_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SERVICE_ID' => 
+        array (
+          'name' => 'SERVICE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'PERIODE_ID' => 
+        array (
+          'name' => 'PERIODE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENTION_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENTION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HEURES' => 
+        array (
+          'name' => 'HEURES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'MOTIF_NON_PAIEMENT_ID' => 
+        array (
+          'name' => 'MOTIF_NON_PAIEMENT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'CONTRAT_ID' => 
+        array (
+          'name' => 'CONTRAT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'AUTO_VALIDATION' => 
+        array (
+          'name' => 'AUTO_VALIDATION',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HORAIRE_DEBUT' => 
+        array (
+          'name' => 'HORAIRE_DEBUT',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HORAIRE_FIN' => 
+        array (
+          'name' => 'HORAIRE_FIN',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARGE' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARGE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'VOLUME_HORAIRE_CHARGE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SCENARIO_ID' => 
+        array (
+          'name' => 'SCENARIO_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENTION_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENTION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'GROUPES' => 
+        array (
+          'name' => 'GROUPES',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'VOLUME_HORAIRE_ENS' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'VOLUME_HORAIRE_ENS_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ELEMENT_PEDAGOGIQUE_ID' => 
+        array (
+          'name' => 'ELEMENT_PEDAGOGIQUE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_INTERVENTION_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENTION_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HEURES' => 
+        array (
+          'name' => 'HEURES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'GROUPES' => 
+        array (
+          'name' => 'GROUPES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'VOLUME_HORAIRE_REF' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'VOLUME_HORAIRE_REF_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TYPE_VOLUME_HORAIRE_ID' => 
+        array (
+          'name' => 'TYPE_VOLUME_HORAIRE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SERVICE_REFERENTIEL_ID' => 
+        array (
+          'name' => 'SERVICE_REFERENTIEL_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HEURES' => 
+        array (
+          'name' => 'HEURES',
+          'type' => 'FLOAT',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => 126,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HISTO_CREATION' => 
+        array (
+          'name' => 'HISTO_CREATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_CREATEUR_ID' => 
+        array (
+          'name' => 'HISTO_CREATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_MODIFICATION' => 
+        array (
+          'name' => 'HISTO_MODIFICATION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => 'SYSDATE',
+        ),
+        'HISTO_MODIFICATEUR_ID' => 
+        array (
+          'name' => 'HISTO_MODIFICATEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTION' => 
+        array (
+          'name' => 'HISTO_DESTRUCTION',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HISTO_DESTRUCTEUR_ID' => 
+        array (
+          'name' => 'HISTO_DESTRUCTEUR_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'SOURCE_ID' => 
+        array (
+          'name' => 'SOURCE_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'SOURCE_CODE' => 
+        array (
+          'name' => 'SOURCE_CODE',
+          'type' => 'VARCHAR2',
+          'length' => 100,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'AUTO_VALIDATION' => 
+        array (
+          'name' => 'AUTO_VALIDATION',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'HORAIRE_DEBUT' => 
+        array (
+          'name' => 'HORAIRE_DEBUT',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'HORAIRE_FIN' => 
+        array (
+          'name' => 'HORAIRE_FIN',
+          'type' => 'DATE',
+          'length' => 0,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'WF_DEP_BLOQUANTE' => 
+    array (
+      'name' => 'WF_DEP_BLOQUANTE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'WF_DEP_BLOQUANTE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'WF_ETAPE_DEP_ID' => 
+        array (
+          'name' => 'WF_ETAPE_DEP_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TBL_WORKFLOW_ID' => 
+        array (
+          'name' => 'TBL_WORKFLOW_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'TO_DELETE' => 
+        array (
+          'name' => 'TO_DELETE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+    'WF_ETAPE' => 
+    array (
+      'name' => 'WF_ETAPE',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'WF_ETAPE_ID_SEQ',
+      'columns' => 
+      array (
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'CODE' => 
+        array (
+          'name' => 'CODE',
+          'type' => 'VARCHAR2',
+          'length' => 64,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ORDRE' => 
+        array (
+          'name' => 'ORDRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'LIBELLE_INTERVENANT' => 
+        array (
+          'name' => 'LIBELLE_INTERVENANT',
+          'type' => 'VARCHAR2',
+          'length' => 150,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LIBELLE_AUTRES' => 
+        array (
+          'name' => 'LIBELLE_AUTRES',
+          'type' => 'VARCHAR2',
+          'length' => 150,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ROUTE' => 
+        array (
+          'name' => 'ROUTE',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'DESC_NON_FRANCHIE' => 
+        array (
+          'name' => 'DESC_NON_FRANCHIE',
+          'type' => 'VARCHAR2',
+          'length' => 250,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'OBLIGATOIRE' => 
+        array (
+          'name' => 'OBLIGATOIRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'DESC_SANS_OBJECTIF' => 
+        array (
+          'name' => 'DESC_SANS_OBJECTIF',
+          'type' => 'VARCHAR2',
+          'length' => 250,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'ROUTE_INTERVENANT' => 
+        array (
+          'name' => 'ROUTE_INTERVENANT',
+          'type' => 'VARCHAR2',
+          'length' => 200,
+          'scale' => NULL,
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+      ),
+    ),
+    'WF_ETAPE_DEP' => 
+    array (
+      'name' => 'WF_ETAPE_DEP',
+      'temporary' => false,
+      'logging' => true,
+      'commentaire' => NULL,
+      'sequence' => 'WF_ETAPE_DEP_ID_SEQ',
+      'columns' => 
+      array (
+        'ETAPE_SUIV_ID' => 
+        array (
+          'name' => 'ETAPE_SUIV_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ETAPE_PREC_ID' => 
+        array (
+          'name' => 'ETAPE_PREC_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'LOCALE' => 
+        array (
+          'name' => 'LOCALE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'INTEGRALE' => 
+        array (
+          'name' => 'INTEGRALE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'PARTIELLE' => 
+        array (
+          'name' => 'PARTIELLE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+        'ID' => 
+        array (
+          'name' => 'ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => false,
+          'default' => NULL,
+        ),
+        'ACTIVE' => 
+        array (
+          'name' => 'ACTIVE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '1',
+        ),
+        'TYPE_INTERVENANT_ID' => 
+        array (
+          'name' => 'TYPE_INTERVENANT_ID',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => NULL,
+          'nullable' => true,
+          'default' => NULL,
+        ),
+        'OBLIGATOIRE' => 
+        array (
+          'name' => 'OBLIGATOIRE',
+          'type' => 'NUMBER',
+          'length' => 0,
+          'scale' => '0',
+          'precision' => 1,
+          'nullable' => false,
+          'default' => '0',
+        ),
+      ),
+    ),
+  ),
+  'BddAdmin\\Ddl\\DdlPrimaryConstraint' => 
+  array (
+    'ADRESSE_INTERVENANT_PK' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT_PK',
+      'table' => 'ADRESSE_INTERVENANT',
+      'index' => 'ADRESSE_INTERVENANT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_PK' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_PK',
+      'table' => 'ADRESSE_STRUCTURE',
+      'index' => 'ADRESSE_STRUCTURE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'AFFECTATION_PK' => 
+    array (
+      'name' => 'AFFECTATION_PK',
+      'table' => 'AFFECTATION',
+      'index' => 'AFFECTATION_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'AFFECTATION_R_PK' => 
+    array (
+      'name' => 'AFFECTATION_R_PK',
+      'table' => 'AFFECTATION_RECHERCHE',
+      'index' => 'AFFECTATION_R_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'AGREMENT_PK' => 
+    array (
+      'name' => 'AGREMENT_PK',
+      'table' => 'AGREMENT',
+      'index' => 'AGREMENT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ANNEE_PK' => 
+    array (
+      'name' => 'ANNEE_PK',
+      'table' => 'ANNEE',
+      'index' => 'ANNEE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CAMPAGNE_PK' => 
+    array (
+      'name' => 'CAMPAGNE_PK',
+      'table' => 'CAMPAGNE_SAISIE',
+      'index' => 'CAMPAGNE_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CATEGORIE_PRIVILEGE_PK' => 
+    array (
+      'name' => 'CATEGORIE_PRIVILEGE_PK',
+      'table' => 'CATEGORIE_PRIVILEGE',
+      'index' => 'CATEGORIE_PRIVILEGE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CC_ACTIVITE_PK' => 
+    array (
+      'name' => 'CC_ACTIVITE_PK',
+      'table' => 'CC_ACTIVITE',
+      'index' => 'CC_ACTIVITE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_EP_PK' => 
+    array (
+      'name' => 'CENTRE_COUT_EP_PK',
+      'table' => 'CENTRE_COUT_EP',
+      'index' => 'CENTRE_COUT_EP_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_PK' => 
+    array (
+      'name' => 'CENTRE_COUT_PK',
+      'table' => 'CENTRE_COUT',
+      'index' => 'CENTRE_COUT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_STRUCTURE_PK' => 
+    array (
+      'name' => 'CENTRE_COUT_STRUCTURE_PK',
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'index' => 'CENTRE_COUT_STRUCTURE_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE_PK' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_PK',
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'index' => 'CHEMIN_PEDAGOGIQUE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CIVILITE_PK' => 
+    array (
+      'name' => 'CIVILITE_PK',
+      'table' => 'CIVILITE',
+      'index' => 'CIVILITE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CONTRAT_FICHIER_PK' => 
+    array (
+      'name' => 'CONTRAT_FICHIER_PK',
+      'table' => 'CONTRAT_FICHIER',
+      'index' => 'CONTRAT_FICHIER_PK',
+      'columns' => 
+      array (
+        0 => 'CONTRAT_ID',
+        1 => 'FICHIER_ID',
+      ),
+    ),
+    'CONTRAT_PK' => 
+    array (
+      'name' => 'CONTRAT_PK',
+      'table' => 'CONTRAT',
+      'index' => 'CONTRAT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CORPS_PK' => 
+    array (
+      'name' => 'CORPS_PK',
+      'table' => 'CORPS',
+      'index' => 'CORPS_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'DEPARTEMENT_PK' => 
+    array (
+      'name' => 'DEPARTEMENT_PK',
+      'table' => 'DEPARTEMENT',
+      'index' => 'DEPARTEMENT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'DISCIPLINE_PK' => 
+    array (
+      'name' => 'DISCIPLINE_PK',
+      'table' => 'DISCIPLINE',
+      'index' => 'DISCIPLINE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'DOMAINE_FONCTIONNEL_PK' => 
+    array (
+      'name' => 'DOMAINE_FONCTIONNEL_PK',
+      'table' => 'DOMAINE_FONCTIONNEL',
+      'index' => 'DOMAINE_FONCTIONNEL_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'DOSSIER_PK' => 
+    array (
+      'name' => 'DOSSIER_PK',
+      'table' => 'DOSSIER',
+      'index' => 'DOSSIER_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'DOTATION_PK' => 
+    array (
+      'name' => 'DOTATION_PK',
+      'table' => 'DOTATION',
+      'index' => 'DOTATION_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'EFFECTIFS_PK' => 
+    array (
+      'name' => 'EFFECTIFS_PK',
+      'table' => 'EFFECTIFS',
+      'index' => 'EFFECTIFS_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ELEMENT_MODULATEUR_PK' => 
+    array (
+      'name' => 'ELEMENT_MODULATEUR_PK',
+      'table' => 'ELEMENT_MODULATEUR',
+      'index' => 'ELEMENT_MODULATEUR_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_PK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_PK',
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'index' => 'ELEMENT_PEDAGOGIQUE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES_PK' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES_PK',
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'index' => 'ELEMENT_TAUX_REGIMES_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ETABLISSEMENT_PK' => 
+    array (
+      'name' => 'ETABLISSEMENT_PK',
+      'table' => 'ETABLISSEMENT',
+      'index' => 'ETABLISSEMENT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ETAPE_PK' => 
+    array (
+      'name' => 'ETAPE_PK',
+      'table' => 'ETAPE',
+      'index' => 'ETAPE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ETAT_SORTIE_PK' => 
+    array (
+      'name' => 'ETAT_SORTIE_PK',
+      'table' => 'ETAT_SORTIE',
+      'index' => 'ETAT_SORTIE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ETAT_VOLUME_HORAIRE_PK' => 
+    array (
+      'name' => 'ETAT_VOLUME_HORAIRE_PK',
+      'table' => 'ETAT_VOLUME_HORAIRE',
+      'index' => 'ETAT_VOLUME_HORAIRE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FICHIER_PK' => 
+    array (
+      'name' => 'FICHIER_PK',
+      'table' => 'FICHIER',
+      'index' => 'FICHIER_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FONCTION_REFERENTIEL_PK' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL_PK',
+      'table' => 'FONCTION_REFERENTIEL',
+      'index' => 'FONCTION_REFERENTIEL_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_PK' => 
+    array (
+      'name' => 'FORMULE_PK',
+      'table' => 'FORMULE',
+      'index' => 'FORMULE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_RESULTAT_PK' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_PK',
+      'table' => 'FORMULE_RESULTAT',
+      'index' => 'FORMULE_RESULTAT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_RESULTAT_SERVICE_PK' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_SERVICE_PK',
+      'table' => 'FORMULE_RESULTAT_SERVICE',
+      'index' => 'FORMULE_RESULTAT_SERVICE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_RESULTAT_VH_PK' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_VH_PK',
+      'table' => 'FORMULE_RESULTAT_VH',
+      'index' => 'FORMULE_RESULTAT_VH_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_RESULTAT_VH_REF_PK' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_VH_REF_PK',
+      'table' => 'FORMULE_RESULTAT_VH_REF',
+      'index' => 'FORMULE_RESULTAT_VH_REF_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_TEST_INTERVENANT_PK' => 
+    array (
+      'name' => 'FORMULE_TEST_INTERVENANT_PK',
+      'table' => 'FORMULE_TEST_INTERVENANT',
+      'index' => 'FORMULE_TEST_INTERVENANT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_TEST_STRUCTURE_PK' => 
+    array (
+      'name' => 'FORMULE_TEST_STRUCTURE_PK',
+      'table' => 'FORMULE_TEST_STRUCTURE',
+      'index' => 'FORMULE_TEST_STRUCTURE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_TEST_VOLUME_HORAIRE_PK' => 
+    array (
+      'name' => 'FORMULE_TEST_VOLUME_HORAIRE_PK',
+      'table' => 'FORMULE_TEST_VOLUME_HORAIRE',
+      'index' => 'FORMULE_TEST_VOLUME_HORAIRE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FRSR_PK' => 
+    array (
+      'name' => 'FRSR_PK',
+      'table' => 'FORMULE_RESULTAT_SERVICE_REF',
+      'index' => 'FRSR_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'GRADE_PK' => 
+    array (
+      'name' => 'GRADE_PK',
+      'table' => 'GRADE',
+      'index' => 'GRADE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'GROUPE_PK' => 
+    array (
+      'name' => 'GROUPE_PK',
+      'table' => 'GROUPE',
+      'index' => 'GROUPE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'GROUPE_TYPE_FORMATION_PK' => 
+    array (
+      'name' => 'GROUPE_TYPE_FORMATION_PK',
+      'table' => 'GROUPE_TYPE_FORMATION',
+      'index' => 'GROUPE_TYPE_FORMATION_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'HISTO_SERVICE_MODIFICATION_PK' => 
+    array (
+      'name' => 'HISTO_SERVICE_MODIFICATION_PK',
+      'table' => 'HISTO_INTERVENANT_SERVICE',
+      'index' => 'HISTO_SERVICE_MODIFICATION_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'IMPORT_TABLES_PK' => 
+    array (
+      'name' => 'IMPORT_TABLES_PK',
+      'table' => 'IMPORT_TABLES',
+      'index' => 'IMPORT_TABLES_PK',
+      'columns' => 
+      array (
+        0 => 'TABLE_NAME',
+      ),
+    ),
+    'INDICATEUR_PK' => 
+    array (
+      'name' => 'INDICATEUR_PK',
+      'table' => 'INDICATEUR',
+      'index' => 'INDICATEUR_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'INDIC_MODIF_DOSSIER_PK' => 
+    array (
+      'name' => 'INDIC_MODIF_DOSSIER_PK',
+      'table' => 'INDIC_MODIF_DOSSIER',
+      'index' => 'INDIC_MODIF_DOSSIER_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'INTERVENANT_LISTE_NOIRE_PK' => 
+    array (
+      'name' => 'INTERVENANT_LISTE_NOIRE_PK',
+      'table' => 'LISTE_NOIRE',
+      'index' => 'INTERVENANT_LISTE_NOIRE_PK',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'INTERVENANT_PK' => 
+    array (
+      'name' => 'INTERVENANT_PK',
+      'table' => 'INTERVENANT',
+      'index' => 'INTERVENANT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'INTERVENANT_SAISIE_PK' => 
+    array (
+      'name' => 'INTERVENANT_SAISIE_PK',
+      'table' => 'INTERVENANT_SAISIE',
+      'index' => 'INTERVENANT_SAISIE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'LIEN_PK' => 
+    array (
+      'name' => 'LIEN_PK',
+      'table' => 'LIEN',
+      'index' => 'LIEN_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'MISE_EN_PAIEMENT_PK' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_PK',
+      'table' => 'MISE_EN_PAIEMENT',
+      'index' => 'MISE_EN_PAIEMENT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'MODELE_CONTRAT_PK' => 
+    array (
+      'name' => 'MODELE_CONTRAT_PK',
+      'table' => 'MODELE_CONTRAT',
+      'index' => 'MODELE_CONTRAT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'MODIFICATION_SERVICE_DU_PK' => 
+    array (
+      'name' => 'MODIFICATION_SERVICE_DU_PK',
+      'table' => 'MODIFICATION_SERVICE_DU',
+      'index' => 'MODIFICATION_SERVICE_DU_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'MODULATEUR_PK' => 
+    array (
+      'name' => 'MODULATEUR_PK',
+      'table' => 'MODULATEUR',
+      'index' => 'MODULATEUR_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'MOTIF_MODIFICATION_SERVICE_PK' => 
+    array (
+      'name' => 'MOTIF_MODIFICATION_SERVICE_PK',
+      'table' => 'MOTIF_MODIFICATION_SERVICE',
+      'index' => 'MOTIF_MODIFICATION_SERVICE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'MOTIF_NON_PAIEMENT_PK' => 
+    array (
+      'name' => 'MOTIF_NON_PAIEMENT_PK',
+      'table' => 'MOTIF_NON_PAIEMENT',
+      'index' => 'MOTIF_NON_PAIEMENT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'NOEUD_PK' => 
+    array (
+      'name' => 'NOEUD_PK',
+      'table' => 'NOEUD',
+      'index' => 'NOEUD_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'NOTIF_INDICATEUR_PK' => 
+    array (
+      'name' => 'NOTIF_INDICATEUR_PK',
+      'table' => 'NOTIFICATION_INDICATEUR',
+      'index' => 'NOTIF_INDICATEUR_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PARAMETRE_PK' => 
+    array (
+      'name' => 'PARAMETRE_PK',
+      'table' => 'PARAMETRE',
+      'index' => 'PARAMETRE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PAYS_PK' => 
+    array (
+      'name' => 'PAYS_PK',
+      'table' => 'PAYS',
+      'index' => 'PAYS_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PERIMETRE_PK' => 
+    array (
+      'name' => 'PERIMETRE_PK',
+      'table' => 'PERIMETRE',
+      'index' => 'PERIMETRE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PERIODE_PK' => 
+    array (
+      'name' => 'PERIODE_PK',
+      'table' => 'PERIODE',
+      'index' => 'PERIODE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PIECE_JOINTE_FICHIER_PK' => 
+    array (
+      'name' => 'PIECE_JOINTE_FICHIER_PK',
+      'table' => 'PIECE_JOINTE_FICHIER',
+      'index' => 'PIECE_JOINTE_FICHIER_PK',
+      'columns' => 
+      array (
+        0 => 'PIECE_JOINTE_ID',
+        1 => 'FICHIER_ID',
+      ),
+    ),
+    'PIECE_JOINTE_PK' => 
+    array (
+      'name' => 'PIECE_JOINTE_PK',
+      'table' => 'PIECE_JOINTE',
+      'index' => 'PIECE_JOINTE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PLAFOND_APPLICATION_PK' => 
+    array (
+      'name' => 'PLAFOND_APPLICATION_PK',
+      'table' => 'PLAFOND_APPLICATION',
+      'index' => 'PLAFOND_APPLICATION_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PLAFOND_ETAT_PK' => 
+    array (
+      'name' => 'PLAFOND_ETAT_PK',
+      'table' => 'PLAFOND_ETAT',
+      'index' => 'PLAFOND_ETAT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PLAFOND_PK' => 
+    array (
+      'name' => 'PLAFOND_PK',
+      'table' => 'PLAFOND',
+      'index' => 'PLAFOND_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PRIVILEGE_PK' => 
+    array (
+      'name' => 'PRIVILEGE_PK',
+      'table' => 'PRIVILEGE',
+      'index' => 'PRIVILEGE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'REGLE_STRUCTURE_VALIDATION_PK' => 
+    array (
+      'name' => 'REGLE_STRUCTURE_VALIDATION_PK',
+      'table' => 'REGLE_STRUCTURE_VALIDATION',
+      'index' => 'REGLE_STRUCTURE_VALIDATION_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ROLE_PK' => 
+    array (
+      'name' => 'ROLE_PK',
+      'table' => 'ROLE',
+      'index' => 'ROLE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ROLE_PRIVILEGE_PK' => 
+    array (
+      'name' => 'ROLE_PRIVILEGE_PK',
+      'table' => 'ROLE_PRIVILEGE',
+      'index' => 'ROLE_PRIVILEGE_PK',
+      'columns' => 
+      array (
+        0 => 'PRIVILEGE_ID',
+        1 => 'ROLE_ID',
+      ),
+    ),
+    'SCENARIO_LIEN_PK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_PK',
+      'table' => 'SCENARIO_LIEN',
+      'index' => 'SCENARIO_LIEN_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_EFFECTIF_PK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_EFFECTIF_PK',
+      'table' => 'SCENARIO_NOEUD_EFFECTIF',
+      'index' => 'SCENARIO_NOEUD_EFFECTIF_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_PK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_PK',
+      'table' => 'SCENARIO_NOEUD',
+      'index' => 'SCENARIO_NOEUD_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_SEUIL_PK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_SEUIL_PK',
+      'table' => 'SCENARIO_NOEUD_SEUIL',
+      'index' => 'SCENARIO_NOEUD_SEUIL_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SCENARIO_PK' => 
+    array (
+      'name' => 'SCENARIO_PK',
+      'table' => 'SCENARIO',
+      'index' => 'SCENARIO_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SERVICE_PK' => 
+    array (
+      'name' => 'SERVICE_PK',
+      'table' => 'SERVICE',
+      'index' => 'SERVICE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SERVICE_REFERENTIEL_PK' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL_PK',
+      'table' => 'SERVICE_REFERENTIEL',
+      'index' => 'SERVICE_REFERENTIEL_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SEUIL_CHARGE_PK' => 
+    array (
+      'name' => 'SEUIL_CHARGE_PK',
+      'table' => 'SEUIL_CHARGE',
+      'index' => 'SEUIL_CHARGE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SOURCE_PK' => 
+    array (
+      'name' => 'SOURCE_PK',
+      'table' => 'SOURCE',
+      'index' => 'SOURCE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'STATUT_INTERVENANT_PK' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_PK',
+      'table' => 'STATUT_INTERVENANT',
+      'index' => 'STATUT_INTERVENANT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'STATUT_PRIVILEGE_PK' => 
+    array (
+      'name' => 'STATUT_PRIVILEGE_PK',
+      'table' => 'STATUT_PRIVILEGE',
+      'index' => 'STATUT_PRIVILEGE_PK',
+      'columns' => 
+      array (
+        0 => 'STATUT_ID',
+        1 => 'PRIVILEGE_ID',
+      ),
+    ),
+    'STRUCTURE_PK' => 
+    array (
+      'name' => 'STRUCTURE_PK',
+      'table' => 'STRUCTURE',
+      'index' => 'STRUCTURE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SYNC_LOG_PK' => 
+    array (
+      'name' => 'SYNC_LOG_PK',
+      'table' => 'SYNC_LOG',
+      'index' => 'SYNC_LOG_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TAUX_HORAIRE_HETD_PK' => 
+    array (
+      'name' => 'TAUX_HORAIRE_HETD_PK',
+      'table' => 'TAUX_HORAIRE_HETD',
+      'index' => 'TAUX_HORAIRE_HETD_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_AGREMENT_PK' => 
+    array (
+      'name' => 'TBL_AGREMENT_PK',
+      'table' => 'TBL_AGREMENT',
+      'index' => 'TBL_AGREMENT_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_CHARGENS_PK' => 
+    array (
+      'name' => 'TBL_CHARGENS_PK',
+      'table' => 'TBL_CHARGENS',
+      'index' => 'TBL_CHARGENS_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_CHARGENS_SEUILS_DEF_PK' => 
+    array (
+      'name' => 'TBL_CHARGENS_SEUILS_DEF_PK',
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'index' => 'TBL_CHARGENS_SEUILS_DEF_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_CLOTURE_REALISE_PK' => 
+    array (
+      'name' => 'TBL_CLOTURE_REALISE_PK',
+      'table' => 'TBL_CLOTURE_REALISE',
+      'index' => 'TBL_CLOTURE_REALISE_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_CONTRAT_PK' => 
+    array (
+      'name' => 'TBL_CONTRAT_PK',
+      'table' => 'TBL_CONTRAT',
+      'index' => 'TBL_CONTRAT_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_DMEP_LIQUIDATION_PK' => 
+    array (
+      'name' => 'TBL_DMEP_LIQUIDATION_PK',
+      'table' => 'TBL_DMEP_LIQUIDATION',
+      'index' => 'TBL_DMEP_LIQUIDATION_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_DOSSIER_PK' => 
+    array (
+      'name' => 'TBL_DOSSIER_PK',
+      'table' => 'TBL_DOSSIER',
+      'index' => 'TBL_DOSSIER_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_LIEN_PK' => 
+    array (
+      'name' => 'TBL_LIEN_PK',
+      'table' => 'TBL_LIEN',
+      'index' => 'TBL_LIEN_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_PAIEMENT_PK' => 
+    array (
+      'name' => 'TBL_PAIEMENT_PK',
+      'table' => 'TBL_PAIEMENT',
+      'index' => 'TBL_PAIEMENT_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_PIECE_JOINTE_PK' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE_PK',
+      'table' => 'TBL_PIECE_JOINTE',
+      'index' => 'TBL_PIECE_JOINTE_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_PJD_PK' => 
+    array (
+      'name' => 'TBL_PJD_PK',
+      'table' => 'TBL_PIECE_JOINTE_DEMANDE',
+      'index' => 'TBL_PJD_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_PJF_PK' => 
+    array (
+      'name' => 'TBL_PJF_PK',
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'index' => 'TBL_PJF_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_PK' => 
+    array (
+      'name' => 'TBL_PK',
+      'table' => 'TBL',
+      'index' => 'TBL_PK',
+      'columns' => 
+      array (
+        0 => 'TBL_NAME',
+      ),
+    ),
+    'TBL_SERVICE_PK' => 
+    array (
+      'name' => 'TBL_SERVICE_PK',
+      'table' => 'TBL_SERVICE',
+      'index' => 'TBL_SERVICE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_REFERENTIEL_PK' => 
+    array (
+      'name' => 'TBL_SERVICE_REFERENTIEL_PK',
+      'table' => 'TBL_SERVICE_REFERENTIEL',
+      'index' => 'TBL_SERVICE_REFERENTIEL_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_SAISIE_PK' => 
+    array (
+      'name' => 'TBL_SERVICE_SAISIE_PK',
+      'table' => 'TBL_SERVICE_SAISIE',
+      'index' => 'TBL_SERVICE_SAISIE_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_VALIDATION_ENSEIGNEMENT_PK' => 
+    array (
+      'name' => 'TBL_VALIDATION_ENSEIGNEMENT_PK',
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'index' => 'TBL_VALIDATION_ENSEIGNEMENT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_VALIDATION_REFERENTIEL_PK' => 
+    array (
+      'name' => 'TBL_VALIDATION_REFERENTIEL_PK',
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'index' => 'TBL_VALIDATION_REFERENTIEL_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_WORKFLOW_PK' => 
+    array (
+      'name' => 'TBL_WORKFLOW_PK',
+      'table' => 'TBL_WORKFLOW',
+      'index' => 'TBL_WORKFLOW_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TEST_BUFFER_PK' => 
+    array (
+      'name' => 'TEST_BUFFER_PK',
+      'table' => 'TEST_BUFFER',
+      'index' => 'TEST_BUFFER_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_AGREMENT_PK' => 
+    array (
+      'name' => 'TYPE_AGREMENT_PK',
+      'table' => 'TYPE_AGREMENT',
+      'index' => 'TYPE_AGREMENT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_AGREMENT_STATUT_PK' => 
+    array (
+      'name' => 'TYPE_AGREMENT_STATUT_PK',
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'index' => 'TYPE_AGREMENT_STATUT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_CONTRAT_PK' => 
+    array (
+      'name' => 'TYPE_CONTRAT_PK',
+      'table' => 'TYPE_CONTRAT',
+      'index' => 'TYPE_CONTRAT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_DOTATION_PK' => 
+    array (
+      'name' => 'TYPE_DOTATION_PK',
+      'table' => 'TYPE_DOTATION',
+      'index' => 'TYPE_DOTATION_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_FORMATION_PK' => 
+    array (
+      'name' => 'TYPE_FORMATION_PK',
+      'table' => 'TYPE_FORMATION',
+      'index' => 'TYPE_FORMATION_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_HEURES_PK' => 
+    array (
+      'name' => 'TYPE_HEURES_PK',
+      'table' => 'TYPE_HEURES',
+      'index' => 'TYPE_HEURES_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENANT_PK' => 
+    array (
+      'name' => 'TYPE_INTERVENANT_PK',
+      'table' => 'TYPE_INTERVENANT',
+      'index' => 'TYPE_INTERVENANT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_EP_PK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_EP_PK',
+      'table' => 'TYPE_INTERVENTION_EP',
+      'index' => 'TYPE_INTERVENTION_EP_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_PK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_PK',
+      'table' => 'TYPE_INTERVENTION',
+      'index' => 'TYPE_INTERVENTION_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_STATUT_PK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STATUT_PK',
+      'table' => 'TYPE_INTERVENTION_STATUT',
+      'index' => 'TYPE_INTERVENTION_STATUT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_STRUCTURE_PK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STRUCTURE_PK',
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'index' => 'TYPE_INTERVENTION_STRUCTURE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP_PK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP_PK',
+      'table' => 'TYPE_MODULATEUR_EP',
+      'index' => 'TYPE_MODULATEUR_EP_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_PK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_PK',
+      'table' => 'TYPE_MODULATEUR',
+      'index' => 'TYPE_MODULATEUR_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_STRUCTURE_PK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_STRUCTURE_PK',
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'index' => 'TYPE_MODULATEUR_STRUCTURE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_PK' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_PK',
+      'table' => 'TYPE_PIECE_JOINTE',
+      'index' => 'TYPE_PIECE_JOINTE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_STATUT_PK' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_STATUT_PK',
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'index' => 'TYPE_PIECE_JOINTE_STATUT_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_RESSOURCE_PK' => 
+    array (
+      'name' => 'TYPE_RESSOURCE_PK',
+      'table' => 'TYPE_RESSOURCE',
+      'index' => 'TYPE_RESSOURCE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_VALIDATION_PK' => 
+    array (
+      'name' => 'TYPE_VALIDATION_PK',
+      'table' => 'TYPE_VALIDATION',
+      'index' => 'TYPE_VALIDATION_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_VOLUME_HORAIRE_PK' => 
+    array (
+      'name' => 'TYPE_VOLUME_HORAIRE_PK',
+      'table' => 'TYPE_VOLUME_HORAIRE',
+      'index' => 'TYPE_VOLUME_HORAIRE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'UTILISATEUR_PK' => 
+    array (
+      'name' => 'UTILISATEUR_PK',
+      'table' => 'UTILISATEUR',
+      'index' => 'UTILISATEUR_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'VALIDATION_PK' => 
+    array (
+      'name' => 'VALIDATION_PK',
+      'table' => 'VALIDATION',
+      'index' => 'VALIDATION_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'VALIDATION_VOL_HORAIRE_PK' => 
+    array (
+      'name' => 'VALIDATION_VOL_HORAIRE_PK',
+      'table' => 'VALIDATION_VOL_HORAIRE',
+      'index' => 'VALIDATION_VOL_HORAIRE_PK',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+        1 => 'VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'VALIDATION_VOL_HORAIRE_REF_PK' => 
+    array (
+      'name' => 'VALIDATION_VOL_HORAIRE_REF_PK',
+      'table' => 'VALIDATION_VOL_HORAIRE_REF',
+      'index' => 'VALIDATION_VOL_HORAIRE_REF_PK',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+        1 => 'VOLUME_HORAIRE_REF_ID',
+      ),
+    ),
+    'VERSION_PK' => 
+    array (
+      'name' => 'VERSION_PK',
+      'table' => 'VERSION',
+      'index' => 'VERSION_PK',
+      'columns' => 
+      array (
+        0 => 'NUMERO',
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARGE_PK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARGE_PK',
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'index' => 'VOLUME_HORAIRE_CHARGE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_ENS_PK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS_PK',
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'index' => 'VOLUME_HORAIRE_ENS_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_PK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_PK',
+      'table' => 'VOLUME_HORAIRE',
+      'index' => 'VOLUME_HORAIRE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_REF_PK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_PK',
+      'table' => 'VOLUME_HORAIRE_REF',
+      'index' => 'VOLUME_HORAIRE_REF_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'WF_DEPS_BLOQUANTES_PK' => 
+    array (
+      'name' => 'WF_DEPS_BLOQUANTES_PK',
+      'table' => 'WF_DEP_BLOQUANTE',
+      'index' => 'WF_DEPS_BLOQUANTES_PK_IDX',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'WF_ETAPE_DEP_PK' => 
+    array (
+      'name' => 'WF_ETAPE_DEP_PK',
+      'table' => 'WF_ETAPE_DEP',
+      'index' => 'WF_ETAPE_DEP_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'WF_ETAPE_PK' => 
+    array (
+      'name' => 'WF_ETAPE_PK',
+      'table' => 'WF_ETAPE',
+      'index' => 'WF_ETAPE_PK',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+  ),
+  'BddAdmin\\Ddl\\DdlPackage' => 
+  array (
+    'FORMULE_ENSICAEN' => 
+    array (
+      'name' => 'FORMULE_ENSICAEN',
+      'definition' => 'CREATE OR REPLACE PACKAGE FORMULE_ENSICAEN AS
+
+  PROCEDURE CALCUL_RESULTAT;
+
+  FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT;
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB;
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB;
+
+END FORMULE_ENSICAEN;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY FORMULE_ENSICAEN AS
+  decalageLigne NUMERIC DEFAULT 20;
+
+
+  /* Stockage des valeurs intermédiaires */
+  TYPE t_cell IS RECORD (
+    valeur FLOAT,
+    enCalcul BOOLEAN DEFAULT FALSE
+  );
+  TYPE t_cells IS TABLE OF t_cell INDEX BY PLS_INTEGER;
+  TYPE t_coll IS RECORD (
+    cells t_cells
+  );
+  TYPE t_colls IS TABLE OF t_coll INDEX BY VARCHAR2(50);
+  feuille t_colls;
+
+  debugLine NUMERIC;
+
+
+  PROCEDURE dbg( val CLOB ) IS
+  BEGIN
+    ose_formule.volumes_horaires.items(debugLine).debug_info :=
+      ose_formule.volumes_horaires.items(debugLine).debug_info || val;
+  END;
+
+
+  PROCEDURE dbgi( val CLOB ) IS
+  BEGIN
+    ose_formule.intervenant.debug_info := ose_formule.intervenant.debug_info || val;
+  END;
+
+  PROCEDURE dbgDump( val CLOB ) IS
+  BEGIN
+    dbg(\'<div class="dbg-dump">\' || val || \'</div>\');
+  END;
+
+  PROCEDURE dbgCell( c VARCHAR2, l NUMERIC, val FLOAT ) IS
+    ligne NUMERIC;
+  BEGIN
+    ligne := l;
+    IF l <> 0 THEN
+      ligne := ligne + decalageLigne;
+    END IF;
+
+    dbgi( \'[cell|\' || c || \'|\' || ligne || \'|\' || val );
+  END;
+
+  PROCEDURE dbgCalc( fncName VARCHAR2, c VARCHAR2, res FLOAT ) IS
+  BEGIN
+    dbgi( \'[calc|\' || fncName || \'|\' || c || \'|\' || res );
+  END;
+
+  FUNCTION cell( c VARCHAR2, l NUMERIC DEFAULT 0 ) RETURN FLOAT IS
+    val FLOAT;
+  BEGIN
+    IF feuille.exists(c) THEN
+      IF feuille(c).cells.exists(l) THEN
+        IF feuille(c).cells(l).enCalcul THEN
+          raise_application_error( -20001, \'Dépendance cyclique : la cellule [\' || c || \';\' || l || \'] est déjà en cours de calcul\');
+        END IF;
+        RETURN feuille(c).cells(l).valeur;
+      END IF;
+    END IF;
+
+    feuille(c).cells(l).enCalcul := true;
+    val := calcCell( c, l );
+    IF ose_formule.debug_actif THEN
+      dbgCell( c, l, val );
+    END IF;
+    feuille(c).cells(l).valeur := val;
+    feuille(c).cells(l).enCalcul := false;
+
+    RETURN val;
+  END;
+
+  FUNCTION mainCell( libelle VARCHAR2, c VARCHAR2, l NUMERIC ) RETURN FLOAT IS
+    val FLOAT;
+  BEGIN
+    debugLine := l;
+    val := cell(c,l);
+
+    RETURN val;
+  END;
+
+  FUNCTION calcFnc( fncName VARCHAR2, c VARCHAR2 ) RETURN FLOAT IS
+    val FLOAT;
+    cellRes FLOAT;
+  BEGIN
+    IF feuille.exists(\'__\' || fncName || \'__\' || c || \'__\') THEN
+      IF feuille(\'__\' || fncName || \'__\' || c || \'__\').cells.exists(1) THEN
+        RETURN feuille(\'__\' || fncName || \'__\' || c || \'__\').cells(1).valeur;
+      END IF;
+    END IF;
+    CASE
+    -- Liste des fonctions supportées
+
+    WHEN fncName = \'total\' THEN
+      val := 0;
+      FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+        val := val + COALESCE(cell(c, l),0);
+      END LOOP;
+
+    WHEN fncName = \'max\' THEN
+      val := NULL;
+      FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+        cellRes := cell(c,l);
+        IF val IS NULL OR val < cellRes THEN
+          val := cellRes;
+        END IF;
+      END LOOP;
+
+    -- fin de la liste des fonctions supportées
+    ELSE
+      raise_application_error( -20001, \'La formule "\' || fncName || \'" n\'\'existe pas!\');
+    END CASE;
+    IF ose_formule.debug_actif THEN
+      dbgCalc(fncName, c, val );
+    END IF;
+    feuille(\'__\' || fncName || \'__\' || c || \'__\').cells(1).valeur := val;
+
+    RETURN val;
+  END;
+
+
+  FUNCTION calcVersion RETURN NUMERIC IS
+  BEGIN
+    RETURN 1;
+  END;
+
+
+
+  FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT IS
+    vh ose_formule.t_volume_horaire;
+    i  ose_formule.t_intervenant;
+    v NUMERIC;
+    val FLOAT;
+  BEGIN
+    v := calcVersion;
+
+    i := ose_formule.intervenant;
+    IF l > 0 THEN
+      vh := ose_formule.volumes_horaires.items(l);
+    END IF;
+    CASE
+
+
+
+    -- service_realise =SOMME($O$21:$O$40)
+    WHEN c = \'service_realise\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\', \'o\');
+
+
+
+    -- hc =SOMME($R$21:$R$40)
+    WHEN c = \'hc\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\', \'r\');
+
+
+
+    -- j =SI(ESTVIDE(C21);0;RECHERCHEH(SI(ET(C21="TP";TP_vaut_TD="Oui");"TD";C21);types_intervention;2;0))
+    -- j =RECHERCHEH(SI(ET(C21="TP";TP_vaut_TD="Oui");"TD";C21);types_intervention;2;0)
+    WHEN c = \'j\' AND v >= 1 THEN
+      RETURN vh.taux_service_du;
+
+
+
+    -- k =SI(ESTVIDE(C21);0;RECHERCHEH(C21;types_intervention;3;0))
+    WHEN c = \'k\' AND v >= 1 THEN
+      RETURN vh.taux_service_compl;
+
+
+
+    -- l =SI(H21="Oui";I21*J21;0)
+    WHEN c = \'l\' AND v >= 1 THEN
+      IF vh.service_statutaire THEN
+        RETURN vh.heures * cell(\'j\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- n =SI($L$41>0;L21/$L$41;0)
+    WHEN c = \'n\' AND v >= 1 THEN
+      IF calcFnc(\'total\', \'l\') > 0 THEN
+        RETURN cell(\'l\',l) / calcFnc(\'total\', \'l\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- o =MIN(service_du;$L$41)*N21
+    WHEN c = \'o\' AND v >= 1 THEN
+      RETURN LEAST(i.service_du, calcFnc(\'total\', \'l\')) * cell(\'n\',l);
+
+
+
+    -- p =SI(L21<>0;O21/L21;0)
+    WHEN c = \'p\' AND v >= 1 THEN
+      IF cell(\'l\',l) <> 0 THEN
+        RETURN cell(\'o\',l) / cell(\'l\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- q =SI($L$41>service_du;1-P21;0)
+    WHEN c = \'q\' AND v >= 1 THEN
+      IF calcFnc(\'total\', \'l\') > i.service_du THEN
+        RETURN 1 - cell(\'p\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- r =SI(HC_autorisees="Oui";I21*Q21*K21;0)
+    WHEN c = \'r\' AND v >= 1 THEN
+      IF NOT i.depassement_service_du_sans_hc THEN
+        RETURN vh.heures * cell(\'q\',l) * cell(\'k\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t =SI(OU(ESTVIDE($C21);$C21="Référentiel");0;$O21*D21)
+    WHEN c = \'t\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NOT NULL THEN
+        RETURN 0;
+      ELSE
+        RETURN cell(\'o\',l) * vh.taux_fi;
+      END IF;
+
+
+
+    -- u =SI(OU(ESTVIDE($C21);$C21="Référentiel");0;$O21*E21)
+    WHEN c = \'u\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NOT NULL THEN
+        RETURN 0;
+      ELSE
+        RETURN cell(\'o\',l) * vh.taux_fa;
+      END IF;
+
+
+
+    -- v =SI(OU(ESTVIDE($C21);$C21="Référentiel");0;$O21*F21)
+    WHEN c = \'v\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NOT NULL THEN
+        RETURN 0;
+      ELSE
+        RETURN cell(\'o\',l) * vh.taux_fc;
+      END IF;
+
+
+
+    -- w =SI($C21="Référentiel";$O21;0)
+    WHEN c = \'w\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NOT NULL THEN
+        RETURN cell(\'o\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- x =SI(OU(ESTVIDE($C21);$C21="Référentiel");0;$R21*D21)
+    WHEN c = \'x\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NOT NULL THEN
+        RETURN 0;
+      ELSE
+        RETURN cell(\'r\',l) * vh.taux_fi;
+      END IF;
+
+
+
+    -- y =SI(OU(ESTVIDE($C21);$C21="Référentiel");0;$R21*E21)
+    WHEN c = \'y\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NOT NULL THEN
+        RETURN 0;
+      ELSE
+        RETURN cell(\'r\',l) * vh.taux_fa;
+      END IF;
+
+
+
+    -- z =SI(OU(ESTVIDE($C21);$C21="Référentiel");0;$R21*F21)
+    WHEN c = \'z\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NOT NULL THEN
+        RETURN 0;
+      ELSE
+        RETURN cell(\'r\',l) * vh.taux_fc;
+      END IF;
+
+
+
+    -- aa =0
+    WHEN c = \'aa\' AND v >= 1 THEN
+      RETURN 0;
+
+
+
+    -- ab =SI($C21="Référentiel";$R21;0)
+    WHEN c = \'ab\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NOT NULL THEN
+        RETURN cell(\'r\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    ELSE
+      raise_application_error( -20001, \'La colonne c=\' || c || \', l=\' || l || \' n\'\'existe pas!\');
+  END CASE; END;
+
+
+
+  PROCEDURE CALCUL_RESULTAT IS
+  BEGIN
+    feuille.delete;
+
+    -- transmission des résultats aux volumes horaires et volumes horaires référentiel
+    FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+      ose_formule.volumes_horaires.items(l).service_fi               := mainCell(\'Service FI\', \'t\',l);
+      ose_formule.volumes_horaires.items(l).service_fa               := mainCell(\'Service FA\', \'u\',l);
+      ose_formule.volumes_horaires.items(l).service_fc               := mainCell(\'Service FC\', \'v\',l);
+      ose_formule.volumes_horaires.items(l).service_referentiel      := mainCell(\'Service référentiel\', \'w\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fi          := mainCell(\'Heures compl. FI\', \'x\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fa          := mainCell(\'Heures compl. FA\', \'y\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fc          := mainCell(\'Heures compl. FC\', \'z\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fc_majorees := mainCell(\'Heures compl. FC Maj.\', \'aa\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_referentiel := mainCell(\'Heures compl. référentiel\', \'ab\',l);
+    END LOOP;
+  END;
+
+
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN \'
+    SELECT
+      fi.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_intervenant fi
+    \';
+  END;
+
+
+
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN \'
+    SELECT
+      fvh.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_volume_horaire fvh
+    ORDER BY
+      ordre\';
+  END;
+
+END FORMULE_ENSICAEN;',
+    ),
+    'FORMULE_MONTPELLIER' => 
+    array (
+      'name' => 'FORMULE_MONTPELLIER',
+      'definition' => 'CREATE OR REPLACE PACKAGE "FORMULE_MONTPELLIER" AS
+
+  PROCEDURE CALCUL_RESULTAT;
+
+  FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT;
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB;
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB;
+
+END FORMULE_MONTPELLIER;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "FORMULE_MONTPELLIER" AS
+  decalageLigne NUMERIC DEFAULT 20;
+
+
+  /* Stockage des valeurs intermédiaires */
+  TYPE t_cell IS RECORD (
+    valeur FLOAT,
+    enCalcul BOOLEAN DEFAULT FALSE
+  );
+  TYPE t_cells IS TABLE OF t_cell INDEX BY PLS_INTEGER;
+  TYPE t_coll IS RECORD (
+    cells t_cells
+  );
+  TYPE t_colls IS TABLE OF t_coll INDEX BY VARCHAR2(50);
+  feuille t_colls;
+
+  debugLine NUMERIC;
+
+
+  PROCEDURE dbg( val CLOB ) IS
+  BEGIN
+    ose_formule.volumes_horaires.items(debugLine).debug_info :=
+    ose_formule.volumes_horaires.items(debugLine).debug_info || val;
+  END;
+
+
+  PROCEDURE dbgi( val CLOB ) IS
+  BEGIN
+    ose_formule.intervenant.debug_info := ose_formule.intervenant.debug_info || val;
+  END;
+
+  PROCEDURE dbgDump( val CLOB ) IS
+  BEGIN
+    dbg(\'<div class="dbg-dump">\' || val || \'</div>\');
+  END;
+
+  PROCEDURE dbgCell( c VARCHAR2, l NUMERIC, val FLOAT ) IS
+    ligne NUMERIC;
+  BEGIN
+    ligne := l;
+    IF l <> 0 THEN
+      ligne := ligne + decalageLigne;
+    END IF;
+
+    dbgi( \'[cell|\' || c || \'|\' || ligne || \'|\' || val );
+  END;
+
+  PROCEDURE dbgCalc( fncName VARCHAR2, c VARCHAR2, res FLOAT ) IS
+  BEGIN
+    dbgi( \'[calc|\' || fncName || \'|\' || c || \'|\' || res );
+  END;
+
+  FUNCTION cell( c VARCHAR2, l NUMERIC DEFAULT 0 ) RETURN FLOAT IS
+    val FLOAT;
+  BEGIN
+    IF feuille.exists(c) THEN
+      IF feuille(c).cells.exists(l) THEN
+        IF feuille(c).cells(l).enCalcul THEN
+          raise_application_error( -20001, \'Dépendance cyclique : la cellule [\' || c || \';\' || l || \'] est déjà en cours de calcul\');
+        END IF;
+        RETURN feuille(c).cells(l).valeur;
+      END IF;
+    END IF;
+
+    feuille(c).cells(l).enCalcul := true;
+    val := calcCell( c, l );
+    IF ose_formule.debug_actif THEN
+      dbgCell( c, l, val );
+    END IF;
+    feuille(c).cells(l).valeur := val;
+    feuille(c).cells(l).enCalcul := false;
+
+    RETURN val;
+  END;
+
+  FUNCTION mainCell( libelle VARCHAR2, c VARCHAR2, l NUMERIC ) RETURN FLOAT IS
+    val FLOAT;
+  BEGIN
+    debugLine := l;
+    val := cell(c,l);
+
+    RETURN val;
+  END;
+
+  FUNCTION calcFnc( fncName VARCHAR2, c VARCHAR2 ) RETURN FLOAT IS
+    val FLOAT;
+    cellRes FLOAT;
+  BEGIN
+    IF feuille.exists(\'__\' || fncName || \'__\' || c || \'__\') THEN
+      IF feuille(\'__\' || fncName || \'__\' || c || \'__\').cells.exists(1) THEN
+        RETURN feuille(\'__\' || fncName || \'__\' || c || \'__\').cells(1).valeur;
+      END IF;
+    END IF;
+    CASE
+    -- Liste des fonctions supportées
+
+    WHEN fncName = \'total\' THEN
+      val := 0;
+      FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+        val := val + COALESCE(cell(c, l),0);
+      END LOOP;
+
+    WHEN fncName = \'max\' THEN
+      val := NULL;
+      FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+        cellRes := cell(c,l);
+        IF val IS NULL OR val < cellRes THEN
+          val := cellRes;
+        END IF;
+      END LOOP;
+--UM
+    WHEN fncName = \'last\' THEN
+      val := NULL;
+      FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+        cellRes := cell(c,l);
+        val := cellRes;
+      END LOOP;
+
+
+    -- fin de la liste des fonctions supportées
+    ELSE
+      raise_application_error( -20001, \'La formule "\' || fncName || \'" n\'\'existe pas!\');
+    END CASE;
+    IF ose_formule.debug_actif THEN
+      dbgCalc(fncName, c, val );
+    END IF;
+    feuille(\'__\' || fncName || \'__\' || c || \'__\').cells(1).valeur := val;
+
+    RETURN val;
+  END;
+
+
+  FUNCTION calcVersion RETURN NUMERIC IS
+  BEGIN
+    RETURN 1;
+  END;
+
+
+
+  FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT IS
+    vh ose_formule.t_volume_horaire;
+    i  ose_formule.t_intervenant;
+    v NUMERIC;
+    val FLOAT;
+  BEGIN
+    v := calcVersion;
+
+    i := ose_formule.intervenant;
+    IF l > 0 THEN
+      vh := ose_formule.volumes_horaires.items(l);
+    END IF;
+    CASE
+
+
+    -- J = SI(ESTVIDE(C21);0;RECHERCHEH(SI(ET(C21="TP";TP_vaut_TD="Oui");"TD";C21);types_intervention;2;0))
+    WHEN c = \'j\' AND v >= 1 THEN
+      RETURN vh.taux_service_du * vh.ponderation_service_du;
+
+
+
+    -- K = SI(H21="Oui";I21*J21;0)
+    WHEN c = \'k\' AND v >= 1 THEN
+      IF vh.service_statutaire THEN
+        RETURN vh.heures * cell(\'j\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- l = SI(OU(L20+K21>service_du;L20=service_du);service_du;L20+K21)
+	-- UM l =SI(K21 < 0;L20+K21;SI(OU(L20+K21>service_du;L20=service_du);service_du;L20+K21))
+/*
+    WHEN c = \'l\' AND v >= 1 THEN
+      IF l < 1 THEN
+        RETURN 0;
+      END IF;
+      IF (cell(\'l\', l-1) + cell(\'k\',l) > i.service_du) OR (cell(\'l\', l-1) = i.service_du) THEN
+        RETURN ose_formule.intervenant.service_du;
+      ELSE
+        RETURN cell(\'l\', l-1) + cell(\'k\',l);
+      END IF;
+*/
+
+-- UM
+
+    WHEN c = \'l\' AND v >= 1 THEN
+      IF l < 1 THEN
+        RETURN 0;
+      END IF;
+	  IF cell(\'k\',l) < 0 THEN
+		RETURN cell(\'l\', l-1) + cell(\'k\',l);
+	  ELSE
+		IF (cell(\'l\', l-1) + cell(\'k\',l) > i.service_du) OR (cell(\'l\', l-1) = i.service_du) THEN
+			RETURN ose_formule.intervenant.service_du;
+		ELSE
+			RETURN cell(\'l\', l-1) + cell(\'k\',l);
+		END IF;
+	  END IF;
+
+    -- m = SI(OU(ESTVIDE(composante_affectation);L20=service_du);SI(H21<>"Oui";0;I21);SI(J21>0;SI(L20+K21<service_du;0;((L20+K21)-service_du)/J21);0))
+    -- composante_affectation vide si vacataire
+/*    WHEN c = \'m\' AND v >= 1 THEN
+      -- OU(ESTVIDE(composante_affectation);L20=service_du)
+      IF i.type_intervenant_code = \'E\' OR cell(\'l\',l-1) = i.service_du THEN
+        -- SI(H21<>"Oui";0;I21);
+        IF NOT vh.service_statutaire THEN
+          RETURN 0;
+        ELSE
+          RETURN vh.heures;
+        END IF;
+      ELSE
+        -- SI(J21>0;SI(L20+K21<service_du;0;((L20+K21)-service_du)/J21);0)
+        IF cell(\'j\',l) > 0 THEN
+          IF cell(\'l\',l-1) + cell(\'k\',l) < ose_formule.intervenant.service_du THEN
+            RETURN 0;
+          ELSE
+            RETURN (cell(\'l\',l-1) + cell(\'k\',l) - ose_formule.intervenant.service_du) / cell(\'j\',l);
+          END IF;
+        ELSE
+          RETURN 0;
+        END IF;
+      END IF;
+*/
+-- UM
+-- m  =SI(OU(ESTVIDE(composante_affectation);OU(L20=service_du;I21<0));SI(OU(H21<>"Oui";L21<service_du);0;I21);SI(J21>0;SI(L20+K21<service_du;0;((L20+K21)-service_du)/J21);0))
+    WHEN c = \'m\' AND v >= 1 THEN
+      --SI(OU(ESTVIDE(composante_affectation);OU(L20=service_du;I21<0))
+      IF i.type_intervenant_code = \'E\' OR cell(\'l\',l-1) = i.service_du OR ( cell(\'l\',l-1) = i.service_du and cell(\'k\',l)<0) THEN
+        -- SI(OU(H21<>"Oui";L21<service_du);0;I21);
+        IF NOT vh.service_statutaire OR (cell(\'l\',l) < i.service_du and cell(\'k\',l)<0) THEN
+          RETURN 0;
+        ELSE
+          RETURN vh.heures;
+        END IF;
+      ELSE
+        -- SI(J21>0;SI(L20+K21<service_du;0;((L20+K21)-service_du)/J21);0)
+        IF cell(\'j\',l) > 0 THEN
+          IF cell(\'l\',l-1) + cell(\'k\',l) < ose_formule.intervenant.service_du THEN
+            RETURN 0;
+          ELSE
+            RETURN (cell(\'l\',l-1) + cell(\'k\',l) - ose_formule.intervenant.service_du) / cell(\'j\',l);
+          END IF;
+        ELSE
+          RETURN 0;
+        END IF;
+      END IF;
+
+
+
+    -- n = SI(ESTVIDE(C21);0;RECHERCHEH(C21;types_intervention;3;0))
+    WHEN c = \'n\' AND v >= 1 THEN
+      RETURN vh.taux_service_compl * vh.ponderation_service_compl;
+
+
+
+    -- o = SI(OU(service_realise<service_du;HC_autorisees<>"Oui");0;(M21+SI(H21<>"Oui";I21;0))*N21)
+    -- service_realise = MAX($L$21:$L$50)
+    -- service_du = ose_formule.intervenant.service_du
+    -- HC_autorisees = ose_formule.intervenant.depassement_service_du_sans_hc = false
+/*    WHEN c = \'o\' AND v >= 1 THEN
+      IF (calcFnc(\'max\',\'l\') < ose_formule.intervenant.service_du) OR ose_formule.intervenant.depassement_service_du_sans_hc THEN
+        RETURN 0;
+      ELSE
+        IF vh.service_statutaire THEN
+          RETURN cell(\'m\',l) * cell(\'n\',l);
+        ELSE
+          RETURN (cell(\'m\',l) + vh.heures) * cell(\'n\',l);
+        END IF;
+      END IF;
+*/
+-- UM
+    WHEN c = \'o\' AND v >= 1 THEN
+      IF (calcFnc(\'last\',\'l\') < ose_formule.intervenant.service_du) OR ose_formule.intervenant.depassement_service_du_sans_hc THEN
+        RETURN 0;
+      ELSE
+        IF vh.service_statutaire THEN
+          RETURN cell(\'m\',l) * cell(\'n\',l);
+        ELSE
+          RETURN (cell(\'m\',l) + vh.heures) * cell(\'n\',l);
+        END IF;
+      END IF;
+
+
+    -- q =SI(ESTVIDE(C21);0;SI(H21="Non";0;SI(C21="TP";1;RECHERCHEH(C21;types_intervention;2;0))))
+    -- q =SI(H21="Non";0;SI(C21="TP";1;RECHERCHEH(C21;types_intervention;2;0)))
+    WHEN c = \'q\' AND v >= 1 THEN
+      IF NOT vh.service_statutaire THEN
+        RETURN 0;
+      ELSE
+        -- SI(C21="TP";1;RECHERCHEH(C21;types_intervention;2;0))
+        IF vh.type_intervention_code = \'TP\' THEN
+          RETURN 1;
+        ELSE
+          RETURN vh.taux_service_du;
+        END IF;
+
+      END IF;
+
+
+
+    -- r =I21*Q21
+    WHEN c = \'r\' AND v >= 1 THEN
+      RETURN vh.heures * cell(\'q\',l);
+
+
+
+    -- r136 =SOMME.SI(B$21:B$50;composante_affectation;R$21:R$50)
+    WHEN c = \'r136\' AND v >= 1 THEN
+      val := 0;
+      FOR i IN 1 .. ose_formule.volumes_horaires.length LOOP
+        IF ose_formule.volumes_horaires.items(i).structure_is_affectation THEN
+          val := val + cell(\'r\',i);
+        END IF;
+      END LOOP;
+      RETURN val;
+
+
+
+    -- r137 =SOMME.SI(B$21:B$50;"<>"&composante_affectation;R$21:R$50)
+    WHEN c = \'r137\' AND v >= 1 THEN
+      val := 0;
+      FOR i IN 1 .. ose_formule.volumes_horaires.length LOOP
+        IF NOT ose_formule.volumes_horaires.items(i).structure_is_affectation THEN
+          val := val + cell(\'r\',i);
+        END IF;
+      END LOOP;
+      RETURN val;
+
+
+
+    -- s =SI(H21="Non";O21;SI(B21=composante_affectation;SI($R$136=0;0;R21*$T$136);SI($R$137=0;0;R21*$T$137)))
+    WHEN c = \'s\' AND v >= 1 THEN
+      IF NOT vh.service_statutaire THEN
+        RETURN cell(\'o\', l);
+      ELSE
+        IF vh.structure_is_affectation THEN
+          IF cell(\'r136\') = 0 THEN
+            RETURN 0;
+          ELSE
+            RETURN cell(\'r\', l) * cell(\'t136\');
+          END IF;
+        ELSE
+          IF cell(\'r137\') = 0 THEN
+            RETURN 0;
+          ELSE
+            RETURN cell(\'r\', l) * cell(\'t137\');
+          END IF;
+        END IF;
+      END IF;
+
+
+
+    -- s136 =SI(OU(HC=0;R136<service_du);0;SI(pour_les_autres_composantes=0;HC     ;SI((HC_Budg-pour_les_autres_composantes)<(HC_Budg*(R136-service_du)/R132);HC_Budg*(R136-service_du)/R132;HC_Budg-pour_les_autres_composantes)))
+    -- s136 =SI(OU(HC=0;R136<service_du);0;SI(pour_les_autres_composantes=0;HC_Budg;SI((HC_Budg-pour_les_autres_composantes)<(HC_Budg*(R136-service_du)/R132);HC_Budg*(R136-service_du)/R132;HC_Budg-pour_les_autres_composantes)))
+    -- pour_les_autres_composantes = R137
+    WHEN c = \'s136\' AND v >= 1 THEN
+      IF calcFnc(\'total\',\'o\') = 0 OR cell(\'r136\') < ose_formule.intervenant.service_du THEN
+        RETURN 0;
+      ELSE
+        -- SI(R137=0;HC;SI((HC_Budg-R137)<(HC_Budg*(R136-service_du)/R132);HC_Budg*(R136-service_du)/R132;HC_Budg-R137))
+        IF cell(\'r137\') = 0 THEN
+          RETURN cell(\'hc_budg\');
+        ELSE
+          -- SI((HC_Budg-R137)<(HC_Budg*(R136-service_du)/R132);HC_Budg*(R136-service_du)/R132;HC_Budg-R137)
+          IF (cell(\'hc_budg\')-cell(\'r137\'))<(cell(\'hc_budg\')*(cell(\'r136\')-ose_formule.intervenant.service_du)/calcFnc(\'total\',\'r\')) THEN
+            -- HC_Budg*(R136-service_du)/R132
+            RETURN cell(\'hc_budg\')*(cell(\'r136\')-ose_formule.intervenant.service_du)/calcFnc(\'total\',\'r\');
+          ELSE
+            -- HC_Budg-R137
+            RETURN cell(\'hc_budg\')-cell(\'r137\');
+          END IF;
+        END IF;
+      END IF;
+
+
+
+    -- s137 =SI(R137=0;0;SI(HC=0;0;HC_Budg-S136))
+    WHEN c = \'s137\' AND v >= 1 THEN
+      IF cell(\'r137\') = 0 THEN
+        RETURN 0;
+      ELSE
+        IF calcFnc(\'total\',\'o\') = 0 THEN
+          RETURN 0;
+        ELSE
+          RETURN cell(\'hc_budg\') - cell(\'s136\');
+        END IF;
+      END IF;
+
+
+
+    -- s138 =SOMME(S136:S137)
+    WHEN c = \'s138\' AND v >= 1 THEN
+      RETURN cell(\'s136\') + cell(\'s138\');
+
+
+
+    -- t136 =SI(R136=0;0;S136/R136)
+    WHEN c = \'t136\' AND v >= 1 THEN
+      IF cell(\'r136\') = 0 THEN
+        RETURN 0;
+      ELSE
+        RETURN cell(\'s136\') / cell(\'r136\');
+      END IF;
+
+
+
+    -- t137 =SI(R137=0;0;S137/R137)
+    WHEN c = \'t137\' AND v >= 1 THEN
+      IF cell(\'r137\') = 0 THEN
+        RETURN 0;
+      ELSE
+        RETURN cell(\'s137\') / cell(\'r137\');
+      END IF;
+
+
+
+    -- u =                                     SI(OU(ESTVIDE($C21);$C21="Référentiel";ET(HC=0;H21="Non"));0;SI(H21="Non";O21*$D21;SI($M21>0;(($M21*$N21)+($I21-$M21)*J21)*$D21;$K21*$D21)))
+    -- u =SI(ESTVIDE(composante_affectation);0;SI(OU(ESTVIDE($C21);$C21="Référentiel";ET(HC=0;H21="Non"));0;SI(H21="Non";O21*$D21;SI($M21>0;(($M21*$N21)+($I21-$M21)*J21)*$D21;$K21*$D21))))
+    WHEN c = \'u\' AND v >= 1 THEN
+      IF i.type_intervenant_code = \'E\' THEN
+        RETURN 0;
+      ELSE
+        -- OU(ESTVIDE($C21);$C21="Référentiel";ET(HC=0;H21="Non"))
+        IF vh.volume_horaire_ref_id IS NOT NULL OR (calcFnc(\'total\',\'o\')=0 AND NOT vh.service_statutaire) THEN
+          RETURN 0;
+        ELSE
+          -- SI(H21="Non";O21*$D21;SI($M21>0;(($M21*$N21)+($I21-$M21)*J21)*$D21;$K21*$D21))
+          IF NOT vh.service_statutaire THEN
+            RETURN cell(\'o\',l) * vh.taux_fi;
+          ELSE
+            -- SI($M21>0;(($M21*$N21)+($I21-$M21)*J21)*$D21;$K21*$D21)
+            IF cell(\'m\',l) > 0 THEN
+              -- (($M21*$N21)+($I21-$M21)*J21)*$D21
+              RETURN ((cell(\'m\',l)*cell(\'n\',l))+(vh.heures-cell(\'m\',l))*cell(\'j\',l))*vh.taux_fi;
+            ELSE
+              -- $K21*$D21
+              RETURN cell(\'k\',l) * vh.taux_fi;
+            END IF;
+          END IF;
+        END IF;
+      END IF;
+
+
+
+    -- v =SI(ESTVIDE(composante_affectation);0;SI(OU(ESTVIDE($C21);$C21="Référentiel";ET(HC=0;H21="Non"));0;SI(H21="Non";O21*$E21;SI($M21>0;(($M21*$N21)+($I21-$M21)*K21)*$E21;$K21*$E21))))
+	    --UM  v =SI(ESTVIDE(composante_affectation);0;SI(OU(ESTVIDE($C21);$C21="Référentiel";ET(HC=0;H21="Non"));0;SI(H21="Non";O21*$E21;SI($M21>0;(($M21*$N21)+($I21-$M21)*J21)*$E21;$K21*$E21))))
+    -- HC = calcFnc(\'total\',\'o\')
+    -- H21="Non" = NOT vh.service_statutaire
+    -- P21 = O21!!
+    WHEN c = \'v\' AND v >= 1 THEN
+      IF i.type_intervenant_code = \'E\' THEN
+        RETURN 0;
+      ELSE
+        -- OU(ESTVIDE($C21);$C21="Référentiel";ET(HC=0;H21="Non"))
+        IF vh.volume_horaire_ref_id IS NOT NULL OR (calcFnc(\'total\',\'o\')=0 AND NOT vh.service_statutaire) THEN
+          RETURN 0;
+        ELSE
+          -- SI(H21="Non";P21;SI($M21>0;(($M21*$N21)+($I21-$M21)*K21)*$E21;$K21*$E21))
+          IF NOT vh.service_statutaire THEN
+            RETURN cell(\'o\',l) * vh.taux_fa;
+          ELSE
+            -- SI($M21>0;(($M21*$N21)+($I21-$M21)*K21)*$E21;$K21*$E21)
+            IF cell(\'m\',l) > 0 THEN
+              -- (($M21*$N21)+($I21-$M21)*J21)*$E21
+              RETURN ((cell(\'m\',l)*cell(\'n\',l))+(vh.heures-cell(\'m\',l))*cell(\'j\',l))*vh.taux_fa;
+            ELSE
+              -- $K21*$E21
+              RETURN cell(\'k\',l) * vh.taux_fa;
+            END IF;
+          END IF;
+        END IF;
+      END IF;
+
+
+
+    -- w =SI(ESTVIDE(composante_affectation);0;SI(OU(ESTVIDE($C21);$C21="Référentiel";ET(HC=0;H21="Non"));0;SI(H21="Non";O21*$F21;SI($M21>0;(($M21*$N21)+($I21-$M21)*L21)*$F21;$K21*$F21))))
+	--UM  w =SI(ESTVIDE(composante_affectation);0;SI(OU(ESTVIDE($C21);$C21="Référentiel";ET(HC=0;H21="Non"));0;SI(H21="Non";O21*$F21;SI($M21>0;(($M21*$N21)+($I21-$M21)*J21)*$F21;$K21*$F21))))
+    WHEN c = \'w\' AND v >= 1 THEN
+      IF i.type_intervenant_code = \'E\' THEN
+        RETURN 0;
+      ELSE
+        -- OU(ESTVIDE($C21);$C21="Référentiel";ET(HC=0;H21="Non"))
+        IF vh.volume_horaire_ref_id IS NOT NULL OR (calcFnc(\'total\',\'o\')=0 AND NOT vh.service_statutaire) THEN
+          RETURN 0;
+        ELSE
+          --SI(H21="Non";Q21;SI($M21>0;(($M21*$N21)+($I21-$M21)*L21)*$F21;$K21*$F21))
+          IF NOT vh.service_statutaire THEN
+            RETURN cell(\'o\',l) * vh.taux_fc;
+          ELSE
+            -- SI($M21>0;(($M21*$N21)+($I21-$M21)*L21)*$F21;$K21*$F21)
+            IF cell(\'m\',l) > 0 THEN
+              RETURN ((cell(\'m\',l)*cell(\'n\',l))+(vh.heures-cell(\'m\',l))*cell(\'j\',l))*vh.taux_fc;
+            ELSE
+              -- $K21*$F21
+              RETURN cell(\'k\',l) * vh.taux_fc;
+            END IF;
+          END IF;
+        END IF;
+      END IF;
+
+
+    -- x =SI(ESTVIDE(composante_affectation);0;SI(OU(ESTVIDE($C21);NON(C21="Référentiel");ET(HC=0;H21="Non"));0;SI(H21="Non";O21;SI($M21>0;(($M21*$N21)+($I21-$M21)*J21);$K21))))
+    WHEN c = \'x\' AND v >= 1 THEN
+      IF i.type_intervenant_code = \'E\' THEN
+        RETURN 0;
+      ELSE
+        -- OU(NON(C21="Référentiel");ET(HC=0;H21="Non"))
+        IF vh.volume_horaire_ref_id IS NULL OR (calcFnc(\'total\', \'o\')=0 AND NOT vh.service_statutaire) THEN
+          RETURN 0;
+        ELSE
+          -- SI(H21="Non";O21;SI($M21>0;(($M21*$N21)+($I21-$M21)*J21);$K21))
+          IF NOT vh.service_statutaire THEN
+            RETURN cell(\'o\', l);
+          ELSE
+            -- SI($M21>0;(($M21*$N21)+($I21-$M21)*J21);$K21)
+            IF cell(\'m\',l) > 0 THEN
+              RETURN (cell(\'m\',l)*cell(\'n\',l))+(vh.heures-cell(\'m\',l))*cell(\'j\',l);
+            ELSE
+              RETURN cell(\'k\',l);
+            END IF;
+          END IF;
+        END IF;
+      END IF;
+
+
+
+    -- y =SI($C21="Référentiel";0;SI(ESTVIDE(composante_affectation);O21;$S21))
+    WHEN c = \'y\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NOT NULL THEN
+        RETURN 0;
+      ELSE
+        IF i.type_intervenant_code = \'E\' THEN
+          RETURN cell(\'o\',l);
+        ELSE
+          RETURN cell(\'s\',l);
+        END IF;
+      END IF;
+
+
+
+    -- z =0
+    WHEN c = \'z\' AND v >= 1 THEN
+      RETURN 0;
+
+
+
+    -- aa =0
+    WHEN c = \'aa\' AND v >= 1 THEN
+      RETURN 0;
+
+
+
+    -- ab =0
+    WHEN c = \'ab\' AND v >= 1 THEN
+      RETURN 0;
+
+
+
+    -- ac =SI($C21="Référentiel";SI(ESTVIDE(composante_affectation);O21;$S21);0)
+    WHEN c = \'ac\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NOT NULL THEN
+        IF i.type_intervenant_code = \'E\' THEN
+          RETURN cell(\'o\',l);
+        ELSE
+          RETURN cell(\'s\',l);
+        END IF;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+
+
+    -- hc_budg =SI(ESTVIDE(composante_affectation);0;HC-SOMME.SI(H$21:H$131;"Non";O$21:O$131))
+    -- (composante_affectation vide si vacataire)
+    WHEN c = \'hc_budg_cell\' AND v >= 1 THEN
+      IF NOT vh.service_statutaire THEN
+        RETURN 0;
+      ELSE
+        RETURN cell(\'o\', l);
+      END IF;
+
+    WHEN c = \'hc_budg\' AND v >= 1 THEN
+      IF i.type_intervenant_code = \'E\' THEN
+        RETURN 0;
+      ELSE
+        RETURN calcFnc(\'total\', \'hc_budg_cell\');
+      END IF;
+
+
+
+    ELSE
+      raise_application_error( -20001, \'La colonne c=\' || c || \', l=\' || l || \' n\'\'existe pas!\');
+  END CASE; END;
+
+
+
+  PROCEDURE CALCUL_RESULTAT IS
+  BEGIN
+    feuille.delete;
+
+    -- transmission des résultats aux volumes horaires et volumes horaires référentiel
+    FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+      ose_formule.volumes_horaires.items(l).service_fi               := mainCell(\'Service FI\', \'u\',l);
+      ose_formule.volumes_horaires.items(l).service_fa               := mainCell(\'Service FA\', \'v\',l);
+      ose_formule.volumes_horaires.items(l).service_fc               := mainCell(\'Service FC\', \'w\',l);
+      ose_formule.volumes_horaires.items(l).service_referentiel      := mainCell(\'Service référentiel\', \'x\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fi          := mainCell(\'Heures compl. FI\', \'y\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fa          := mainCell(\'Heures compl. FA\', \'z\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fc          := mainCell(\'Heures compl. FC\', \'aa\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fc_majorees := mainCell(\'Heures compl. FC Maj.\', \'ab\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_referentiel := mainCell(\'Heures compl. référentiel\', \'ac\',l);
+    END LOOP;
+  END;
+
+
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN \'
+    SELECT
+      fi.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_intervenant fi
+    \';
+  END;
+
+
+
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN \'
+    SELECT
+      fvh.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_volume_horaire fvh
+    ORDER BY
+      ordre\';
+  END;
+
+END FORMULE_MONTPELLIER;',
+    ),
+    'FORMULE_NANTERRE' => 
+    array (
+      'name' => 'FORMULE_NANTERRE',
+      'definition' => 'CREATE OR REPLACE PACKAGE FORMULE_NANTERRE AS
+
+  PROCEDURE CALCUL_RESULTAT;
+
+  FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT;
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB;
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB;
+
+END FORMULE_NANTERRE;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY FORMULE_NANTERRE AS
+  decalageLigne NUMERIC DEFAULT 21;
+
+
+  /* Stockage des valeurs intermédiaires */
+  TYPE t_cell IS RECORD (
+    valeur FLOAT,
+    enCalcul BOOLEAN DEFAULT FALSE
+  );
+  TYPE t_cells IS TABLE OF t_cell INDEX BY PLS_INTEGER;
+  TYPE t_coll IS RECORD (
+    cells t_cells
+  );
+  TYPE t_colls IS TABLE OF t_coll INDEX BY VARCHAR2(50);
+  feuille t_colls;
+
+  debugLine NUMERIC;
+
+
+  PROCEDURE dbg( val CLOB ) IS
+  BEGIN
+    ose_formule.volumes_horaires.items(debugLine).debug_info :=
+      ose_formule.volumes_horaires.items(debugLine).debug_info || val;
+  END;
+
+
+  PROCEDURE dbgi( val CLOB ) IS
+  BEGIN
+    ose_formule.intervenant.debug_info := ose_formule.intervenant.debug_info || val;
+  END;
+
+  PROCEDURE dbgDump( val CLOB ) IS
+  BEGIN
+    dbg(\'<div class="dbg-dump">\' || val || \'</div>\');
+  END;
+
+  PROCEDURE dbgCell( c VARCHAR2, l NUMERIC, val FLOAT ) IS
+    ligne NUMERIC;
+  BEGIN
+    ligne := l;
+    IF l <> 0 THEN
+      ligne := ligne + decalageLigne;
+    END IF;
+
+    dbgi( \'[cell|\' || c || \'|\' || ligne || \'|\' || val );
+  END;
+
+  PROCEDURE dbgCalc( fncName VARCHAR2, c VARCHAR2, res FLOAT ) IS
+  BEGIN
+    dbgi( \'[calc|\' || fncName || \'|\' || c || \'|\' || res );
+  END;
+
+  FUNCTION cell( c VARCHAR2, l NUMERIC DEFAULT 0 ) RETURN FLOAT IS
+    val FLOAT;
+  BEGIN
+    IF feuille.exists(c) THEN
+      IF feuille(c).cells.exists(l) THEN
+        IF feuille(c).cells(l).enCalcul THEN
+          raise_application_error( -20001, \'Dépendance cyclique : la cellule [\' || c || \';\' || l || \'] est déjà en cours de calcul\');
+        END IF;
+        RETURN feuille(c).cells(l).valeur;
+      END IF;
+    END IF;
+
+    feuille(c).cells(l).enCalcul := true;
+    val := calcCell( c, l );
+    IF ose_formule.debug_actif THEN
+      dbgCell( c, l, val );
+    END IF;
+    feuille(c).cells(l).valeur := val;
+    feuille(c).cells(l).enCalcul := false;
+
+    RETURN val;
+  END;
+
+  FUNCTION mainCell( libelle VARCHAR2, c VARCHAR2, l NUMERIC ) RETURN FLOAT IS
+    val FLOAT;
+  BEGIN
+    debugLine := l;
+    val := cell(c,l);
+
+    RETURN val;
+  END;
+
+  FUNCTION calcFnc( fncName VARCHAR2, c VARCHAR2 ) RETURN FLOAT IS
+    val FLOAT;
+    cellRes FLOAT;
+  BEGIN
+    IF feuille.exists(\'__\' || fncName || \'__\' || c || \'__\') THEN
+      IF feuille(\'__\' || fncName || \'__\' || c || \'__\').cells.exists(1) THEN
+        RETURN feuille(\'__\' || fncName || \'__\' || c || \'__\').cells(1).valeur;
+      END IF;
+    END IF;
+    CASE
+    -- Liste des fonctions supportées
+
+    WHEN fncName = \'total\' THEN
+      val := 0;
+      FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+        val := val + COALESCE(cell(c, l),0);
+      END LOOP;
+
+    WHEN fncName = \'max\' THEN
+      val := NULL;
+      FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+        cellRes := cell(c,l);
+        IF val IS NULL OR val < cellRes THEN
+          val := cellRes;
+        END IF;
+      END LOOP;
+
+    -- fin de la liste des fonctions supportées
+    ELSE
+      raise_application_error( -20001, \'La formule "\' || fncName || \'" n\'\'existe pas!\');
+    END CASE;
+    IF ose_formule.debug_actif THEN
+      dbgCalc(fncName, c, val );
+    END IF;
+    feuille(\'__\' || fncName || \'__\' || c || \'__\').cells(1).valeur := val;
+
+    RETURN val;
+  END;
+
+
+  FUNCTION calcVersion RETURN NUMERIC IS
+  BEGIN
+    RETURN 1;
+  END;
+
+
+
+  FUNCTION notInStructs( v VARCHAR2 DEFAULT NULL ) RETURN BOOLEAN IS
+  BEGIN
+    RETURN COALESCE(v,\' \') NOT IN (\'KE8\',\'UP10\');
+  END;
+
+
+
+  FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT IS
+    vh ose_formule.t_volume_horaire;
+    i  ose_formule.t_intervenant;
+    v NUMERIC;
+    val FLOAT;
+  BEGIN
+    v := calcVersion;
+
+    i := ose_formule.intervenant;
+    IF l > 0 THEN
+      vh := ose_formule.volumes_horaires.items(l);
+    END IF;
+    CASE
+
+
+
+    -- service_realise=SOMME(BJ22:BM51)
+    WHEN c = \'service_realise\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\',\'BJ\') + calcFnc(\'total\',\'BK\') + calcFnc(\'total\',\'BL\') + calcFnc(\'total\',\'BM\');
+
+
+
+    -- HC=SOMME(BN22:BR51)
+    WHEN c = \'HC\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\',\'BN\') + calcFnc(\'total\',\'BO\') + calcFnc(\'total\',\'BP\') + calcFnc(\'total\',\'BQ\') + calcFnc(\'total\',\'BR\');
+
+
+
+    -- I=SI(ESTVIDE(C22);0;RECHERCHEH(SI(ET(C22="TP";TP_vaut_TD="Oui");"TD";C22);types_intervention;2;0))
+    WHEN c = \'I\' AND v >= 1 THEN
+      -- ON ne retourne que le taux en service dû... ? ?
+      RETURN vh.taux_service_du;
+
+
+
+    -- J=H22*I22
+    WHEN c = \'J\' AND v >= 1 THEN
+      RETURN vh.heures * cell(\'I\', l);
+
+
+
+    -- L=SI($H22="";0;SI(ET($C22<>"Référentiel";$B22=composante_affectation;$B22<>"KE8";$B22<>"UP10");$J22*$D22;0))
+    WHEN c = \'L\' AND v >= 1 THEN
+      -- ET($C22<>"Référentiel";$B22=composante_affectation;$B22<>"KE8";$B22<>"UP10")
+      IF vh.volume_horaire_ref_id IS NULL AND vh.structure_is_affectation AND notInStructs(vh.param_1) THEN
+        RETURN cell(\'J\',l) * vh.taux_fi;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- M=SI(L$52>0;L22/L$52;0)
+    WHEN c = \'M\' AND v >= 1 THEN
+      IF cell(\'L52\') > 0 THEN
+        RETURN cell(\'L\', l) / cell(\'L52\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- N=L$53*M22
+    WHEN c = \'N\' AND v >= 1 THEN
+      RETURN cell(\'L53\') * cell(\'M\', l);
+
+
+
+    -- O=SI(ET(L$54=0;HC_autorisees="Oui");L22-N22;0)
+    WHEN c = \'O\' AND v >= 1 THEN
+      IF cell(\'L54\') = 0 AND NOT i.depassement_service_du_sans_hc THEN
+        RETURN cell(\'L\', l) - cell(\'N\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- Q=SI($H22="";0;SI(ET($C22="Référentiel";$G22="Oui";$B22=composante_affectation;$B22<>"KE8";$B22<>"UP10");$J22;0))
+    WHEN c = \'Q\' AND v >= 1 THEN
+      -- ET($C22="Référentiel";$G22="Oui";$B22=composante_affectation;$B22<>"KE8";$B22<>"UP10")
+      IF vh.volume_horaire_ref_id IS NOT NULL AND vh.service_statutaire AND vh.structure_is_affectation AND notInStructs(vh.param_1) THEN
+        RETURN cell(\'J\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- R=SI(Q$52>0;Q22/Q$52;0)
+    WHEN c = \'R\' AND v >= 1 THEN
+      IF cell(\'Q52\') > 0 THEN
+        RETURN cell(\'Q\', l) / cell(\'Q52\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- S=Q$53*R22
+    WHEN c = \'S\' AND v >= 1 THEN
+      RETURN cell(\'Q53\') * cell(\'R\', l);
+
+
+
+    -- T=SI(ET(Q$54=0;HC_autorisees="Oui");Q22-S22;0)
+    WHEN c = \'T\' AND v >= 1 THEN
+      IF cell(\'Q54\') = 0 AND NOT i.depassement_service_du_sans_hc THEN
+        RETURN cell(\'Q\', l) - cell(\'S\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- V=SI($H22="";0;SI(ET($C22<>"Référentiel";$B22<>composante_affectation;$B22<>"KE8";$B22<>"UP10");$J22*$D22;0))
+    WHEN c = \'V\' AND v >= 1 THEN
+      --ET($C22<>"Référentiel";$B22<>composante_affectation;$B22<>"KE8";$B22<>"UP10");$J22*$D22;0)
+      IF vh.volume_horaire_ref_id IS NULL AND NOT vh.structure_is_affectation AND notInStructs(vh.param_1) THEN
+        RETURN cell(\'J\',l) * vh.taux_fi;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- W=SI(V$52>0;V22/V$52;0)
+    WHEN c = \'W\' AND v >= 1 THEN
+      IF cell(\'V52\') > 0 THEN
+        RETURN cell(\'V\', l) / cell(\'V52\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- X=V$53*W22
+    WHEN c = \'X\' AND v >= 1 THEN
+      RETURN cell(\'V53\') * cell(\'W\', l);
+
+
+
+    -- Y=SI(ET(V$54=0;HC_autorisees="Oui");V22-X22;0)
+    WHEN c = \'Y\' AND v >= 1 THEN
+      IF cell(\'V54\') = 0 AND NOT i.depassement_service_du_sans_hc THEN
+        RETURN cell(\'V\', l) - cell(\'X\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AA=SI($H22="";0;SI(ET($C22="Référentiel";$G22="Oui";$B22<>composante_affectation;$B22<>"KE8";$B22<>"UP10");$J22;0))
+    WHEN c = \'AA\' AND v >= 1 THEN
+      --ET($C22="Référentiel";$G22="Oui";$B22<>composante_affectation;$B22<>"KE8";$B22<>"UP10")
+      IF vh.volume_horaire_ref_id IS NOT NULL AND vh.service_statutaire AND NOT vh.structure_is_affectation AND notInStructs(vh.param_1) THEN
+        RETURN cell(\'J\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AB=SI(AA$52>0;AA22/AA$52;0)
+    WHEN c = \'AB\' AND v >= 1 THEN
+      IF cell(\'AA52\') > 0 THEN
+        RETURN cell(\'AA\', l) / cell(\'AA52\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AC=AA$53*AB22
+    WHEN c = \'AC\' AND v >= 1 THEN
+      RETURN cell(\'AA53\') * cell(\'AB\', l);
+
+
+
+    -- AD=SI(ET(AA$54=0;HC_autorisees="Oui");AA22-AC22;0)
+    WHEN c = \'AD\' AND v >= 1 THEN
+      IF cell(\'AA54\') = 0 AND NOT i.depassement_service_du_sans_hc THEN
+        RETURN cell(\'AA\', l) - cell(\'AC\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AF=SI($H22="";0;SI(OU($B22="KE8";$B22="UP10");SI($C22="Référentiel";SI($G22="Oui";$J22;0);$J22*$D22);0))
+    WHEN c = \'AF\' AND v >= 1 THEN
+      IF vh.param_1 IN (\'KE8\',\'UP10\') THEN
+        --SI($C22="Référentiel";SI($G22="Oui";$J22;0);$J22*$D22)
+        IF vh.volume_horaire_ref_id IS NOT NULL THEN
+          --SI($G22="Oui";$J22;0)
+          IF vh.service_statutaire THEN
+            RETURN cell(\'J\', l);
+          ELSE
+            RETURN 0;
+          END IF;
+        ELSE
+          RETURN cell(\'J\', l) * vh.taux_fi;
+        END IF;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AG=SI(AF$52>0;AF22/AF$52;0)
+    WHEN c = \'AG\' AND v >= 1 THEN
+      IF cell(\'AF52\') > 0 THEN
+        RETURN cell(\'AF\', l) / cell(\'AF52\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AH=AF$53*AG22
+    WHEN c = \'AH\' AND v >= 1 THEN
+      RETURN cell(\'AF53\') * cell(\'AG\', l);
+
+
+
+    -- AI=SI(ET(AF$54=0;HC_autorisees="Oui");AF22-AH22;0)
+    WHEN c = \'AI\' AND v >= 1 THEN
+      IF cell(\'AF54\') = 0 AND NOT i.depassement_service_du_sans_hc THEN
+        RETURN cell(\'AF\', l) - cell(\'AH\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AK=SI($H22="";0;SI(ET($C22<>"Référentiel";$B22=composante_affectation);$J22*$E22;0))
+    WHEN c = \'AK\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NULL AND vh.structure_is_affectation THEN
+        RETURN cell(\'J\', l) * vh.taux_fa;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AL=SI(AK$52>0;AK22/AK$52;0)
+    WHEN c = \'AL\' AND v >= 1 THEN
+      IF cell(\'AK52\') > 0 THEN
+        RETURN cell(\'AK\', l) / cell(\'AK52\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AM=AK$53*AL22
+    WHEN c = \'AM\' AND v >= 1 THEN
+      RETURN cell(\'AK53\') * cell(\'AL\', l);
+
+
+
+    -- AN=SI(ET(AK$54=0;HC_autorisees="Oui");AK22-AM22;0)
+    WHEN c = \'AN\' AND v >= 1 THEN
+      IF cell(\'AK54\') = 0 AND NOT i.depassement_service_du_sans_hc THEN
+        RETURN cell(\'AK\', l) - cell(\'AM\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AP=SI($H22="";0;SI(ET($C22<>"Référentiel";$B22<>composante_affectation);$J22*$E22;0))
+    WHEN c = \'AP\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NULL AND NOT vh.structure_is_affectation THEN
+        RETURN cell(\'J\', l) * vh.taux_fa;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AQ=SI(AP$52>0;AP22/AP$52;0)
+    WHEN c = \'AQ\' AND v >= 1 THEN
+      IF cell(\'AP52\') > 0 THEN
+        RETURN cell(\'AP\', l) / cell(\'AP52\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AR=AP$53*AQ22
+    WHEN c = \'AR\' AND v >= 1 THEN
+      RETURN cell(\'AP53\') * cell(\'AQ\', l);
+
+
+
+    -- AS=SI(ET(AP$54=0;HC_autorisees="Oui");AP22-AR22;0)
+    WHEN c = \'AS\' AND v >= 1 THEN
+      IF cell(\'AP54\') = 0 AND NOT i.depassement_service_du_sans_hc THEN
+        RETURN cell(\'AP\', l) - cell(\'AR\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AU=SI($H22="";0;SI(ET($C22<>"Référentiel";$B22=composante_affectation);$J22*$F22;0))
+    WHEN c = \'AU\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NULL AND vh.structure_is_affectation THEN
+        RETURN cell(\'J\', l) * vh.taux_fc;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AV=SI(AU$52>0;AU22/AU$52;0)
+    WHEN c = \'AV\' AND v >= 1 THEN
+      IF cell(\'AU52\') > 0 THEN
+        RETURN cell(\'AU\', l) / cell(\'AU52\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AW=AU$53*AV22
+    WHEN c = \'AW\' AND v >= 1 THEN
+      RETURN cell(\'AU53\') * cell(\'AV\', l);
+
+
+
+    -- AX=SI(ET(AU$54=0;HC_autorisees="Oui");AU22-AW22;0)
+    WHEN c = \'AX\' AND v >= 1 THEN
+      IF cell(\'AU54\') = 0 AND NOT i.depassement_service_du_sans_hc THEN
+        RETURN cell(\'AU\', l) - cell(\'AW\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- AZ=SI($H22="";0;SI(ET($C22<>"Référentiel";$B22<>composante_affectation);$J22*$F22;0))
+    WHEN c = \'AZ\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NULL AND NOT vh.structure_is_affectation THEN
+        RETURN cell(\'J\', l) * vh.taux_fc;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- BA=SI(AZ$52>0;AZ22/AZ$52;0)
+    WHEN c = \'BA\' AND v >= 1 THEN
+      IF cell(\'AZ52\') > 0 THEN
+        RETURN cell(\'AZ\', l) / cell(\'AZ52\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- BB=AZ$53*BA22
+    WHEN c = \'BB\' AND v >= 1 THEN
+      RETURN cell(\'AZ53\') * cell(\'BA\', l);
+
+
+
+    -- BC=SI(ET(AZ$54=0;HC_autorisees="Oui");AZ22-BB22;0)
+    WHEN c = \'BC\' AND v >= 1 THEN
+      IF cell(\'AZ54\') = 0 AND NOT i.depassement_service_du_sans_hc THEN
+        RETURN cell(\'AZ\', l) - cell(\'BB\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- BE=J22-SOMME(L22;Q22;V22;AA22;AF22;AK22;AP22;AU22;AZ22)
+    WHEN c = \'BE\' AND v >= 1 THEN
+      RETURN cell(\'J\', l) - (cell(\'L\', l) + cell(\'Q\', l) + cell(\'V\', l) + cell(\'AA\', l) + cell(\'AF\', l) + cell(\'AK\', l) + cell(\'AP\', l) + cell(\'AU\', l) + cell(\'AZ\', l));
+
+
+
+    -- BF=SI(BE$52>0;BE22/BE$52;0)
+    WHEN c = \'BF\' AND v >= 1 THEN
+      IF cell(\'BE52\') > 0 THEN
+        RETURN cell(\'BE\', l) / cell(\'BE52\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- BG=BE$53*BF22
+    WHEN c = \'BG\' AND v >= 1 THEN
+      RETURN cell(\'BE53\') * cell(\'BF\', l);
+
+
+
+    -- BH=SI(ET(BE$54=0;HC_autorisees="Oui");BE22-BG22;0)
+    WHEN c = \'BH\' AND v >= 1 THEN
+      IF cell(\'BE54\') = 0 AND NOT i.depassement_service_du_sans_hc THEN
+        RETURN cell(\'BE\', l) - cell(\'BG\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- BJ=N22+X22+AH22
+    WHEN c = \'BJ\' AND v >= 1 THEN
+      RETURN cell(\'N\', l) + cell(\'X\', l) + cell(\'AH\', l);
+
+
+
+    -- BK=AM22+AR22
+    WHEN c = \'BK\' AND v >= 1 THEN
+      RETURN cell(\'AM\', l) + cell(\'AR\', l);
+
+
+
+    -- BL=AW22+BB22
+    WHEN c = \'BL\' AND v >= 1 THEN
+      RETURN cell(\'AW\', l) + cell(\'BB\', l);
+
+
+
+    -- BM=S22+AC22+BG22
+    WHEN c = \'BM\' AND v >= 1 THEN
+      RETURN cell(\'S\', l) + cell(\'AC\', l) + cell(\'BG\', l);
+
+
+
+    -- BN=O22+Y22+AI22
+    WHEN c = \'BN\' AND v >= 1 THEN
+      RETURN cell(\'O\', l) + cell(\'Y\', l) + cell(\'AI\', l);
+
+
+
+    -- BO=AN22+AS22
+    WHEN c = \'BO\' AND v >= 1 THEN
+      RETURN cell(\'AN\', l) + cell(\'AS\', l);
+
+
+
+    -- BP=AX22+BC22
+    WHEN c = \'BP\' AND v >= 1 THEN
+      RETURN cell(\'AX\', l) + cell(\'BC\', l);
+
+
+
+    -- BQ=0
+    WHEN c = \'BQ\' AND v >= 1 THEN
+      RETURN 0;
+
+
+
+    -- BR=T22+AD22+BH22
+    WHEN c = \'BR\' AND v >= 1 THEN
+      RETURN cell(\'T\', l) + cell(\'AD\', l) + cell(\'BH\', l);
+
+
+
+    -- L52=SOMME(L22:L51)
+    WHEN c = \'L52\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\',\'L\');
+
+
+
+    -- L53=MIN(L52;service_du)
+    WHEN c = \'L53\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'L52\'), i.service_du);
+
+
+
+    -- L54=service_du-L53
+    WHEN c = \'L54\' AND v >= 1 THEN
+      RETURN i.service_du - cell(\'L53\');
+
+
+
+    -- Q52=SOMME(Q22:Q51)
+    WHEN c = \'Q52\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\',\'Q\');
+
+
+
+    -- Q53=MIN(Q52;L54)
+    WHEN c = \'Q53\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'Q52\'), cell(\'L54\'));
+
+
+
+    -- Q54=L54-Q53
+    WHEN c = \'Q54\' AND v >= 1 THEN
+      RETURN cell(\'L54\') - cell(\'Q53\');
+
+
+
+    -- V52=SOMME(V22:V51)
+    WHEN c = \'V52\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\',\'V\');
+
+
+
+    -- V53=MIN(V52;Q54)
+    WHEN c = \'V53\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'V52\'), cell(\'Q54\'));
+
+
+
+    -- V54=Q54-V53
+    WHEN c = \'V54\' AND v >= 1 THEN
+      RETURN cell(\'Q54\') - cell(\'V53\');
+
+
+
+    -- AA52=SOMME(AA22:AA51)
+    WHEN c = \'AA52\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\',\'AA\');
+
+
+
+    -- AA53=MIN(AA52;V54)
+    WHEN c = \'AA53\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'AA52\'), cell(\'V54\'));
+
+
+
+    -- AA54=V54-AA53
+    WHEN c = \'AA54\' AND v >= 1 THEN
+      RETURN cell(\'V54\') - cell(\'AA53\');
+
+
+
+    -- AF52=SOMME(AF22:AF51)
+    WHEN c = \'AF52\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\',\'AF\');
+
+
+
+    -- AF53=MIN(AF52;AA54)
+    WHEN c = \'AF53\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'AF52\'), cell(\'AA54\'));
+
+
+
+    -- AF54=AA54-AF53
+    WHEN c = \'AF54\' AND v >= 1 THEN
+      RETURN cell(\'AA54\') - cell(\'AF53\');
+
+
+
+    -- AK52=SOMME(AK22:AK51)
+    WHEN c = \'AK52\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\',\'AK\');
+
+
+
+    -- AK53=MIN(AK52;AF54)
+    WHEN c = \'AK53\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'AK52\'), cell(\'AF54\'));
+
+
+
+    -- AK54=AF54-AK53
+    WHEN c = \'AK54\' AND v >= 1 THEN
+      RETURN cell(\'AF54\') - cell(\'AK53\');
+
+
+
+    -- AP52=SOMME(AP22:AP51)
+    WHEN c = \'AP52\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\',\'AP\');
+
+
+
+    -- AP53=MIN(AP52;AK54)
+    WHEN c = \'AP53\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'AP52\'), cell(\'AK54\'));
+
+
+
+    -- AP54=AK54-AP53
+    WHEN c = \'AP54\' AND v >= 1 THEN
+      RETURN cell(\'AK54\') - cell(\'AP53\');
+
+
+
+    -- AU52=SOMME(AU22:AU51)
+    WHEN c = \'AU52\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\',\'AU\');
+
+
+
+    -- AU53=MIN(AU52;AP54)
+    WHEN c = \'AU53\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'AU52\'), cell(\'AP54\'));
+
+
+
+    -- AU54=AP54-AU53
+    WHEN c = \'AU54\' AND v >= 1 THEN
+      RETURN cell(\'AP54\') - cell(\'AU53\');
+
+
+
+    -- AZ52=SOMME(AZ22:AZ51)
+    WHEN c = \'AZ52\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\',\'AZ\');
+
+
+
+    -- AZ53=MIN(AZ52;AU54)
+    WHEN c = \'AZ53\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'AZ52\'), cell(\'AU54\'));
+
+
+
+    -- AZ54=AU54-AZ53
+    WHEN c = \'AZ54\' AND v >= 1 THEN
+      RETURN cell(\'AU54\') - cell(\'AZ53\');
+
+
+
+    -- BE52=SOMME(BE22:BE51)
+    WHEN c = \'BE52\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\',\'BE\');
+
+
+
+    -- BE53=MIN(BE52;AZ54)
+    WHEN c = \'BE53\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'BE52\'), cell(\'AZ54\'));
+
+
+
+    -- BE54=AZ54-BE53
+    WHEN c = \'BE54\' AND v >= 1 THEN
+      RETURN cell(\'AZ54\') - cell(\'BE53\');
+
+
+
+    ELSE
+      raise_application_error( -20001, \'La colonne c=\' || c || \', l=\' || l || \' n\'\'existe pas!\');
+  END CASE; END;
+
+
+
+  PROCEDURE CALCUL_RESULTAT IS
+  BEGIN
+    feuille.delete;
+
+    -- transmission des résultats aux volumes horaires et volumes horaires référentiel
+    FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+      ose_formule.volumes_horaires.items(l).service_fi               := mainCell(\'Service FI\', \'BJ\',l);
+      ose_formule.volumes_horaires.items(l).service_fa               := mainCell(\'Service FA\', \'BK\',l);
+      ose_formule.volumes_horaires.items(l).service_fc               := mainCell(\'Service FC\', \'BL\',l);
+      ose_formule.volumes_horaires.items(l).service_referentiel      := mainCell(\'Service référentiel\', \'BM\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fi          := mainCell(\'Heures compl. FI\', \'BN\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fa          := mainCell(\'Heures compl. FA\', \'BO\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fc          := mainCell(\'Heures compl. FC\', \'BP\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fc_majorees := mainCell(\'Heures compl. FC Maj.\', \'BQ\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_referentiel := mainCell(\'Heures compl. référentiel\', \'BR\',l);
+    END LOOP;
+  END;
+
+
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN \'
+    SELECT
+      fi.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_intervenant fi
+    \';
+  END;
+
+
+
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN \'
+    SELECT
+      fvh.*,
+      str.code param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_volume_horaire fvh
+      JOIN intervenant i ON i.id = fvh.intervenant_id
+      LEFT JOIN structure str ON str.id = COALESCE(fvh.structure_id,i.structure_id)
+    ORDER BY
+      ordre\';
+  END;
+
+END FORMULE_NANTERRE;',
+    ),
+    'FORMULE_UBO' => 
+    array (
+      'name' => 'FORMULE_UBO',
+      'definition' => 'CREATE OR REPLACE PACKAGE "FORMULE_UBO" AS
+
+  PROCEDURE CALCUL_RESULTAT;
+
+  FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT;
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB;
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB;
+
+END FORMULE_UBO;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "FORMULE_UBO" AS
+  decalageLigne NUMERIC DEFAULT 0;
+
+
+  /* Stockage des valeurs intermédiaires */
+  TYPE t_cell IS RECORD (
+    valeur FLOAT,
+    enCalcul BOOLEAN DEFAULT FALSE
+  );
+  TYPE t_cells IS TABLE OF t_cell INDEX BY PLS_INTEGER;
+  TYPE t_coll IS RECORD (
+    cells t_cells
+  );
+  TYPE t_colls IS TABLE OF t_coll INDEX BY VARCHAR2(50);
+  feuille t_colls;
+
+  debugLine NUMERIC;
+
+
+  PROCEDURE dbg( val CLOB ) IS
+  BEGIN
+    ose_formule.volumes_horaires.items(debugLine).debug_info :=
+      ose_formule.volumes_horaires.items(debugLine).debug_info || val;
+  END;
+
+
+  PROCEDURE dbgi( val CLOB ) IS
+  BEGIN
+    ose_formule.intervenant.debug_info := ose_formule.intervenant.debug_info || val;
+  END;
+
+  PROCEDURE dbgDump( val CLOB ) IS
+  BEGIN
+    dbg(\'<div class="dbg-dump">\' || val || \'</div>\');
+  END;
+
+  PROCEDURE dbgCell( c VARCHAR2, l NUMERIC, val FLOAT ) IS
+    ligne NUMERIC;
+  BEGIN
+    ligne := l;
+    IF l <> 0 THEN
+      ligne := ligne + decalageLigne;
+    END IF;
+
+    dbgi( \'[cell|\' || c || \'|\' || ligne || \'|\' || val );
+  END;
+
+  PROCEDURE dbgCalc( fncName VARCHAR2, c VARCHAR2, res FLOAT ) IS
+  BEGIN
+    dbgi( \'[calc|\' || fncName || \'|\' || c || \'|\' || res );
+  END;
+
+  FUNCTION cell( c VARCHAR2, l NUMERIC DEFAULT 0 ) RETURN FLOAT IS
+    val FLOAT;
+  BEGIN
+    IF feuille.exists(c) THEN
+      IF feuille(c).cells.exists(l) THEN
+        IF feuille(c).cells(l).enCalcul THEN
+          raise_application_error( -20001, \'Dépendance cyclique : la cellule [\' || c || \';\' || l || \'] est déjà en cours de calcul\');
+        END IF;
+        RETURN feuille(c).cells(l).valeur;
+      END IF;
+    END IF;
+
+    feuille(c).cells(l).enCalcul := true;
+    val := calcCell( c, l );
+    IF ose_formule.debug_actif THEN
+      dbgCell( c, l, val );
+    END IF;
+    feuille(c).cells(l).valeur := val;
+    feuille(c).cells(l).enCalcul := false;
+
+    RETURN val;
+  END;
+
+  FUNCTION mainCell( libelle VARCHAR2, c VARCHAR2, l NUMERIC ) RETURN FLOAT IS
+    val FLOAT;
+  BEGIN
+    debugLine := l;
+    val := cell(c,l);
+
+    RETURN val;
+  END;
+
+  FUNCTION calcFnc( fncName VARCHAR2, c VARCHAR2 ) RETURN FLOAT IS
+    val FLOAT;
+    cellRes FLOAT;
+  BEGIN
+    IF feuille.exists(\'__\' || fncName || \'__\' || c || \'__\') THEN
+      IF feuille(\'__\' || fncName || \'__\' || c || \'__\').cells.exists(1) THEN
+        RETURN feuille(\'__\' || fncName || \'__\' || c || \'__\').cells(1).valeur;
+      END IF;
+    END IF;
+    CASE
+    -- Liste des fonctions supportées
+
+    WHEN fncName = \'total\' THEN
+      val := 0;
+      FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+        val := val + COALESCE(cell(c, l),0);
+      END LOOP;
+
+    WHEN fncName = \'max\' THEN
+      val := NULL;
+      FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+        cellRes := cell(c,l);
+        IF val IS NULL OR val < cellRes THEN
+          val := cellRes;
+        END IF;
+      END LOOP;
+
+    -- fin de la liste des fonctions supportées
+    ELSE
+      raise_application_error( -20001, \'La formule "\' || fncName || \'" n\'\'existe pas!\');
+    END CASE;
+    IF ose_formule.debug_actif THEN
+      dbgCalc(fncName, c, val );
+    END IF;
+    feuille(\'__\' || fncName || \'__\' || c || \'__\').cells(1).valeur := val;
+
+    RETURN val;
+  END;
+
+
+  FUNCTION calcVersion RETURN NUMERIC IS
+  BEGIN
+    RETURN 1;
+  END;
+
+
+
+  FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT IS
+    vh ose_formule.t_volume_horaire;
+    i  ose_formule.t_intervenant;
+    v NUMERIC;
+    val FLOAT;
+  BEGIN
+    v := calcVersion;
+
+    i := ose_formule.intervenant;
+    IF l > 0 THEN
+      vh := ose_formule.volumes_horaires.items(l);
+    END IF;
+    CASE
+
+
+
+    WHEN c = \'CM\' AND v >= 1 THEN
+      IF vh.type_intervention_code = \'CM\' THEN
+        RETURN vh.heures;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    WHEN c = \'TD\' AND v >= 1 THEN
+      IF vh.type_intervention_code = \'TD\' THEN
+        RETURN vh.heures;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    WHEN c = \'TP\' AND v >= 1 THEN
+      IF vh.type_intervention_code = \'TP\' THEN
+        RETURN vh.heures;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    WHEN c=\'sCM\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\', \'CM\');
+
+
+
+    WHEN c=\'sTD\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\', \'TD\');
+
+
+
+    WHEN c=\'sTP\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\', \'TP\');
+
+
+
+    WHEN c=\'sHeures\' AND v >= 1 THEN
+      RETURN cell(\'sCM\') + cell(\'sTD\') + cell(\'sTP\');
+
+
+
+    -- =SI(I9=0;2/3;SI(I8="Oui";SI(SOMME(I26:K35)=0;1;(2+(I15/((1,5*SOMME(I26:I35))+SOMME(J26:K35))))/3);SI(SOMME(K26:K35)<=384;1;((384+((SOMME(K26:K35)-384)*(2/3)))/SOMME(K26:K35)))))
+    -- I8= TP vaut TD
+    -- I9 = i.heures_service_statutaire
+    -- I15 = i.service_du
+    -- I26:I35 = Somme des CM I=CM, J=TD, K=TP
+    -- K26:K35 = Somme des TP
+    WHEN c = \'tauxTP\' AND v >= 1 THEN
+      IF i.heures_service_statutaire = 0 THEN
+        RETURN 2/3;
+      ELSE
+        -- SI(I8="Oui";SI(SOMME(I26:K35)=0;1;(2+(I15/((1,5*SOMME(I26:I35))+SOMME(J26:K35))))/3);SI(SOMME(K26:K35)<=384;1;((384+((SOMME(K26:K35)-384)*(2/3)))/SOMME(K26:K35))))
+        IF LOWER(i.param_1)=\'oui\' THEN
+          -- SI(SOMME(I26:K35)=0;1;(2+(I15/((1,5*SOMME(I26:I35))+SOMME(J26:K35))))/3);
+          IF cell(\'sHeures\') = 0 THEN
+            RETURN 1;
+          ELSE
+            -- (2+(I15/((1,5*SOMME(I26:I35))+SOMME(J26:K35))))/3
+            RETURN (2+(i.service_du/((1.5*cell(\'sCM\'))+cell(\'sTD\')+cell(\'sTP\'))))/3;
+          END IF;
+        ELSE
+          -- SI(SOMME(K26:K35)<=384;1;((384+((SOMME(K26:K35)-384)*(2/3)))/SOMME(K26:K35)))
+          IF cell(\'sTP\') <= 384 THEN
+            RETURN 1;
+          ELSE
+            --(384+((SOMME(K26:K35)-384)*(2/3)))/SOMME(K26:K35)
+            RETURN (384+((cell(\'sTP\')-384)*(2/3)))/cell(\'sTP\');
+          END IF;
+        END IF;
+      END IF;
+
+
+
+    WHEN c = \'tauxServiceDu\' AND v >= 1 THEN
+      IF vh.type_intervention_code = \'TP\' THEN
+        RETURN cell(\'tauxTP\');
+      ELSE
+        RETURN vh.taux_service_du;
+      END IF;
+
+
+
+    WHEN c = \'tauxServiceCompl\' AND v >= 1 THEN
+      IF vh.type_intervention_code = \'TP\' THEN
+        RETURN cell(\'tauxTP\');
+      ELSE
+        RETURN vh.taux_service_compl;
+      END IF;
+
+
+    -- t11=SI(ET($H26=$I$11;NON($F26));I26;0)
+    WHEN c = \'t11\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NULL AND vh.structure_is_affectation AND NOT vh.taux_fc = 1 THEN
+        RETURN vh.heures;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t12=SI(ET($H26<>$I$11;NON($F26));I26;0)
+    WHEN c = \'t12\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NULL AND NOT vh.structure_is_affectation AND NOT vh.taux_fc = 1 THEN
+        RETURN vh.heures;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t13=SI(ET($H26=$I$11;$F26);I26;0)
+    WHEN c = \'t13\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NULL AND vh.structure_is_affectation AND vh.taux_fc = 1 THEN
+        RETURN vh.heures;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t14=SI(ET($H26<>$I$11;$F26);I26;0)
+    WHEN c = \'t14\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NULL AND NOT vh.structure_is_affectation AND vh.taux_fc = 1 THEN
+        RETURN vh.heures;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t15=SI($H38=$I$11;I38;0)
+    WHEN c = \'t15\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NOT NULL AND vh.structure_is_affectation THEN
+        RETURN vh.heures;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t16=SI(ET($H38<>$I$11;$H38<>$I$2);I38;0)
+    WHEN c = \'t16\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NOT NULL AND NOT vh.structure_is_affectation AND NOT vh.structure_is_univ THEN
+        RETURN vh.heures;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t17=SI($H38=$I$2;I38;0)
+    WHEN c = \'t17\' AND v >= 1 THEN
+      IF vh.volume_horaire_ref_id IS NOT NULL AND vh.structure_is_univ THEN
+        RETURN vh.heures;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t21=I47*I$24
+    WHEN c = \'t21\' AND v >= 1 THEN
+      RETURN cell(\'t11\', l) * cell(\'tauxServiceDu\',l);
+
+
+
+    -- t22=S47*I$24
+    WHEN c = \'t22\' AND v >= 1 THEN
+      RETURN cell(\'t12\', l) * cell(\'tauxServiceDu\',l);
+
+
+
+    -- t23=AC47*I$24
+    WHEN c = \'t23\' AND v >= 1 THEN
+      RETURN cell(\'t13\', l) * cell(\'tauxServiceDu\',l);
+
+
+
+    -- t24=AM47*I$24
+    WHEN c = \'t24\' AND v >= 1 THEN
+      RETURN cell(\'t14\', l) * cell(\'tauxServiceDu\',l);
+
+
+
+    -- t25=AW47*$R$5
+    WHEN c = \'t25\' AND v >= 1 THEN
+      RETURN cell(\'t15\', l);
+
+
+
+    -- t26=AY47*$R$5
+    WHEN c = \'t26\' AND v >= 1 THEN
+      RETURN cell(\'t16\', l);
+
+
+
+    -- t27=BA47*$R$5
+    WHEN c = \'t27\' AND v >= 1 THEN
+      RETURN cell(\'t17\', l);
+
+
+
+    -- t31=MAX(I15-Q69;0)
+    WHEN c = \'t31\' AND v >= 1 THEN
+      RETURN GREATEST(ose_formule.intervenant.service_du - calcFnc(\'total\',\'t21\'), 0);
+
+
+
+    -- t32=MAX(Q71-AA69;0)
+    WHEN c = \'t32\' AND v >= 1 THEN
+      RETURN GREATEST(cell(\'t31\') - calcFnc(\'total\',\'t22\'), 0);
+
+
+
+    -- t33=MAX(AA71-AK69;0)
+    WHEN c = \'t33\' AND v >= 1 THEN
+      RETURN GREATEST(cell(\'t32\') - calcFnc(\'total\',\'t23\'), 0);
+
+
+
+    -- t34=MAX(AK71-AU69;0)
+    WHEN c = \'t34\' AND v >= 1 THEN
+      RETURN GREATEST(cell(\'t33\') - calcFnc(\'total\',\'t24\'), 0);
+
+
+
+    -- t35=MAX(AU71-AW64;0)
+    WHEN c = \'t35\' AND v >= 1 THEN
+      RETURN GREATEST(cell(\'t34\') - calcFnc(\'total\',\'t25\'), 0);
+
+
+
+    -- t36=MAX(AW71-AY64;0)
+    WHEN c = \'t36\' AND v >= 1 THEN
+      RETURN GREATEST(cell(\'t35\', l) - calcFnc(\'total\',\'t26\'), 0);
+
+
+
+    -- t37=MAX(AY71-BA64;0)
+    WHEN c = \'t37\' AND v >= 1 THEN
+      RETURN GREATEST(cell(\'t36\', l) - calcFnc(\'total\',\'t27\'), 0);
+
+
+
+    -- t41=SI($Q$69<>0;I59/$Q$69;0)
+    WHEN c = \'t41\' AND v >= 1 THEN
+      IF calcFnc(\'total\',\'t21\') <> 0 THEN
+        RETURN cell(\'t21\', l) / calcFnc(\'total\',\'t21\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t42=SI($AA$69<>0;S59/$AA$69;0)
+    WHEN c = \'t42\' AND v >= 1 THEN
+      IF calcFnc(\'total\',\'t22\') <> 0 THEN
+        RETURN cell(\'t22\', l) / calcFnc(\'total\',\'t22\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t43=SI($AK$69<>0;AC59/$AK$69;0)
+    WHEN c = \'t43\' AND v >= 1 THEN
+      IF calcFnc(\'total\',\'t23\') <> 0 THEN
+        RETURN cell(\'t23\', l) / calcFnc(\'total\',\'t23\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t44=SI($AU$69<>0;AM59/$AU$69;0)
+    WHEN c = \'t44\' AND v >= 1 THEN
+      IF calcFnc(\'total\',\'t24\') <> 0 THEN
+        RETURN cell(\'t24\', l) / calcFnc(\'total\',\'t24\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t45=SI($AW$64<>0;AW59/$AW$64;0)
+    WHEN c = \'t45\' AND v >= 1 THEN
+      IF calcFnc(\'total\',\'t25\') <> 0 THEN
+        RETURN cell(\'t25\', l) / calcFnc(\'total\',\'t25\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t46=SI($AY$64<>0;AY59/$AY$64;0)
+    WHEN c = \'t46\' AND v >= 1 THEN
+      IF calcFnc(\'total\',\'t26\') <> 0 THEN
+        RETURN cell(\'t26\', l) / calcFnc(\'total\',\'t26\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t47=SI($BA$64<>0;BA59/$BA$64;0)
+    WHEN c = \'t47\' AND v >= 1 THEN
+      IF calcFnc(\'total\',\'t27\') <> 0 THEN
+        RETURN cell(\'t27\', l) / calcFnc(\'total\',\'t27\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t51=MIN($I$15;$Q$69)*I74
+    WHEN c = \'t51\' AND v >= 1 THEN
+      RETURN LEAST(ose_formule.intervenant.service_du, calcFnc(\'total\',\'t21\')) * cell(\'t41\', l);
+
+
+
+    -- t52=MIN($Q$71;$AA$69)*S74
+    WHEN c = \'t52\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'t31\'), calcFnc(\'total\',\'t22\')) * cell(\'t42\', l);
+
+
+
+    -- t53=MIN($AA$71;$AK$69)*AC74
+    WHEN c = \'t53\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'t32\'), calcFnc(\'total\',\'t23\')) * cell(\'t43\', l);
+
+
+
+    -- t54=MIN($AK$71;$AU$69)*AM74
+    WHEN c = \'t54\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'t33\'), calcFnc(\'total\',\'t24\')) * cell(\'t44\', l);
+
+
+
+    -- t55=MIN($AU$71;$AW$64)*AW74
+    WHEN c = \'t55\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'t34\'), calcFnc(\'total\',\'t25\')) * cell(\'t45\', l);
+
+
+
+    -- t56=MIN($AW$71;$AY$64)*AY74
+    WHEN c = \'t56\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'t35\'), calcFnc(\'total\',\'t26\')) * cell(\'t46\', l);
+
+
+
+    -- t57=MIN($AY$71;$BA$64)*BA74
+    WHEN c = \'t57\' AND v >= 1 THEN
+      RETURN LEAST(cell(\'t36\'), calcFnc(\'total\',\'t27\')) * cell(\'t47\', l);
+
+
+
+    -- t61=I86*$C26
+    WHEN c = \'t61\' AND v >= 1 THEN
+      RETURN cell(\'t51\', l) * vh.taux_fi;
+
+
+
+    -- t62=S86*$C26
+    WHEN c = \'t62\' AND v >= 1 THEN
+      RETURN cell(\'t52\', l) * vh.taux_fi;
+
+
+
+    -- t71=I86*$D26
+    WHEN c = \'t71\' AND v >= 1 THEN
+      RETURN cell(\'t51\', l) * vh.taux_fa;
+
+
+
+    -- t72=S86*$D26
+    WHEN c = \'t72\' AND v >= 1 THEN
+      RETURN cell(\'t52\', l) * vh.taux_fa;
+
+
+
+    -- t81=I86*$E26
+    WHEN c = \'t81\' AND v >= 1 THEN
+      RETURN cell(\'t51\', l) * vh.taux_fc;
+
+
+
+    -- t82=S86*$E26
+    WHEN c = \'t82\' AND v >= 1 THEN
+      RETURN cell(\'t52\', l) * vh.taux_fc;
+
+
+
+    -- t83=AC86*$E26
+    WHEN c = \'t83\' AND v >= 1 THEN
+      RETURN cell(\'t53\', l) * vh.taux_fc;
+
+
+
+    -- t84=AM86*$E26
+    WHEN c = \'t84\' AND v >= 1 THEN
+      RETURN cell(\'t54\', l) * vh.taux_fc;
+
+
+
+    -- t91=SI(I59<>0;I86/I59;0)
+    WHEN c = \'t91\' AND v >= 1 THEN
+      IF cell(\'t21\', l) <> 0 THEN
+        RETURN cell(\'t51\', l) / cell(\'t21\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t92=SI(S59<>0;S86/S59;0)
+    WHEN c = \'t92\' AND v >= 1 THEN
+      IF cell(\'t22\', l) <> 0 THEN
+        RETURN cell(\'t52\', l) / cell(\'t22\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t93=SI(AC59<>0;AC86/AC59;0)
+    WHEN c = \'t93\' AND v >= 1 THEN
+      IF cell(\'t23\', l) <> 0 THEN
+        RETURN cell(\'t53\', l) / cell(\'t23\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t94=SI(AM59<>0;AM86/AM59;0)
+    WHEN c = \'t94\' AND v >= 1 THEN
+      IF cell(\'t24\', l) <> 0 THEN
+        RETURN cell(\'t54\', l) / cell(\'t24\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t95=SI(AW59<>0;AW86/AW59;0)
+    WHEN c = \'t95\' AND v >= 1 THEN
+      IF cell(\'t25\', l) <> 0 THEN
+        RETURN cell(\'t55\', l) / cell(\'t25\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t96=SI(AY59<>0;AY86/AY59;0)
+    WHEN c = \'t96\' AND v >= 1 THEN
+      IF cell(\'t26\', l) <> 0 THEN
+        RETURN cell(\'t56\', l) / cell(\'t26\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t97=SI(BA59<>0;BA86/BA59;0)
+    WHEN c = \'t97\' AND v >= 1 THEN
+      IF cell(\'t27\', l) <> 0 THEN
+        RETURN cell(\'t57\', l) / cell(\'t27\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t101=SI($BA$71<>0;0;1-I134)
+    WHEN c = \'t101\' AND v >= 1 THEN
+      IF cell(\'t37\') <> 0 THEN
+        RETURN 0;
+      ELSE
+        RETURN 1 - cell(\'t91\', l);
+      END IF;
+
+
+
+    -- t102=SI($BA$71<>0;0;1-S134)
+    WHEN c = \'t102\' AND v >= 1 THEN
+      IF cell(\'t37\') <> 0 THEN
+        RETURN 0;
+      ELSE
+        RETURN 1 - cell(\'t92\', l);
+      END IF;
+
+
+
+    -- t103=SI($BA$71<>0;0;1-AC134)
+    WHEN c = \'t103\' AND v >= 1 THEN
+      IF cell(\'t37\') <> 0 THEN
+        RETURN 0;
+      ELSE
+        RETURN 1 - cell(\'t93\', l);
+      END IF;
+
+
+
+    -- t104=SI($BA$71<>0;0;1-AM134)
+    WHEN c = \'t104\' AND v >= 1 THEN
+      IF cell(\'t37\') <> 0 THEN
+        RETURN 0;
+      ELSE
+        RETURN 1 - cell(\'t94\', l);
+      END IF;
+
+
+
+    -- t105=SI($BA$71<>0;0;1-AW134)
+    WHEN c = \'t105\' AND v >= 1 THEN
+      IF cell(\'t37\') <> 0 THEN
+        RETURN 0;
+      ELSE
+        RETURN 1 - cell(\'t95\', l);
+      END IF;
+
+
+
+    -- t106=SI($BA$71<>0;0;1-AY134)
+    WHEN c = \'t106\' AND v >= 1 THEN
+      IF cell(\'t37\') <> 0 THEN
+        RETURN 0;
+      ELSE
+        RETURN 1 - cell(\'t96\', l);
+      END IF;
+
+
+
+    -- t107=SI($BA$71<>0;0;1-BA134)
+    WHEN c = \'t107\' AND v >= 1 THEN
+      IF cell(\'t37\') <> 0 THEN
+        RETURN 0;
+      ELSE
+        RETURN 1 - cell(\'t97\', l);
+      END IF;
+
+
+
+    -- t111=I47*I$25*I146
+    WHEN c = \'t111\' AND v >= 1 THEN
+      RETURN cell(\'t11\', l) * cell(\'tauxServiceCompl\',l) * cell(\'t101\', l);
+
+
+
+    -- t112=S47*I$25*S146
+    WHEN c = \'t112\' AND v >= 1 THEN
+      RETURN cell(\'t12\', l) * cell(\'tauxServiceCompl\',l) * cell(\'t102\', l);
+
+
+
+    -- t113=AC47*I$25*AC146
+    WHEN c = \'t113\' AND v >= 1 THEN
+      RETURN cell(\'t13\', l) * cell(\'tauxServiceCompl\',l) * cell(\'t103\', l);
+
+
+
+    -- t114=AM47*I$25*AM146
+    WHEN c = \'t114\' AND v >= 1 THEN
+      RETURN cell(\'t14\', l) * cell(\'tauxServiceCompl\',l) * cell(\'t104\', l);
+
+
+
+    -- t115=AW47*$R$6*AW146
+    WHEN c = \'t115\' AND v >= 1 THEN
+      RETURN cell(\'t15\', l) * cell(\'t105\', l);
+
+
+
+    -- t116=AY47*$R$6*AY146
+    WHEN c = \'t116\' AND v >= 1 THEN
+      RETURN cell(\'t16\', l) * cell(\'t106\', l);
+
+
+
+    -- t117=BA47*$R$6*BA146
+    WHEN c = \'t117\' AND v >= 1 THEN
+      RETURN cell(\'t17\', l) * cell(\'t107\', l);
+
+
+
+    -- t123=AC158*SI($F26;$G26;1)
+    WHEN c = \'t123\' AND v >= 1 THEN
+      IF vh.taux_fc = 1 THEN
+        RETURN cell(\'t113\', l) * vh.ponderation_service_compl;
+      ELSE
+        RETURN cell(\'t113\', l);
+      END IF;
+
+
+
+    -- t124=AM158*SI($F26;$G26;1)
+    WHEN c = \'t124\' AND v >= 1 THEN
+      IF vh.taux_fc = 1 THEN
+        RETURN cell(\'t114\', l) * vh.ponderation_service_compl;
+      ELSE
+        RETURN cell(\'t114\', l);
+      END IF;
+
+
+
+    -- t131=I158*$C26
+    WHEN c = \'t131\' AND v >= 1 THEN
+      RETURN cell(\'t111\', l) * vh.taux_fi;
+
+
+
+    -- t132=S158*$C26
+    WHEN c = \'t132\' AND v >= 1 THEN
+      RETURN cell(\'t112\', l) * vh.taux_fi;
+
+
+
+    -- t141=I158*$D26
+    WHEN c = \'t141\' AND v >= 1 THEN
+      RETURN cell(\'t111\', l) * vh.taux_fa;
+
+
+
+    -- t142=S158*$D26
+    WHEN c = \'t142\' AND v >= 1 THEN
+      RETURN cell(\'t112\', l) * vh.taux_fa;
+
+
+
+    -- t151=I158*$E26
+    WHEN c = \'t151\' AND v >= 1 THEN
+      RETURN cell(\'t111\', l) * vh.taux_fc;
+
+
+
+    -- t152=S158*$E26
+    WHEN c = \'t152\' AND v >= 1 THEN
+      RETURN cell(\'t112\', l) * vh.taux_fc;
+
+
+
+    -- t153=SI(AC170=AC158;AC158;0)*$E26
+    WHEN c = \'t153\' AND v >= 1 THEN
+      IF cell(\'t123\', l) = cell(\'t113\', l) THEN
+        RETURN cell(\'t113\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t154=SI(AM170=AM158;AM158;0)*$E26
+    WHEN c = \'t154\' AND v >= 1 THEN
+      IF cell(\'t124\', l) = cell(\'t114\', l) THEN
+        RETURN cell(\'t114\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t163=SI(AC170<>AC158;AC170;0)*$E26
+    WHEN c = \'t163\' AND v >= 1 THEN
+      IF cell(\'t123\', l) <> cell(\'t113\', l) THEN
+        RETURN cell(\'t123\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- t164=SI(AM170<>AM158;AM170;0)*$E26
+    WHEN c = \'t164\' AND v >= 1 THEN
+      IF cell(\'t124\', l) <> cell(\'t114\', l) THEN
+        RETURN cell(\'t124\', l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- rs=SOMME(I98:AU98)
+    WHEN c = \'rs\' AND v >= 1 THEN
+      RETURN cell(\'t61\',l) + cell(\'t62\',l);
+
+
+
+    -- ss=SOMME(I110:AU110)
+    WHEN c = \'ss\' AND v >= 1 THEN
+      RETURN cell(\'t71\',l) + cell(\'t72\',l);
+
+
+
+    -- ts=SOMME(I122:AU122)
+    WHEN c = \'ts\' AND v >= 1 THEN
+      RETURN cell(\'t81\',l) + cell(\'t82\',l) + cell(\'t83\',l) + cell(\'t84\',l);
+
+
+
+    -- us=SI($I$13="Oui";SOMME(I182:AU182);0)
+    WHEN c = \'us\' AND v >= 1 THEN
+      RETURN cell(\'t131\',l) + cell(\'t132\',l);
+
+
+
+    -- vs=SI($I$13="Oui";SOMME(I194:AU194);0)
+    WHEN c = \'vs\' AND v >= 1 THEN
+      IF NOT ose_formule.intervenant.depassement_service_du_sans_hc THEN
+        RETURN cell(\'t141\',l) + cell(\'t142\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- ws=SI($I$13="Oui";SOMME(I206:AU206);0)
+    WHEN c = \'ws\' AND v >= 1 THEN
+      IF NOT ose_formule.intervenant.depassement_service_du_sans_hc THEN
+        RETURN cell(\'t151\',l) + cell(\'t152\',l) + cell(\'t153\',l) + cell(\'t154\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- xs=SI($I$13="Oui";SOMME(I218:AU218);0)
+    WHEN c = \'xs\' AND v >= 1 THEN
+      IF NOT ose_formule.intervenant.depassement_service_du_sans_hc THEN
+        RETURN cell(\'t163\',l) + cell(\'t164\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- rr=SOMME(AW86:BA86)
+    WHEN c = \'rr\' AND v >= 1 THEN
+      RETURN cell(\'t55\',l) + cell(\'t56\',l) + cell(\'t57\',l);
+
+
+
+    -- ur=SI($I$13="Oui";SOMME(AW158:BA158);0)
+    WHEN c = \'ur\' AND v >= 1 THEN
+      IF NOT ose_formule.intervenant.depassement_service_du_sans_hc THEN
+        RETURN cell(\'t115\',l) + cell(\'t116\',l) + cell(\'t117\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    ELSE
+      raise_application_error( -20001, \'La colonne c=\' || c || \', l=\' || l || \' n\'\'existe pas!\');
+  END CASE; END;
+
+
+
+  PROCEDURE CALCUL_RESULTAT IS
+  BEGIN
+    feuille.delete;
+
+    -- transmission des résultats aux volumes horaires et volumes horaires référentiel
+    FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+      ose_formule.volumes_horaires.items(l).service_fi               := mainCell(\'Service FI\', \'rs\',l);
+      ose_formule.volumes_horaires.items(l).service_fa               := mainCell(\'Service FA\', \'ss\',l);
+      ose_formule.volumes_horaires.items(l).service_fc               := mainCell(\'Service FC\', \'ts\',l);
+      ose_formule.volumes_horaires.items(l).service_referentiel      := mainCell(\'Service référentiel\', \'rr\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fi          := mainCell(\'Heures compl. FI\', \'us\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fa          := mainCell(\'Heures compl. FA\', \'vs\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fc          := mainCell(\'Heures compl. FC\', \'ws\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fc_majorees := mainCell(\'Heures compl. FC Maj.\', \'xs\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_referentiel := mainCell(\'Heures compl. référentiel\', \'ur\',l);
+    END LOOP;
+  END;
+
+
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN \'
+    SELECT
+      fi.*,
+      CASE WHEN fi.type_intervenant_code = \'\'P\'\' AND si.source_code NOT IN (\'\'ATER\'\',\'\'ATER_MI_TPS\'\',\'\'LECTEUR\'\') THEN \'\'oui\'\' ELSE \'\'non\'\' END param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_intervenant fi
+      JOIN intervenant i ON i.id = fi.intervenant_id
+      JOIN statut_intervenant si ON si.id = i.id
+    \';
+  END;
+
+
+
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN \'
+    SELECT
+      fvh.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_volume_horaire fvh
+    ORDER BY
+      ordre\';
+  END;
+
+END FORMULE_UBO;',
+    ),
+    'FORMULE_ULHN' => 
+    array (
+      'name' => 'FORMULE_ULHN',
+      'definition' => 'CREATE OR REPLACE PACKAGE "FORMULE_ULHN" AS
+
+  PROCEDURE CALCUL_RESULTAT;
+
+  FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT;
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB;
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB;
+
+END FORMULE_ULHN;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "FORMULE_ULHN" AS
+  decalageLigne NUMERIC DEFAULT 21;
+
+
+  /* Stockage des valeurs intermédiaires */
+  TYPE t_cell IS RECORD (
+    valeur FLOAT,
+    enCalcul BOOLEAN DEFAULT FALSE
+  );
+  TYPE t_cells IS TABLE OF t_cell INDEX BY PLS_INTEGER;
+  TYPE t_coll IS RECORD (
+    cells t_cells
+  );
+  TYPE t_colls IS TABLE OF t_coll INDEX BY VARCHAR2(50);
+  feuille t_colls;
+
+  debugLine NUMERIC;
+
+
+  PROCEDURE dbg( val CLOB ) IS
+  BEGIN
+    ose_formule.volumes_horaires.items(debugLine).debug_info :=
+      ose_formule.volumes_horaires.items(debugLine).debug_info || val;
+  END;
+
+
+  PROCEDURE dbgi( val CLOB ) IS
+  BEGIN
+    ose_formule.intervenant.debug_info := ose_formule.intervenant.debug_info || val;
+  END;
+
+  PROCEDURE dbgDump( val CLOB ) IS
+  BEGIN
+    dbg(\'<div class="dbg-dump">\' || val || \'</div>\');
+  END;
+
+  PROCEDURE dbgCell( c VARCHAR2, l NUMERIC, val FLOAT ) IS
+    ligne NUMERIC;
+  BEGIN
+    ligne := l;
+    IF l <> 0 THEN
+      ligne := ligne + decalageLigne;
+    END IF;
+
+    dbgi( \'[cell|\' || c || \'|\' || ligne || \'|\' || val );
+  END;
+
+  PROCEDURE dbgCalc( fncName VARCHAR2, c VARCHAR2, res FLOAT ) IS
+  BEGIN
+    dbgi( \'[calc|\' || fncName || \'|\' || c || \'|\' || res );
+  END;
+
+  FUNCTION cell( c VARCHAR2, l NUMERIC DEFAULT 0 ) RETURN FLOAT IS
+    val FLOAT;
+  BEGIN
+    IF feuille.exists(c) THEN
+      IF feuille(c).cells.exists(l) THEN
+        IF feuille(c).cells(l).enCalcul THEN
+          raise_application_error( -20001, \'Dépendance cyclique : la cellule [\' || c || \';\' || l || \'] est déjà en cours de calcul\');
+        END IF;
+        RETURN feuille(c).cells(l).valeur;
+      END IF;
+    END IF;
+
+    feuille(c).cells(l).enCalcul := true;
+    val := calcCell( c, l );
+    IF ose_formule.debug_actif THEN
+      dbgCell( c, l, val );
+    END IF;
+    feuille(c).cells(l).valeur := val;
+    feuille(c).cells(l).enCalcul := false;
+
+    RETURN val;
+  END;
+
+  FUNCTION mainCell( libelle VARCHAR2, c VARCHAR2, l NUMERIC ) RETURN FLOAT IS
+    val FLOAT;
+  BEGIN
+    debugLine := l;
+    val := cell(c,l);
+
+    RETURN val;
+  END;
+
+  FUNCTION calcFnc( fncName VARCHAR2, c VARCHAR2 ) RETURN FLOAT IS
+    val FLOAT;
+    cellRes FLOAT;
+  BEGIN
+    IF feuille.exists(\'__\' || fncName || \'__\' || c || \'__\') THEN
+      IF feuille(\'__\' || fncName || \'__\' || c || \'__\').cells.exists(1) THEN
+        RETURN feuille(\'__\' || fncName || \'__\' || c || \'__\').cells(1).valeur;
+      END IF;
+    END IF;
+    CASE
+    -- Liste des fonctions supportées
+
+    WHEN fncName = \'total\' THEN
+      val := 0;
+      FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+        val := val + COALESCE(cell(c, l),0);
+      END LOOP;
+
+    WHEN fncName = \'max\' THEN
+      val := NULL;
+      FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+        cellRes := cell(c,l);
+        IF val IS NULL OR val < cellRes THEN
+          val := cellRes;
+        END IF;
+      END LOOP;
+
+    -- fin de la liste des fonctions supportées
+    ELSE
+      raise_application_error( -20001, \'La formule "\' || fncName || \'" n\'\'existe pas!\');
+    END CASE;
+    IF ose_formule.debug_actif THEN
+      dbgCalc(fncName, c, val );
+    END IF;
+    feuille(\'__\' || fncName || \'__\' || c || \'__\').cells(1).valeur := val;
+
+    RETURN val;
+  END;
+
+
+  FUNCTION calcVersion RETURN NUMERIC IS
+  BEGIN
+    RETURN 1;
+  END;
+
+
+
+  FUNCTION calcCell( c VARCHAR2, l NUMERIC ) RETURN FLOAT IS
+    vh ose_formule.t_volume_horaire;
+    i  ose_formule.t_intervenant;
+    v NUMERIC;
+    val FLOAT;
+  BEGIN
+    v := calcVersion;
+
+    i := ose_formule.intervenant;
+    IF l > 0 THEN
+      vh := ose_formule.volumes_horaires.items(l);
+    END IF;
+    CASE
+
+
+    -- j=SI(ESTVIDE(C22);0;RECHERCHEH(SI(ET(C22="TP";TP_vaut_TD="Oui");"TD";C22);types_intervention;2;0))
+    --  = RECHERCHEH(SI(ET(C22="TP";TP_vaut_TD="Oui");"TD";C22);types_intervention;2;0)
+    WHEN c = \'j\' AND v >= 1 THEN
+      RETURN GREATEST(vh.taux_service_du * vh.ponderation_service_du,1);
+
+    -- k=SI(ESTVIDE(C22);0;RECHERCHEH(C22;types_intervention;3;0))
+    --  =RECHERCHEH(C22;types_intervention;3;0)
+    WHEN c = \'k\' AND v >= 1 THEN
+      RETURN vh.taux_service_compl;
+
+    -- l=SI(H22="Oui";I22*J22;0)
+    WHEN c = \'l\' AND v >= 1 THEN
+      IF vh.service_statutaire THEN
+        RETURN vh.heures * cell( \'j\', l );
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+    -- l82=SOMME(L22:L81)
+    WHEN c = \'l82\' AND v >= 1 THEN
+      RETURN calcFnc(\'total\',\'l\');
+
+    -- n=SI($L$82>0;L22/$L$82;0)
+    WHEN c = \'n\' AND v >= 1 THEN
+      IF cell(\'l82\') > 0 THEN
+        RETURN cell(\'l\',l) / cell(\'l82\');
+      ELSE
+        RETURN 0;
+      END IF;
+
+    -- o=MIN(service_du;$L$82)*N22
+    WHEN c = \'o\' AND v >= 1 THEN
+      RETURN LEAST(ose_formule.intervenant.service_du, cell(\'l82\')) * cell(\'n\',l);
+
+    -- p=SI(L22<>0;O22/L22;0)
+    WHEN c = \'p\' AND v >= 1 THEN
+      IF cell(\'l\',l) <> 0 THEN
+        RETURN cell(\'o\',l) / cell(\'l\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+    -- q=SI($L$82>service_du;1-P22;0)
+    WHEN c = \'q\' AND v >= 1 THEN
+      IF cell(\'l82\') > ose_formule.intervenant.service_du THEN
+        RETURN 1 - cell(\'p\',l);
+      ELSE
+        RETURN 0;
+      END IF;
+
+    -- r=I22*Q22*K22
+    WHEN c = \'r\' AND v >= 1 THEN
+      RETURN vh.heures * cell(\'q\',l) * cell(\'k\',l);
+
+
+
+    -- t=SI(service_du=0;0;SI(T21+L22>service_du;service_du;T21+L22))
+    WHEN c = \'t\' AND v >= 1 THEN
+      IF l = 0 THEN
+        RETURN 0;
+      END IF;
+      IF i.service_du = 0 THEN
+        RETURN 0;
+      ELSE
+        IF (cell(\'t\',l-1) + cell(\'l\',l)) > ose_formule.intervenant.service_du THEN
+          RETURN ose_formule.intervenant.service_du;
+        ELSE
+          RETURN cell(\'t\',l-1) + cell(\'l\',l);
+        END IF;
+      END IF;
+
+
+
+    -- u=SI(J22>0;                                                                                  SI(T21+L22<service_du;0;((T21+L22)-service_du)/J22);0)
+    -- u=SI(J22>0;SI(service_du=0;SI(L22<0;L22;SI(T22+L22<service_du;0;((T22+L22)-service_du)/J22));SI(T21+L22<service_du;0;((T21+L22)-service_du)/J22));0)
+    WHEN c = \'u\' AND v >= 1 THEN
+      IF cell(\'j\',l) > 0 THEN
+        -- SI(service_du=0;SI(L22<0;L22;SI(T22+L22<service_du;0;((T22+L22)-service_du)/J22));SI(T21+L22<service_du;0;((T21+L22)-service_du)/J22))
+        IF i.service_du = 0 THEN
+          -- SI(L22<0;L22;SI(T22+L22<service_du;0;((T22+L22)-service_du)/J22))
+          IF cell(\'l\',l) < 0 THEN
+            RETURN cell(\'l\',l);
+          ELSE
+            -- SI(T22+L22<service_du;0;((T22+L22)-service_du)/J22)
+            IF cell(\'t\',l) + cell(\'l\',l) < i.service_du THEN
+              RETURN 0;
+            ELSE
+              RETURN ((cell(\'t\',l) + cell(\'l\',l)) - i.service_du) / cell(\'j\',l);
+            END IF;
+          END IF;
+        ELSE
+          -- SI(T21+L22<service_du;0;((T21+L22)-service_du)/J22)
+          IF (cell(\'t\',l-1) + cell(\'l\',l)) < ose_formule.intervenant.service_du THEN
+            RETURN 0;
+          ELSE
+            RETURN (cell(\'t\',l-1) + cell(\'l\',l) - ose_formule.intervenant.service_du) / cell(\'j\',l);
+          END IF;
+        END IF;
+      ELSE
+        RETURN 0;
+      END IF;
+
+
+
+    -- v=SI(OU(service_realise<service_du;HC_autorisees<>"Oui");0;(U22+SI(H22<>"Oui";I22;0))*K22)
+    WHEN c = \'v\' AND v >= 1 THEN
+      IF cell(\'service_realise\') < ose_formule.intervenant.service_du OR ose_formule.intervenant.depassement_service_du_sans_hc THEN
+        RETURN 0;
+      ELSE
+        --(U22+SI(H22<>"Oui";I22;0))*K22
+        RETURN (cell(\'u\',l) + CASE WHEN NOT vh.service_statutaire THEN cell(\'i\',l) ELSE 0 END ) * cell(\'k\',l);
+      END IF;
+
+    -- x=SI(OU(ESTVIDE($C22);$C22="Référentiel");0;SI(contexte_calcul="Réalisé";($L22-$U22)*D22;$O22*D22))
+    WHEN c = \'x\' AND v >= 1 THEN
+      IF vh.service_referentiel_id IS NOT NULL THEN
+        RETURN 0;
+      ELSE
+        IF ose_formule.intervenant.type_volume_horaire_id = 2 THEN
+          RETURN (cell(\'l\',l) - cell(\'u\',l)) * vh.taux_fi;
+        ELSE
+          RETURN cell(\'o\',l) * vh.taux_fi;
+        END IF;
+      END IF;
+
+    -- y=SI(OU(ESTVIDE($C22);$C22="Référentiel");0;SI(contexte_calcul="Réalisé";($L22-$U22)*E22;$O22*E22))
+    WHEN c = \'y\' AND v >= 1 THEN
+      IF vh.service_referentiel_id IS NOT NULL THEN
+        RETURN 0;
+      ELSE
+        IF ose_formule.intervenant.type_volume_horaire_id = 2 THEN
+          RETURN (cell(\'l\',l) - cell(\'u\',l)) * vh.taux_fa;
+        ELSE
+          RETURN cell(\'o\',l) * vh.taux_fa;
+        END IF;
+      END IF;
+
+    -- z=SI(OU(ESTVIDE($C22);$C22="Référentiel");0;SI(contexte_calcul="Réalisé";($L22-$U22)*F22;$O22*F22))
+    WHEN c = \'z\' AND v >= 1 THEN
+      IF vh.service_referentiel_id IS NOT NULL THEN
+        RETURN 0;
+      ELSE
+        IF ose_formule.intervenant.type_volume_horaire_id = 2 THEN
+          RETURN (cell(\'l\',l) - cell(\'u\',l)) * vh.taux_fc;
+        ELSE
+          RETURN cell(\'o\',l) * vh.taux_fc;
+        END IF;
+      END IF;
+
+    -- aa=SI($C22="Référentiel";SI(contexte_calcul="Réalisé";$L22-$U22;$R22);0)
+    WHEN c = \'aa\' AND v >= 1 THEN
+      IF vh.service_referentiel_id IS NOT NULL THEN
+        IF ose_formule.intervenant.type_volume_horaire_id = 2 THEN
+          RETURN cell(\'l\',l) - cell(\'u\',l);
+        ELSE
+          RETURN cell(\'r\',l);
+        END IF;
+      ELSE
+        RETURN 0;
+      END IF;
+
+    -- ab=SI(OU(ESTVIDE($C22);$C22="Référentiel");0;SI(contexte_calcul="Réalisé";$V22*D22;$R22*D22))
+    WHEN c = \'ab\' AND v >= 1 THEN
+      IF vh.service_referentiel_id IS NOT NULL THEN
+        RETURN 0;
+      ELSE
+        IF ose_formule.intervenant.type_volume_horaire_id = 2 THEN
+          RETURN cell(\'v\',l) * vh.taux_fi;
+        ELSE
+          RETURN cell(\'r\',l) * vh.taux_fi;
+        END IF;
+      END IF;
+
+    -- ac=SI(OU(ESTVIDE($C22);$C22="Référentiel");0;SI(contexte_calcul="Réalisé";$V22*E22;$R22*E22))
+    WHEN c = \'ac\' AND v >= 1 THEN
+      IF vh.service_referentiel_id IS NOT NULL THEN
+        RETURN 0;
+      ELSE
+        IF ose_formule.intervenant.type_volume_horaire_id = 2 THEN
+          RETURN cell(\'v\',l) * vh.taux_fa;
+        ELSE
+          RETURN cell(\'r\',l) * vh.taux_fa;
+        END IF;
+      END IF;
+
+    -- ad=SI(OU(ESTVIDE($C22);$C22="Référentiel");0;SI(contexte_calcul="Réalisé";$V22*F22;$R22*F22))
+    WHEN c = \'ad\' AND v >= 1 THEN
+      IF vh.service_referentiel_id IS NOT NULL THEN
+        RETURN 0;
+      ELSE
+        IF ose_formule.intervenant.type_volume_horaire_id = 2 THEN
+          RETURN cell(\'v\',l) * vh.taux_fc;
+        ELSE
+          RETURN cell(\'r\',l) * vh.taux_fc;
+        END IF;
+      END IF;
+
+    -- ae=0
+    WHEN c = \'ae\' AND v >= 1 THEN
+      RETURN 0;
+
+    -- af=SI($C22="Référentiel";SI(contexte_calcul="Réalisé";$V22;$R22);0)
+    WHEN c = \'af\' AND v >= 1 THEN
+      IF vh.service_referentiel_id IS NOT NULL THEN
+        IF ose_formule.intervenant.type_volume_horaire_id = 2 THEN
+          RETURN cell(\'v\',l);
+        ELSE
+          RETURN cell(\'r\',l);
+        END IF;
+      ELSE
+        RETURN 0;
+      END IF;
+
+    -- d17=SI(contexte_calcul="Réalisé";MAX($T$22:$T$81);SOMME($O$22:$O$81))
+    WHEN c=\'service_realise\' AND v >= 1 THEN
+      IF ose_formule.intervenant.type_volume_horaire_id = 2 THEN
+          RETURN calcFnc(\'max\',\'t\');
+        ELSE
+          RETURN calcFnc(\'total\',\'o\');
+        END IF;
+
+    ELSE
+      raise_application_error( -20001, \'La colonne c=\' || c || \', l=\' || l || \' n\'\'existe pas!\');
+  END CASE; END;
+
+
+
+  PROCEDURE CALCUL_RESULTAT IS
+  BEGIN
+    feuille.delete;
+
+    -- transmission des résultats aux volumes horaires et volumes horaires référentiel
+    FOR l IN 1 .. ose_formule.volumes_horaires.length LOOP
+      ose_formule.volumes_horaires.items(l).service_fi               := mainCell(\'Service FI\', \'x\',l);
+      ose_formule.volumes_horaires.items(l).service_fa               := mainCell(\'Service FA\', \'y\',l);
+      ose_formule.volumes_horaires.items(l).service_fc               := mainCell(\'Service FC\', \'z\',l);
+      ose_formule.volumes_horaires.items(l).service_referentiel      := mainCell(\'Service référentiel\', \'aa\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fi          := mainCell(\'Heures compl. FI\', \'ab\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fa          := mainCell(\'Heures compl. FA\', \'ac\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fc          := mainCell(\'Heures compl. FC\', \'ad\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_fc_majorees := mainCell(\'Heures compl. FC Maj.\', \'ae\',l);
+      ose_formule.volumes_horaires.items(l).heures_compl_referentiel := mainCell(\'Heures compl. référentiel\', \'af\',l);
+    END LOOP;
+  END;
+
+
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN \'
+    SELECT
+      fi.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_intervenant fi
+    \';
+  END;
+
+
+
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN \'
+    SELECT
+      fvh.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_volume_horaire fvh
+    ORDER BY
+      ordre\';
+  END;
+
+END FORMULE_ULHN;',
+    ),
+    'FORMULE_UNICAEN' => 
+    array (
+      'name' => 'FORMULE_UNICAEN',
+      'definition' => 'CREATE OR REPLACE PACKAGE "FORMULE_UNICAEN" AS
+  debug_enabled                BOOLEAN DEFAULT FALSE;
+  debug_etat_volume_horaire_id NUMERIC DEFAULT 1;
+  debug_volume_horaire_id      NUMERIC;
+  debug_volume_horaire_ref_id  NUMERIC;
+
+  PROCEDURE CALCUL_RESULTAT_V2;
+  PROCEDURE CALCUL_RESULTAT;
+
+  PROCEDURE PURGE_EM_NON_FC;
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB;
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB;
+
+END FORMULE_UNICAEN;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "FORMULE_UNICAEN" AS
+
+  /* Stockage des valeurs intermédiaires */
+  TYPE t_valeurs IS TABLE OF FLOAT INDEX BY PLS_INTEGER;
+  TYPE t_tableau IS RECORD (
+    valeurs t_valeurs,
+    total   FLOAT DEFAULT 0
+    );
+  TYPE t_tableaux       IS TABLE OF t_tableau INDEX BY PLS_INTEGER;
+  TYPE t_tableau_config IS RECORD (
+    tableau NUMERIC,
+    version NUMERIC,
+    referentiel BOOLEAN DEFAULT FALSE,
+    setTotal BOOLEAN DEFAULT FALSE
+    );
+  TYPE t_tableaux_configs IS VARRAY(100) OF t_tableau_config;
+
+  t                     t_tableaux;
+  vh_index              NUMERIC;
+
+
+
+  -- Crée une définition de tableau
+  FUNCTION TC( tableau NUMERIC, version NUMERIC, options VARCHAR2 DEFAULT NULL) RETURN t_tableau_config IS
+    tcRes t_tableau_config;
+  BEGIN
+    tcRes.tableau := tableau;
+    tcRes.version := version;
+    CASE
+      WHEN options like \'%t%\' THEN tcRes.setTotal := TRUE;
+      WHEN options like \'%r%\' THEN tcRes.referentiel := TRUE;
+      ELSE RETURN tcRes;
+      END CASE;
+
+    RETURN tcRes;
+  END;
+
+  -- Setter d\'une valeur intermédiaire au niveau case
+  PROCEDURE SV( tableau NUMERIC, valeur FLOAT ) IS
+  BEGIN
+    t(tableau).valeurs(vh_index) := valeur;
+    t(tableau).total             := t(tableau).total + valeur;
+  END;
+
+  -- Setter d\'une valeur intermédiaire au niveau tableau
+  PROCEDURE ST( tableau NUMERIC, valeur FLOAT ) IS
+  BEGIN
+    t(tableau).total      := valeur;
+  END;
+
+  -- Getter d\'une valeur intermédiaire, au niveau case
+  FUNCTION GV( tableau NUMERIC ) RETURN FLOAT IS
+  BEGIN
+    IF NOT t.exists(tableau) THEN RETURN 0; END IF;
+    IF NOT t(tableau).valeurs.exists( vh_index ) THEN RETURN 0; END IF;
+    RETURN t(tableau).valeurs( vh_index );
+  END;
+
+  -- Getter d\'une valeur intermédiaire, au niveau tableau
+  FUNCTION GT( tableau NUMERIC ) RETURN FLOAT IS
+  BEGIN
+    IF NOT t.exists(tableau) THEN RETURN 0; END IF;
+    RETURN t(tableau).total;
+  END;
+
+
+
+
+  PROCEDURE DEBUG_VH IS
+    tableau NUMERIC;
+    vh ose_formule.t_volume_horaire;
+  BEGIN
+    IF NOT debug_enabled THEN RETURN; END IF;
+    IF ose_formule.intervenant.etat_volume_horaire_id <> debug_etat_volume_horaire_id THEN RETURN; END IF;
+
+    FOR i IN 1 .. ose_formule.volumes_horaires.length LOOP
+      vh_index := i;
+      vh := ose_formule.volumes_horaires.items(i);
+      IF vh.volume_horaire_id = debug_volume_horaire_id OR vh.volume_horaire_ref_id = debug_volume_horaire_ref_id THEN
+        ose_formule.DEBUG_INTERVENANT;
+        ose_test.echo(\'\');
+        ose_test.echo(\'-- DEBUG DE VOLUME HORAIRE --\');
+        ose_test.echo(\'volume_horaire_id         = \' || vh.volume_horaire_id);
+        ose_test.echo(\'volume_horaire_ref_id     = \' || vh.volume_horaire_ref_id);
+        ose_test.echo(\'service_id                = \' || vh.service_id);
+        ose_test.echo(\'service_referentiel_id    = \' || vh.service_referentiel_id);
+        ose_test.echo(\'taux_fi                   = \' || vh.taux_fi);
+        ose_test.echo(\'taux_fa                   = \' || vh.taux_fa);
+        ose_test.echo(\'taux_fc                   = \' || vh.taux_fc);
+        ose_test.echo(\'ponderation_service_du    = \' || vh.ponderation_service_du);
+        ose_test.echo(\'ponderation_service_compl = \' || vh.ponderation_service_compl);
+        ose_test.echo(\'structure_id              = \' || vh.structure_id);
+        ose_test.echo(\'structure_is_affectation  = \' || CASE WHEN vh.structure_is_affectation THEN \'OUI\' ELSE \'NON\' END);
+        ose_test.echo(\'structure_is_univ         = \' || CASE WHEN vh.structure_is_univ THEN \'OUI\' ELSE \'NON\' END);
+        ose_test.echo(\'service_statutaire        = \' || CASE WHEN vh.service_statutaire THEN \'OUI\' ELSE \'NON\' END);
+        ose_test.echo(\'heures                    = \' || vh.heures);
+        ose_test.echo(\'taux_service_du           = \' || vh.taux_service_du);
+        ose_test.echo(\'taux_service_compl        = \' || vh.taux_service_compl);
+
+        tableau := t.FIRST;
+        LOOP EXIT WHEN tableau IS NULL;
+        IF gv(tableau) <> 0 OR gt(tableau) <> 0 THEN
+          ose_test.echo(\'     t(\' || LPAD(tableau,3,\' \') || \') v=\' || RPAD(round(gv(tableau),3),10,\' \') || \'t=\' || round(gt(tableau),3));
+        END IF;
+        tableau := t.NEXT(tableau);
+        END LOOP;
+
+        ose_test.echo(\'service_fi                = \' || vh.service_fi);
+        ose_test.echo(\'service_fa                = \' || vh.service_fa);
+        ose_test.echo(\'service_fc                = \' || vh.service_fc);
+        ose_test.echo(\'service_referentiel       = \' || vh.service_referentiel);
+        ose_test.echo(\'heures_compl_fi           = \' || vh.heures_compl_fi);
+        ose_test.echo(\'heures_compl_fa           = \' || vh.heures_compl_fa);
+        ose_test.echo(\'heures_compl_fc           = \' || vh.heures_compl_fc);
+        ose_test.echo(\'heures_compl_fc_majorees  = \' || vh.heures_compl_fc_majorees);
+        ose_test.echo(\'heures_compl_referentiel  = \' || vh.heures_compl_referentiel);
+        ose_test.echo(\'-- FIN DE DEBUG DE VOLUME HORAIRE --\');
+        ose_test.echo(\'\');
+      END IF;
+    END LOOP;
+  END;
+
+
+
+  -- Formule de calcul définie par tableaux
+  FUNCTION EXECFORMULE( tableau NUMERIC, version NUMERIC ) RETURN FLOAT IS
+    vh ose_formule.t_volume_horaire;
+    i  ose_formule.t_intervenant;
+  BEGIN
+    vh := ose_formule.volumes_horaires.items(vh_index);
+    i := ose_formule.intervenant;
+    CASE
+
+
+      WHEN tableau = 11 AND version = 2 THEN
+        IF vh.structure_is_affectation AND vh.taux_fc < 1 THEN
+          RETURN vh.heures;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 11 AND version = 3 THEN
+        IF vh.structure_is_affectation THEN
+          RETURN vh.heures * (vh.taux_fi + vh.taux_fa);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 12 AND version = 2 THEN
+        IF NOT vh.structure_is_affectation AND vh.taux_fc < 1 THEN
+          RETURN vh.heures;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 12 AND version = 3 THEN
+        IF NOT vh.structure_is_affectation THEN
+          RETURN vh.heures * (vh.taux_fi + vh.taux_fa);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 13 AND version = 2 THEN
+        IF vh.structure_is_affectation AND vh.taux_fc = 1 THEN
+          RETURN vh.heures;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 13 AND version = 3 THEN
+        IF vh.structure_is_affectation THEN
+          RETURN vh.heures * vh.taux_fc;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 14 AND version = 2 THEN
+        IF NOT vh.structure_is_affectation AND vh.taux_fc = 1 THEN
+          RETURN vh.heures;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 14 AND version = 3 THEN
+        IF NOT vh.structure_is_affectation THEN
+          RETURN vh.heures * vh.taux_fc;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 15 AND version = 2 THEN
+        IF vh.structure_is_affectation THEN
+          RETURN vh.heures;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 16 AND version = 2 THEN
+        IF NOT vh.structure_is_affectation AND NOT vh.structure_is_univ THEN
+          RETURN vh.heures;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 17 AND version = 2 THEN
+        IF vh.structure_is_univ THEN
+          RETURN vh.heures;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 21 AND version = 2 THEN
+        RETURN gv(11) * vh.taux_service_du;
+
+
+
+      WHEN tableau = 22 AND version = 2 THEN
+        RETURN gv(12) * vh.taux_service_du;
+
+
+
+      WHEN tableau = 23 AND version = 2 THEN
+        RETURN gv(13) * vh.taux_service_du;
+
+
+
+      WHEN tableau = 24 AND version = 2 THEN
+        RETURN gv(14) * vh.taux_service_du;
+
+
+
+      WHEN tableau = 25 AND version = 2 THEN
+        RETURN gv(15);
+
+
+
+      WHEN tableau = 26 AND version = 2 THEN
+        RETURN gv(16);
+
+
+
+      WHEN tableau = 27 AND version = 2 THEN
+        RETURN gv(17);
+
+
+
+      WHEN tableau = 31 AND version = 2 THEN
+        RETURN GREATEST( ose_formule.intervenant.service_du - gt(21), 0 );
+
+
+
+      WHEN tableau = 32 AND version = 2 THEN
+        RETURN GREATEST( gt(31) - gt(22), 0 );
+
+
+
+      WHEN tableau = 33 AND version = 2 THEN
+        RETURN GREATEST( gt(32) - gt(23), 0 );
+
+
+
+      WHEN tableau = 34 AND version = 2 THEN
+        RETURN GREATEST( gt(33) - gt(24), 0 );
+
+
+
+      WHEN tableau = 35 AND version = 2 THEN
+        RETURN GREATEST( gt(34) - gt(25), 0 );
+
+
+
+      WHEN tableau = 36 AND version = 2 THEN
+        RETURN GREATEST( gt(35) - gt(26), 0 );
+
+
+
+      WHEN tableau = 37 AND version = 2 THEN
+        RETURN GREATEST( gt(36) - gt(27), 0 );
+
+
+
+      WHEN tableau = 41 AND version = 2 THEN
+        IF gt(21) <> 0 THEN
+          RETURN gv(21) / gt(21);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 42 AND version = 2 THEN
+        IF gt(22) <> 0 THEN
+          RETURN gv(22) / gt(22);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 43 AND version = 2 THEN
+        IF gt(23) <> 0 THEN
+          RETURN gv(23) / gt(23);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 44 AND version = 2 THEN
+        IF gt(24) <> 0 THEN
+          RETURN gv(24) / gt(24);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 45 AND version = 2 THEN
+        IF gt(25) <> 0 THEN
+          RETURN gv(25) / gt(25);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 46 AND version = 2 THEN
+        IF gt(26) <> 0 THEN
+          RETURN gv(26) / gt(26);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 47 AND version = 2 THEN
+        IF gt(27) <> 0 THEN
+          RETURN gv(27) / gt(27);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 51 AND version = 2 THEN
+        RETURN LEAST( ose_formule.intervenant.service_du, gt(21) ) * gv(41);
+
+
+
+      WHEN tableau = 52 AND version = 2 THEN
+        RETURN LEAST( gt(31), gt(22) ) * gv(42);
+
+
+
+      WHEN tableau = 53 AND version = 2 THEN
+        RETURN LEAST( gt(32), gt(23) ) * gv(43);
+
+
+
+      WHEN tableau = 54 AND version = 2 THEN
+        RETURN LEAST( gt(33), gt(24) ) * gv(44);
+
+
+
+      WHEN tableau = 55 AND version = 2 THEN
+        RETURN LEAST( gt(34), gt(25) ) * gv(45);
+
+
+
+      WHEN tableau = 56 AND version = 2 THEN
+        RETURN LEAST( gt(35), gt(26) ) * gv(46);
+
+
+
+      WHEN tableau = 57 AND version = 2 THEN
+        RETURN LEAST( gt(36), gt(27) ) * gv(47);
+
+
+
+      WHEN tableau = 61 AND version = 2 THEN
+        RETURN gv(51) * vh.taux_fi;
+
+
+
+      WHEN tableau = 61 AND version = 3 THEN
+        IF vh.taux_fi + vh.taux_fa > 0 THEN
+          RETURN gv(51) / (vh.taux_fi + vh.taux_fa) * vh.taux_fi;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 62 AND version = 2 THEN
+        RETURN gv(52) * vh.taux_fi;
+
+
+
+      WHEN tableau = 62 AND version = 3 THEN
+        IF vh.taux_fi + vh.taux_fa > 0 THEN
+          RETURN gv(52) / (vh.taux_fi + vh.taux_fa) * vh.taux_fi;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 71 AND version = 2 THEN
+        RETURN gv(51) * vh.taux_fa;
+
+
+
+      WHEN tableau = 71 AND version = 3 THEN
+        IF vh.taux_fi + vh.taux_fa > 0 THEN
+          RETURN gv(51) / (vh.taux_fi + vh.taux_fa) * vh.taux_fa;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 72 AND version = 2 THEN
+        RETURN gv(52) * vh.taux_fa;
+
+
+
+      WHEN tableau = 72 AND version = 3 THEN
+        IF vh.taux_fi + vh.taux_fa > 0 THEN
+          RETURN gv(52) / (vh.taux_fi + vh.taux_fa) * vh.taux_fa;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 81 AND version = 2 THEN
+        RETURN gv(51) * vh.taux_fc;
+
+
+
+      WHEN tableau = 82 AND version = 2 THEN
+        RETURN gv(52) * vh.taux_fc;
+
+
+
+      WHEN tableau = 83 AND version = 2 THEN
+        RETURN gv(53) * vh.taux_fc;
+
+
+
+      WHEN tableau = 83 AND version = 3 THEN
+        RETURN gv(53);
+
+
+
+      WHEN tableau = 84 AND version = 2 THEN
+        RETURN gv(54) * vh.taux_fc;
+
+
+
+      WHEN tableau = 84 AND version = 3 THEN
+        RETURN gv(54);
+
+
+
+      WHEN tableau = 91 AND version = 2 THEN
+        IF gv(21) <> 0 THEN
+          RETURN gv(51) / gv(21);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 92 AND version = 2 THEN
+        IF gv(22) <> 0 THEN
+          RETURN gv(52) / gv(22);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 93 AND version = 2 THEN
+        IF gv(23) <> 0 THEN
+          RETURN gv(53) / gv(23);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 94 AND version = 2 THEN
+        IF gv(24) <> 0 THEN
+          RETURN gv(54) / gv(24);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 95 AND version = 2 THEN
+        IF gv(25) <> 0 THEN
+          RETURN gv(55) / gv(25);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 96 AND version = 2 THEN
+        IF gv(26) <> 0 THEN
+          RETURN gv(56) / gv(26);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 97 AND version = 2 THEN
+        IF gv(27) <> 0 THEN
+          RETURN gv(57) / gv(27);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 101 AND version = 2 THEN
+        IF gt(37) <> 0 THEN
+          RETURN 0;
+        ELSE
+          RETURN 1 - gv(91);
+        END IF;
+
+
+
+      WHEN tableau = 102 AND version = 2 THEN
+        IF gt(37) <> 0 THEN
+          RETURN 0;
+        ELSE
+          RETURN 1 - gv(92);
+        END IF;
+
+
+
+      WHEN tableau = 103 AND version = 2 THEN
+        IF gt(37) <> 0 THEN
+          RETURN 0;
+        ELSE
+          RETURN 1 - gv(93);
+        END IF;
+
+
+
+      WHEN tableau = 104 AND version = 2 THEN
+        IF gt(37) <> 0 THEN
+          RETURN 0;
+        ELSE
+          RETURN 1 - gv(94);
+        END IF;
+
+
+
+      WHEN tableau = 105 AND version = 2 THEN
+        IF gt(37) <> 0 THEN
+          RETURN 0;
+        ELSE
+          RETURN 1 - gv(95);
+        END IF;
+
+
+
+      WHEN tableau = 106 AND version = 2 THEN
+        IF gt(37) <> 0 THEN
+          RETURN 0;
+        ELSE
+          RETURN 1 - gv(96);
+        END IF;
+
+
+
+      WHEN tableau = 107 AND version = 2 THEN
+        IF gt(37) <> 0 THEN
+          RETURN 0;
+        ELSE
+          RETURN 1 - gv(97);
+        END IF;
+
+
+
+      WHEN tableau = 111 AND version = 2 THEN
+        RETURN gv(11) * vh.taux_service_compl * gv(101);
+
+
+
+      WHEN tableau = 112 AND version = 2 THEN
+        RETURN gv(12) * vh.taux_service_compl * gv(102);
+
+
+
+      WHEN tableau = 113 AND version = 2 THEN
+        RETURN gv(13) * vh.taux_service_compl * gv(103);
+
+
+
+      WHEN tableau = 114 AND version = 2 THEN
+        RETURN gv(14) * vh.taux_service_compl * gv(104);
+
+
+
+      WHEN tableau = 115 AND version = 2 THEN
+        RETURN gv(15) * gv(105);
+
+
+
+      WHEN tableau = 116 AND version = 2 THEN
+        RETURN gv(16) * gv(106);
+
+
+
+      WHEN tableau = 117 AND version = 2 THEN
+        RETURN gv(17) * gv(107);
+
+
+
+      WHEN tableau = 123 AND version = 2 THEN
+        IF vh.taux_fc = 1 THEN
+          RETURN gv(113) * vh.ponderation_service_compl;
+        ELSE
+          RETURN gv(113);
+        END IF;
+
+
+
+      WHEN tableau = 123 AND version = 3 THEN
+        IF vh.taux_fc > 0 THEN
+          RETURN gv(113) * vh.ponderation_service_compl;
+        ELSE
+          RETURN gv(113);
+        END IF;
+
+
+
+      WHEN tableau = 124 AND version = 2 THEN
+        IF vh.taux_fc = 1 THEN
+          RETURN gv(114) * vh.ponderation_service_compl;
+        ELSE
+          RETURN gv(114);
+        END IF;
+
+
+
+      WHEN tableau = 124 AND version = 3 THEN
+        IF vh.taux_fc > 0 THEN
+          RETURN gv(114) * vh.ponderation_service_compl;
+        ELSE
+          RETURN gv(114);
+        END IF;
+
+
+
+      WHEN tableau = 131 AND version = 2 THEN
+        RETURN gv(111) * vh.taux_fi;
+
+
+
+      WHEN tableau = 131 AND version = 3 THEN
+        IF vh.taux_fi + vh.taux_fa > 0 THEN
+          RETURN gv(111) / (vh.taux_fi + vh.taux_fa) * vh.taux_fi;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 132 AND version = 2 THEN
+        RETURN gv(112) * vh.taux_fi;
+
+
+
+      WHEN tableau = 132 AND version = 3 THEN
+        IF vh.taux_fi + vh.taux_fa > 0 THEN
+          RETURN gv(112) / (vh.taux_fi + vh.taux_fa) * vh.taux_fi;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 141 AND version = 2 THEN
+        RETURN gv(111) * vh.taux_fa;
+
+
+
+      WHEN tableau = 141 AND version = 3 THEN
+        IF vh.taux_fi + vh.taux_fa > 0 THEN
+          RETURN gv(111) / (vh.taux_fi + vh.taux_fa) * vh.taux_fa;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 142 AND version = 2 THEN
+        RETURN gv(112) * vh.taux_fa;
+
+
+
+      WHEN tableau = 142 AND version = 3 THEN
+        IF vh.taux_fi + vh.taux_fa > 0 THEN
+          RETURN gv(112) / (vh.taux_fi + vh.taux_fa) * vh.taux_fa;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 151 AND version = 2 THEN
+        RETURN gv(111) * vh.taux_fc;
+
+
+
+      WHEN tableau = 152 AND version = 2 THEN
+        RETURN gv(112) * vh.taux_fc;
+
+
+
+      WHEN tableau = 153 AND version = 2 THEN
+        IF gv(123) = gv(113) THEN
+          RETURN gv(113) * vh.taux_fc;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 153 AND version = 3 THEN
+        IF gv(123) = gv(113) THEN
+          RETURN gv(113);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 154 AND version = 2 THEN
+        IF gv(124) = gv(114) THEN
+          RETURN gv(114) * vh.taux_fc;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 154 AND version = 3 THEN
+        IF gv(124) = gv(114) THEN
+          RETURN gv(114);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 163 AND version = 2 THEN
+        IF gv(123) <> gv(113) THEN
+          RETURN gv(123) * vh.taux_fc;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 163 AND version = 3 THEN
+        IF gv(123) <> gv(113) THEN
+          RETURN gv(123);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 164 AND version = 2 THEN
+        IF gv(124) <> gv(114) THEN
+          RETURN gv(124) * vh.taux_fc;
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      WHEN tableau = 164 AND version = 3 THEN
+        IF gv(124) <> gv(114) THEN
+          RETURN gv(124);
+        ELSE
+          RETURN 0;
+        END IF;
+
+
+
+      ELSE
+        raise_application_error( -20001, \'Le tableau \' || tableau || \' version \' || version || \' n\'\'existe pas!\');
+      END CASE; END;
+
+
+
+
+
+
+
+  PROCEDURE CALCUL_RESULTAT_V2 IS
+    tableaux       t_tableaux_configs;
+    valeur         FLOAT;
+  BEGIN
+
+    -- Définition des tableaux à utiliser
+    tableaux := t_tableaux_configs(
+        tc( 11,2    ), tc( 12,2    ), tc( 13,2    ), tc( 14,2    ), tc( 15,2,\'r\' ), tc( 16,2,\'r\' ), tc( 17,2,\'r\' ),
+        tc( 21,2    ), tc( 22,2    ), tc( 23,2    ), tc( 24,2    ), tc( 25,2,\'r\' ), tc( 26,2,\'r\' ), tc( 27,2,\'r\' ),
+        tc( 31,2,\'t\'), tc( 32,2,\'t\'), tc( 33,2,\'t\'), tc( 34,2,\'t\'), tc( 35,2,\'tr\'), tc( 36,2,\'tr\'), tc( 37,2,\'tr\'),
+        tc( 41,2    ), tc( 42,2    ), tc( 43,2    ), tc( 44,2    ), tc( 45,2,\'r\' ), tc( 46,2,\'r\' ), tc( 47,2,\'r\' ),
+        tc( 51,2    ), tc( 52,2    ), tc( 53,2    ), tc( 54,2    ), tc( 55,2,\'r\' ), tc( 56,2,\'r\' ), tc( 57,2,\'r\' ),
+        tc( 61,2    ), tc( 62,2    ),
+        tc( 71,2    ), tc( 72,2    ),
+        tc( 81,2    ), tc( 82,2    ), tc( 83,2    ), tc( 84,2    ),
+        tc( 91,2    ), tc( 92,2    ), tc( 93,2    ), tc( 94,2    ), tc( 95,2,\'r\' ), tc( 96,2,\'r\' ), tc( 97,2,\'r\' ),
+        tc(101,2    ), tc(102,2    ), tc(103,2    ), tc(104,2    ), tc(105,2,\'r\' ), tc(106,2,\'r\' ), tc(107,2,\'r\' ),
+        tc(111,2    ), tc(112,2    ), tc(113,2    ), tc(114,2    ), tc(115,2,\'r\' ), tc(116,2,\'r\' ), tc(117,2,\'r\' ),
+        tc(123,2    ), tc(124,2    ),
+        tc(131,2    ), tc(132,2    ),
+        tc(141,2    ), tc(142,2    ),
+        tc(151,2    ), tc(152,2    ), tc(153,2    ), tc(154,2    ),
+        tc(163,2    ), tc(164,2    )
+      );
+
+    -- calcul par tableau pour chaque volume horaire
+    t.delete;
+    FOR it IN tableaux.FIRST .. tableaux.LAST LOOP
+      FOR ivh IN 1 .. ose_formule.volumes_horaires.length LOOP
+        vh_index := ivh;
+        IF
+                ose_formule.volumes_horaires.items(ivh).service_id IS NOT NULL AND NOT tableaux(it).referentiel
+            OR ose_formule.volumes_horaires.items(ivh).service_referentiel_id IS NOT NULL AND tableaux(it).referentiel
+            OR tableaux(it).setTotal -- car on en a besoin tout le temps
+        THEN
+          valeur := EXECFORMULE(tableaux(it).tableau, tableaux(it).version);
+          IF tableaux(it).setTotal THEN
+            ST( tableaux(it).tableau, valeur );
+          ELSE
+            SV( tableaux(it).tableau, valeur );
+          END IF;
+        END IF;
+      END LOOP;
+    END LOOP;
+
+    -- transmisssion des résultats aux volumes horaires et volumes horaires référentiel
+    FOR i IN 1 .. ose_formule.volumes_horaires.length LOOP
+      vh_index := i;
+      IF ose_formule.volumes_horaires.items(i).service_id IS NOT NULL THEN
+        ose_formule.volumes_horaires.items(i).service_fi               := gv( 61) + gv( 62);
+        ose_formule.volumes_horaires.items(i).service_fa               := gv( 71) + gv( 72);
+        ose_formule.volumes_horaires.items(i).service_fc               := gv( 81) + gv( 82) + gv( 83) + gv( 84);
+        ose_formule.volumes_horaires.items(i).heures_compl_fi          := gv(131) + gv(132);
+        ose_formule.volumes_horaires.items(i).heures_compl_fa          := gv(141) + gv(142);
+        ose_formule.volumes_horaires.items(i).heures_compl_fc          := gv(151) + gv(152) + gv(153) + gv(154);
+        ose_formule.volumes_horaires.items(i).heures_compl_fc_majorees :=                     gv(163) + gv(164);
+      ELSIF ose_formule.volumes_horaires.items(i).service_referentiel_id IS NOT NULL THEN
+        ose_formule.volumes_horaires.items(i).service_referentiel      := gv( 55) + gv( 56) + gv( 57);
+        ose_formule.volumes_horaires.items(i).heures_compl_referentiel := gv(115) + gv(116) + gv(117);
+      END IF;
+    END LOOP;
+
+    DEBUG_VH;
+  END;
+
+
+
+  PROCEDURE CALCUL_RESULTAT IS
+    tableaux       t_tableaux_configs;
+    valeur         FLOAT;
+  BEGIN
+    -- si l\'année est antérieure à 2016/2017 alors on utilise la V2!!
+    IF ose_formule.intervenant.annee_id < 2016 THEN
+      CALCUL_RESULTAT_V2;
+      RETURN;
+    END IF;
+
+
+    -- Définition des tableaux à utiliser
+    tableaux := t_tableaux_configs(
+        tc( 11,3    ), tc( 12,3    ), tc( 13,3    ), tc( 14,3    ), tc( 15,2,\'r\' ), tc( 16,2,\'r\' ), tc( 17,2,\'r\' ),
+        tc( 21,2    ), tc( 22,2    ), tc( 23,2    ), tc( 24,2    ), tc( 25,2,\'r\' ), tc( 26,2,\'r\' ), tc( 27,2,\'r\' ),
+        tc( 31,2,\'t\'), tc( 32,2,\'t\'), tc( 33,2,\'t\'), tc( 34,2,\'t\'), tc( 35,2,\'tr\'), tc( 36,2,\'tr\'), tc( 37,2,\'tr\'),
+        tc( 41,2    ), tc( 42,2    ), tc( 43,2    ), tc( 44,2    ), tc( 45,2,\'r\' ), tc( 46,2,\'r\' ), tc( 47,2,\'r\' ),
+        tc( 51,2    ), tc( 52,2    ), tc( 53,2    ), tc( 54,2    ), tc( 55,2,\'r\' ), tc( 56,2,\'r\' ), tc( 57,2,\'r\' ),
+        tc( 61,3    ), tc( 62,3    ),
+        tc( 71,3    ), tc( 72,3    ),
+        tc( 83,3    ), tc( 84,3    ),
+        tc( 91,2    ), tc( 92,2    ), tc( 93,2    ), tc( 94,2    ), tc( 95,2,\'r\' ), tc( 96,2,\'r\' ), tc( 97,2,\'r\' ),
+        tc(101,2    ), tc(102,2    ), tc(103,2    ), tc(104,2    ), tc(105,2,\'r\' ), tc(106,2,\'r\' ), tc(107,2,\'r\' ),
+        tc(111,2    ), tc(112,2    ), tc(113,2    ), tc(114,2    ), tc(115,2,\'r\' ), tc(116,2,\'r\' ), tc(117,2,\'r\' ),
+        tc(123,3    ), tc(124,3    ),
+        tc(131,3    ), tc(132,3    ),
+        tc(141,3    ), tc(142,3    ),
+        tc(153,3    ), tc(154,3    ),
+        tc(163,3    ), tc(164,3    )
+      );
+
+    -- calcul par tableau pour chaque volume horaire
+    t.delete;
+    FOR it IN tableaux.FIRST .. tableaux.LAST LOOP
+      FOR ivh IN 1 .. ose_formule.volumes_horaires.length LOOP
+        vh_index := ivh;
+        IF
+                ose_formule.volumes_horaires.items(ivh).service_id IS NOT NULL AND NOT tableaux(it).referentiel
+            OR ose_formule.volumes_horaires.items(ivh).service_referentiel_id IS NOT NULL AND tableaux(it).referentiel
+            OR tableaux(it).setTotal -- car on en a besoin tout le temps
+        THEN
+          valeur := EXECFORMULE(tableaux(it).tableau, tableaux(it).version);
+          IF tableaux(it).setTotal THEN
+            ST( tableaux(it).tableau, valeur );
+          ELSE
+            SV( tableaux(it).tableau, valeur );
+          END IF;
+        END IF;
+      END LOOP;
+    END LOOP;
+
+    -- transmission des résultats aux volumes horaires et volumes horaires référentiel
+    FOR i IN 1 .. ose_formule.volumes_horaires.length LOOP
+      vh_index := i;
+      IF ose_formule.volumes_horaires.items(i).service_id IS NOT NULL THEN
+        ose_formule.volumes_horaires.items(i).service_fi               := gv( 61) + gv( 62);
+        ose_formule.volumes_horaires.items(i).service_fa               := gv( 71) + gv( 72);
+        ose_formule.volumes_horaires.items(i).service_fc               := gv( 83) + gv( 84);
+        ose_formule.volumes_horaires.items(i).heures_compl_fi          := gv(131) + gv(132);
+        ose_formule.volumes_horaires.items(i).heures_compl_fa          := gv(141) + gv(142);
+        ose_formule.volumes_horaires.items(i).heures_compl_fc          := gv(153) + gv(154);
+        ose_formule.volumes_horaires.items(i).heures_compl_fc_majorees := gv(163) + gv(164);
+      ELSIF ose_formule.volumes_horaires.items(i).service_referentiel_id IS NOT NULL THEN
+        ose_formule.volumes_horaires.items(i).service_referentiel      := gv( 55) + gv( 56) + gv( 57);
+        ose_formule.volumes_horaires.items(i).heures_compl_referentiel := gv(115) + gv(116) + gv(117);
+      END IF;
+    END LOOP;
+
+    DEBUG_VH;
+  END;
+
+
+
+  PROCEDURE PURGE_EM_NON_FC IS
+  BEGIN
+    FOR em IN (
+      SELECT
+        em.id
+      FROM
+        ELEMENT_MODULATEUR em
+          JOIN element_pedagogique ep ON ep.id = em.element_id AND ep.histo_destruction IS NULL
+      WHERE
+          em.histo_destruction IS NULL
+        AND ep.taux_fc < 1
+      ) LOOP
+      UPDATE
+        element_modulateur
+      SET
+        histo_destruction = SYSDATE,
+        histo_destructeur_id = ose_parametre.get_ose_user
+      WHERE
+          id = em.id
+      ;
+    END LOOP;
+  END;
+
+
+
+
+  FUNCTION INTERVENANT_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN \'
+    SELECT
+      fi.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_intervenant fi
+    \';
+  END;
+
+
+
+  FUNCTION VOLUME_HORAIRE_QUERY RETURN CLOB IS
+  BEGIN
+    RETURN \'
+    SELECT
+      fvh.*,
+      NULL param_1,
+      NULL param_2,
+      NULL param_3,
+      NULL param_4,
+      NULL param_5
+    FROM
+      v_formule_volume_horaire fvh
+    ORDER BY
+      ordre\';
+  END;
+
+END FORMULE_UNICAEN;',
+    ),
+    'OSE_CHARGENS' => 
+    array (
+      'name' => 'OSE_CHARGENS',
+      'definition' => 'CREATE OR REPLACE PACKAGE "OSE_CHARGENS" AS
+  ENABLE_TRIGGER_EFFECTIFS BOOLEAN DEFAULT TRUE;
+
+  TYPE tnoeud_ids IS TABLE OF NUMERIC;
+
+  FUNCTION GET_SCENARIO RETURN NUMERIC;
+  PROCEDURE SET_SCENARIO( SCENARIO NUMERIC );
+
+  FUNCTION GET_NOEUD RETURN NUMERIC;
+  PROCEDURE SET_NOEUD( NOEUD NUMERIC );
+
+  FUNCTION CALC_COEF( choix_min NUMERIC, choix_max NUMERIC, poids NUMERIC, max_poids NUMERIC, total_poids NUMERIC, nb_choix NUMERIC ) RETURN FLOAT;
+
+  PROCEDURE DEM_CALC_SUB_EFFECTIF( scenario_noeud_id NUMERIC, type_heures_id NUMERIC, etape_id NUMERIC, effectif FLOAT );
+  PROCEDURE CALC_SUB_EFFECTIF_DEM;
+
+  PROCEDURE CALC_ALL_EFFECTIFS;
+
+  PROCEDURE CALC_EFFECTIF( noeud_id NUMERIC, scenario_id NUMERIC, type_heures_id NUMERIC DEFAULT NULL, etape_id NUMERIC DEFAULT NULL);
+  PROCEDURE CALC_SUB_EFFECTIF2( noeud_id NUMERIC, scenario_id NUMERIC, type_heures_id NUMERIC DEFAULT NULL, etape_id NUMERIC DEFAULT NULL);
+
+  PROCEDURE DUPLIQUER( source_id NUMERIC, destination_id NUMERIC, utilisateur_id NUMERIC, structure_id NUMERIC, noeuds VARCHAR2 DEFAULT \'\', liens VARCHAR2 DEFAULT \'\' );
+
+  PROCEDURE CONTROLE_SEUIL( ouverture NUMERIC, dedoublement NUMERIC );
+
+  FUNCTION GET_SCENARIO_NOEUD_ID( scenario_id NUMERIC, noeud_id NUMERIC ) RETURN NUMERIC;
+  FUNCTION CREER_SCENARIO_NOEUD( scenario_id NUMERIC, noeud_id NUMERIC, assiduite FLOAT DEFAULT 1 ) RETURN NUMERIC;
+
+  PROCEDURE ADD_SCENARIO_NOEUD_EFFECTIF( scenario_noeud_id NUMERIC, type_heures_id NUMERIC, etape_id NUMERIC, effectif FLOAT );
+
+  PROCEDURE INIT_SCENARIO_NOEUD_EFFECTIF(
+    etape_id NUMERIC,
+    scenario_id NUMERIC,
+    type_heures_id NUMERIC,
+    effectif FLOAT,
+    surcharge BOOLEAN DEFAULT FALSE
+  );
+
+  PROCEDURE SET_PRECALC_HEURES_PARAMS(
+    annee_id                       NUMERIC DEFAULT NULL,
+    structure_id                   NUMERIC DEFAULT NULL,
+    scenario_id                    NUMERIC DEFAULT NULL,
+    type_heures_id                 NUMERIC DEFAULT NULL,
+    etape_id                       NUMERIC DEFAULT NULL,
+    noeud_ids                      tnoeud_ids DEFAULT NULL
+  );
+
+  FUNCTION MATCH_PRECALC_HEURES_PARAMS(
+    annee_id                       NUMERIC DEFAULT NULL,
+    structure_id                   NUMERIC DEFAULT NULL,
+    scenario_id                    NUMERIC DEFAULT NULL,
+    type_heures_id                 NUMERIC DEFAULT NULL,
+    etape_id                       NUMERIC DEFAULT NULL,
+    noeud_id                       NUMERIC DEFAULT NULL
+  ) RETURN NUMERIC;
+
+
+END OSE_CHARGENS;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "OSE_CHARGENS" AS
+  SCENARIO NUMERIC;
+  NOEUD NUMERIC;
+  old_enable BOOLEAN DEFAULT TRUE;
+
+  TYPE T_PRECALC_HEURES_PARAMS IS RECORD (
+    annee_id                       NUMERIC DEFAULT NULL,
+    structure_id                   NUMERIC DEFAULT NULL,
+    scenario_id                    NUMERIC DEFAULT NULL,
+    type_heures_id                 NUMERIC DEFAULT NULL,
+    etape_id                       NUMERIC DEFAULT NULL,
+    noeud_ids                      tnoeud_ids DEFAULT NULL
+  );
+
+  PRECALC_HEURES_PARAMS T_PRECALC_HEURES_PARAMS;
+
+
+  FUNCTION GET_SCENARIO RETURN NUMERIC IS
+  BEGIN
+    RETURN OSE_CHARGENS.SCENARIO;
+  END;
+
+  PROCEDURE SET_SCENARIO( SCENARIO NUMERIC ) IS
+  BEGIN
+    OSE_CHARGENS.SCENARIO := SET_SCENARIO.SCENARIO;
+  END;
+
+
+
+  FUNCTION GET_NOEUD RETURN NUMERIC IS
+  BEGIN
+    RETURN OSE_CHARGENS.NOEUD;
+  END;
+
+  PROCEDURE SET_NOEUD( NOEUD NUMERIC ) IS
+  BEGIN
+    OSE_CHARGENS.NOEUD := SET_NOEUD.NOEUD;
+  END;
+
+
+
+
+
+  FUNCTION CALC_COEF( choix_min NUMERIC, choix_max NUMERIC, poids NUMERIC, max_poids NUMERIC, total_poids NUMERIC, nb_choix NUMERIC ) RETURN FLOAT IS
+    cmin NUMERIC;
+    cmax NUMERIC;
+    coef_choix FLOAT;
+    coef_poids FLOAT;
+    max_coef_poids FLOAT;
+    correcteur FLOAT DEFAULT 1;
+    res FLOAT;
+  BEGIN
+    cmin := choix_min;
+    cmax := choix_max;
+
+    IF total_poids = 0 THEN RETURN 0; END IF;
+
+    IF cmax IS NULL OR cmax > nb_choix THEN
+      cmax := nb_choix;
+    END IF;
+    IF cmin IS NULL THEN
+      cmin := nb_choix;
+    ELSIF cmin > cmax THEN
+      cmin := cmax;
+    END IF;
+
+      coef_choix := (cmin + cmax) / 2 / nb_choix;
+
+      coef_poids := poids / total_poids;
+
+      max_coef_poids := max_poids / total_poids;
+
+      IF (coef_choix * nb_choix * max_coef_poids) <= 1 THEN
+        res := coef_choix * nb_choix * coef_poids;
+      ELSE
+        correcteur := 1;
+        res := coef_choix * nb_choix * (coef_poids + (((1/nb_choix)-coef_poids)*correcteur));
+      END IF;
+
+      --ose_test.echo(\'choix_min= \' || cmin || \', choix_max= \' || cmax || \', poids = \' || poids || \', max_poids = \' || max_poids || \', total_poids = \' || total_poids || \', nb_choix = \' || nb_choix || \', RES = \' || res);
+      RETURN res;
+  END;
+
+
+  PROCEDURE DEM_CALC_SUB_EFFECTIF( scenario_noeud_id NUMERIC, type_heures_id NUMERIC, etape_id NUMERIC, effectif FLOAT ) IS
+  BEGIN
+    INSERT INTO TMP_scenario_noeud_effectif(
+      scenario_noeud_id, type_heures_id, etape_id, effectif
+    ) VALUES(
+      scenario_noeud_id, type_heures_id, etape_id, effectif
+    );
+  END;
+
+
+
+  PROCEDURE CALC_SUB_EFFECTIF_DEM IS
+  BEGIN
+    DELETE FROM TMP_scenario_noeud_effectif;
+  END;
+
+
+  PROCEDURE CALC_ALL_EFFECTIFS IS
+  BEGIN
+    FOR p IN (
+
+      SELECT
+        sn.noeud_id,
+        sn.scenario_id,
+        sne.type_heures_id,
+        sne.etape_id
+      FROM
+        scenario_noeud_effectif sne
+        JOIN scenario_noeud sn ON sn.id = sne.scenario_noeud_id
+        JOIN noeud n ON n.id = sn.noeud_id
+      WHERE
+        n.etape_id IS NOT NULL
+
+    ) LOOP
+
+      CALC_SUB_EFFECTIF2( p.noeud_id, p.scenario_id, p.type_heures_id, p.etape_id );
+    END LOOP;
+
+  END;
+
+
+
+  PROCEDURE CALC_EFFECTIF(
+    noeud_id       NUMERIC,
+    scenario_id    NUMERIC,
+    type_heures_id NUMERIC DEFAULT NULL,
+    etape_id       NUMERIC DEFAULT NULL
+  ) IS
+    snid  NUMERIC;
+  BEGIN
+    UPDATE scenario_noeud_effectif SET effectif = 0
+    WHERE
+      scenario_noeud_id = (
+        SELECT id FROM scenario_noeud WHERE noeud_id = CALC_EFFECTIF.noeud_id AND scenario_id = CALC_EFFECTIF.scenario_id
+      )
+      AND (type_heures_id = CALC_EFFECTIF.type_heures_id OR CALC_EFFECTIF.type_heures_id IS NULL)
+      AND (etape_id = CALC_EFFECTIF.etape_id OR CALC_EFFECTIF.etape_id IS NULL)
+    ;
+
+    FOR p IN (
+
+      SELECT
+        *
+      FROM
+        v_chargens_calc_effectif cce
+      WHERE
+        cce.noeud_id = CALC_EFFECTIF.noeud_id
+        AND cce.scenario_id = CALC_EFFECTIF.scenario_id
+        AND (cce.type_heures_id = CALC_EFFECTIF.type_heures_id OR CALC_EFFECTIF.type_heures_id IS NULL)
+        AND (cce.etape_id = CALC_EFFECTIF.etape_id OR CALC_EFFECTIF.etape_id IS NULL)
+
+    ) LOOP
+      snid := OSE_CHARGENS.GET_SCENARIO_NOEUD_ID( p.scenario_id, p.noeud_id );
+      IF snid IS NULL THEN
+        snid := OSE_CHARGENS.CREER_SCENARIO_NOEUD( p.scenario_id, p.noeud_id );
+      END IF;
+      ADD_SCENARIO_NOEUD_EFFECTIF( snid, p.type_heures_id, p.etape_id, p.effectif );
+    END LOOP;
+    CALC_SUB_EFFECTIF2( noeud_id, scenario_id, type_heures_id, etape_id );
+  END;
+
+
+
+  PROCEDURE CALC_SUB_EFFECTIF2( noeud_id NUMERIC, scenario_id NUMERIC, type_heures_id NUMERIC DEFAULT NULL, etape_id NUMERIC DEFAULT NULL) IS
+  BEGIN
+    FOR p IN (
+
+      SELECT *
+      FROM   V_CHARGENS_GRANDS_LIENS cgl
+      WHERE  cgl.noeud_sup_id = CALC_SUB_EFFECTIF2.noeud_id
+
+    ) LOOP
+      CALC_EFFECTIF( p.noeud_inf_id, scenario_id, type_heures_id, etape_id );
+    END LOOP;
+  END;
+
+
+
+  PROCEDURE DUPLIQUER( source_id NUMERIC, destination_id NUMERIC, utilisateur_id NUMERIC, structure_id NUMERIC, noeuds VARCHAR2 DEFAULT \'\', liens VARCHAR2 DEFAULT \'\' ) IS
+  BEGIN
+
+    /* Destruction de tous les liens antérieurs de la destination */
+    DELETE FROM
+      scenario_lien
+    WHERE
+      scenario_id = DUPLIQUER.destination_id
+      AND histo_destruction IS NULL
+      AND (DUPLIQUER.LIENS IS NULL OR DUPLIQUER.LIENS LIKE \'%,\' || lien_id || \',%\' )
+      AND (DUPLIQUER.STRUCTURE_ID IS NULL OR lien_id IN (
+        SELECT id FROM lien WHERE lien.structure_id = DUPLIQUER.STRUCTURE_ID
+      ))
+    ;
+
+    /* Duplication des liens */
+    INSERT INTO scenario_lien (
+      id,
+      scenario_id, lien_id,
+      actif, poids,
+      choix_minimum, choix_maximum,
+      source_id, source_code,
+      histo_creation, histo_createur_id,
+      histo_modification, histo_modificateur_id
+    ) SELECT
+      scenario_lien_id_seq.nextval,
+      DUPLIQUER.destination_id, sl.lien_id,
+      sl.actif, sl.poids,
+      sl.choix_minimum, sl.choix_maximum,
+      source.id, \'dupli_\' || sl.id || \'_\' || sl.lien_id || \'_\' || trunc(dbms_random.value(1,10000000000000)),
+      sysdate, DUPLIQUER.utilisateur_id,
+      sysdate, DUPLIQUER.utilisateur_id
+    FROM
+      scenario_lien sl
+      JOIN lien l ON l.id = sl.lien_id
+      JOIN source ON source.code = \'OSE\'
+    WHERE
+      sl.scenario_id = DUPLIQUER.source_id
+      AND sl.histo_destruction IS NULL
+      AND (DUPLIQUER.LIENS IS NULL OR DUPLIQUER.LIENS LIKE \'%,\' || lien_id || \',%\' )
+      AND (DUPLIQUER.STRUCTURE_ID IS NULL OR l.structure_id = DUPLIQUER.STRUCTURE_ID)
+    ;
+
+
+    /* Destruction de tous les noeuds antérieurs de la destination */
+    DELETE FROM
+      scenario_noeud
+    WHERE
+      scenario_id = DUPLIQUER.destination_id
+      AND histo_destruction IS NULL
+      AND (DUPLIQUER.NOEUDS IS NULL OR DUPLIQUER.NOEUDS LIKE \'%,\' || noeud_id || \',%\' )
+      AND (DUPLIQUER.STRUCTURE_ID IS NULL OR scenario_noeud.noeud_id IN (
+        SELECT id FROM noeud WHERE noeud.structure_id = DUPLIQUER.STRUCTURE_ID
+      ))
+    ;
+
+    /* Duplication des noeuds */
+    INSERT INTO scenario_noeud (
+      id,
+      scenario_id, noeud_id,
+      assiduite,
+      source_id, source_code,
+      histo_creation, histo_createur_id,
+      histo_modification, histo_modificateur_id
+    ) SELECT
+      scenario_noeud_id_seq.nextval,
+      DUPLIQUER.destination_id, sn.noeud_id,
+      sn.assiduite,
+      source.id, \'dupli_\' || sn.id || \'_\' || sn.noeud_id || \'_\' || trunc(dbms_random.value(1,10000000000000)),
+      sysdate, DUPLIQUER.utilisateur_id,
+      sysdate, DUPLIQUER.utilisateur_id
+    FROM
+      scenario_noeud sn
+      JOIN noeud n ON n.id = sn.noeud_id
+      JOIN source ON source.code = \'OSE\'
+    WHERE
+      sn.scenario_id = DUPLIQUER.source_id
+      AND sn.histo_destruction IS NULL
+      AND (DUPLIQUER.NOEUDS IS NULL OR DUPLIQUER.NOEUDS LIKE \'%,\' || noeud_id || \',%\' )
+      AND (DUPLIQUER.STRUCTURE_ID IS NULL OR n.structure_id = DUPLIQUER.STRUCTURE_ID)
+    ;
+
+    /* Duplication des effectifs */
+    INSERT INTO scenario_noeud_effectif (
+      id,
+      scenario_noeud_id,
+      type_heures_id,
+      effectif,
+      etape_id
+    ) SELECT
+      scenario_noeud_effectif_id_seq.nextval,
+      sn_dst.id,
+      sne.type_heures_id,
+      sne.effectif,
+      sne.etape_id
+    FROM
+      scenario_noeud_effectif sne
+      JOIN scenario_noeud sn_src ON sn_src.id = sne.scenario_noeud_id
+      JOIN scenario_noeud sn_dst ON sn_dst.scenario_id = DUPLIQUER.destination_id AND sn_dst.noeud_id = sn_src.noeud_id
+      JOIN noeud n ON n.id = sn_src.noeud_id
+    WHERE
+      sn_src.scenario_id = DUPLIQUER.source_id
+      AND sn_src.histo_destruction IS NULL
+      AND (DUPLIQUER.NOEUDS IS NULL OR DUPLIQUER.NOEUDS LIKE \'%,\' || sn_src.noeud_id || \',%\' )
+      AND (DUPLIQUER.STRUCTURE_ID IS NULL OR n.structure_id = DUPLIQUER.STRUCTURE_ID)
+    ;
+
+    /* Duplication des seuils */
+    INSERT INTO scenario_noeud_seuil (
+      id,
+      scenario_noeud_id,
+      type_intervention_id,
+      ouverture,
+      dedoublement
+    ) SELECT
+      scenario_noeud_seuil_id_seq.nextval,
+      sn_dst.id,
+      sns.type_intervention_id,
+      sns.ouverture,
+      sns.dedoublement
+    FROM
+      scenario_noeud_seuil sns
+      JOIN scenario_noeud sn_src ON sn_src.id = sns.scenario_noeud_id
+      JOIN scenario_noeud sn_dst ON sn_dst.scenario_id = DUPLIQUER.destination_id AND sn_dst.noeud_id = sn_src.noeud_id
+      JOIN noeud n ON n.id = sn_src.noeud_id
+    WHERE
+      sn_src.scenario_id = DUPLIQUER.source_id
+      AND sn_src.histo_destruction IS NULL
+      AND (DUPLIQUER.NOEUDS IS NULL OR DUPLIQUER.NOEUDS LIKE \'%,\' || sn_src.noeud_id || \',%\' )
+      AND (DUPLIQUER.STRUCTURE_ID IS NULL OR n.structure_id = DUPLIQUER.STRUCTURE_ID)
+    ;
+  END;
+
+
+
+  PROCEDURE CONTROLE_SEUIL( ouverture NUMERIC, dedoublement NUMERIC ) IS
+  BEGIN
+    IF ouverture IS NOT NULL THEN
+      IF ouverture < 1 THEN
+        raise_application_error(-20101, \'Le seuil d\'\'ouverture doit être supérieur ou égal à 1\');
+      END IF;
+    END IF;
+
+    IF dedoublement IS NOT NULL THEN
+      IF dedoublement < 1 THEN
+        raise_application_error(-20101, \'Le seuil de dédoublement doit être supérieur ou égal à 1\');
+      END IF;
+    END IF;
+
+    IF ouverture IS NOT NULL AND dedoublement IS NOT NULL THEN
+      IF dedoublement < ouverture THEN
+        raise_application_error(-20101, \'Le seuil de dédoublement doit être supérieur ou égal au seuil d\'\'ouverture\');
+      END IF;
+    END IF;
+  END;
+
+
+  FUNCTION CREER_SCENARIO_NOEUD( scenario_id NUMERIC, noeud_id NUMERIC, assiduite FLOAT DEFAULT 1 ) RETURN NUMERIC IS
+    new_id NUMERIC;
+  BEGIN
+    new_id := SCENARIO_NOEUD_ID_SEQ.NEXTVAL;
+--ose_test.echo(scenario_id || \'-\' || noeud_id);
+    INSERT INTO SCENARIO_NOEUD(
+      ID,
+      SCENARIO_ID,
+      NOEUD_ID,
+      ASSIDUITE,
+      SOURCE_ID,
+      SOURCE_CODE,
+      HEURES,
+      HISTO_CREATION,
+      HISTO_CREATEUR_ID,
+      HISTO_MODIFICATION,
+      HISTO_MODIFICATEUR_ID
+    ) VALUES (
+      new_id,
+      CREER_SCENARIO_NOEUD.scenario_id,
+      CREER_SCENARIO_NOEUD.noeud_id,
+      CREER_SCENARIO_NOEUD.assiduite,
+      OSE_DIVERS.GET_OSE_SOURCE_ID,
+      \'OSE_NEW_SN_\' || new_id,
+      null,
+      SYSDATE,
+      OSE_DIVERS.GET_OSE_UTILISATEUR_ID,
+      SYSDATE,
+      OSE_DIVERS.GET_OSE_UTILISATEUR_ID
+    );
+    RETURN new_id;
+  END;
+
+
+  FUNCTION GET_SCENARIO_NOEUD_ID(scenario_id NUMERIC, noeud_id NUMERIC) RETURN NUMERIC IS
+    res NUMERIC;
+  BEGIN
+    SELECT
+      sn.id INTO res
+    FROM
+      scenario_noeud sn
+    WHERE
+      sn.noeud_id = GET_SCENARIO_NOEUD_ID.noeud_id
+      AND sn.scenario_id = GET_SCENARIO_NOEUD_ID.scenario_id
+      AND sn.histo_destruction IS NULL;
+
+    RETURN res;
+
+  EXCEPTION WHEN NO_DATA_FOUND THEN
+    RETURN NULL;
+  END;
+
+
+  PROCEDURE ADD_SCENARIO_NOEUD_EFFECTIF( scenario_noeud_id NUMERIC, type_heures_id NUMERIC, etape_id NUMERIC, effectif FLOAT ) IS
+    old_enable BOOLEAN;
+  BEGIN
+    old_enable := ose_chargens.ENABLE_TRIGGER_EFFECTIFS;
+    ose_chargens.ENABLE_TRIGGER_EFFECTIFS := false;
+
+    MERGE INTO scenario_noeud_effectif sne USING dual ON (
+
+          sne.scenario_noeud_id = ADD_SCENARIO_NOEUD_EFFECTIF.scenario_noeud_id
+      AND sne.type_heures_id = ADD_SCENARIO_NOEUD_EFFECTIF.type_heures_id
+      AND sne.etape_id = ADD_SCENARIO_NOEUD_EFFECTIF.etape_id
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      effectif = effectif + ADD_SCENARIO_NOEUD_EFFECTIF.effectif
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      SCENARIO_NOEUD_ID,
+      TYPE_HEURES_ID,
+      ETAPE_ID,
+      EFFECTIF
+
+    ) VALUES (
+
+      SCENARIO_NOEUD_EFFECTIF_ID_SEQ.NEXTVAL,
+      ADD_SCENARIO_NOEUD_EFFECTIF.scenario_noeud_id,
+      ADD_SCENARIO_NOEUD_EFFECTIF.type_heures_id,
+      ADD_SCENARIO_NOEUD_EFFECTIF.etape_id,
+      ADD_SCENARIO_NOEUD_EFFECTIF.effectif
+
+    );
+
+    DELETE FROM scenario_noeud_effectif WHERE effectif = 0;
+
+    ose_chargens.ENABLE_TRIGGER_EFFECTIFS := old_enable;
+  END;
+
+
+
+  PROCEDURE INIT_SCENARIO_NOEUD_EFFECTIF(
+    etape_id NUMERIC,
+    scenario_id NUMERIC,
+    type_heures_id NUMERIC,
+    effectif FLOAT,
+    surcharge BOOLEAN DEFAULT FALSE
+  ) IS
+    noeud_id NUMERIC;
+    scenario_noeud_id NUMERIC;
+    scenario_noeud_effectif_id NUMERIC;
+  BEGIN
+    SELECT
+      n.id, sn.id, sne.id
+    INTO
+      noeud_id, scenario_noeud_id, scenario_noeud_effectif_id
+    FROM
+                noeud                     n
+      LEFT JOIN scenario_noeud           sn ON sn.noeud_id = n.id
+                                           AND sn.histo_destruction IS NULL
+                                           AND sn.scenario_id = INIT_SCENARIO_NOEUD_EFFECTIF.scenario_id
+
+      LEFT JOIN scenario_noeud_effectif sne ON sne.scenario_noeud_id = sn.id
+                                           AND sne.type_heures_id = INIT_SCENARIO_NOEUD_EFFECTIF.type_heures_id
+    WHERE
+      n.etape_id = INIT_SCENARIO_NOEUD_EFFECTIF.etape_id
+      AND n.histo_destruction IS NULL
+    ;
+
+    IF noeud_id IS NULL THEN RETURN; END IF;
+
+    IF scenario_noeud_id IS NULL THEN
+      scenario_noeud_id := CREER_SCENARIO_NOEUD( scenario_id, noeud_id );
+    END IF;
+
+    IF scenario_noeud_effectif_id IS NULL THEN
+      scenario_noeud_effectif_id := SCENARIO_NOEUD_EFFECTIF_ID_SEQ.NEXTVAL;
+      INSERT INTO scenario_noeud_effectif (
+        id,
+        scenario_noeud_id,
+        type_heures_id,
+        effectif,
+        etape_id
+      ) VALUES (
+        scenario_noeud_effectif_id,
+        scenario_noeud_id,
+        INIT_SCENARIO_NOEUD_EFFECTIF.type_heures_id,
+        INIT_SCENARIO_NOEUD_EFFECTIF.effectif,
+        INIT_SCENARIO_NOEUD_EFFECTIF.etape_id
+      );
+    ELSIF surcharge THEN
+      UPDATE scenario_noeud_effectif SET effectif = INIT_SCENARIO_NOEUD_EFFECTIF.effectif WHERE id = scenario_noeud_effectif_id;
+    END IF;
+
+    CALC_SUB_EFFECTIF2( noeud_id, scenario_id, type_heures_id, etape_id );
+
+  EXCEPTION WHEN NO_DATA_FOUND THEN
+    RETURN;
+  END;
+
+
+
+  PROCEDURE SET_PRECALC_HEURES_PARAMS(
+    annee_id                       NUMERIC DEFAULT NULL,
+    structure_id                   NUMERIC DEFAULT NULL,
+    scenario_id                    NUMERIC DEFAULT NULL,
+    type_heures_id                 NUMERIC DEFAULT NULL,
+    etape_id                       NUMERIC DEFAULT NULL,
+    noeud_ids                      tnoeud_ids DEFAULT NULL
+  ) IS
+  BEGIN
+    PRECALC_HEURES_PARAMS.ANNEE_ID       := ANNEE_ID;
+    PRECALC_HEURES_PARAMS.STRUCTURE_ID   := STRUCTURE_ID;
+    PRECALC_HEURES_PARAMS.SCENARIO_ID    := SCENARIO_ID;
+    PRECALC_HEURES_PARAMS.TYPE_HEURES_ID := TYPE_HEURES_ID;
+    PRECALC_HEURES_PARAMS.ETAPE_ID       := ETAPE_ID;
+    PRECALC_HEURES_PARAMS.NOEUD_IDS      := noeud_ids;
+  END;
+
+
+
+  FUNCTION MATCH_PRECALC_HEURES_PARAMS(
+    annee_id                       NUMERIC DEFAULT NULL,
+    structure_id                   NUMERIC DEFAULT NULL,
+    scenario_id                    NUMERIC DEFAULT NULL,
+    type_heures_id                 NUMERIC DEFAULT NULL,
+    etape_id                       NUMERIC DEFAULT NULL,
+    noeud_id                       NUMERIC DEFAULT NULL
+  ) RETURN NUMERIC IS
+  BEGIN
+
+    IF PRECALC_HEURES_PARAMS.noeud_ids IS NOT NULL THEN
+      IF NOT (noeud_id MEMBER OF PRECALC_HEURES_PARAMS.noeud_ids) THEN
+        RETURN 0;
+      END IF;
+    END IF;
+
+    IF annee_id <> COALESCE(PRECALC_HEURES_PARAMS.annee_id, annee_id) THEN
+      RETURN 0;
+    END IF;
+
+    IF structure_id <> COALESCE(PRECALC_HEURES_PARAMS.structure_id, structure_id) THEN
+      RETURN 0;
+    END IF;
+
+    IF scenario_id <> COALESCE(PRECALC_HEURES_PARAMS.scenario_id, scenario_id) THEN
+      RETURN 0;
+    END IF;
+
+    IF type_heures_id <> COALESCE(PRECALC_HEURES_PARAMS.type_heures_id, type_heures_id) THEN
+      RETURN 0;
+    END IF;
+
+    IF etape_id <> COALESCE(PRECALC_HEURES_PARAMS.etape_id, etape_id) THEN
+      RETURN 0;
+    END IF;
+
+    RETURN 1;
+  END;
+
+
+  FUNCTION GET_PRECALC_HEURES_ANNEE RETURN NUMERIC IS
+  BEGIN
+    RETURN PRECALC_HEURES_PARAMS.ANNEE_ID;
+  END;
+
+
+
+  FUNCTION GET_PRECALC_HEURES_STRUCTURE RETURN NUMERIC IS
+  BEGIN
+    RETURN PRECALC_HEURES_PARAMS.STRUCTURE_ID;
+  END;
+
+
+
+  FUNCTION GET_PRECALC_HEURES_SCENARIO RETURN NUMERIC IS
+  BEGIN
+    RETURN PRECALC_HEURES_PARAMS.SCENARIO_ID;
+  END;
+
+
+
+  FUNCTION GET_PRECALC_HEURES_TYPE_HEURES RETURN NUMERIC IS
+  BEGIN
+    RETURN PRECALC_HEURES_PARAMS.TYPE_HEURES_ID;
+  END;
+
+
+
+  FUNCTION GET_PRECALC_HEURES_ETAPE RETURN NUMERIC IS
+  BEGIN
+    RETURN PRECALC_HEURES_PARAMS.ETAPE_ID;
+  END;
+
+--  FUNCTION GET_PRECALC_HEURES_NOEUD RETURN NUMERIC IS
+--  BEGIN
+
+--  END;
+
+END OSE_CHARGENS;',
+    ),
+    'OSE_DIVERS' => 
+    array (
+      'name' => 'OSE_DIVERS',
+      'definition' => 'CREATE OR REPLACE PACKAGE "OSE_DIVERS" AS
+
+  PROCEDURE CALCULER_TABLEAUX_BORD;
+
+  FUNCTION GET_OSE_UTILISATEUR_ID RETURN NUMERIC;
+  FUNCTION GET_OSE_SOURCE_ID RETURN NUMERIC;
+
+  FUNCTION INTERVENANT_HAS_PRIVILEGE( intervenant_id NUMERIC, privilege_name VARCHAR2 ) RETURN NUMERIC;
+
+  FUNCTION implode(i_query VARCHAR2, i_seperator VARCHAR2 DEFAULT \',\') RETURN VARCHAR2;
+
+  PROCEDURE intervenant_horodatage_service( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, REFERENTIEL NUMERIC, HISTO_MODIFICATEUR_ID NUMERIC, HISTO_MODIFICATION DATE );
+
+  FUNCTION NIVEAU_FORMATION_ID_CALC( gtf_id NUMERIC, gtf_pertinence_niveau NUMERIC, niveau NUMERIC DEFAULT NULL ) RETURN NUMERIC;
+
+  FUNCTION STR_REDUCE( str VARCHAR2 ) RETURN VARCHAR2;
+
+  FUNCTION STR_FIND( haystack VARCHAR2, needle VARCHAR2 ) RETURN NUMERIC;
+
+  FUNCTION LIKED( haystack VARCHAR2, needle VARCHAR2 ) RETURN NUMERIC;
+
+  FUNCTION CALCUL_TAUX_FI( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT;
+
+  FUNCTION CALCUL_TAUX_FC( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT;
+
+  FUNCTION CALCUL_TAUX_FA( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT;
+
+  PROCEDURE SYNC_LOG( msg VARCHAR2 );
+
+  FUNCTION FORMATTED_RIB (bic VARCHAR2, iban VARCHAR2) RETURN VARCHAR2;
+
+  FUNCTION FORMATTED_ADRESSE(
+    no_voie                VARCHAR2,
+    nom_voie               VARCHAR2,
+    batiment               VARCHAR2,
+    mention_complementaire VARCHAR2,
+    localite               VARCHAR2,
+    code_postal            VARCHAR2,
+    ville                  VARCHAR2,
+    pays_libelle           VARCHAR2)
+  RETURN VARCHAR2;
+
+  PROCEDURE CALCUL_FEUILLE_DE_ROUTE( CONDS VARCHAR2 );
+
+  FUNCTION GET_TRIGGER_BODY( TRIGGER_NAME VARCHAR2 ) RETURN VARCHAR2;
+END OSE_DIVERS;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "OSE_DIVERS" AS
+  OSE_UTILISATEUR_ID NUMERIC;
+  OSE_SOURCE_ID NUMERIC;
+
+
+
+
+  PROCEDURE CALCULER_TABLEAUX_BORD IS
+  BEGIN
+    FOR d IN (
+      SELECT tbl_name
+      FROM tbl
+      WHERE tbl_name <> \'formule\' -- TROP LONG !!
+      ORDER BY ordre
+    )
+    LOOP
+      UNICAEN_TBL.CALCULER(d.tbl_name);
+      dbms_output.put_line(\'Calcul du tableau de bord "\' || d.tbl_name || \'" effectué\');
+      COMMIT;
+    END LOOP;
+  END;
+
+
+
+  FUNCTION GET_OSE_UTILISATEUR_ID RETURN NUMERIC IS
+  BEGIN
+    IF OSE_DIVERS.OSE_UTILISATEUR_ID IS NULL THEN
+      SELECT
+        to_number(valeur) INTO OSE_DIVERS.OSE_UTILISATEUR_ID
+      FROM
+        parametre
+      WHERE
+        nom = \'oseuser\';
+    END IF;
+
+    RETURN OSE_DIVERS.OSE_UTILISATEUR_ID;
+  END;
+
+
+
+  FUNCTION GET_OSE_SOURCE_ID RETURN NUMERIC IS
+  BEGIN
+    IF OSE_DIVERS.OSE_SOURCE_ID IS NULL THEN
+      SELECT
+        id INTO OSE_DIVERS.OSE_SOURCE_ID
+      FROM
+        source
+      WHERE
+        code = \'OSE\';
+    END IF;
+
+    RETURN OSE_DIVERS.OSE_SOURCE_ID;
+  END;
+
+
+
+  FUNCTION INTERVENANT_HAS_PRIVILEGE( intervenant_id NUMERIC, privilege_name VARCHAR2 ) RETURN NUMERIC IS
+    statut statut_intervenant%rowtype;
+    itype  type_intervenant%rowtype;
+    res NUMERIC;
+  BEGIN
+    res := 1;
+    SELECT si.* INTO statut FROM statut_intervenant si JOIN intervenant i ON i.statut_id = si.id WHERE i.id = intervenant_id;
+    SELECT ti.* INTO itype  FROM type_intervenant ti WHERE ti.id = statut.type_intervenant_id;
+
+    /* DEPRECATED */
+    IF \'saisie_service\' = privilege_name THEN
+      res := statut.peut_saisir_service;
+      RETURN res;
+    ELSIF \'saisie_service_exterieur\' = privilege_name THEN
+      --IF INTERVENANT_HAS_PRIVILEGE( intervenant_id, \'saisie_service\' ) = 0 OR itype.code = \'E\' THEN -- cascade
+      IF itype.code = \'E\' THEN
+        res := 0;
+      END IF;
+      RETURN res;
+    ELSIF \'saisie_service_referentiel\' = privilege_name THEN
+      IF itype.code = \'E\' THEN
+        res := 0;
+      END IF;
+      RETURN res;
+    ELSIF \'saisie_service_referentiel_autre_structure\' = privilege_name THEN
+      res := 1;
+      RETURN res;
+    ELSIF \'saisie_motif_non_paiement\' = privilege_name THEN
+      res := statut.peut_saisir_motif_non_paiement;
+      RETURN res;
+    END IF;
+    /* FIN DE DEPRECATED */
+
+    SELECT
+      count(*)
+    INTO
+      res
+    FROM
+      intervenant i
+      JOIN statut_privilege sp ON sp.statut_id = i.statut_id
+      JOIN privilege p ON p.id = sp.privilege_id
+      JOIN categorie_privilege cp ON cp.id = p.categorie_id
+    WHERE
+      i.id = INTERVENANT_HAS_PRIVILEGE.intervenant_id
+      AND cp.code || \'-\' || p.code = privilege_name;
+
+    RETURN res;
+  END;
+
+  FUNCTION implode(i_query VARCHAR2, i_seperator VARCHAR2 DEFAULT \',\') RETURN VARCHAR2 AS
+    l_return CLOB:=\'\';
+    l_temp CLOB;
+    TYPE r_cursor is REF CURSOR;
+    rc r_cursor;
+  BEGIN
+    OPEN rc FOR i_query;
+    LOOP
+      FETCH rc INTO L_TEMP;
+      EXIT WHEN RC%NOTFOUND;
+      l_return:=l_return||L_TEMP||i_seperator;
+    END LOOP;
+    RETURN RTRIM(l_return,i_seperator);
+  END;
+
+  PROCEDURE intervenant_horodatage_service( INTERVENANT_ID NUMERIC, TYPE_VOLUME_HORAIRE_ID NUMERIC, REFERENTIEL NUMERIC, HISTO_MODIFICATEUR_ID NUMERIC, HISTO_MODIFICATION DATE ) AS
+  BEGIN
+      MERGE INTO histo_intervenant_service his USING dual ON (
+
+            his.INTERVENANT_ID                = intervenant_horodatage_service.INTERVENANT_ID
+        AND NVL(his.TYPE_VOLUME_HORAIRE_ID,0) = NVL(intervenant_horodatage_service.TYPE_VOLUME_HORAIRE_ID,0)
+        AND his.REFERENTIEL                   = intervenant_horodatage_service.REFERENTIEL
+
+      ) WHEN MATCHED THEN UPDATE SET
+
+        HISTO_MODIFICATEUR_ID = intervenant_horodatage_service.HISTO_MODIFICATEUR_ID,
+        HISTO_MODIFICATION = intervenant_horodatage_service.HISTO_MODIFICATION
+
+      WHEN NOT MATCHED THEN INSERT (
+
+        ID,
+        INTERVENANT_ID,
+        TYPE_VOLUME_HORAIRE_ID,
+        REFERENTIEL,
+        HISTO_MODIFICATEUR_ID,
+        HISTO_MODIFICATION
+      ) VALUES (
+        HISTO_INTERVENANT_SERVI_ID_SEQ.NEXTVAL,
+        intervenant_horodatage_service.INTERVENANT_ID,
+        intervenant_horodatage_service.TYPE_VOLUME_HORAIRE_ID,
+        intervenant_horodatage_service.REFERENTIEL,
+        intervenant_horodatage_service.HISTO_MODIFICATEUR_ID,
+        intervenant_horodatage_service.HISTO_MODIFICATION
+
+      );
+  END;
+
+
+  FUNCTION NIVEAU_FORMATION_ID_CALC( gtf_id NUMERIC, gtf_pertinence_niveau NUMERIC, niveau NUMERIC DEFAULT NULL ) RETURN NUMERIC AS
+  BEGIN
+    IF 1 <> gtf_pertinence_niveau OR niveau IS NULL OR niveau < 1 OR gtf_id < 1 THEN RETURN NULL; END IF;
+    RETURN gtf_id * 256 + niveau;
+  END;
+
+  FUNCTION STR_REDUCE( str VARCHAR2 ) RETURN VARCHAR2 IS
+  BEGIN
+    RETURN RTRIM(utl_raw.cast_to_varchar2((nlssort(str, \'nls_sort=binary_ai\'))),CHR(0));
+  END;
+
+  FUNCTION STR_FIND( haystack VARCHAR2, needle VARCHAR2 ) RETURN NUMERIC IS
+  BEGIN
+    IF STR_REDUCE( haystack ) LIKE STR_REDUCE( \'%\' || needle || \'%\' ) THEN RETURN 1; END IF;
+    RETURN 0;
+  END;
+
+  FUNCTION LIKED( haystack VARCHAR2, needle VARCHAR2 ) RETURN NUMERIC IS
+  BEGIN
+    RETURN CASE WHEN STR_REDUCE(haystack) LIKE STR_REDUCE(needle) THEN 1 ELSE 0 END;
+  END;
+
+  PROCEDURE DO_NOTHING IS
+  BEGIN
+    RETURN;
+  END;
+
+  PROCEDURE CALCUL_TAUX( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, r_fi OUT FLOAT, r_fc OUT FLOAT, r_fa OUT FLOAT, arrondi NUMERIC DEFAULT 15 ) IS
+    nt FLOAT;
+    bi FLOAT;
+    bc FLOAT;
+    ba FLOAT;
+    reste FLOAT;
+  BEGIN
+    bi := eff_fi * fi;
+    bc := eff_fc * fc;
+    ba := eff_fa * fa;
+    nt := bi + bc + ba;
+
+    IF nt = 0 THEN -- au cas ou, alors on ne prend plus en compte les effectifs!!
+      bi := fi;
+      bc := fc;
+      ba := fa;
+      nt := bi + bc + ba;
+    END IF;
+
+    IF nt = 0 THEN -- toujours au cas ou...
+      bi := 1;
+      bc := 0;
+      ba := 0;
+      nt := bi + bc + ba;
+    END IF;
+
+    -- Calcul
+    r_fi := bi / nt;
+    r_fc := bc / nt;
+    r_fa := ba / nt;
+
+    -- Arrondis
+    r_fi := ROUND( r_fi, arrondi );
+    r_fc := ROUND( r_fc, arrondi );
+    r_fa := ROUND( r_fa, arrondi );
+
+    -- détermination du reste
+    reste := 1 - r_fi - r_fc - r_fa;
+
+    -- répartition éventuelle du reste
+    IF reste <> 0 THEN
+      IF r_fi > 0 THEN r_fi := r_fi + reste;
+      ELSIF r_fc > 0 THEN r_fc := r_fc + reste;
+      ELSE r_fa := r_fa + reste; END IF;
+    END IF;
+
+  END;
+
+
+  FUNCTION CALCUL_TAUX_FI( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT IS
+    ri FLOAT;
+    rc FLOAT;
+    ra FLOAT;
+  BEGIN
+    CALCUL_TAUX( eff_fi, eff_fc, eff_fa, fi, fc, fa, ri, rc, ra, arrondi );
+    RETURN ri;
+  END;
+
+  FUNCTION CALCUL_TAUX_FC( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT IS
+    ri FLOAT;
+    rc FLOAT;
+    ra FLOAT;
+  BEGIN
+    CALCUL_TAUX( eff_fi, eff_fc, eff_fa, fi, fc, fa, ri, rc, ra, arrondi );
+    RETURN rc;
+  END;
+
+  FUNCTION CALCUL_TAUX_FA( eff_fi FLOAT, eff_fc FLOAT, eff_fa FLOAT, fi NUMERIC, fc NUMERIC, fa NUMERIC, arrondi NUMERIC DEFAULT 15 ) RETURN FLOAT IS
+    ri FLOAT;
+    rc FLOAT;
+    ra FLOAT;
+  BEGIN
+    CALCUL_TAUX( eff_fi, eff_fc, eff_fa, fi, fc, fa, ri, rc, ra, arrondi );
+    RETURN ra;
+  END;
+
+  PROCEDURE SYNC_LOG( msg VARCHAR2 ) IS
+  BEGIN
+    INSERT INTO SYNC_LOG( id, date_sync, message ) VALUES ( sync_log_id_seq.nextval, systimestamp, msg );
+  END;
+
+  FUNCTION FORMATTED_RIB (bic VARCHAR2, iban VARCHAR2) RETURN VARCHAR2 IS
+  BEGIN
+    if bic is null and iban is null then
+      return null;
+    end if;
+    RETURN regexp_replace(bic, \'[[:space:]]+\', \'\') || \'-\' || regexp_replace(iban, \'[[:space:]]+\', \'\');
+  END;
+
+  FUNCTION FORMATTED_ADRESSE(
+    no_voie                VARCHAR2,
+    nom_voie               VARCHAR2,
+    batiment               VARCHAR2,
+    mention_complementaire VARCHAR2,
+    localite               VARCHAR2,
+    code_postal            VARCHAR2,
+    ville                  VARCHAR2,
+    pays_libelle           VARCHAR2)
+    RETURN VARCHAR2
+  IS
+  BEGIN
+    return
+      -- concaténation des éléments non null séparés par \', \'
+      trim(trim(\',\' FROM REPLACE(\', \' || NVL(no_voie,\'#\') || \', \' || NVL(nom_voie,\'#\') || \', \' || NVL(batiment,\'#\') || \', \' || NVL(mention_complementaire,\'#\'), \', #\', \'\'))) ||
+      -- saut de ligne complet
+      chr(13) || chr(10) ||
+      -- concaténation des éléments non null séparés par \', \'
+      trim(trim(\',\' FROM REPLACE(\', \' || NVL(localite,\'#\') || \', \' || NVL(code_postal,\'#\') || \', \' || NVL(ville,\'#\') || \', \' || NVL(pays_libelle,\'#\'), \', #\', \'\')));
+  END;
+
+
+
+  PROCEDURE CALCUL_FEUILLE_DE_ROUTE( CONDS VARCHAR2 ) IS
+  BEGIN
+    FOR d IN (
+      SELECT   tbl_name
+      FROM     tbl
+      WHERE    feuille_de_route = 1
+      ORDER BY ordre
+    ) LOOP
+      UNICAEN_TBL.CALCULER(d.tbl_name,CONDS);
+    END LOOP;
+  END;
+
+
+
+  FUNCTION GET_TRIGGER_BODY( TRIGGER_NAME VARCHAR2 ) RETURN VARCHAR2 IS
+    vlong long;
+  BEGIN
+    SELECT trigger_body INTO vlong FROM all_triggers WHERE trigger_name = GET_TRIGGER_BODY.TRIGGER_NAME;
+
+    RETURN substr(vlong, 1, 32767);
+  END;
+
+END OSE_DIVERS;',
+    ),
+    'OSE_EVENT' => 
+    array (
+      'name' => 'OSE_EVENT',
+      'definition' => 'CREATE OR REPLACE PACKAGE "OSE_EVENT" AS
+
+  PROCEDURE ON_AFTER_FORMULE_CALC( INTERVENANT_ID NUMERIC );
+
+END OSE_EVENT;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "OSE_EVENT" AS
+
+  PROCEDURE ON_AFTER_FORMULE_CALC( INTERVENANT_ID NUMERIC ) IS
+    p unicaen_tbl.t_params;
+  BEGIN
+    p := UNICAEN_TBL.make_params(\'INTERVENANT_ID\', ON_AFTER_FORMULE_CALC.intervenant_id);
+/*
+    UNICAEN_TBL.CALCULER( \'agrement\', p );
+    UNICAEN_TBL.CALCULER( \'paiement\', p );
+    UNICAEN_TBL.CALCULER( \'workflow\', p );*/
+  END;
+
+END OSE_EVENT;',
+    ),
+    'OSE_FORMULE' => 
+    array (
+      'name' => 'OSE_FORMULE',
+      'definition' => 'CREATE OR REPLACE PACKAGE "OSE_FORMULE" AS
+
+  TYPE t_intervenant IS RECORD (
+    -- identifiants
+    id                             NUMERIC,
+    annee_id                       NUMERIC,
+    structure_id                   NUMERIC,
+    type_volume_horaire_id         NUMERIC,
+    etat_volume_horaire_id         NUMERIC,
+
+    -- paramètres globaux
+    heures_decharge                FLOAT DEFAULT 0,
+    heures_service_statutaire      FLOAT DEFAULT 0,
+    heures_service_modifie         FLOAT DEFAULT 0,
+    depassement_service_du_sans_hc BOOLEAN DEFAULT FALSE,
+    type_intervenant_code          VARCHAR(2),
+
+    -- paramètres spacifiques
+    param_1                        VARCHAR(100),
+    param_2                        VARCHAR(100),
+    param_3                        VARCHAR(100),
+    param_4                        VARCHAR(100),
+    param_5                        VARCHAR(100),
+
+    -- résultats
+    service_du                     FLOAT,
+    total                          FLOAT,
+    solde                          FLOAT,
+    debug_info                     CLOB
+  );
+
+  TYPE t_volume_horaire IS RECORD (
+    -- identifiants
+    volume_horaire_id          NUMERIC,
+    volume_horaire_ref_id      NUMERIC,
+    service_id                 NUMERIC,
+    service_referentiel_id     NUMERIC,
+    structure_id               NUMERIC,
+
+    -- paramètres globaux
+    structure_is_affectation   BOOLEAN DEFAULT TRUE,
+    structure_is_univ          BOOLEAN DEFAULT FALSE,
+    service_statutaire         BOOLEAN DEFAULT TRUE,
+    taux_fi                    FLOAT DEFAULT 1,
+    taux_fa                    FLOAT DEFAULT 0,
+    taux_fc                    FLOAT DEFAULT 0,
+
+    -- pondérations et heures
+    type_intervention_code     VARCHAR(15),
+    taux_service_du            FLOAT DEFAULT 1, -- en fonction des types d\'intervention
+    taux_service_compl         FLOAT DEFAULT 1, -- en fonction des types d\'intervention
+    ponderation_service_du     FLOAT DEFAULT 1, -- relatif aux modulateurs
+    ponderation_service_compl  FLOAT DEFAULT 1, -- relatif aux modulateurs
+    heures                     FLOAT DEFAULT 0, -- heures réelles saisies
+
+    -- paramètres spacifiques
+    param_1                    VARCHAR(100),
+    param_2                    VARCHAR(100),
+    param_3                    VARCHAR(100),
+    param_4                    VARCHAR(100),
+    param_5                    VARCHAR(100),
+
+    -- résultats
+    service_fi                 FLOAT DEFAULT 0,
+    service_fa                 FLOAT DEFAULT 0,
+    service_fc                 FLOAT DEFAULT 0,
+    service_referentiel        FLOAT DEFAULT 0,
+    heures_compl_fi            FLOAT DEFAULT 0,
+    heures_compl_fa            FLOAT DEFAULT 0,
+    heures_compl_fc            FLOAT DEFAULT 0,
+    heures_compl_fc_majorees   FLOAT DEFAULT 0,
+    heures_compl_referentiel   FLOAT DEFAULT 0,
+
+    debug_info                 CLOB
+  );
+  TYPE t_lst_volume_horaire IS TABLE OF t_volume_horaire INDEX BY PLS_INTEGER;
+  TYPE t_volumes_horaires IS RECORD (
+    length NUMERIC DEFAULT 0,
+    items t_lst_volume_horaire
+  );
+
+  debug_actif      BOOLEAN DEFAULT FALSE;
+  intervenant      t_intervenant;
+  volumes_horaires t_volumes_horaires;
+
+  FUNCTION GET_INTERVENANT_ID RETURN NUMERIC;
+
+  FUNCTION GET_TAUX_HORAIRE_HETD( DATE_OBS DATE DEFAULT NULL ) RETURN FLOAT;
+  PROCEDURE UPDATE_ANNEE_TAUX_HETD;
+
+  PROCEDURE CALCULER( INTERVENANT_ID NUMERIC );
+  PROCEDURE CALCULER_TOUT( ANNEE_ID NUMERIC DEFAULT NULL );        -- mise à jour de TOUTES les données ! ! ! !
+  PROCEDURE CALCULER_TBL( PARAMS UNICAEN_TBL.T_PARAMS );
+
+  PROCEDURE TEST( INTERVENANT_TEST_ID NUMERIC );
+  PROCEDURE TEST_TOUT;
+
+  PROCEDURE DEBUG_INTERVENANT;
+  PROCEDURE DEBUG_VOLUMES_HORAIRES(VOLUME_HORAIRE_ID NUMERIC DEFAULT NULL);
+END OSE_FORMULE;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "OSE_FORMULE" AS
+
+  TYPE t_lst_vh_etats        IS TABLE OF t_volumes_horaires INDEX BY PLS_INTEGER;
+  TYPE t_lst_vh_types        IS TABLE OF t_lst_vh_etats INDEX BY PLS_INTEGER;
+  TYPE t_lst_vh_intervenants IS TABLE OF t_lst_vh_types INDEX BY PLS_INTEGER;
+
+  TYPE t_resultat IS RECORD (
+    id                         NUMERIC,
+    formule_resultat_id        NUMERIC,
+    type_volume_horaire_id     NUMERIC,
+    etat_volume_horaire_id     NUMERIC,
+    service_id                 NUMERIC,
+    service_referentiel_id     NUMERIC,
+    volume_horaire_id          NUMERIC,
+    volume_horaire_ref_id      NUMERIC,
+
+    service_fi                 FLOAT DEFAULT 0,
+    service_fa                 FLOAT DEFAULT 0,
+    service_fc                 FLOAT DEFAULT 0,
+    service_referentiel        FLOAT DEFAULT 0,
+    heures_compl_fi            FLOAT DEFAULT 0,
+    heures_compl_fa            FLOAT DEFAULT 0,
+    heures_compl_fc            FLOAT DEFAULT 0,
+    heures_compl_fc_majorees   FLOAT DEFAULT 0,
+    heures_compl_referentiel   FLOAT DEFAULT 0,
+
+    changed                    BOOLEAN DEFAULT FALSE,
+    debug_info                 CLOB
+  );
+
+  TYPE t_resultats IS TABLE OF t_resultat INDEX BY VARCHAR2(15);
+
+  all_volumes_horaires t_lst_vh_intervenants;
+  arrondi NUMERIC DEFAULT 2;
+  t_res t_resultats;
+  formule_definition formule%rowtype;
+  in_calculer_tout BOOLEAN DEFAULT false;
+
+
+
+  FUNCTION GET_INTERVENANT_ID RETURN NUMERIC IS
+  BEGIN
+    RETURN intervenant.id;
+  END;
+
+
+
+  FUNCTION GET_TAUX_HORAIRE_HETD( DATE_OBS DATE DEFAULT NULL ) RETURN FLOAT IS
+    taux_hetd FLOAT;
+  BEGIN
+    SELECT valeur INTO taux_hetd
+    FROM taux_horaire_hetd t
+    WHERE
+      DATE_OBS BETWEEN t.histo_creation AND COALESCE(t.histo_destruction,GREATEST(SYSDATE,DATE_OBS))
+      AND rownum = 1
+    ORDER BY
+      histo_creation DESC;
+    RETURN taux_hetd;
+  END;
+
+
+
+  PROCEDURE UPDATE_ANNEE_TAUX_HETD IS
+  BEGIN
+    UPDATE annee SET taux_hetd = GET_TAUX_HORAIRE_HETD(date_fin);
+  END;
+
+
+
+  PROCEDURE LOAD_INTERVENANT_FROM_BDD IS
+    cur SYS_REFCURSOR;
+    query CLOB;
+    i_dep_service_du_sans_hc NUMERIC DEFAULT 0;
+  BEGIN
+    intervenant.service_du := 0;
+    intervenant.total      := NULL;
+    intervenant.solde      := NULL;
+
+    EXECUTE IMMEDIATE \'SELECT \' || formule_definition.package_name || \'.intervenant_query FROM DUAL\' INTO query;
+    OPEN cur FOR query;
+
+    LOOP
+      FETCH cur INTO
+        intervenant.id,
+        intervenant.annee_id,
+        intervenant.structure_id,
+        intervenant.type_intervenant_code,
+        intervenant.heures_service_statutaire,
+        i_dep_service_du_sans_hc,
+        intervenant.heures_service_modifie,
+        intervenant.heures_decharge,
+        intervenant.param_1,
+        intervenant.param_2,
+        intervenant.param_3,
+        intervenant.param_4,
+        intervenant.param_5
+      ;
+
+      intervenant.depassement_service_du_sans_hc := (i_dep_service_du_sans_hc = 1);
+      intervenant.service_du := CASE
+        WHEN intervenant.depassement_service_du_sans_hc -- HC traitées comme du service
+          OR intervenant.heures_decharge < 0 -- s\'il y a une décharge => aucune HC
+
+        THEN 9999
+        ELSE intervenant.heures_service_statutaire + intervenant.heures_service_modifie
+      END;
+
+      EXIT WHEN cur%NOTFOUND;
+    END LOOP;
+    CLOSE cur;
+
+    EXCEPTION WHEN NO_DATA_FOUND THEN
+      intervenant.id                             := NULL;
+      intervenant.annee_id                       := null;
+      intervenant.structure_id                   := null;
+      intervenant.heures_service_statutaire      := 0;
+      intervenant.depassement_service_du_sans_hc := FALSE;
+      intervenant.heures_service_modifie         := 0;
+      intervenant.heures_decharge                := 0;
+      intervenant.type_intervenant_code          := \'E\';
+      intervenant.service_du                     := 0;
+      intervenant.param_1                        := NULL;
+      intervenant.param_2                        := NULL;
+      intervenant.param_3                        := NULL;
+      intervenant.param_4                        := NULL;
+      intervenant.param_5                        := NULL;
+  END;
+
+
+
+  PROCEDURE LOAD_INTERVENANT_FROM_TEST IS
+    dsdushc NUMERIC DEFAULT 0;
+  BEGIN
+    intervenant.total := NULL;
+    intervenant.solde := NULL;
+
+    SELECT
+      fti.id,
+      fti.annee_id,
+      fti.structure_test_id,
+      fti.type_volume_horaire_id,
+      fti.etat_volume_horaire_id,
+      fti.heures_decharge,
+      fti.heures_service_statutaire,
+      fti.heures_service_modifie,
+      fti.depassement_service_du_sans_hc,
+      fti.a_service_du,
+      fti.param_1,
+      fti.param_2,
+      fti.param_3,
+      fti.param_4,
+      fti.param_5,
+      ti.code
+    INTO
+      intervenant.id,
+      intervenant.annee_id,
+      intervenant.structure_id,
+      intervenant.type_volume_horaire_id,
+      intervenant.etat_volume_horaire_id,
+      intervenant.heures_decharge,
+      intervenant.heures_service_statutaire,
+      intervenant.heures_service_modifie,
+      dsdushc,
+      intervenant.service_du,
+      intervenant.param_1,
+      intervenant.param_2,
+      intervenant.param_3,
+      intervenant.param_4,
+      intervenant.param_5,
+      intervenant.type_intervenant_code
+    FROM
+      formule_test_intervenant fti
+      JOIN type_intervenant ti ON ti.id = fti.type_intervenant_id
+    WHERE
+      fti.id = intervenant.id;
+
+    intervenant.depassement_service_du_sans_hc := (dsdushc = 1);
+    intervenant.service_du := CASE
+      WHEN intervenant.depassement_service_du_sans_hc -- HC traitées comme du service
+        OR intervenant.heures_decharge < 0 -- s\'il y a une décharge => aucune HC
+
+      THEN 9999
+      ELSE intervenant.heures_service_statutaire + intervenant.heures_service_modifie
+    END;
+
+    EXCEPTION WHEN NO_DATA_FOUND THEN
+      intervenant.id                             := NULL;
+      intervenant.annee_id                       := null;
+      intervenant.structure_id                   := null;
+      intervenant.heures_service_statutaire      := 0;
+      intervenant.depassement_service_du_sans_hc := FALSE;
+      intervenant.heures_service_modifie         := 0;
+      intervenant.heures_decharge                := 0;
+      intervenant.type_intervenant_code          := \'E\';
+      intervenant.service_du                     := 0;
+      intervenant.param_1                        := null;
+      intervenant.param_2                        := null;
+      intervenant.param_3                        := null;
+      intervenant.param_4                        := null;
+      intervenant.param_5                        := null;
+  END;
+
+
+
+  PROCEDURE LOAD_VH_FROM_BDD IS
+    cur SYS_REFCURSOR;
+    query CLOB;
+    vh_ordre NUMERIC;
+    vh_id NUMERIC;
+    vh_type_intervention_id NUMERIC;
+    vh_horaire_debut DATE;
+    vh_horaire_fin DATE;
+    vh_intervenant_id NUMERIC;
+    vh_type_volume_horaire_id NUMERIC;
+    vh_etat_volume_horaire_id NUMERIC;
+    vh_structure_is_affectation NUMERIC;
+    vh_structure_is_univ NUMERIC;
+    vh t_volume_horaire;
+    etat_volume_horaire_id NUMERIC DEFAULT 1;
+    length NUMERIC;
+  BEGIN
+    all_volumes_horaires.delete;
+
+    EXECUTE IMMEDIATE \'SELECT \' || formule_definition.package_name || \'.volume_horaire_query FROM DUAL\' INTO query;
+    OPEN cur FOR query;
+
+    LOOP
+      FETCH cur INTO
+        vh_ordre,
+        vh_id,
+        vh.volume_horaire_id,
+        vh.volume_horaire_ref_id,
+        vh.service_id,
+        vh.service_referentiel_id,
+        vh_intervenant_id,
+        vh_type_intervention_id,
+        vh_type_volume_horaire_id,
+        vh_etat_volume_horaire_id,
+        vh.taux_fi,
+        vh.taux_fa,
+        vh.taux_fc,
+        vh.structure_id,
+        vh_structure_is_affectation,
+        vh_structure_is_univ,
+        vh.ponderation_service_du,
+        vh.ponderation_service_compl,
+        vh.service_statutaire,
+        vh.heures,
+        vh_horaire_debut,
+        vh_horaire_fin,
+        vh.type_intervention_code,
+        vh.taux_service_du,
+        vh.taux_service_compl,
+        vh.param_1,
+        vh.param_2,
+        vh.param_3,
+        vh.param_4,
+        vh.param_5
+      ;
+      vh.structure_is_affectation := vh_structure_is_affectation = 1;
+      vh.structure_is_univ        := vh_structure_is_univ = 1;
+
+      FOR etat_volume_horaire_id IN 1 .. vh_etat_volume_horaire_id LOOP
+        BEGIN
+          length := all_volumes_horaires(vh_intervenant_id)(vh_type_volume_horaire_id)(etat_volume_horaire_id).length;
+        EXCEPTION WHEN NO_DATA_FOUND THEN
+          length := 0;
+        END;
+        length := length + 1;
+        all_volumes_horaires(vh_intervenant_id)(vh_type_volume_horaire_id)(etat_volume_horaire_id).length := length;
+        all_volumes_horaires(vh_intervenant_id)(vh_type_volume_horaire_id)(etat_volume_horaire_id).items(length) := vh;
+      END LOOP;
+
+      EXIT WHEN cur%NOTFOUND;
+    END LOOP;
+    CLOSE cur;
+  END;
+
+
+
+  PROCEDURE LOAD_VH_FROM_TEST IS
+    vh t_volume_horaire;
+    etat_volume_horaire_id NUMERIC DEFAULT 1;
+    structure_univ NUMERIC;
+    length NUMERIC;
+  BEGIN
+    volumes_horaires.items.delete;
+    length := 0;
+
+    SELECT id INTO structure_univ FROM formule_test_structure WHERE universite = 1;
+
+    FOR d IN (
+      SELECT
+        ftvh.*,
+        CASE ftvh.type_intervention_code
+          WHEN \'CM\' THEN COALESCE(fti.taux_cm_service_du,1.5)
+          WHEN \'TP\' THEN COALESCE(fti.taux_tp_service_du,1)
+          WHEN \'AUTRE\' THEN COALESCE(fti.taux_autre_service_du,1)
+          ELSE 1
+        END taux_service_du,
+        CASE ftvh.type_intervention_code
+          WHEN \'CM\' THEN COALESCE(fti.taux_cm_service_compl,1.5)
+          WHEN \'TP\' THEN COALESCE(fti.taux_tp_service_compl,2/3)
+          WHEN \'AUTRE\' THEN COALESCE(fti.taux_autre_service_compl,1)
+          ELSE 1
+        END taux_service_compl
+      FROM
+        formule_test_volume_horaire ftvh
+        JOIN formule_test_intervenant fti ON fti.id = intervenant.id
+      WHERE  ftvh.intervenant_test_id = intervenant.id
+      ORDER BY ftvh.id
+    ) LOOP
+      length := length + 1;
+      volumes_horaires.length := length;
+
+      IF d.referentiel = 0 THEN
+        volumes_horaires.items(length).volume_horaire_id       := d.id;
+        volumes_horaires.items(length).service_id              := d.id;
+      ELSE
+        volumes_horaires.items(length).volume_horaire_ref_id   := d.id;
+        volumes_horaires.items(length).service_referentiel_id  := d.id;
+      END IF;
+      volumes_horaires.items(length).taux_fi                   := d.taux_fi;
+      volumes_horaires.items(length).taux_fa                   := d.taux_fa;
+      volumes_horaires.items(length).taux_fc                   := d.taux_fc;
+      volumes_horaires.items(length).ponderation_service_du    := d.ponderation_service_du;
+      volumes_horaires.items(length).ponderation_service_compl := d.ponderation_service_compl;
+      volumes_horaires.items(length).structure_id              := d.structure_test_id;
+      volumes_horaires.items(length).structure_is_affectation  := NVL(d.structure_test_id,0) = NVL(intervenant.structure_id,-1);
+      volumes_horaires.items(length).structure_is_univ         := NVL(d.structure_test_id,0) = NVL(structure_univ,-1);
+      volumes_horaires.items(length).service_statutaire        := d.service_statutaire = 1;
+      volumes_horaires.items(length).heures                    := d.heures;
+      volumes_horaires.items(length).type_intervention_code    := CASE WHEN d.referentiel = 1 THEN NULL ELSE d.type_intervention_code END;
+      volumes_horaires.items(length).taux_service_du           := d.taux_service_du;
+      volumes_horaires.items(length).taux_service_compl        := d.taux_service_compl;
+      volumes_horaires.items(length).param_1                   := d.param_1;
+      volumes_horaires.items(length).param_2                   := d.param_2;
+      volumes_horaires.items(length).param_3                   := d.param_3;
+      volumes_horaires.items(length).param_4                   := d.param_4;
+      volumes_horaires.items(length).param_5                   := d.param_5;
+    END LOOP;
+  END;
+
+
+
+  PROCEDURE tres_add_heures( code VARCHAR2, vh t_volume_horaire, tvh NUMERIC, evh NUMERIC) IS
+  BEGIN
+    IF NOT t_res.exists(code) THEN
+      t_res(code).service_fi               := 0;
+      t_res(code).service_fa               := 0;
+      t_res(code).service_fc               := 0;
+      t_res(code).service_referentiel      := 0;
+      t_res(code).heures_compl_fi          := 0;
+      t_res(code).heures_compl_fa          := 0;
+      t_res(code).heures_compl_fc          := 0;
+      t_res(code).heures_compl_fc_majorees := 0;
+      t_res(code).heures_compl_referentiel := 0;
+    END IF;
+
+    t_res(code).service_fi               := t_res(code).service_fi               + vh.service_fi;
+    t_res(code).service_fa               := t_res(code).service_fa               + vh.service_fa;
+    t_res(code).service_fc               := t_res(code).service_fc               + vh.service_fc;
+    t_res(code).service_referentiel      := t_res(code).service_referentiel      + vh.service_referentiel;
+    t_res(code).heures_compl_fi          := t_res(code).heures_compl_fi          + vh.heures_compl_fi;
+    t_res(code).heures_compl_fa          := t_res(code).heures_compl_fa          + vh.heures_compl_fa;
+    t_res(code).heures_compl_fc          := t_res(code).heures_compl_fc          + vh.heures_compl_fc;
+    t_res(code).heures_compl_fc_majorees := t_res(code).heures_compl_fc_majorees + vh.heures_compl_fc_majorees;
+    t_res(code).heures_compl_referentiel := t_res(code).heures_compl_referentiel + vh.heures_compl_referentiel;
+
+    t_res(code).type_volume_horaire_id := tvh;
+    t_res(code).etat_volume_horaire_id := evh;
+  END;
+
+  PROCEDURE DEBUG_TRES IS
+    code varchar2(15);
+    table_name varchar2(30);
+    fr formule_resultat%rowtype;
+    frs formule_resultat_service%rowtype;
+    frsr formule_resultat_service_ref%rowtype;
+    frvh formule_resultat_vh%rowtype;
+    frvhr formule_resultat_vh_ref%rowtype;
+  BEGIN
+    code := t_res.FIRST;
+    LOOP EXIT WHEN code IS NULL;
+      table_name := CASE
+        WHEN code LIKE \'%-s-%\' THEN \'FORMULE_RESULTAT_SERVICE\'
+        WHEN code LIKE \'%-sr-%\' THEN \'FORMULE_RESULTAT_SERVICE_REF\'
+        WHEN code LIKE \'%-vh-%\' THEN \'FORMULE_RESULTAT_VH\'
+        WHEN code LIKE \'%-vhr-%\' THEN \'FORMULE_RESULTAT_VH_REF\'
+        ELSE \'FORMULE_RESULTAT\'
+      END;
+
+      ose_test.echo(\'T_RES( \' || code || \' - Table \' || table_name || \' ) \');
+      ose_test.echo(\'  id = \' || t_res(code).id);
+      ose_test.echo(\'  formule_resultat_id      = \' || t_res(code).formule_resultat_id);
+      ose_test.echo(\'  type_volume_horaire_id   = \' || t_res(code).type_volume_horaire_id);
+      ose_test.echo(\'  etat_volume_horaire_id   = \' || t_res(code).etat_volume_horaire_id);
+      ose_test.echo(\'  volume_horaire_id        = \' || t_res(code).volume_horaire_id);
+      ose_test.echo(\'  volume_horaire_ref_id    = \' || t_res(code).volume_horaire_ref_id);
+      ose_test.echo(\'  service_id               = \' || t_res(code).service_id);
+      ose_test.echo(\'  service_referentiel_id   = \' || t_res(code).service_referentiel_id);
+      ose_test.echo(\'  service_fi               = \' || t_res(code).service_fi);
+      ose_test.echo(\'  service_fa               = \' || t_res(code).service_fa);
+      ose_test.echo(\'  service_fc               = \' || t_res(code).service_fc);
+      ose_test.echo(\'  service_referentiel      = \' || t_res(code).service_referentiel);
+      ose_test.echo(\'  heures_compl_fi          = \' || t_res(code).heures_compl_fi);
+      ose_test.echo(\'  heures_compl_fa          = \' || t_res(code).heures_compl_fa);
+      ose_test.echo(\'  heures_compl_fc          = \' || t_res(code).heures_compl_fc);
+      ose_test.echo(\'  heures_compl_fc_majorees = \' || t_res(code).heures_compl_fc_majorees);
+      ose_test.echo(\'  heures_compl_referentiel = \' || t_res(code).heures_compl_referentiel);
+
+      code := t_res.NEXT(code);
+    END LOOP;
+  END;
+
+  PROCEDURE SAVE_TO_BDD IS
+    bcode VARCHAR(15);
+    code VARCHAR(15);
+    type_volume_horaire_id NUMERIC;
+    etat_volume_horaire_id NUMERIC;
+    vh t_volume_horaire;
+    fr formule_resultat%rowtype;
+    frs formule_resultat_service%rowtype;
+    frsr formule_resultat_service_ref%rowtype;
+    frvh formule_resultat_vh%rowtype;
+    frvhr formule_resultat_vh_ref%rowtype;
+  BEGIN
+    t_res.delete;
+
+    /* On préinitialise avec ce qui existe déjà */
+    FOR d IN (
+      SELECT
+        fr.type_volume_horaire_id || \'-\' || fr.etat_volume_horaire_id code,
+        fr.id                       id,
+        fr.id                       formule_resultat_id,
+        fr.type_volume_horaire_id   type_volume_horaire_id,
+        fr.etat_volume_horaire_id   etat_volume_horaire_id,
+        null                        service_id,
+        null                        service_referentiel_id,
+        null                        volume_horaire_id,
+        null                        volume_horaire_ref_id
+
+      FROM
+        formule_resultat fr
+      WHERE
+        fr.intervenant_id = intervenant.id
+
+      UNION ALL SELECT
+        fr.type_volume_horaire_id || \'-\' || fr.etat_volume_horaire_id || \'-s-\' || frs.service_id code,
+        frs.id                      id,
+        fr.id                       formule_resultat_id,
+        fr.type_volume_horaire_id   type_volume_horaire_id,
+        fr.etat_volume_horaire_id   etat_volume_horaire_id,
+        frs.service_id              service_id,
+        null                        service_referentiel_id,
+        null                        volume_horaire_id,
+        null                        volume_horaire_ref_id
+      FROM
+        formule_resultat_service frs
+        JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id
+      WHERE
+        fr.intervenant_id = intervenant.id
+
+      UNION ALL SELECT
+        fr.type_volume_horaire_id || \'-\' || fr.etat_volume_horaire_id || \'-sr-\' || frsr.service_referentiel_id code,
+        frsr.id                     id,
+        fr.id                       formule_resultat_id,
+        fr.type_volume_horaire_id   type_volume_horaire_id,
+        fr.etat_volume_horaire_id   etat_volume_horaire_id,
+        null                        service_id,
+        frsr.service_referentiel_id service_referentiel_id,
+        null                        volume_horaire_id,
+        null                        volume_horaire_ref_id
+      FROM
+        formule_resultat_service_ref frsr
+        JOIN formule_resultat fr ON fr.id = frsr.formule_resultat_id
+      WHERE
+        fr.intervenant_id = intervenant.id
+
+      UNION ALL SELECT
+        fr.type_volume_horaire_id || \'-\' || fr.etat_volume_horaire_id || \'-vh-\' || frvh.volume_horaire_id code,
+        frvh.id                     id,
+        fr.id                       formule_resultat_id,
+        fr.type_volume_horaire_id   type_volume_horaire_id,
+        fr.etat_volume_horaire_id   etat_volume_horaire_id,
+        null                        service_id,
+        null                        service_referentiel_id,
+        frvh.volume_horaire_id      volume_horaire_id,
+        null                        volume_horaire_ref_id
+      FROM
+        formule_resultat_vh frvh
+        JOIN formule_resultat fr ON fr.id = frvh.formule_resultat_id
+      WHERE
+        fr.intervenant_id = intervenant.id
+
+      UNION ALL SELECT
+        fr.type_volume_horaire_id || \'-\' || fr.etat_volume_horaire_id || \'-vhr-\' || frvhr.volume_horaire_ref_id code,
+        frvhr.id                    id,
+        fr.id                       formule_resultat_id,
+        fr.type_volume_horaire_id   type_volume_horaire_id,
+        fr.etat_volume_horaire_id   etat_volume_horaire_id,
+        null                        service_id,
+        null                        service_referentiel_id,
+        null                        volume_horaire_id,
+        frvhr.volume_horaire_ref_id volume_horaire_ref_id
+      FROM
+        formule_resultat_vh_ref frvhr
+        JOIN formule_resultat fr ON fr.id = frvhr.formule_resultat_id
+      WHERE
+        fr.intervenant_id = intervenant.id
+    ) LOOP
+      t_res(d.code).id                     := d.id;
+      t_res(d.code).formule_resultat_id    := d.formule_resultat_id;
+      t_res(d.code).type_volume_horaire_id := d.type_volume_horaire_id;
+      t_res(d.code).etat_volume_horaire_id := d.etat_volume_horaire_id;
+      t_res(d.code).service_id             := d.service_id;
+      t_res(d.code).service_referentiel_id := d.service_referentiel_id;
+      t_res(d.code).volume_horaire_id      := d.volume_horaire_id;
+      t_res(d.code).volume_horaire_ref_id  := d.volume_horaire_ref_id;
+    END LOOP;
+
+    /* On charge avec les résultats de formule */
+    IF all_volumes_horaires.exists(intervenant.id) THEN
+      type_volume_horaire_id := all_volumes_horaires(intervenant.id).FIRST;
+      LOOP EXIT WHEN type_volume_horaire_id IS NULL;
+        etat_volume_horaire_id := all_volumes_horaires(intervenant.id)(type_volume_horaire_id).FIRST;
+        LOOP EXIT WHEN etat_volume_horaire_id IS NULL;
+          FOR i IN 1 .. all_volumes_horaires(intervenant.id)(type_volume_horaire_id)(etat_volume_horaire_id).length LOOP
+            vh := all_volumes_horaires(intervenant.id)(type_volume_horaire_id)(etat_volume_horaire_id).items(i);
+            bcode := type_volume_horaire_id || \'-\' || etat_volume_horaire_id;
+
+            -- formule_resultat
+            code := bcode;
+            tres_add_heures(code,vh, type_volume_horaire_id, etat_volume_horaire_id);
+
+            -- formule_resultat_service
+            IF vh.service_id IS NOT NULL THEN
+              code := bcode || \'-s-\' || vh.service_id;
+              t_res(code).service_id := vh.service_id;
+              tres_add_heures(code,vh, type_volume_horaire_id, etat_volume_horaire_id);
+            END IF;
+
+            -- formule_resultat_service_ref
+            IF vh.service_referentiel_id IS NOT NULL THEN
+              code := bcode || \'-sr-\' || vh.service_referentiel_id;
+              t_res(code).service_referentiel_id := vh.service_referentiel_id;
+              tres_add_heures(code,vh, type_volume_horaire_id, etat_volume_horaire_id);
+            END IF;
+
+            -- formule_resultat_volume_horaire
+            IF vh.volume_horaire_id IS NOT NULL THEN
+              code := bcode || \'-vh-\' || vh.volume_horaire_id;
+              t_res(code).volume_horaire_id := vh.volume_horaire_id;
+              tres_add_heures(code,vh, type_volume_horaire_id, etat_volume_horaire_id);
+            END IF;
+
+            -- formule_resultat_volume_horaire_ref
+            IF vh.volume_horaire_ref_id IS NOT NULL THEN
+              code := bcode || \'-vhr-\' || vh.volume_horaire_ref_id;
+              t_res(code).volume_horaire_ref_id := vh.volume_horaire_ref_id;
+              tres_add_heures(code,vh, type_volume_horaire_id, etat_volume_horaire_id);
+            END IF;
+
+          END LOOP;
+          etat_volume_horaire_id := all_volumes_horaires(intervenant.id)(type_volume_horaire_id).NEXT(etat_volume_horaire_id);
+        END LOOP;
+        type_volume_horaire_id := all_volumes_horaires(intervenant.id).NEXT(type_volume_horaire_id);
+      END LOOP;
+    END IF;
+
+    /* On fait la sauvegarde en BDD */
+    /* D\'abord le formule_resultat */
+    code := t_res.FIRST;
+    LOOP EXIT WHEN code IS NULL;
+      IF code = (t_res(code).type_volume_horaire_id || \'-\' || t_res(code).etat_volume_horaire_id) THEN
+        fr.id                       := t_res(code).id;
+        fr.intervenant_id           := intervenant.id;
+        fr.type_volume_horaire_id   := t_res(code).type_volume_horaire_id;
+        fr.etat_volume_horaire_id   := t_res(code).etat_volume_horaire_id;
+        fr.service_fi               := ROUND(t_res(code).service_fi,2);
+        fr.service_fa               := ROUND(t_res(code).service_fa,2);
+        fr.service_fc               := ROUND(t_res(code).service_fc,2);
+        fr.service_referentiel      := ROUND(t_res(code).service_referentiel,2);
+        fr.heures_compl_fi          := ROUND(t_res(code).heures_compl_fi,2);
+        fr.heures_compl_fa          := ROUND(t_res(code).heures_compl_fa,2);
+        fr.heures_compl_fc          := ROUND(t_res(code).heures_compl_fc,2);
+        fr.heures_compl_fc_majorees := ROUND(t_res(code).heures_compl_fc_majorees,2);
+        fr.heures_compl_referentiel := ROUND(t_res(code).heures_compl_referentiel,2);
+        fr.total := COALESCE(intervenant.total,
+              fr.service_fi + fr.service_fa + fr.service_fc + fr.service_referentiel
+              + fr.heures_compl_fi + fr.heures_compl_fa + fr.heures_compl_fc
+              + fr.heures_compl_fc_majorees + fr.heures_compl_referentiel
+        );
+
+        fr.service_du := ROUND(CASE
+          WHEN intervenant.depassement_service_du_sans_hc OR intervenant.heures_decharge < 0
+          THEN GREATEST(fr.total, intervenant.heures_service_statutaire + intervenant.heures_service_modifie)
+          ELSE intervenant.heures_service_statutaire + intervenant.heures_service_modifie
+        END,2);
+
+        fr.solde                    := COALESCE(intervenant.solde,fr.total - fr.service_du);
+        IF fr.solde >= 0 THEN
+          fr.sous_service           := 0;
+          fr.heures_compl           := fr.solde;
+        ELSE
+          fr.sous_service           := fr.solde * -1;
+          fr.heures_compl           := 0;
+        END IF;
+        fr.type_intervenant_code    := intervenant.type_intervenant_code;
+
+        IF fr.id IS NULL THEN
+          fr.id := formule_resultat_id_seq.nextval;
+          t_res(code).id := fr.id;
+          INSERT INTO formule_resultat VALUES fr;
+        ELSE
+          UPDATE formule_resultat SET ROW = fr WHERE id = fr.id;
+        END IF;
+      END IF;
+      code := t_res.NEXT(code);
+    END LOOP;
+
+    --DEBUG_TRES;
+
+    /* Ensuite toutes les dépendances... */
+    code := t_res.FIRST;
+    LOOP EXIT WHEN code IS NULL;
+      bcode := t_res(code).type_volume_horaire_id || \'-\' || t_res(code).etat_volume_horaire_id;
+      CASE
+        WHEN code LIKE \'%-s-%\' THEN -- formule_resultat_service
+          frs.id                         := t_res(code).id;
+          frs.formule_resultat_id        := t_res(bcode).id;
+          frs.service_id                 := t_res(code).service_id;
+          frs.service_fi                 := ROUND(t_res(code).service_fi, 2);
+          frs.service_fa                 := ROUND(t_res(code).service_fa, 2);
+          frs.service_fc                 := ROUND(t_res(code).service_fc, 2);
+          frs.heures_compl_fi            := ROUND(t_res(code).heures_compl_fi, 2);
+          frs.heures_compl_fa            := ROUND(t_res(code).heures_compl_fa, 2);
+          frs.heures_compl_fc            := ROUND(t_res(code).heures_compl_fc, 2);
+          frs.heures_compl_fc_majorees   := ROUND(t_res(code).heures_compl_fc_majorees, 2);
+          frs.total                      := frs.service_fi + frs.service_fa + frs.service_fc
+                 + frs.heures_compl_fi + frs.heures_compl_fa + frs.heures_compl_fc + frs.heures_compl_fc_majorees;
+          IF frs.id IS NULL THEN
+            frs.id := formule_resultat_servic_id_seq.nextval;
+            INSERT INTO formule_resultat_service VALUES frs;
+          ELSE
+            UPDATE formule_resultat_service SET ROW = frs WHERE id = frs.id;
+          END IF;
+        WHEN code LIKE \'%-sr-%\' THEN -- formule_resultat_service_ref
+          frsr.id                        := t_res(code).id;
+          frsr.formule_resultat_id       := t_res(bcode).id;
+          frsr.service_referentiel_id    := t_res(code).service_referentiel_id;
+          frsr.service_referentiel       := ROUND(t_res(code).service_referentiel, 2);
+          frsr.heures_compl_referentiel  := ROUND(t_res(code).heures_compl_referentiel, 2);
+          frsr.total                     := frsr.service_referentiel + frsr.heures_compl_referentiel;
+          IF frsr.id IS NULL THEN
+            frsr.id := formule_resultat_servic_id_seq.nextval;
+            INSERT INTO formule_resultat_service_ref VALUES frsr;
+          ELSE
+            UPDATE formule_resultat_service_ref SET ROW = frsr WHERE id = frsr.id;
+          END IF;
+        WHEN code LIKE \'%-vh-%\' THEN -- formule_resultat_vh
+          frvh.id := t_res(code).id;
+          frvh.formule_resultat_id       := t_res(bcode).id;
+          frvh.volume_horaire_id         := t_res(code).volume_horaire_id;
+          frvh.service_fi                := ROUND(t_res(code).service_fi, 2);
+          frvh.service_fa                := ROUND(t_res(code).service_fa, 2);
+          frvh.service_fc                := ROUND(t_res(code).service_fc, 2);
+          frvh.heures_compl_fi           := ROUND(t_res(code).heures_compl_fi, 2);
+          frvh.heures_compl_fa           := ROUND(t_res(code).heures_compl_fa, 2);
+          frvh.heures_compl_fc           := ROUND(t_res(code).heures_compl_fc, 2);
+          frvh.heures_compl_fc_majorees  := ROUND(t_res(code).heures_compl_fc_majorees, 2);
+          frvh.total                     := frvh.service_fi + frvh.service_fa + frvh.service_fc
+                  + frvh.heures_compl_fi + frvh.heures_compl_fa + frvh.heures_compl_fc + frvh.heures_compl_fc_majorees;
+          IF frvh.id IS NULL THEN
+            frvh.id := formule_resultat_vh_id_seq.nextval;
+            INSERT INTO formule_resultat_vh VALUES frvh;
+          ELSE
+            UPDATE formule_resultat_vh SET ROW = frvh WHERE id = frvh.id;
+          END IF;
+        WHEN code LIKE \'%-vhr-%\' THEN -- formule_resultat_vh_ref
+          frvhr.id := t_res(code).id;
+          frvhr.formule_resultat_id      := t_res(bcode).id;
+          frvhr.volume_horaire_ref_id    := t_res(code).volume_horaire_ref_id;
+          frvhr.service_referentiel      := ROUND(t_res(code).service_referentiel, 2);
+          frvhr.heures_compl_referentiel := ROUND(t_res(code).heures_compl_referentiel, 2);
+          frvhr.total                    := frvhr.service_referentiel + frvhr.heures_compl_referentiel;
+          IF frvhr.id IS NULL THEN
+            frvhr.id := formule_resultat_vh_ref_id_seq.nextval;
+            INSERT INTO formule_resultat_vh_ref VALUES frvhr;
+          ELSE
+            UPDATE formule_resultat_vh_ref SET ROW = frvhr WHERE id = frvhr.id;
+          END IF;
+        ELSE code := code;
+      END CASE;
+      code := t_res.NEXT(code);
+    END LOOP;
+  END;
+
+
+
+  PROCEDURE SAVE_TO_TEST(passed NUMERIC) IS
+    vh t_volume_horaire;
+  BEGIN
+    UPDATE formule_test_intervenant SET
+      c_service_du = CASE WHEN passed = 1 THEN intervenant.service_du ELSE NULL END,
+      debug_info = intervenant.debug_info
+    WHERE id = intervenant.id;
+
+    FOR i IN 1 .. volumes_horaires.length LOOP
+      vh := volumes_horaires.items(i);
+      UPDATE formule_test_volume_horaire SET
+        c_service_fi               = CASE WHEN passed = 1 THEN vh.service_fi ELSE NULL END,
+        c_service_fa               = CASE WHEN passed = 1 THEN vh.service_fa ELSE NULL END,
+        c_service_fc               = CASE WHEN passed = 1 THEN vh.service_fc ELSE NULL END,
+        c_service_referentiel      = CASE WHEN passed = 1 THEN vh.service_referentiel ELSE NULL END,
+        c_heures_compl_fi          = CASE WHEN passed = 1 THEN vh.heures_compl_fi ELSE NULL END,
+        c_heures_compl_fa          = CASE WHEN passed = 1 THEN vh.heures_compl_fa ELSE NULL END,
+        c_heures_compl_fc          = CASE WHEN passed = 1 THEN vh.heures_compl_fc ELSE NULL END,
+        c_heures_compl_fc_majorees = CASE WHEN passed = 1 THEN vh.heures_compl_fc_majorees ELSE NULL END,
+        c_heures_compl_referentiel = CASE WHEN passed = 1 THEN vh.heures_compl_referentiel ELSE NULL END,
+        debug_info                 = vh.debug_info
+      WHERE
+        id = COALESCE(vh.volume_horaire_id,vh.volume_horaire_ref_id);
+    END LOOP;
+  END;
+
+
+
+  PROCEDURE CALCULER( INTERVENANT_ID NUMERIC ) IS
+    type_volume_horaire_id NUMERIC;
+    etat_volume_horaire_id NUMERIC;
+  BEGIN
+    intervenant.id := intervenant_id;
+
+    IF NOT in_calculer_tout THEN
+      formule_definition := ose_parametre.get_formule;
+    END IF;
+
+    LOAD_INTERVENANT_FROM_BDD;
+    IF intervenant.id IS NULL THEN -- intervenant non trouvé
+      RETURN;
+    END IF;
+    IF NOT in_calculer_tout THEN
+      LOAD_VH_FROM_BDD;
+    END IF;
+
+    debug_actif := FALSE;
+    IF all_volumes_horaires.exists(intervenant.id) THEN
+      type_volume_horaire_id := all_volumes_horaires(intervenant.id).FIRST;
+      LOOP EXIT WHEN type_volume_horaire_id IS NULL;
+        intervenant.type_volume_horaire_id := type_volume_horaire_id;
+        etat_volume_horaire_id := all_volumes_horaires(intervenant.id)(type_volume_horaire_id).FIRST;
+        LOOP EXIT WHEN etat_volume_horaire_id IS NULL;
+          intervenant.etat_volume_horaire_id := etat_volume_horaire_id;
+          volumes_horaires := all_volumes_horaires(intervenant.id)(type_volume_horaire_id)(etat_volume_horaire_id);
+          EXECUTE IMMEDIATE \'BEGIN \' || formule_definition.package_name || \'.\' || formule_definition.procedure_name || \'; END;\';
+          all_volumes_horaires(intervenant.id)(type_volume_horaire_id)(etat_volume_horaire_id) := volumes_horaires;
+          etat_volume_horaire_id := all_volumes_horaires(intervenant.id)(type_volume_horaire_id).NEXT(etat_volume_horaire_id);
+        END LOOP;
+        type_volume_horaire_id := all_volumes_horaires(intervenant.id).NEXT(type_volume_horaire_id);
+      END LOOP;
+    END IF;
+
+    SAVE_TO_BDD;
+
+    OSE_EVENT.ON_AFTER_FORMULE_CALC( CALCULER.INTERVENANT_ID );
+  END;
+
+  PROCEDURE CALCULER_TOUT( ANNEE_ID NUMERIC DEFAULT NULL ) IS
+    i_id NUMERIC;
+  BEGIN
+    formule_definition := ose_parametre.get_formule;
+    intervenant.id := null;
+    LOAD_VH_FROM_BDD;
+
+    in_calculer_tout := true;
+    i_id := all_volumes_horaires.FIRST;
+    LOOP EXIT WHEN i_id IS NULL;
+      CALCULER( i_id );
+      COMMIT;
+      i_id := all_volumes_horaires.NEXT(i_id);
+    END LOOP;
+    in_calculer_tout := false;
+  END;
+
+
+
+  PROCEDURE TEST( INTERVENANT_TEST_ID NUMERIC ) IS
+    procedure_name VARCHAR2(30);
+    package_name VARCHAR2(30);
+  BEGIN
+    intervenant.id := INTERVENANT_TEST_ID;
+
+    SELECT
+      package_name, procedure_name INTO package_name, procedure_name
+    FROM
+      formule f JOIN formule_test_intervenant fti ON fti.formule_id = f.id
+    WHERE
+      fti.id = intervenant.id;
+
+    LOAD_INTERVENANT_FROM_TEST;
+    LOAD_VH_FROM_TEST;
+    debug_actif := TRUE;
+
+    BEGIN
+      EXECUTE IMMEDIATE \'BEGIN \' || package_name || \'.\' || procedure_name || \'; END;\';
+      SAVE_TO_TEST(1);
+    EXCEPTION WHEN OTHERS THEN
+      SAVE_TO_TEST(0);
+      RAISE_APPLICATION_ERROR(-20001, dbms_utility.format_error_backtrace,true);
+    END;
+  END;
+
+
+
+  PROCEDURE TEST_TOUT IS
+  BEGIN
+    FOR d IN (SELECT id FROM formule_test_intervenant)
+    LOOP
+      TEST( d.id );
+    END LOOP;
+  END;
+
+
+
+  PROCEDURE CALCULER_TBL( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    intervenant_id NUMERIC;
+    TYPE r_cursor IS REF CURSOR;
+    diff_cur r_cursor;
+  BEGIN
+    OPEN diff_cur FOR \'WITH interv AS (SELECT id intervenant_id, intervenant.* FROM intervenant)
+    SELECT intervenant_id FROM interv WHERE \' || unicaen_tbl.PARAMS_TO_CONDS( params );
+    LOOP
+      FETCH diff_cur INTO intervenant_id; EXIT WHEN diff_cur%NOTFOUND;
+      BEGIN
+        CALCULER( intervenant_id );
+      END;
+    END LOOP;
+    CLOSE diff_cur;
+  END;
+
+
+
+  PROCEDURE DEBUG_INTERVENANT IS
+  BEGIN
+    ose_test.echo(\'OSE Formule DEBUG Intervenant\');
+    ose_test.echo(\'id                             = \' || intervenant.id);
+    ose_test.echo(\'annee_id                       = \' || intervenant.annee_id);
+    ose_test.echo(\'structure_id                   = \' || intervenant.structure_id);
+    ose_test.echo(\'type_volume_horaire_id         = \' || intervenant.type_volume_horaire_id);
+    ose_test.echo(\'heures_decharge                = \' || intervenant.heures_decharge);
+    ose_test.echo(\'heures_service_statutaire      = \' || intervenant.heures_service_statutaire);
+    ose_test.echo(\'heures_service_modifie         = \' || intervenant.heures_service_modifie);
+    ose_test.echo(\'depassement_service_du_sans_hc = \' || CASE WHEN intervenant.depassement_service_du_sans_hc THEN \'OUI\' ELSE \'NON\' END);
+    ose_test.echo(\'service_du                     = \' || intervenant.service_du);
+  END;
+
+  PROCEDURE DEBUG_VOLUMES_HORAIRES(VOLUME_HORAIRE_ID NUMERIC DEFAULT NULL) IS
+    type_volume_horaire_id NUMERIC;
+    etat_volume_horaire_id NUMERIC;
+    vh t_volume_horaire;
+  BEGIN
+    ose_test.echo(\'OSE Formule DEBUG Intervenant\');
+
+    type_volume_horaire_id := all_volumes_horaires(intervenant.id).FIRST;
+    LOOP EXIT WHEN type_volume_horaire_id IS NULL;
+      etat_volume_horaire_id := all_volumes_horaires(intervenant.id)(type_volume_horaire_id).FIRST;
+      LOOP EXIT WHEN etat_volume_horaire_id IS NULL;
+        ose_test.echo(\'tvh=\' || type_volume_horaire_id || \', evh=\' || etat_volume_horaire_id);
+        FOR i IN 1 .. all_volumes_horaires(intervenant.id)(type_volume_horaire_id)(etat_volume_horaire_id).length LOOP
+          vh := all_volumes_horaires(intervenant.id)(type_volume_horaire_id)(etat_volume_horaire_id).items(i);
+          IF VOLUME_HORAIRE_ID IS NULL OR VOLUME_HORAIRE_ID = vh.volume_horaire_id OR VOLUME_HORAIRE_ID = vh.volume_horaire_ref_id THEN
+            ose_test.echo(\'volume_horaire_id         = \' || vh.volume_horaire_id);
+            ose_test.echo(\'volume_horaire_ref_id     = \' || vh.volume_horaire_ref_id);
+            ose_test.echo(\'service_id                = \' || vh.service_id);
+            ose_test.echo(\'service_referentiel_id    = \' || vh.service_referentiel_id);
+            ose_test.echo(\'taux_fi                   = \' || vh.taux_fi);
+            ose_test.echo(\'taux_fa                   = \' || vh.taux_fa);
+            ose_test.echo(\'taux_fc                   = \' || vh.taux_fc);
+            ose_test.echo(\'ponderation_service_du    = \' || vh.ponderation_service_du);
+            ose_test.echo(\'ponderation_service_compl = \' || vh.ponderation_service_compl);
+            ose_test.echo(\'structure_id              = \' || vh.structure_id);
+            ose_test.echo(\'structure_is_affectation  = \' || CASE WHEN vh.structure_is_affectation THEN \'OUI\' ELSE \'NON\' END);
+            ose_test.echo(\'structure_is_univ         = \' || CASE WHEN vh.structure_is_univ THEN \'OUI\' ELSE \'NON\' END);
+            ose_test.echo(\'service_statutaire        = \' || CASE WHEN vh.service_statutaire THEN \'OUI\' ELSE \'NON\' END);
+            ose_test.echo(\'heures                    = \' || vh.heures);
+            ose_test.echo(\'taux_service_du           = \' || vh.taux_service_du);
+            ose_test.echo(\'taux_service_compl        = \' || vh.taux_service_compl);
+            ose_test.echo(\'param_1                   = \' || vh.param_1);
+            ose_test.echo(\'param_2                   = \' || vh.param_2);
+            ose_test.echo(\'param_3                   = \' || vh.param_3);
+            ose_test.echo(\'param_4                   = \' || vh.param_4);
+            ose_test.echo(\'param_5                   = \' || vh.param_5);
+            ose_test.echo(\'service_fi                = \' || vh.service_fi);
+            ose_test.echo(\'service_fa                = \' || vh.service_fa);
+            ose_test.echo(\'service_fc                = \' || vh.service_fc);
+            ose_test.echo(\'service_referentiel       = \' || vh.service_referentiel);
+            ose_test.echo(\'heures_compl_fi           = \' || vh.heures_compl_fi);
+            ose_test.echo(\'heures_compl_fa           = \' || vh.heures_compl_fa);
+            ose_test.echo(\'heures_compl_fc           = \' || vh.heures_compl_fc);
+            ose_test.echo(\'heures_compl_fc_majorees  = \' || vh.heures_compl_fc_majorees);
+            ose_test.echo(\'heures_compl_referentiel  = \' || vh.heures_compl_referentiel);
+            ose_test.echo(\'\');
+          END IF;
+        END LOOP;
+        etat_volume_horaire_id := all_volumes_horaires(intervenant.id)(type_volume_horaire_id).NEXT(etat_volume_horaire_id);
+      END LOOP;
+      type_volume_horaire_id := all_volumes_horaires(intervenant.id).NEXT(type_volume_horaire_id);
+    END LOOP;
+  END;
+
+END OSE_FORMULE;',
+    ),
+    'OSE_HISTO' => 
+    array (
+      'name' => 'OSE_HISTO',
+      'definition' => 'CREATE OR REPLACE PACKAGE "OSE_HISTO" AS
+
+  FUNCTION FILTRE( histo_debut NUMERIC, histo_fin NUMERIC ) RETURN NUMERIC;
+
+END OSE_HISTO;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "OSE_HISTO" AS
+
+  FUNCTION FILTRE( histo_debut NUMERIC, histo_fin NUMERIC ) RETURN NUMERIC IS
+  BEGIN
+    RETURN 1;
+  END;
+
+END OSE_HISTO;',
+    ),
+    'OSE_PAIEMENT' => 
+    array (
+      'name' => 'OSE_PAIEMENT',
+      'definition' => 'CREATE OR REPLACE PACKAGE "OSE_PAIEMENT" AS
+
+  PROCEDURE CHECK_BAD_PAIEMENTS( FORMULE_RES_SERVICE_ID NUMERIC DEFAULT NULL, FORMULE_RES_SERVICE_REF_ID NUMERIC DEFAULT NULL );
+
+END OSE_PAIEMENT;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "OSE_PAIEMENT" AS
+
+  PROCEDURE CHECK_BAD_PAIEMENTS( FORMULE_RES_SERVICE_ID NUMERIC DEFAULT NULL, FORMULE_RES_SERVICE_REF_ID NUMERIC DEFAULT NULL ) IS
+    cc NUMERIC;
+  BEGIN
+    SELECT count(*) INTO cc
+    FROM mise_en_paiement mep
+    WHERE
+      mep.histo_destruction IS NULL
+      AND mep.formule_res_service_id = NVL( CHECK_BAD_PAIEMENTS.FORMULE_RES_SERVICE_ID, mep.formule_res_service_id )
+      AND mep.formule_res_service_ref_id = NVL( CHECK_BAD_PAIEMENTS.FORMULE_RES_SERVICE_REF_ID, mep.formule_res_service_ref_id )
+  ;
+
+    IF (cc > 0) THEN
+      raise_application_error(-20101, \'Il est impossible d\'\'effectuer cette action : des demandes de mise en paiement ont été saisies et ne peuvent pas être modifiées\');
+    ELSE
+      DELETE FROM mise_en_paiement WHERE
+        histo_destruction IS NOT NULL
+        AND formule_res_service_id = NVL( CHECK_BAD_PAIEMENTS.FORMULE_RES_SERVICE_ID, formule_res_service_id )
+        AND formule_res_service_ref_id = NVL( CHECK_BAD_PAIEMENTS.FORMULE_RES_SERVICE_REF_ID, formule_res_service_ref_id )
+      ;
+    END IF;
+  END;
+
+END OSE_PAIEMENT;',
+    ),
+    'OSE_PARAMETRE' => 
+    array (
+      'name' => 'OSE_PARAMETRE',
+      'definition' => 'CREATE OR REPLACE PACKAGE "OSE_PARAMETRE" AS
+
+  function get_etablissement return Numeric;
+  function get_annee return Numeric;
+  function get_annee_import return Numeric;
+  function get_ose_user return Numeric;
+  function get_formule RETURN formule%rowtype;
+
+END OSE_PARAMETRE;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "OSE_PARAMETRE" AS
+
+  cache_ose_user NUMERIC;
+  cache_annee_id NUMERIC;
+
+  FUNCTION get_etablissement return Numeric AS
+    etab_id numeric;
+  BEGIN
+    select to_number(valeur) into etab_id from parametre where nom = \'etablissement\';
+    RETURN etab_id;
+  END get_etablissement;
+
+  FUNCTION get_annee return Numeric AS
+    annee_id numeric;
+  BEGIN
+    IF cache_annee_id IS NOT NULL THEN RETURN cache_annee_id; END IF;
+    select to_number(valeur) into annee_id from parametre where nom = \'annee\';
+    cache_annee_id := annee_id;
+    RETURN cache_annee_id;
+  END get_annee;
+
+  FUNCTION get_annee_import RETURN NUMERIC AS
+    annee_id NUMERIC;
+  BEGIN
+    SELECT to_number(valeur) INTO annee_id FROM parametre WHERE nom = \'annee_import\';
+    RETURN annee_id;
+  END get_annee_import;
+
+  FUNCTION get_ose_user return NUMERIC AS
+    ose_user_id numeric;
+  BEGIN
+    IF cache_ose_user IS NOT NULL THEN RETURN cache_ose_user; END IF;
+    select to_number(valeur) into ose_user_id from parametre where nom = \'oseuser\';
+    cache_ose_user := ose_user_id;
+    RETURN cache_ose_user;
+  END get_ose_user;
+
+  FUNCTION get_formule RETURN formule%rowtype IS
+    fdata formule%rowtype;
+  BEGIN
+    SELECT
+      f.* INTO fdata
+    FROM
+      formule f
+      JOIN parametre p ON f.id = to_number(p.valeur)
+    WHERE p.nom = \'formule\';
+    RETURN fdata;
+  END;
+
+END OSE_PARAMETRE;',
+    ),
+    'OSE_TEST' => 
+    array (
+      'name' => 'OSE_TEST',
+      'definition' => 'CREATE OR REPLACE PACKAGE "OSE_TEST" AS
+
+  DEBUG_ENABLED BOOLEAN DEFAULT FALSE;
+
+  -- SET SERVEROUTPUT ON
+
+  PROCEDURE SHOW_SUCCES;
+
+  PROCEDURE HIDE_SUCCES;
+
+  PROCEDURE ECHO( MSG CLOB );
+
+  PROCEDURE INIT;
+
+  PROCEDURE SHOW_STATS;
+
+  PROCEDURE DEBUT( TEST_NAME CLOB );
+
+  PROCEDURE FIN;
+
+  PROCEDURE ASSERT( condition BOOLEAN, MSG CLOB );
+
+  PROCEDURE HOROINIT;
+
+  PROCEDURE HORODATAGE( msg VARCHAR2 );
+
+  FUNCTION GET_STRUCTURE_BY_ID( id NUMERIC ) RETURN structure%rowtype;
+
+END OSE_TEST;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "OSE_TEST" AS
+  TYPE OUT_LIST IS TABLE OF CLOB;
+  HTS TIMESTAMP;
+
+  SUCCES_SHOWN BOOLEAN DEFAULT TRUE;
+  T_SUCCES_COUNT NUMERIC DEFAULT 0;
+  T_ECHECS_COUNT NUMERIC DEFAULT 0;
+  A_SUCCES_COUNT NUMERIC DEFAULT 0;
+  A_ECHECS_COUNT NUMERIC DEFAULT 0;
+  CURRENT_TEST CLOB;
+  CURRENT_TEST_OUTPUT_BUFFER OUT_LIST := OUT_LIST();
+  CURRENT_TEST_OUTPUT_BUFFER_ERR BOOLEAN;
+
+  PROCEDURE SHOW_SUCCES IS
+  BEGIN
+    SUCCES_SHOWN := true;
+  END SHOW_SUCCES;
+
+  PROCEDURE HIDE_SUCCES IS
+  BEGIN
+    SUCCES_SHOWN := false;
+  END HIDE_SUCCES;
+
+  PROCEDURE DEBUT( TEST_NAME CLOB ) IS
+  BEGIN
+    CURRENT_TEST := TEST_NAME;
+    CURRENT_TEST_OUTPUT_BUFFER_ERR := FALSE;
+    echo (\' \'); echo(\'TEST \' || TEST_NAME || \' >>>>>>>>>>\' );
+  END;
+
+  PROCEDURE FIN IS
+    TEST_NAME CLOB;
+  BEGIN
+    IF CURRENT_TEST_OUTPUT_BUFFER_ERR THEN
+      T_ECHECS_COUNT := T_ECHECS_COUNT + 1;
+      echo(\'>>>>>>>>>> FIN DU TEST \' || CURRENT_TEST ); echo (\' \');
+      CURRENT_TEST := NULL;
+
+      FOR i IN 1 .. CURRENT_TEST_OUTPUT_BUFFER.COUNT LOOP
+        echo( CURRENT_TEST_OUTPUT_BUFFER(i) );
+      END LOOP;
+    ELSE
+      T_SUCCES_COUNT := T_SUCCES_COUNT + 1;
+      TEST_NAME := CURRENT_TEST;
+      CURRENT_TEST := NULL;
+      echo(\'SUCCÈS DU TEST : \' || TEST_NAME );
+    END IF;
+    CURRENT_TEST_OUTPUT_BUFFER.DELETE; -- clear buffer
+  END;
+
+  PROCEDURE ECHO( MSG CLOB ) IS
+  BEGIN
+    IF CURRENT_TEST IS NULL THEN
+      dbms_output.put_line(MSG);
+    ELSE
+      CURRENT_TEST_OUTPUT_BUFFER.EXTEND;
+      CURRENT_TEST_OUTPUT_BUFFER (CURRENT_TEST_OUTPUT_BUFFER.LAST) := MSG;
+    END IF;
+  END;
+
+  PROCEDURE INIT IS
+  BEGIN
+    T_SUCCES_COUNT  := 0;
+    T_ECHECS_COUNT  := 0;
+    A_SUCCES_COUNT  := 0;
+    A_ECHECS_COUNT  := 0;
+    CURRENT_TEST    := NULL;
+  END INIT;
+
+  PROCEDURE SHOW_STATS IS
+  BEGIN
+    echo ( \' \' );
+    echo ( \'********************************* STATISTIQUES *********************************\' );
+    echo ( \' \' );
+    echo ( \'   - nombre de tests passés avec succès :       \' || T_SUCCES_COUNT );
+    echo ( \'   - nombre de tests ayant échoué :             \' || T_ECHECS_COUNT );
+    echo ( \' \' );
+    echo ( \'   - nombre d\'\'assertions passés avec succès :   \' || A_SUCCES_COUNT );
+    echo ( \'   - nombre d\'\'assertions ayant échoué :         \' || A_ECHECS_COUNT );
+    echo ( \' \' );
+    echo ( \'********************************************************************************\' );
+    echo ( \' \' );
+  END;
+
+  PROCEDURE ASSERT( condition BOOLEAN, MSG CLOB ) IS
+  BEGIN
+    IF condition THEN
+      A_SUCCES_COUNT := A_SUCCES_COUNT + 1;
+      IF SUCCES_SHOWN THEN
+        ECHO(\'        SUCCÈS : \' || MSG );
+      END IF;
+    ELSE
+      A_ECHECS_COUNT := A_ECHECS_COUNT + 1;
+      CURRENT_TEST_OUTPUT_BUFFER_ERR := TRUE;
+      ECHO(\'        ** ECHEC ** : \' || MSG );
+    END IF;
+  END;
+
+  PROCEDURE HOROINIT IS
+  BEGIN
+    HTS := systimestamp;
+  END;
+
+  PROCEDURE HORODATAGE( msg VARCHAR2 ) IS
+    diff INTERVAL DAY(9) TO SECOND(3);
+  BEGIN
+    IF HTS IS NULL THEN
+      HTS := systimestamp;
+      RETURN;
+    END IF;
+
+    diff := systimestamp - HTS;
+    HTS := systimestamp;
+
+    echo(msg || \' (\' || diff || \')\');
+  END;
+
+  FUNCTION GET_STRUCTURE_BY_ID( id NUMERIC ) RETURN structure%rowtype IS
+    res structure%rowtype;
+  BEGIN
+    IF ID IS NULL THEN RETURN res; END IF;
+    SELECT * INTO res FROM structure WHERE id = GET_STRUCTURE_BY_ID.id;
+    RETURN res;
+  END;
+
+END OSE_TEST;',
+    ),
+    'OSE_VALIDATION' => 
+    array (
+      'name' => 'OSE_VALIDATION',
+      'definition' => 'CREATE OR REPLACE PACKAGE "OSE_VALIDATION" AS
+
+  FUNCTION can_devalider ( v validation%rowtype ) RETURN varchar2;
+
+END OSE_VALIDATION;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "OSE_VALIDATION" AS
+
+  FUNCTION can_devalider ( v validation%rowtype ) RETURN varchar2 IS
+    tv type_validation%rowtype;
+    nb NUMERIC;
+    result varchar2(500) default null;
+  BEGIN
+
+    SELECT * INTO tv FROM type_validation WHERE id = v.type_validation_id;
+
+    IF tv.code = \'SERVICES_PAR_COMP\' THEN
+
+      SELECT
+        SUM(CASE WHEN c.id IS NOT NULL THEN 1 ELSE 0 END) INTO nb
+      FROM
+        validation_vol_horaire vvh
+        JOIN volume_horaire vh ON vh.id = vvh.volume_horaire_id
+        LEFT JOIN contrat c ON c.id = vh.contrat_id AND c.histo_destruction IS NULL
+      WHERE
+        vvh.validation_id = v.id;
+
+      -- Si des volumes horaires ont déjà fait l\'objet de contrats alors pas de dévalidation possible des heures
+      IF nb > 0 THEN
+        result := \'La dévalidation est impossible car des contrats ont déjà été édités sur la base de ces heures.\';
+      END IF;
+
+    END IF;
+
+    IF tv.code = \'CLOTURE_REALISE\' THEN
+
+      SELECT
+        COUNT(*) INTO nb
+      FROM
+        tbl_paiement p
+      WHERE
+        p.periode_paiement_id IS NOT NULL
+        AND p.intervenant_id = v.intervenant_id
+        AND ROWNUM = 1;
+
+      IF nb > 0 THEN
+        result := \'La suppression de la clôture des services réalisés est impossible car des heures ont été payées ou bien le paiement a été demandé.\';
+      END IF;
+
+    END IF;
+
+    RETURN result;
+  END;
+
+END OSE_VALIDATION;',
+    ),
+    'OSE_WORKFLOW' => 
+    array (
+      'name' => 'OSE_WORKFLOW',
+      'definition' => 'CREATE OR REPLACE PACKAGE "OSE_WORKFLOW" AS
+
+  PACKAGE_SUJET VARCHAR2(80) DEFAULT \'OSE_WORKFLOW\';
+
+  PROCEDURE CALCULER( INTERVENANT_ID NUMERIC );
+  PROCEDURE CALCULER_TOUT( ANNEE_ID NUMERIC DEFAULT NULL );
+  PROCEDURE CALCULER_TBL( PARAMS UNICAEN_TBL.T_PARAMS );
+
+  PROCEDURE DEP_CHECK( etape_suiv_id NUMERIC, etape_prec_id NUMERIC );
+
+  PROCEDURE SET_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL);
+  FUNCTION GET_INTERVENANT RETURN NUMERIC;
+  FUNCTION MATCH_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL) RETURN NUMERIC;
+END OSE_WORKFLOW;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "OSE_WORKFLOW" AS
+  INTERVENANT_ID NUMERIC DEFAULT NULL;
+
+  TYPE t_workflow IS TABLE OF tbl_workflow%rowtype INDEX BY PLS_INTEGER;
+
+  TYPE t_dep IS TABLE OF wf_etape_dep%rowtype INDEX BY PLS_INTEGER;
+  TYPE t_deps IS TABLE OF t_dep INDEX BY PLS_INTEGER;
+  TYPE t_deps_bloquantes IS TABLE OF wf_dep_bloquante%rowtype INDEX BY PLS_INTEGER;
+
+  -- propre au calcul courant ! !
+  etapes          t_workflow;
+  deps            t_deps;
+  deps_initialized boolean default false;
+  deps_bloquantes t_deps_bloquantes;
+  deps_bloquantes_index PLS_INTEGER DEFAULT 1;
+
+
+
+
+  FUNCTION ETAPE_FRANCHIE( etape tbl_workflow%rowtype, need_done boolean default false ) RETURN FLOAT IS
+    res FLOAT DEFAULT 0;
+  BEGIN
+    IF etape.objectif = 0 THEN
+      IF need_done THEN RETURN 0; ELSE RETURN 1; END IF;
+    END IF;
+
+    IF etape.atteignable = 0 THEN RETURN 0; END IF;
+
+    IF etape.objectif > 0 THEN
+      res := etape.realisation / etape.objectif;
+    END IF;
+
+    IF res > 1 THEN
+      res := 1;
+    END IF;
+
+    RETURN res;
+  END;
+
+
+
+  PROCEDURE POPULATE_ETAPES( INTERVENANT_ID NUMERIC ) IS
+    i NUMERIC DEFAULT 0;
+  BEGIN
+    etapes.delete; -- initialisation
+
+    FOR wie IN (
+      SELECT
+        wep.annee_id                                          annee_id,
+        e.id                                                  etape_id,
+        w.structure_id                                        structure_id,
+        ROUND(COALESCE(w.objectif,0),2)                       objectif,
+        CASE WHEN w.intervenant_id IS NULL THEN 0 ELSE 1 END  atteignable,
+        ROUND(COALESCE(w.realisation,0),2)                    realisation,
+        wep.etape_code                                        etape_code,
+        si.id                                                 statut_intervenant_id,
+        ti.id                                                 type_intervenant_id,
+        ti.code                                               type_intervenant_code
+      FROM
+        v_workflow_etape_pertinente wep
+        JOIN wf_etape                 e ON e.code = wep.etape_code
+        JOIN intervenant              i ON i.id = wep.intervenant_id
+        JOIN statut_intervenant      si ON si.id = i.statut_id
+        JOIN type_intervenant        ti ON ti.id = si.type_intervenant_id
+        LEFT JOIN v_tbl_workflow      w ON w.intervenant_id = wep.intervenant_id AND w.etape_code = wep.etape_code
+      WHERE
+        wep.intervenant_id = POPULATE_ETAPES.INTERVENANT_ID
+        AND (e.obligatoire = 1 OR w.intervenant_id IS NOT NULL)
+      ORDER BY
+        e.ordre
+    ) LOOP
+      etapes( i ).annee_id              := wie.annee_id;
+      etapes( i ).intervenant_id        := intervenant_id;
+      etapes( i ).etape_id              := wie.etape_id;
+      etapes( i ).structure_id          := wie.structure_id;
+      etapes( i ).atteignable           := wie.atteignable;
+      etapes( i ).objectif              := wie.objectif;
+      etapes( i ).realisation           := wie.realisation;
+      etapes( i ).etape_code            := wie.etape_code;
+      etapes( i ).statut_intervenant_id := wie.statut_intervenant_id;
+      etapes( i ).type_intervenant_id   := wie.type_intervenant_id;
+      etapes( i ).type_intervenant_code := wie.type_intervenant_code;
+      i := i + 1;
+    END LOOP;
+  END;
+
+
+
+  -- peuple l\'arbre des dépendances entre étapes de workflow
+  PROCEDURE POPULATE_DEPS( INTERVENANT_ID NUMERIC ) IS
+    s PLS_INTEGER; -- index de l\'étape suivante
+    p PLS_INTEGER; -- index de l\'étape précédente
+  BEGIN
+    IF deps_initialized THEN RETURN; END IF;
+
+    FOR d IN (
+      SELECT
+        wed.*
+      FROM
+        wf_etape_dep wed
+        JOIN intervenant i ON i.id = POPULATE_DEPS.INTERVENANT_ID
+        JOIN statut_intervenant si ON si.id = i.statut_id
+      WHERE
+        active = 1
+        AND wed.type_intervenant_id IS NULL OR wed.type_intervenant_id = si.type_intervenant_id
+    ) LOOP
+      deps(d.etape_suiv_id)(d.etape_prec_id) := d;
+    END LOOP;
+
+    deps_initialized := true;
+  END;
+
+
+
+  PROCEDURE ADD_DEP_BLOQUANTE( wf_etape_dep_id NUMERIC, tbl_workflow_id NUMERIC ) IS
+  BEGIN
+    deps_bloquantes_index := deps_bloquantes_index + 1;
+    deps_bloquantes(deps_bloquantes_index).wf_etape_dep_id := wf_etape_dep_id;
+    deps_bloquantes(deps_bloquantes_index).tbl_workflow_id := tbl_workflow_id;
+  END;
+
+
+
+  PROCEDURE CALCUL_ATTEIGNABLE( s PLS_INTEGER, d wf_etape_dep%rowtype ) IS
+    count_tested PLS_INTEGER DEFAULT 0;
+    count_na     PLS_INTEGER DEFAULT 0;
+    p PLS_INTEGER; -- index de l\'étape précédente
+  BEGIN
+
+    p := etapes.FIRST;
+    LOOP EXIT WHEN p IS NULL;
+      IF etapes(p).etape_id = d.etape_prec_id THEN
+        -- on restreint en fonction du périmètre visé :
+        --  - si la dépendance n\'est pas locale alors on teste
+        --  - si les structures aussi bien de l\'étape testée que de l\'étape dépendante sont nulles alors on teste aussi car elles sont "universelles"
+        --  - si les structures sont équivalentes alors on teste, sinon elles ne sont pas dans le périmètre local
+        IF
+          (d.locale = 0)
+          OR etapes(s).structure_id IS NULL
+          OR etapes(p).structure_id IS NULL
+          OR etapes(s).structure_id = etapes(p).structure_id
+        THEN
+          count_tested := count_tested + 1;
+
+          -- on teste le type de franchissement désiré et si ce n\'est pas bon alors on déclare l\'étape courante non atteignable
+
+          --  - idem si on a besoin d\'une dépendance partiellement franchie est qu\'elle ne l\'est pas
+          IF d.partielle = 1 THEN
+            IF ETAPE_FRANCHIE(etapes(p), d.obligatoire=1) = 0 THEN -- si le franchissement est totalement inexistant
+              count_na := count_na + 1;
+            END IF;
+          --  - si on a besoin d\'une dépendance complètement franchie est qu\'elle ne l\'est pas alors ce n\'est pas atteignable
+          ELSE
+            IF ETAPE_FRANCHIE(etapes(p), d.obligatoire=1) < 1 THEN
+              count_na := count_na + 1;
+            END IF;
+          END IF;
+        END IF;
+
+      END IF;
+      p := etapes.next(p);
+    END LOOP;
+
+    -- on applique le résultat uniquement si des étapes dépendantes ont été trouvées
+    IF count_tested > 0 THEN
+
+      -- si les étapes dépendantes ont été intégralement franchies
+      IF d.integrale = 1 THEN
+        -- si l\'intégralité des étapes est atteignable = NON si au moins une ne l\'est pas
+        IF count_na > 0 THEN
+          etapes(s).atteignable := 0;
+          ADD_DEP_BLOQUANTE( d.id, s );
+        END IF;
+
+      -- sinon...
+      ELSE
+        -- si au moins une étape est atteignable = NON si toutes ne sont pas atteignables
+        IF count_tested = count_na THEN
+          etapes(s).atteignable := 0;
+          ADD_DEP_BLOQUANTE( d.id, s );
+        END IF;
+      END IF;
+    END IF;
+  END;
+
+
+
+  -- calcule si les étapes sont atteignables ou non
+  PROCEDURE CALCUL_ATTEIGNABLES IS
+    e PLS_INTEGER; -- index de l\'étape courante
+    d PLS_INTEGER; -- ID de l\'étape précédante
+  BEGIN
+    deps_bloquantes.delete;
+    e := etapes.FIRST;
+    LOOP EXIT WHEN e IS NULL;
+      IF deps.exists(etapes(e).etape_id) THEN -- s\'il n\'y a aucune dépendance alors pas de test!!
+        d := deps(etapes(e).etape_id).FIRST;
+        LOOP EXIT WHEN d IS NULL;
+
+          CALCUL_ATTEIGNABLE(e, deps(etapes(e).etape_id)(d));
+
+          d := deps(etapes(e).etape_id).next(d);
+        END LOOP;
+      END IF;
+      e := etapes.next(e);
+    END LOOP;
+  END;
+
+
+
+  FUNCTION ENREGISTRER_ETAPE( e tbl_workflow%rowtype ) RETURN NUMERIC IS
+    n_etape_id NUMERIC;
+  BEGIN
+
+    MERGE INTO tbl_workflow w USING dual ON (
+
+          w.intervenant_id      = e.intervenant_id
+      AND w.etape_id            = e.etape_id
+      AND NVL(w.structure_id,0) = NVL(e.structure_id,0)
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      atteignable                  = e.atteignable,
+      objectif                     = e.objectif,
+      realisation                  = e.realisation,
+      etape_code                   = e.etape_code,
+      statut_intervenant_id        = e.statut_intervenant_id,
+      type_intervenant_id          = e.type_intervenant_id,
+      type_intervenant_code        = e.type_intervenant_code,
+      to_delete                    = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      id,
+      annee_id,
+      intervenant_id,
+      etape_id,
+      structure_id,
+      atteignable,
+      objectif,
+      realisation,
+      etape_code,
+      statut_intervenant_id,
+      type_intervenant_id,
+      type_intervenant_code,
+      to_delete
+
+    ) VALUES (
+
+      TBL_WORKFLOW_ID_SEQ.NEXTVAL,
+      e.annee_id,
+      e.intervenant_id,
+      e.etape_id,
+      e.structure_id,
+      e.atteignable,
+      e.objectif,
+      e.realisation,
+      e.etape_code,
+      e.statut_intervenant_id,
+      e.type_intervenant_id,
+      e.type_intervenant_code,
+      0
+
+    );
+
+    SELECT w.id INTO n_etape_id FROM tbl_workflow w WHERE
+      w.intervenant_id          = e.intervenant_id
+      AND w.etape_id            = e.etape_id
+      AND NVL(w.structure_id,0) = NVL(e.structure_id,0)
+    ;
+
+    RETURN n_etape_id;
+  END;
+
+
+
+  PROCEDURE ENREGISTRER_DEP_BLOQUANTE( db wf_dep_bloquante%rowtype ) IS
+  BEGIN
+    MERGE INTO wf_dep_bloquante wdb USING dual ON (
+
+          wdb.wf_etape_dep_id   = db.wf_etape_dep_id
+      AND wdb.tbl_workflow_id   = db.tbl_workflow_id
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      to_delete                 = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      id,
+      wf_etape_dep_id,
+      tbl_workflow_id,
+      to_delete
+
+    ) VALUES (
+
+      WF_DEP_BLOQUANTE_ID_SEQ.NEXTVAL,
+      db.wf_etape_dep_id,
+      db.tbl_workflow_id,
+      0
+
+    );
+  END;
+
+
+
+  PROCEDURE ENREGISTRER( INTERVENANT_ID NUMERIC ) IS
+    i PLS_INTEGER;
+  BEGIN
+
+    UPDATE tbl_workflow SET to_delete = 1 WHERE intervenant_id = ENREGISTRER.INTERVENANT_ID;
+    UPDATE wf_dep_bloquante SET to_delete = 1 WHERE tbl_workflow_id IN (SELECT id FROM tbl_workflow WHERE intervenant_id = ENREGISTRER.INTERVENANT_ID);
+
+    i := etapes.FIRST;
+    LOOP EXIT WHEN i IS NULL;
+      etapes(i).id := ENREGISTRER_ETAPE( etapes(i) );
+      i := etapes.NEXT(i);
+    END LOOP;
+
+    i := deps_bloquantes.FIRST;
+    LOOP EXIT WHEN i IS NULL;
+      deps_bloquantes(i).tbl_workflow_id := etapes(deps_bloquantes(i).tbl_workflow_id).id;
+      ENREGISTRER_DEP_BLOQUANTE( deps_bloquantes(i) );
+      i := deps_bloquantes.NEXT(i);
+    END LOOP;
+
+    DELETE FROM tbl_workflow WHERE TO_DELETE = 1 AND intervenant_id = ENREGISTRER.INTERVENANT_ID;
+    DELETE FROM wf_dep_bloquante WHERE TO_DELETE = 1;
+  END;
+
+
+
+  PROCEDURE DEP_CHECK( etape_suiv_id NUMERIC, etape_prec_id NUMERIC ) IS
+    eso NUMERIC;
+    epo NUMERIC;
+  BEGIN
+    SELECT ordre INTO eso FROM wf_etape WHERE id = etape_suiv_id;
+    SELECT ordre INTO epo FROM wf_etape WHERE id = etape_prec_id;
+
+    IF eso < epo THEN
+      raise_application_error(-20101, \'Une étape de Workflow ne peut dépendre d\'\'une étape située en aval\');
+    END IF;
+    IF eso = epo THEN
+      raise_application_error(-20101, \'Une étape de Workflow ne peut dépendre d\'\'elle-même\');
+    END IF;
+  END;
+
+
+
+  PROCEDURE DEBUG_CALCUL( INTERVENANT_ID NUMERIC ) IS
+    i PLS_INTEGER;
+    d PLS_INTEGER;
+    dep_desc VARCHAR2(200);
+  BEGIN
+    ose_test.echo(\'\');
+    ose_test.echo(\'-- DEBUG WORKFLOW ETAPE INTERVENANT_ID=\'|| INTERVENANT_ID ||\' --\');
+    i := etapes.FIRST;
+    LOOP EXIT WHEN i IS NULL;
+      /*ose_test.echo(
+               \'etape=\'       || RPAD( ose_test.get_wf_etape_by_id(etapes(i).etape_id).code, 30, \' \' )
+          || \', structure=\'   || RPAD( NVL(ose_test.get_structure_by_id(etapes(i).structure_id).libelle_court,\' \'), 20, \' \' )
+          || \', \' || CASE WHEN etapes(i).atteignable=1 THEN \'atteignable\' ELSE \'na\' END
+          || \', objectif= \' || ROUND(etapes(i).objectif)
+          || \', realisation= \' || ROUND(etapes(i).realisation)
+      );*/
+
+      d := deps_bloquantes.FIRST;
+      LOOP EXIT WHEN d IS NULL;
+        IF deps_bloquantes(d).tbl_workflow_id = i THEN
+
+          SELECT
+            we.desc_non_franchie INTO dep_desc
+          FROM
+            wf_etape_dep wed
+            JOIN wf_etape we ON we.id = wed.etape_prec_id
+          WHERE
+            wed.id = deps_bloquantes(d).wf_etape_dep_id;
+
+          ose_test.echo(\'    CAUSE =\' || dep_desc);
+        END IF;
+        d := deps_bloquantes.NEXT(d);
+      END LOOP;
+
+      i := etapes.NEXT(i);
+    END LOOP;
+    ose_test.echo(\'\');
+  END;
+
+
+
+  -- calcul du workflow pour un intervenant
+  PROCEDURE CALCULER( INTERVENANT_ID NUMERIC ) IS
+  BEGIN
+    set_intervenant(intervenant_id);
+    POPULATE_ETAPES( INTERVENANT_ID );
+    POPULATE_DEPS( INTERVENANT_ID );
+    CALCUL_ATTEIGNABLES;
+    IF OSE_TEST.DEBUG_ENABLED THEN
+      DEBUG_CALCUL( INTERVENANT_ID );
+    END IF;
+    ENREGISTRER( INTERVENANT_ID );
+    set_intervenant();
+  END;
+
+
+
+  PROCEDURE CALCULER_TOUT( ANNEE_ID NUMERIC DEFAULT NULL ) IS
+  BEGIN
+    FOR mp IN (
+      SELECT
+        id intervenant_id
+      FROM
+        intervenant i
+      WHERE
+        i.histo_destruction IS NULL
+        AND (CALCULER_TOUT.ANNEE_ID IS NULL OR i.annee_id = CALCULER_TOUT.ANNEE_ID)
+    )
+    LOOP
+      CALCULER( mp.intervenant_id );
+    END LOOP;
+  END;
+
+
+
+  PROCEDURE CALCULER_TBL( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    intervenant_id NUMERIC;
+    TYPE r_cursor IS REF CURSOR;
+    diff_cur r_cursor;
+  BEGIN
+    OPEN diff_cur FOR \'WITH interv AS (SELECT id intervenant_id, intervenant.* FROM intervenant)
+    SELECT intervenant_id FROM interv WHERE \' || unicaen_tbl.PARAMS_TO_CONDS( params );
+    LOOP
+      FETCH diff_cur INTO intervenant_id; EXIT WHEN diff_cur%NOTFOUND;
+      BEGIN
+        CALCULER( intervenant_id );
+      END;
+    END LOOP;
+    CLOSE diff_cur;
+  END;
+
+
+
+  FUNCTION GET_INTERVENANT RETURN NUMERIC IS
+  BEGIN
+    RETURN OSE_WORKFLOW.INTERVENANT_ID;
+  END;
+
+  PROCEDURE SET_INTERVENANT( INTERVENANT_ID NUMERIC DEFAULT NULL) IS
+  BEGIN
+    IF SET_INTERVENANT.INTERVENANT_ID = -1 THEN
+      OSE_WORKFLOW.INTERVENANT_ID := NULL;
+    ELSE
+      OSE_WORKFLOW.INTERVENANT_ID := SET_INTERVENANT.INTERVENANT_ID;
+    END IF;
+  END;
+
+  FUNCTION MATCH_INTERVENANT(INTERVENANT_ID NUMERIC DEFAULT NULL) RETURN NUMERIC IS
+  BEGIN
+    IF OSE_WORKFLOW.INTERVENANT_ID IS NULL OR OSE_WORKFLOW.INTERVENANT_ID = MATCH_INTERVENANT.INTERVENANT_ID THEN
+      RETURN 1;
+    ELSE
+      RETURN 0;
+    END IF;
+  END;
+END OSE_WORKFLOW;',
+    ),
+    'UNICAEN_IMPORT' => 
+    array (
+      'name' => 'UNICAEN_IMPORT',
+      'definition' => 'CREATE OR REPLACE PACKAGE "UNICAEN_IMPORT" AS
+
+  z__SYNC_FILRE__z CLOB DEFAULT \'\';
+  z__IGNORE_UPD_COLS__z CLOB DEFAULT \'\';
+
+  PROCEDURE set_current_user(p_current_user IN INTEGER);
+  FUNCTION get_current_user return INTEGER;
+
+  FUNCTION get_current_annee RETURN INTEGER;
+  PROCEDURE set_current_annee (p_current_annee INTEGER);
+
+  FUNCTION IN_COLUMN_LIST( VALEUR VARCHAR2, CHAMPS CLOB ) RETURN NUMERIC;
+  PROCEDURE REFRESH_MV( mview_name varchar2 );
+  PROCEDURE SYNC_LOG( message CLOB, table_name VARCHAR2 DEFAULT NULL, source_code VARCHAR2 DEFAULT NULL );
+
+  PROCEDURE SYNCHRONISATION( table_name VARCHAR2, SYNC_FILRE CLOB DEFAULT \'\', IGNORE_UPD_COLS CLOB DEFAULT \'\', FORCE_SYNC BOOLEAN DEFAULT FALSE );
+
+
+
+END UNICAEN_IMPORT;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "UNICAEN_IMPORT" AS
+
+  v_current_user INTEGER;
+  v_current_annee INTEGER;
+
+
+
+  FUNCTION get_current_user RETURN INTEGER IS
+  BEGIN
+    IF v_current_user IS NULL THEN
+      v_current_user := OSE_PARAMETRE.GET_OSE_USER();
+    END IF;
+    RETURN v_current_user;
+  END get_current_user;
+
+  PROCEDURE set_current_user (p_current_user INTEGER) is
+  BEGIN
+    v_current_user := p_current_user;
+  END set_current_user;
+
+
+
+  FUNCTION get_current_annee RETURN INTEGER IS
+  BEGIN
+    IF v_current_annee IS NULL THEN
+      v_current_annee := OSE_PARAMETRE.GET_ANNEE_IMPORT();
+    END IF;
+    RETURN v_current_annee;
+  END get_current_annee;
+
+  PROCEDURE set_current_annee (p_current_annee INTEGER) IS
+  BEGIN
+    v_current_annee := p_current_annee;
+  END set_current_annee;
+
+
+
+  PROCEDURE SYNCHRONISATION( table_name VARCHAR2, SYNC_FILRE CLOB DEFAULT \'\', IGNORE_UPD_COLS CLOB DEFAULT \'\', FORCE_SYNC BOOLEAN DEFAULT FALSE ) IS
+    ok NUMERIC(1);
+    sync NUMERIC;
+  BEGIN
+    IF FORCE_SYNC THEN
+      sync := 1;
+    ELSE
+      sync := 0;
+    END IF;
+
+    SELECT COUNT(*) INTO ok FROM import_tables it WHERE it.table_name = SYNCHRONISATION.table_name AND (it.sync_enabled = 1 OR sync=1) AND rownum = 1;
+
+    IF 1 = ok THEN
+      z__SYNC_FILRE__z      := SYNCHRONISATION.SYNC_FILRE;
+      z__IGNORE_UPD_COLS__z := SYNCHRONISATION.IGNORE_UPD_COLS;
+      EXECUTE IMMEDIATE \'BEGIN UNICAEN_IMPORT_AUTOGEN_PROCS__.\' || table_name || \'(); END;\';
+    END IF;
+  END;
+
+
+
+  PROCEDURE REFRESH_MV( mview_name varchar2 ) IS
+  BEGIN
+    DBMS_MVIEW.REFRESH(mview_name, \'C\');
+  EXCEPTION WHEN OTHERS THEN
+    SYNC_LOG( SQLERRM, mview_name );
+  END;
+
+
+
+  PROCEDURE SYNC_LOG( message CLOB, table_name VARCHAR2 DEFAULT NULL, source_code VARCHAR2 DEFAULT NULL ) IS
+  BEGIN
+    INSERT INTO SYNC_LOG("ID","DATE_SYNC","MESSAGE","TABLE_NAME","SOURCE_CODE") VALUES (SYNC_LOG_ID_SEQ.NEXTVAL, SYSDATE, message,table_name,source_code);
+  END SYNC_LOG;
+
+
+
+  FUNCTION IN_COLUMN_LIST( VALEUR VARCHAR2, CHAMPS CLOB ) RETURN NUMERIC IS
+  BEGIN
+    IF REGEXP_LIKE(CHAMPS, \'(^|,)[ \\t\\r\\n\\v\\f]*\' || VALEUR || \'[ \\t\\r\\n\\v\\f]*(,|$)\') THEN RETURN 1; END IF;
+    RETURN 0;
+  END;
+
+END UNICAEN_IMPORT;',
+    ),
+    'UNICAEN_TBL' => 
+    array (
+      'name' => 'UNICAEN_TBL',
+      'definition' => 'CREATE OR REPLACE PACKAGE "UNICAEN_TBL" AS
+
+  TYPE t_params IS RECORD (
+    c1 VARCHAR2(30), v1 VARCHAR2(80),
+    c2 VARCHAR2(30), v2 VARCHAR2(80),
+    c3 VARCHAR2(30), v3 VARCHAR2(80),
+    c4 VARCHAR2(30), v4 VARCHAR2(80),
+    c5 VARCHAR2(30), v5 VARCHAR2(80),
+    sqlcond CLOB
+  );
+
+  ACTIV_TRIGGERS BOOLEAN DEFAULT TRUE;
+  ACTIV_CALCULS  BOOLEAN DEFAULT TRUE;
+  CALCUL_PROC_PARAMS t_params;
+
+  FUNCTION MAKE_PARAMS(
+    c1 VARCHAR2 DEFAULT NULL, v1 VARCHAR2 DEFAULT NULL,
+    c2 VARCHAR2 DEFAULT NULL, v2 VARCHAR2 DEFAULT NULL,
+    c3 VARCHAR2 DEFAULT NULL, v3 VARCHAR2 DEFAULT NULL,
+    c4 VARCHAR2 DEFAULT NULL, v4 VARCHAR2 DEFAULT NULL,
+    c5 VARCHAR2 DEFAULT NULL, v5 VARCHAR2 DEFAULT NULL,
+    sqlcond CLOB DEFAULT NULL
+  ) RETURN t_params;
+
+  FUNCTION PARAMS_FROM_DEMS( TBL_NAME VARCHAR2 ) RETURN t_params;
+  FUNCTION PARAMS_TO_CONDS ( PARAMS UNICAEN_TBL.T_PARAMS ) RETURN CLOB;
+
+  PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2 );
+  PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2, CONDS CLOB );
+  PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2, PARAMS t_params );
+
+  PROCEDURE CALCULER( TBL_NAME VARCHAR2 );
+  PROCEDURE CALCULER( TBL_NAME VARCHAR2, CONDS CLOB );
+  PROCEDURE CALCULER( TBL_NAME VARCHAR2, PARAMS t_params );
+
+  PROCEDURE ANNULER_DEMANDES;
+  PROCEDURE ANNULER_DEMANDES( TBL_NAME VARCHAR2 );
+  PROCEDURE CALCULER_DEMANDES;
+
+  -- AUTOMATIC GENERATION --
+
+  PROCEDURE C_AGREMENT( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_CHARGENS( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_CHARGENS_SEUILS_DEF( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_CLOTURE_REALISE( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_CONTRAT( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_DMEP_LIQUIDATION( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_DOSSIER( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_PAIEMENT( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_PIECE_JOINTE( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_PIECE_JOINTE_DEMANDE( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_PIECE_JOINTE_FOURNIE( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_SERVICE( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_SERVICE_REFERENTIEL( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_SERVICE_SAISIE( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_VALIDATION_ENSEIGNEMENT( PARAMS UNICAEN_TBL.T_PARAMS );
+  PROCEDURE C_VALIDATION_REFERENTIEL( PARAMS UNICAEN_TBL.T_PARAMS );
+
+  -- END OF AUTOMATIC GENERATION --
+
+END UNICAEN_TBL;',
+      'body' => 'CREATE OR REPLACE PACKAGE BODY "UNICAEN_TBL" AS
+
+  FUNCTION MAKE_PARAMS(
+    c1 VARCHAR2 DEFAULT NULL, v1 VARCHAR2 DEFAULT NULL,
+    c2 VARCHAR2 DEFAULT NULL, v2 VARCHAR2 DEFAULT NULL,
+    c3 VARCHAR2 DEFAULT NULL, v3 VARCHAR2 DEFAULT NULL,
+    c4 VARCHAR2 DEFAULT NULL, v4 VARCHAR2 DEFAULT NULL,
+    c5 VARCHAR2 DEFAULT NULL, v5 VARCHAR2 DEFAULT NULL,
+    sqlcond CLOB DEFAULT NULL
+  ) RETURN t_params IS
+    params t_params;
+  BEGIN
+    IF c1 IS NOT NULL THEN
+      params.c1 := c1;
+      params.v1 := v1;
+    END IF;
+    IF c2 IS NOT NULL THEN
+      params.c2 := c2;
+      params.v2 := v2;
+    END IF;
+    IF c3 IS NOT NULL THEN
+      params.c3 := c3;
+      params.v3 := v3;
+    END IF;
+    IF c4 IS NOT NULL THEN
+      params.c4 := c4;
+      params.v4 := v4;
+    END IF;
+    IF c5 IS NOT NULL THEN
+      params.c5 := c5;
+      params.v5 := v5;
+    END IF;
+    params.sqlcond := sqlcond;
+
+    RETURN params;
+  END;
+
+
+
+  PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2 ) IS
+    p t_params;
+  BEGIN
+    DEMANDE_CALCUL( tbl_name, p );
+  END;
+
+
+
+  PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2, CONDS CLOB ) IS
+    p t_params;
+  BEGIN
+    p.sqlcond := CONDS;
+    DEMANDE_CALCUL( tbl_name, p );
+  END;
+
+
+
+  PROCEDURE DEMANDE_CALCUL( TBL_NAME VARCHAR2, PARAMS t_params ) IS
+  BEGIN
+    INSERT INTO tbl_dems (
+      ID,
+      TBL_NAME,
+      c1, v1,
+      c2, v2,
+      c3, v3,
+      c4, v4,
+      c5, v5,
+      sqlcond
+    ) VALUES (
+      TBL_DEMS_ID_SEQ.NEXTVAL,
+      TBL_NAME,
+      PARAMS.c1, PARAMS.v1,
+      PARAMS.c2, PARAMS.v2,
+      PARAMS.c3, PARAMS.v3,
+      PARAMS.c4, PARAMS.v4,
+      PARAMS.c5, PARAMS.v5,
+      PARAMS.sqlcond
+    );
+  END;
+
+
+
+  FUNCTION PARAMS_FROM_DEMS( TBL_NAME VARCHAR2 ) RETURN t_params IS
+    res t_params;
+    conds CLOB := \'\';
+    cond CLOB;
+  BEGIN
+    FOR d IN (
+      SELECT *
+      FROM   tbl_dems
+      WHERE  tbl_name = PARAMS_FROM_DEMS.TBL_NAME
+    )
+    LOOP
+
+      cond := \'\';
+
+      IF d.c1 IS NOT NULL THEN
+        IF cond IS NOT NULL THEN cond := cond || \' AND \'; END IF;
+        IF d.v1 IS NULL THEN
+          cond := cond || d.c1 || \' IS NULL\';
+        ELSE
+          cond := cond || d.c1 || \'=\' || d.v1;
+        END IF;
+      END IF;
+
+      IF d.c2 IS NOT NULL THEN
+        IF cond IS NOT NULL THEN cond := cond || \' AND \'; END IF;
+        IF d.v2 IS NULL THEN
+          cond := cond || d.c2 || \' IS NULL\';
+        ELSE
+          cond := cond || d.c2 || \'=\' || d.v2;
+        END IF;
+      END IF;
+
+      IF d.c3 IS NOT NULL THEN
+        IF cond IS NOT NULL THEN cond := cond || \' AND \'; END IF;
+        IF d.v3 IS NULL THEN
+          cond := cond || d.c3 || \' IS NULL\';
+        ELSE
+          cond := cond || d.c3 || \'=\' || d.v3;
+        END IF;
+      END IF;
+
+      IF d.c4 IS NOT NULL THEN
+        IF cond IS NOT NULL THEN cond := cond || \' AND \'; END IF;
+        IF d.v4 IS NULL THEN
+          cond := cond || d.c4 || \' IS NULL\';
+        ELSE
+          cond := cond || d.c4 || \'=\' || d.v4;
+        END IF;
+      END IF;
+
+      IF d.c5 IS NOT NULL THEN
+        IF cond IS NOT NULL THEN cond := cond || \' AND \'; END IF;
+        IF d.v5 IS NULL THEN
+          cond := cond || d.c5 || \' IS NULL\';
+        ELSE
+          cond := cond || d.c5 || \'=\' || d.v5;
+        END IF;
+      END IF;
+
+      IF d.sqlcond IS NOT NULL THEN
+        IF cond IS NOT NULL THEN cond := cond || \' AND \'; END IF;
+        cond := cond || \'(\' || d.sqlcond || \')\';
+      END IF;
+
+      IF conds IS NOT NULL THEN
+        conds := conds || \' OR \';
+      END IF;
+      conds := conds || \'(\' || cond || \')\';
+    END LOOP;
+
+    res.sqlcond := conds;
+    DELETE FROM tbl_dems WHERE tbl_name = PARAMS_FROM_DEMS.TBL_NAME;
+    RETURN res;
+  END;
+
+
+
+  FUNCTION PARAMS_TO_CONDS ( PARAMS UNICAEN_TBL.T_PARAMS ) RETURN CLOB IS
+    cond CLOB;
+  BEGIN
+    IF params.c1 IS NOT NULL THEN
+        IF params.v1 IS NULL THEN
+          cond := cond || params.c1 || \' IS NULL\';
+        ELSE
+          cond := cond || params.c1 || \'=\' || params.v1;
+        END IF;
+      END IF;
+
+      IF params.c2 IS NOT NULL THEN
+        IF cond IS NOT NULL THEN cond := cond || \' AND \'; END IF;
+        IF params.v2 IS NULL THEN
+          cond := cond || params.c2 || \' IS NULL\';
+        ELSE
+          cond := cond || params.c2 || \'=\' || params.v2;
+        END IF;
+      END IF;
+
+      IF params.c3 IS NOT NULL THEN
+        IF cond IS NOT NULL THEN cond := cond || \' AND \'; END IF;
+        IF params.v3 IS NULL THEN
+          cond := cond || params.c3 || \' IS NULL\';
+        ELSE
+          cond := cond || params.c3 || \'=\' || params.v3;
+        END IF;
+      END IF;
+
+      IF params.c4 IS NOT NULL THEN
+        IF cond IS NOT NULL THEN cond := cond || \' AND \'; END IF;
+        IF params.v4 IS NULL THEN
+          cond := cond || params.c4 || \' IS NULL\';
+        ELSE
+          cond := cond || params.c4 || \'=\' || params.v4;
+        END IF;
+      END IF;
+
+      IF params.c5 IS NOT NULL THEN
+        IF cond IS NOT NULL THEN cond := cond || \' AND \'; END IF;
+        IF params.v5 IS NULL THEN
+          cond := cond || params.c5 || \' IS NULL\';
+        ELSE
+          cond := cond || params.c5 || \'=\' || params.v5;
+        END IF;
+      END IF;
+
+      IF params.sqlcond IS NOT NULL THEN
+        IF cond IS NOT NULL THEN cond := cond || \' AND \'; END IF;
+        cond := cond || \'(\' || params.sqlcond || \')\';
+      END IF;
+
+      IF cond IS NULL THEN cond := \'1=1\'; END IF;
+
+      RETURN cond;
+  END;
+
+
+
+  PROCEDURE CALCULER( TBL_NAME VARCHAR2 ) IS
+    p t_params;
+  BEGIN
+    ANNULER_DEMANDES( TBL_NAME );
+    CALCULER(TBL_NAME, p);
+  END;
+
+
+
+  PROCEDURE CALCULER( TBL_NAME VARCHAR2, CONDS CLOB ) IS
+    p t_params;
+  BEGIN
+    p.sqlcond := CONDS;
+    CALCULER(TBL_NAME, p);
+  END;
+
+
+
+  PROCEDURE CALCULER( TBL_NAME VARCHAR2, PARAMS t_params ) IS
+    calcul_proc varchar2(30);
+  BEGIN
+    IF NOT UNICAEN_TBL.ACTIV_CALCULS THEN RETURN; END IF;
+
+    SELECT custom_calcul_proc INTO calcul_proc FROM tbl WHERE tbl_name = CALCULER.TBL_NAME;
+
+    UNICAEN_TBL.CALCUL_PROC_PARAMS := PARAMS;
+    IF calcul_proc IS NOT NULL THEN
+      EXECUTE IMMEDIATE
+        \'BEGIN \' || calcul_proc || \'(UNICAEN_TBL.CALCUL_PROC_PARAMS); END;\'
+      ;
+    ELSE
+      EXECUTE IMMEDIATE
+        \'BEGIN UNICAEN_TBL.C_\' || TBL_NAME || \'(UNICAEN_TBL.CALCUL_PROC_PARAMS); END;\'
+      ;
+    END IF;
+
+  END;
+
+
+
+  PROCEDURE ANNULER_DEMANDES IS
+  BEGIN
+    DELETE FROM tbl_dems;
+  END;
+
+
+
+  PROCEDURE ANNULER_DEMANDES( TBL_NAME VARCHAR2 ) IS
+  BEGIN
+    DELETE FROM tbl_dems WHERE tbl_name = ANNULER_DEMANDES.tbl_name;
+  END;
+
+
+
+  FUNCTION HAS_DEMANDES RETURN BOOLEAN IS
+    has_dems NUMERIC;
+  BEGIN
+    SELECT count(*) INTO has_dems from tbl_dems where rownum = 1;
+
+    RETURN has_dems = 1;
+  END;
+
+
+
+  PROCEDURE CALCULER_DEMANDES IS
+    dems t_params;
+  BEGIN
+    FOR d IN (
+      SELECT DISTINCT tbl_name FROM tbl_dems
+    ) LOOP
+      dems := PARAMS_FROM_DEMS( d.tbl_name );
+      calculer( d.tbl_name, dems );
+    END LOOP;
+
+    IF HAS_DEMANDES THEN -- pour les boucles !!
+      CALCULER_DEMANDES;
+    END IF;
+  END;
+
+
+
+  -- AUTOMATIC GENERATION --
+
+  PROCEDURE C_AGREMENT( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_AGREMENT SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_AGREMENT t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (WITH i_s AS (
+          SELECT DISTINCT
+            fr.intervenant_id,
+            ep.structure_id
+          FROM
+            formule_resultat fr
+            JOIN type_volume_horaire  tvh ON tvh.code = \'\'PREVU\'\' AND tvh.id = fr.type_volume_horaire_id
+            JOIN etat_volume_horaire  evh ON evh.code = \'\'valide\'\' AND evh.id = fr.etat_volume_horaire_id
+
+            JOIN formule_resultat_service frs ON frs.formule_resultat_id = fr.id
+            JOIN service s ON s.id = frs.service_id
+            JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
+          WHERE
+            frs.total > 0
+        )
+        SELECT
+          i.annee_id              annee_id,
+          tas.type_agrement_id    type_agrement_id,
+          i.id                    intervenant_id,
+          null                    structure_id,
+          tas.obligatoire         obligatoire,
+          a.id                    agrement_id
+        FROM
+          type_agrement                  ta
+          JOIN type_agrement_statut      tas ON tas.type_agrement_id = ta.id
+                                            AND tas.histo_destruction IS NULL
+
+          JOIN intervenant                 i ON i.histo_destruction IS NULL
+                                            AND (tas.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = tas.premier_recrutement)
+                                            AND i.statut_id = tas.statut_intervenant_id
+
+          LEFT JOIN agrement               a ON a.type_agrement_id = ta.id
+                                            AND a.intervenant_id = i.id
+                                            AND a.histo_destruction IS NULL
+        WHERE
+          ta.code = \'\'CONSEIL_ACADEMIQUE\'\'
+
+        UNION ALL
+
+        SELECT
+          i.annee_id              annee_id,
+          tas.type_agrement_id    type_agrement_id,
+          i.id                    intervenant_id,
+          i_s.structure_id        structure_id,
+          tas.obligatoire         obligatoire,
+          a.id                    agrement_id
+        FROM
+          type_agrement                   ta
+          JOIN type_agrement_statut      tas ON tas.type_agrement_id = ta.id
+                                            AND tas.histo_destruction IS NULL
+
+          JOIN intervenant                 i ON i.histo_destruction IS NULL
+                                            AND (tas.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = tas.premier_recrutement)
+                                            AND i.statut_id = tas.statut_intervenant_id
+
+          JOIN                           i_s ON i_s.intervenant_id = i.id
+
+          LEFT JOIN agrement               a ON a.type_agrement_id = ta.id
+                                            AND a.intervenant_id = i.id
+                                            AND a.structure_id = i_s.structure_id
+                                            AND a.histo_destruction IS NULL
+        WHERE
+          ta.code = \'\'CONSEIL_RESTREINT\'\') tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.TYPE_AGREMENT_ID = v.TYPE_AGREMENT_ID
+        AND t.INTERVENANT_ID   = v.INTERVENANT_ID
+        AND COALESCE(t.STRUCTURE_ID,0) = COALESCE(v.STRUCTURE_ID,0)
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      ANNEE_ID         = v.ANNEE_ID,
+      OBLIGATOIRE      = v.OBLIGATOIRE,
+      AGREMENT_ID      = v.AGREMENT_ID,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      TYPE_AGREMENT_ID,
+      INTERVENANT_ID,
+      STRUCTURE_ID,
+      OBLIGATOIRE,
+      AGREMENT_ID,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_AGREMENT_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.TYPE_AGREMENT_ID,
+      v.INTERVENANT_ID,
+      v.STRUCTURE_ID,
+      v.OBLIGATOIRE,
+      v.AGREMENT_ID,
+      0
+
+    );
+
+    DELETE TBL_AGREMENT WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_CHARGENS( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_CHARGENS SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_CHARGENS t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (WITH t AS (
+        SELECT
+          n.annee_id                        annee_id,
+          n.noeud_id                        noeud_id,
+          sn.scenario_id                    scenario_id,
+          sne.type_heures_id                type_heures_id,
+          ti.id                             type_intervention_id,
+
+          n.element_pedagogique_id          element_pedagogique_id,
+          n.element_pedagogique_etape_id    etape_id,
+          sne.etape_id                      etape_ens_id,
+          n.structure_id                    structure_id,
+          n.groupe_type_formation_id        groupe_type_formation_id,
+
+          vhe.heures                        heures,
+          vhe.heures * ti.taux_hetd_service hetd,
+
+          GREATEST(COALESCE(sns.ouverture, 1),1)                                           ouverture,
+          GREATEST(COALESCE(sns.dedoublement, snsetp.dedoublement, csdd.dedoublement,1),1) dedoublement,
+          COALESCE(sns.assiduite,1)                                                        assiduite,
+          sne.effectif*COALESCE(sns.assiduite,1)                                           effectif,
+
+          SUM(sne.effectif*COALESCE(sns.assiduite,1)) OVER (PARTITION BY n.noeud_id, sn.scenario_id, ti.id) t_effectif
+
+        FROM
+                    scenario_noeud_effectif    sne
+               JOIN etape                        e ON e.id = sne.etape_id
+                                                  AND e.histo_destruction IS NULL
+
+               JOIN scenario_noeud              sn ON sn.id = sne.scenario_noeud_id
+                                                  AND sn.histo_destruction IS NULL
+
+               JOIN tbl_noeud                       n ON n.noeud_id = sn.noeud_id
+
+               JOIN volume_horaire_ens         vhe ON vhe.element_pedagogique_id = n.element_pedagogique_id
+                                                  AND vhe.histo_destruction IS NULL
+                                                  AND vhe.heures > 0
+
+               JOIN type_intervention           ti ON ti.id = vhe.type_intervention_id
+
+          LEFT JOIN tbl_noeud                 netp ON netp.etape_id = e.id
+
+          LEFT JOIN scenario_noeud           snetp ON snetp.scenario_id = sn.scenario_id
+                                                  AND snetp.noeud_id = netp.noeud_id
+                                                  AND snetp.histo_destruction IS NULL
+
+          LEFT JOIN scenario_noeud_seuil    snsetp ON snsetp.scenario_noeud_id = snetp.id
+                                                  AND snsetp.type_intervention_id = ti.id
+
+          LEFT JOIN tbl_chargens_seuils_def   csdd ON csdd.annee_id = n.annee_id
+                                                  AND csdd.scenario_id = sn.scenario_id
+                                                  AND csdd.type_intervention_id = ti.id
+                                                  AND csdd.groupe_type_formation_id = n.groupe_type_formation_id
+                                                  AND csdd.structure_id = n.structure_id
+
+          LEFT JOIN scenario_noeud_seuil       sns ON sns.scenario_noeud_id = sn.id
+                                                  AND sns.type_intervention_id = ti.id
+        )
+        SELECT
+          annee_id,
+          noeud_id,
+          scenario_id,
+          type_heures_id,
+          type_intervention_id,
+
+          element_pedagogique_id,
+          etape_id,
+          etape_ens_id,
+          structure_id,
+          groupe_type_formation_id,
+
+          ouverture,
+          dedoublement,
+          assiduite,
+          effectif,
+          heures heures_ens,
+          --t_effectif,
+
+          CASE WHEN t_effectif < ouverture THEN 0 ELSE
+            CEIL( t_effectif / dedoublement ) * effectif / t_effectif
+          END groupes,
+
+          CASE WHEN t_effectif < ouverture THEN 0 ELSE
+            CEIL( t_effectif / dedoublement ) * heures * effectif / t_effectif
+          END heures,
+
+          CASE WHEN t_effectif < ouverture THEN 0 ELSE
+            CEIL( t_effectif / dedoublement ) * hetd * effectif / t_effectif
+          END  hetd
+
+        FROM
+          t) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.ANNEE_ID                 = v.ANNEE_ID
+        AND t.NOEUD_ID                 = v.NOEUD_ID
+        AND t.SCENARIO_ID              = v.SCENARIO_ID
+        AND t.TYPE_HEURES_ID           = v.TYPE_HEURES_ID
+        AND t.TYPE_INTERVENTION_ID     = v.TYPE_INTERVENTION_ID
+        AND t.ELEMENT_PEDAGOGIQUE_ID   = v.ELEMENT_PEDAGOGIQUE_ID
+        AND t.ETAPE_ID                 = v.ETAPE_ID
+        AND t.ETAPE_ENS_ID             = v.ETAPE_ENS_ID
+        AND t.STRUCTURE_ID             = v.STRUCTURE_ID
+        AND t.GROUPE_TYPE_FORMATION_ID = v.GROUPE_TYPE_FORMATION_ID
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      OUVERTURE                = v.OUVERTURE,
+      DEDOUBLEMENT             = v.DEDOUBLEMENT,
+      ASSIDUITE                = v.ASSIDUITE,
+      EFFECTIF                 = v.EFFECTIF,
+      HEURES_ENS               = v.HEURES_ENS,
+      GROUPES                  = v.GROUPES,
+      HEURES                   = v.HEURES,
+      HETD                     = v.HETD,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      NOEUD_ID,
+      SCENARIO_ID,
+      TYPE_HEURES_ID,
+      TYPE_INTERVENTION_ID,
+      ELEMENT_PEDAGOGIQUE_ID,
+      ETAPE_ID,
+      ETAPE_ENS_ID,
+      STRUCTURE_ID,
+      GROUPE_TYPE_FORMATION_ID,
+      OUVERTURE,
+      DEDOUBLEMENT,
+      ASSIDUITE,
+      EFFECTIF,
+      HEURES_ENS,
+      GROUPES,
+      HEURES,
+      HETD,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_CHARGENS_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.NOEUD_ID,
+      v.SCENARIO_ID,
+      v.TYPE_HEURES_ID,
+      v.TYPE_INTERVENTION_ID,
+      v.ELEMENT_PEDAGOGIQUE_ID,
+      v.ETAPE_ID,
+      v.ETAPE_ENS_ID,
+      v.STRUCTURE_ID,
+      v.GROUPE_TYPE_FORMATION_ID,
+      v.OUVERTURE,
+      v.DEDOUBLEMENT,
+      v.ASSIDUITE,
+      v.EFFECTIF,
+      v.HEURES_ENS,
+      v.GROUPES,
+      v.HEURES,
+      v.HETD,
+      0
+
+    );
+
+    DELETE TBL_CHARGENS WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_CHARGENS_SEUILS_DEF( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_CHARGENS_SEUILS_DEF SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_CHARGENS_SEUILS_DEF t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (SELECT
+          sta.annee_id,
+          sta.scenario_id,
+          s.structure_id,
+          gtf.groupe_type_formation_id,
+          sta.type_intervention_id,
+          COALESCE(sc1.dedoublement, sc2.dedoublement, sc3.dedoublement, sc4.dedoublement) dedoublement
+        FROM
+          (SELECT DISTINCT scenario_id, type_intervention_id, annee_id FROM seuil_charge WHERE histo_destruction IS NULL) sta
+          JOIN (SELECT DISTINCT structure_id FROM noeud WHERE structure_id IS NOT NULL) s ON 1=1
+          JOIN (SELECT id groupe_type_formation_id FROM groupe_type_formation) gtf ON 1=1
+
+          LEFT JOIN seuil_charge sc1 ON
+            sc1.histo_destruction            IS NULL
+            AND sc1.annee_id                 = sta.annee_id
+            AND sc1.scenario_id              = sta.scenario_id
+            AND sc1.type_intervention_id     = sta.type_intervention_id
+            AND sc1.structure_id             = s.structure_id
+            AND sc1.groupe_type_formation_id = gtf.groupe_type_formation_id
+
+          LEFT JOIN seuil_charge sc2 ON
+            sc2.histo_destruction            IS NULL
+            AND sc2.annee_id                 = sta.annee_id
+            AND sc2.scenario_id              = sta.scenario_id
+            AND sc2.type_intervention_id     = sta.type_intervention_id
+            AND sc2.structure_id             = s.structure_id
+            AND sc2.groupe_type_formation_id IS NULL
+
+          LEFT JOIN seuil_charge sc3 ON
+            sc3.histo_destruction            IS NULL
+            AND sc3.annee_id                 = sta.annee_id
+            AND sc3.scenario_id              = sta.scenario_id
+            AND sc3.type_intervention_id     = sta.type_intervention_id
+            AND sc3.structure_id             IS NULL
+            AND sc3.groupe_type_formation_id = gtf.groupe_type_formation_id
+
+          LEFT JOIN seuil_charge sc4 ON
+            sc4.histo_destruction            IS NULL
+            AND sc4.annee_id                 = sta.annee_id
+            AND sc4.scenario_id              = sta.scenario_id
+            AND sc4.type_intervention_id     = sta.type_intervention_id
+            AND sc4.structure_id             IS NULL
+            AND sc4.groupe_type_formation_id IS NULL
+        WHERE
+          COALESCE(sc1.dedoublement, sc2.dedoublement, sc3.dedoublement, sc4.dedoublement, 1) <> 1) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.ANNEE_ID                 = v.ANNEE_ID
+        AND t.SCENARIO_ID              = v.SCENARIO_ID
+        AND t.STRUCTURE_ID             = v.STRUCTURE_ID
+        AND t.GROUPE_TYPE_FORMATION_ID = v.GROUPE_TYPE_FORMATION_ID
+        AND t.TYPE_INTERVENTION_ID     = v.TYPE_INTERVENTION_ID
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      DEDOUBLEMENT             = v.DEDOUBLEMENT,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      SCENARIO_ID,
+      STRUCTURE_ID,
+      GROUPE_TYPE_FORMATION_ID,
+      TYPE_INTERVENTION_ID,
+      DEDOUBLEMENT,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_CHARGENS_SEUILS_DEF_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.SCENARIO_ID,
+      v.STRUCTURE_ID,
+      v.GROUPE_TYPE_FORMATION_ID,
+      v.TYPE_INTERVENTION_ID,
+      v.DEDOUBLEMENT,
+      0
+
+    );
+
+    DELETE TBL_CHARGENS_SEUILS_DEF WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_CLOTURE_REALISE( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_CLOTURE_REALISE SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_CLOTURE_REALISE t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (WITH t AS (
+          SELECT
+            i.annee_id              annee_id,
+            i.id                    intervenant_id,
+            si.peut_cloturer_saisie peut_cloturer_saisie,
+            CASE WHEN v.id IS NULL THEN 0 ELSE 1 END cloture
+          FROM
+                      intervenant         i
+                 JOIN statut_intervenant si ON si.id = i.statut_id
+                 JOIN type_validation    tv ON tv.code = \'\'CLOTURE_REALISE\'\'
+
+            LEFT JOIN validation          v ON v.intervenant_id = i.id
+                                           AND v.type_validation_id = tv.id
+                                           AND v.histo_destruction IS NULL
+
+          WHERE
+            i.histo_destruction IS NULL
+        )
+        SELECT
+          annee_id,
+          intervenant_id,
+          peut_cloturer_saisie,
+          CASE WHEN sum(cloture) = 0 THEN 0 ELSE 1 END cloture
+        FROM
+          t
+        GROUP BY
+          annee_id,
+          intervenant_id,
+          peut_cloturer_saisie) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.INTERVENANT_ID = v.INTERVENANT_ID
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      ANNEE_ID             = v.ANNEE_ID,
+      PEUT_CLOTURER_SAISIE = v.PEUT_CLOTURER_SAISIE,
+      CLOTURE              = v.CLOTURE,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      INTERVENANT_ID,
+      PEUT_CLOTURER_SAISIE,
+      CLOTURE,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_CLOTURE_REALISE_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.INTERVENANT_ID,
+      v.PEUT_CLOTURER_SAISIE,
+      v.CLOTURE,
+      0
+
+    );
+
+    DELETE TBL_CLOTURE_REALISE WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_CONTRAT( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_CONTRAT SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_CONTRAT t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (WITH t AS (
+          SELECT
+            i.annee_id                                                                annee_id,
+            i.id                                                                      intervenant_id,
+            si.peut_avoir_contrat                                                     peut_avoir_contrat,
+            NVL(ep.structure_id, i.structure_id)                                      structure_id,
+            CASE WHEN evh.code IN (\'\'contrat-edite\'\',\'\'contrat-signe\'\') THEN 1 ELSE 0 END edite,
+            CASE WHEN evh.code IN (\'\'contrat-signe\'\')                 THEN 1 ELSE 0 END signe
+          FROM
+                      intervenant                 i
+
+                 JOIN statut_intervenant         si ON si.id = i.statut_id
+
+                 JOIN service                     s ON s.intervenant_id = i.id
+                                                   AND s.histo_destruction IS NULL
+
+                 JOIN type_volume_horaire       tvh ON tvh.code = \'\'PREVU\'\'
+
+                 JOIN volume_horaire             vh ON vh.service_id = s.id
+                                                   AND vh.histo_destruction IS NULL
+                                                   AND vh.heures <> 0
+                                                   AND vh.type_volume_horaire_id = tvh.id
+
+                 JOIN v_volume_horaire_etat     vhe ON vhe.volume_horaire_id = vh.id
+
+                 JOIN etat_volume_horaire       evh ON evh.id = vhe.etat_volume_horaire_id
+                                                   AND evh.code IN (\'\'valide\'\', \'\'contrat-edite\'\', \'\'contrat-signe\'\')
+
+                 JOIN element_pedagogique        ep ON ep.id = s.element_pedagogique_id
+
+          WHERE
+            i.histo_destruction IS NULL
+            AND NOT (si.peut_avoir_contrat = 0 AND evh.code = \'\'valide\'\')
+
+          UNION ALL
+
+          SELECT
+            i.annee_id                                                                annee_id,
+            i.id                                                                      intervenant_id,
+            si.peut_avoir_contrat                                                     peut_avoir_contrat,
+            s.structure_id                                                            structure_id,
+            CASE WHEN evh.code IN (\'\'contrat-edite\'\',\'\'contrat-signe\'\') THEN 1 ELSE 0 END edite,
+            CASE WHEN evh.code IN (\'\'contrat-signe\'\')                 THEN 1 ELSE 0 END signe
+          FROM
+                      intervenant                 i
+
+                 JOIN statut_intervenant         si ON si.id = i.statut_id
+
+                 JOIN service_referentiel         s ON s.intervenant_id = i.id
+                                                   AND s.histo_destruction IS NULL
+
+                 JOIN type_volume_horaire       tvh ON tvh.code = \'\'PREVU\'\'
+
+                 JOIN volume_horaire_ref         vh ON vh.service_referentiel_id = s.id
+                                                   AND vh.histo_destruction IS NULL
+                                                   AND vh.heures <> 0
+                                                   AND vh.type_volume_horaire_id = tvh.id
+
+                 JOIN v_volume_horaire_ref_etat vhe ON vhe.volume_horaire_ref_id = vh.id
+
+                 JOIN etat_volume_horaire       evh ON evh.id = vhe.etat_volume_horaire_id
+                                                   AND evh.code IN (\'\'valide\'\', \'\'contrat-edite\'\', \'\'contrat-signe\'\')
+
+          WHERE
+            i.histo_destruction IS NULL
+            AND NOT (si.peut_avoir_contrat = 0 AND evh.code = \'\'valide\'\')
+        )
+        SELECT
+          annee_id,
+          intervenant_id,
+          peut_avoir_contrat,
+          structure_id,
+          count(*) as nbvh,
+          sum(edite) as edite,
+          sum(signe) as signe
+        FROM
+          t
+        GROUP BY
+          annee_id,
+          intervenant_id,
+          peut_avoir_contrat,
+          structure_id) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.INTERVENANT_ID = v.INTERVENANT_ID
+        AND COALESCE(t.STRUCTURE_ID,0) = COALESCE(v.STRUCTURE_ID,0)
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      ANNEE_ID           = v.ANNEE_ID,
+      PEUT_AVOIR_CONTRAT = v.PEUT_AVOIR_CONTRAT,
+      NBVH               = v.NBVH,
+      EDITE              = v.EDITE,
+      SIGNE              = v.SIGNE,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      INTERVENANT_ID,
+      PEUT_AVOIR_CONTRAT,
+      STRUCTURE_ID,
+      NBVH,
+      EDITE,
+      SIGNE,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_CONTRAT_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.INTERVENANT_ID,
+      v.PEUT_AVOIR_CONTRAT,
+      v.STRUCTURE_ID,
+      v.NBVH,
+      v.EDITE,
+      v.SIGNE,
+      0
+
+    );
+
+    DELETE TBL_CONTRAT WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_DMEP_LIQUIDATION( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_DMEP_LIQUIDATION SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_DMEP_LIQUIDATION t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (SELECT
+          annee_id,
+          type_ressource_id,
+          structure_id,
+          SUM(heures) heures
+        FROM
+        (
+          SELECT
+            i.annee_id,
+            cc.type_ressource_id,
+            COALESCE( ep.structure_id, i.structure_id ) structure_id,
+            mep.heures
+          FROM
+                      mise_en_paiement         mep
+                 JOIN centre_cout               cc ON cc.id = mep.centre_cout_id
+                 JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id
+                 JOIN service                    s ON s.id = frs.service_id
+                 JOIN intervenant                i ON i.id = s.intervenant_id
+            LEFT JOIN element_pedagogique       ep ON ep.id = s.element_pedagogique_id
+          WHERE
+            mep.histo_destruction IS NULL
+
+          UNION ALL
+
+          SELECT
+            i.annee_id,
+            cc.type_ressource_id,
+            sr.structure_id structure_id,
+            heures
+          FROM
+                      mise_en_paiement              mep
+                 JOIN centre_cout                    cc ON cc.id = mep.centre_cout_id
+                 JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id
+                 JOIN service_referentiel            sr ON sr.id = frsr.service_referentiel_id
+                 JOIN intervenant                     i ON i.id = sr.intervenant_id
+
+          WHERE
+            mep.histo_destruction IS NULL
+
+        ) t1
+        GROUP BY
+          annee_id, type_ressource_id, structure_id) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.ANNEE_ID          = v.ANNEE_ID
+        AND t.TYPE_RESSOURCE_ID = v.TYPE_RESSOURCE_ID
+        AND t.STRUCTURE_ID      = v.STRUCTURE_ID
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      HEURES            = v.HEURES,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      TYPE_RESSOURCE_ID,
+      STRUCTURE_ID,
+      HEURES,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_DMEP_LIQUIDATION_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.TYPE_RESSOURCE_ID,
+      v.STRUCTURE_ID,
+      v.HEURES,
+      0
+
+    );
+
+    DELETE TBL_DMEP_LIQUIDATION WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_DOSSIER( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_DOSSIER SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_DOSSIER t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (SELECT
+          i.annee_id,
+          i.id intervenant_id,
+          si.peut_saisir_dossier,
+          d.id dossier_id,
+          v.id validation_id
+        FROM
+                    intervenant         i
+               JOIN statut_intervenant si ON si.id = i.statut_id
+          LEFT JOIN dossier             d ON d.intervenant_id = i.id
+                                      AND d.histo_destruction IS NULL
+
+               JOIN type_validation tv ON tv.code = \'\'DONNEES_PERSO_PAR_COMP\'\'
+          LEFT JOIN validation       v ON v.intervenant_id = i.id
+                                      AND v.type_validation_id = tv.id
+                                      AND v.histo_destruction IS NULL
+        WHERE
+          i.histo_destruction IS NULL) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.INTERVENANT_ID = v.INTERVENANT_ID
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      ANNEE_ID            = v.ANNEE_ID,
+      PEUT_SAISIR_DOSSIER = v.PEUT_SAISIR_DOSSIER,
+      DOSSIER_ID          = v.DOSSIER_ID,
+      VALIDATION_ID       = v.VALIDATION_ID,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      INTERVENANT_ID,
+      PEUT_SAISIR_DOSSIER,
+      DOSSIER_ID,
+      VALIDATION_ID,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_DOSSIER_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.INTERVENANT_ID,
+      v.PEUT_SAISIR_DOSSIER,
+      v.DOSSIER_ID,
+      v.VALIDATION_ID,
+      0
+
+    );
+
+    DELETE TBL_DOSSIER WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_PAIEMENT( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_PAIEMENT SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_PAIEMENT t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (SELECT
+          i.annee_id                                  annee_id,
+          frs.id                                      formule_res_service_id,
+          null                                        formule_res_service_ref_id,
+          i.id                                        intervenant_id,
+          COALESCE( ep.structure_id, i.structure_id ) structure_id,
+          mep.id                                      mise_en_paiement_id,
+          mep.periode_paiement_id                     periode_paiement_id,
+          frs.heures_compl_fi + frs.heures_compl_fc + frs.heures_compl_fa + frs.heures_compl_fc_majorees heures_a_payer,
+          count(*) OVER(PARTITION BY frs.id)          heures_a_payer_pond,
+          NVL(mep.heures,0)                           heures_demandees,
+          CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees
+        FROM
+                    formule_resultat_service        frs
+               JOIN type_volume_horaire             tvh ON tvh.code = \'\'REALISE\'\'
+               JOIN etat_volume_horaire             evh ON evh.code = \'\'valide\'\'
+               JOIN formule_resultat                 fr ON fr.id = frs.formule_resultat_id
+                                                       AND fr.type_volume_horaire_id = tvh.id
+                                                       AND fr.etat_volume_horaire_id = evh.id
+
+               JOIN intervenant                       i ON i.id = fr.intervenant_id
+               JOIN service                           s ON s.id = frs.service_id
+          LEFT JOIN element_pedagogique              ep ON ep.id = s.element_pedagogique_id
+          LEFT JOIN mise_en_paiement                mep ON mep.formule_res_service_id = frs.id
+                                                       AND mep.histo_destruction IS NULL
+
+        UNION ALL
+
+        SELECT
+          i.annee_id                                  annee_id,
+          null                                        formule_res_service_id,
+          frs.id                                      formule_res_service_ref_id,
+          i.id                                        intervenant_id,
+          s.structure_id                              structure_id,
+          mep.id                                      mise_en_paiement_id,
+          mep.periode_paiement_id                     periode_paiement_id,
+          frs.heures_compl_referentiel                heures_a_payer,
+          count(*) OVER(PARTITION BY frs.id)          heures_a_payer_pond,
+          NVL(mep.heures,0)                           heures_demandees,
+          CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees
+        FROM
+                    formule_resultat_service_ref    frs
+               JOIN type_volume_horaire             tvh ON tvh.code = \'\'REALISE\'\'
+               JOIN etat_volume_horaire             evh ON evh.code = \'\'valide\'\'
+               JOIN formule_resultat                 fr ON fr.id = frs.formule_resultat_id
+                                                       AND fr.type_volume_horaire_id = tvh.id
+                                                       AND fr.etat_volume_horaire_id = evh.id
+
+               JOIN intervenant                       i ON i.id = fr.intervenant_id
+               JOIN service_referentiel               s ON s.id = frs.service_referentiel_id
+          LEFT JOIN mise_en_paiement                mep ON mep.formule_res_service_ref_id = frs.id
+                                                       AND mep.histo_destruction IS NULL) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.INTERVENANT_ID             = v.INTERVENANT_ID
+        AND COALESCE(t.MISE_EN_PAIEMENT_ID,0) = COALESCE(v.MISE_EN_PAIEMENT_ID,0)
+        AND COALESCE(t.FORMULE_RES_SERVICE_ID,0) = COALESCE(v.FORMULE_RES_SERVICE_ID,0)
+        AND COALESCE(t.FORMULE_RES_SERVICE_REF_ID,0) = COALESCE(v.FORMULE_RES_SERVICE_REF_ID,0)
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      ANNEE_ID                   = v.ANNEE_ID,
+      STRUCTURE_ID               = v.STRUCTURE_ID,
+      PERIODE_PAIEMENT_ID        = v.PERIODE_PAIEMENT_ID,
+      HEURES_A_PAYER             = v.HEURES_A_PAYER,
+      HEURES_A_PAYER_POND        = v.HEURES_A_PAYER_POND,
+      HEURES_DEMANDEES           = v.HEURES_DEMANDEES,
+      HEURES_PAYEES              = v.HEURES_PAYEES,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      INTERVENANT_ID,
+      STRUCTURE_ID,
+      MISE_EN_PAIEMENT_ID,
+      PERIODE_PAIEMENT_ID,
+      HEURES_A_PAYER,
+      HEURES_A_PAYER_POND,
+      HEURES_DEMANDEES,
+      HEURES_PAYEES,
+      FORMULE_RES_SERVICE_ID,
+      FORMULE_RES_SERVICE_REF_ID,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_PAIEMENT_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.INTERVENANT_ID,
+      v.STRUCTURE_ID,
+      v.MISE_EN_PAIEMENT_ID,
+      v.PERIODE_PAIEMENT_ID,
+      v.HEURES_A_PAYER,
+      v.HEURES_A_PAYER_POND,
+      v.HEURES_DEMANDEES,
+      v.HEURES_PAYEES,
+      v.FORMULE_RES_SERVICE_ID,
+      v.FORMULE_RES_SERVICE_REF_ID,
+      0
+
+    );
+
+    DELETE TBL_PAIEMENT WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_PIECE_JOINTE( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_PIECE_JOINTE SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_PIECE_JOINTE t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (WITH pjf AS (
+          SELECT
+            pjf.annee_id,
+            pjf.type_piece_jointe_id,
+            pjf.intervenant_id,
+            COUNT(*) count,
+            SUM(CASE WHEN validation_id IS NULL THEN 0 ELSE 1 END) validation,
+            SUM(CASE WHEN fichier_id IS NULL THEN 0 ELSE 1 END) fichier
+          FROM
+            tbl_piece_jointe_fournie pjf
+          GROUP BY
+            pjf.annee_id,
+            pjf.type_piece_jointe_id,
+            pjf.intervenant_id
+        )
+        SELECT
+          NVL( pjd.annee_id, pjf.annee_id ) annee_id,
+          NVL( pjd.type_piece_jointe_id, pjf.type_piece_jointe_id ) type_piece_jointe_id,
+          NVL( pjd.intervenant_id, pjf.intervenant_id ) intervenant_id,
+          CASE WHEN pjd.intervenant_id IS NULL THEN 0 ELSE 1 END demandee,
+          CASE WHEN pjf.fichier = pjf.count THEN 1 ELSE 0 END fournie,
+          CASE WHEN pjf.validation = pjf.count THEN 1 ELSE 0 END validee,
+          NVL(pjd.heures_pour_seuil,0) heures_pour_seuil
+        FROM
+          tbl_piece_jointe_demande pjd
+          FULL JOIN pjf ON pjf.type_piece_jointe_id = pjd.type_piece_jointe_id AND pjf.intervenant_id = pjd.intervenant_id) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.TYPE_PIECE_JOINTE_ID = v.TYPE_PIECE_JOINTE_ID
+        AND t.INTERVENANT_ID       = v.INTERVENANT_ID
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      ANNEE_ID             = v.ANNEE_ID,
+      DEMANDEE             = v.DEMANDEE,
+      FOURNIE              = v.FOURNIE,
+      VALIDEE              = v.VALIDEE,
+      HEURES_POUR_SEUIL    = v.HEURES_POUR_SEUIL,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      TYPE_PIECE_JOINTE_ID,
+      INTERVENANT_ID,
+      DEMANDEE,
+      FOURNIE,
+      VALIDEE,
+      HEURES_POUR_SEUIL,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_PIECE_JOINTE_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.TYPE_PIECE_JOINTE_ID,
+      v.INTERVENANT_ID,
+      v.DEMANDEE,
+      v.FOURNIE,
+      v.VALIDEE,
+      v.HEURES_POUR_SEUIL,
+      0
+
+    );
+
+    DELETE TBL_PIECE_JOINTE WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_PIECE_JOINTE_DEMANDE( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_PIECE_JOINTE_DEMANDE SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_PIECE_JOINTE_DEMANDE t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (WITH i_h AS (
+          SELECT
+            s.intervenant_id,
+            sum(vh.heures) heures,
+            sum(ep.taux_fc) fc
+          FROM
+                 service               s
+            JOIN type_volume_horaire tvh ON tvh.code = \'\'PREVU\'\'
+            JOIN volume_horaire       vh ON vh.service_id = s.id
+                                        AND vh.type_volume_horaire_id = tvh.id
+                                        AND vh.histo_destruction IS NULL
+            JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id -- Service sur l\'\'établissement
+          WHERE
+            s.histo_destruction IS NULL
+            AND vh.motif_non_paiement_id IS NULL -- pas de motif de non paiement
+          GROUP BY
+            s.intervenant_id
+        )
+        SELECT
+          i.annee_id                      annee_id,
+          i.id                            intervenant_id,
+          tpj.id                          type_piece_jointe_id,
+          MAX(COALESCE(i_h.heures, 0))    heures_pour_seuil
+        FROM
+                    intervenant                 i
+
+          LEFT JOIN dossier                     d ON d.intervenant_id = i.id
+                                                 AND d.histo_destruction IS NULL
+
+               JOIN type_piece_jointe_statut tpjs ON tpjs.statut_intervenant_id = i.statut_id
+                                                 AND tpjs.histo_destruction IS NULL
+                                                 AND i.annee_id BETWEEN COALESCE(tpjs.annee_debut_id,i.annee_id) AND COALESCE(tpjs.annee_fin_id,i.annee_id)
+
+               JOIN type_piece_jointe         tpj ON tpj.id = tpjs.type_piece_jointe_id
+                                                 AND tpj.histo_destruction IS NULL
+
+          LEFT JOIN                           i_h ON i_h.intervenant_id = i.id
+        WHERE
+          -- Gestion de l\'\'historique
+          i.histo_destruction IS NULL
+
+          -- Seuil HETD
+          AND (COALESCE(i_h.heures,0) > COALESCE(tpjs.seuil_hetd,-1))
+
+          -- En fonction du premier recrutement ou non
+          AND (tpjs.premier_recrutement = 0 OR COALESCE(i.premier_recrutement,0) = 1)
+
+          -- Le RIB n\'\'est demandé QUE s\'\'il est différent!!
+          AND CASE
+                WHEN tpjs.changement_rib = 0 OR d.id IS NULL THEN 1
+                ELSE CASE WHEN replace(i.bic, \'\' \'\', \'\'\'\') || \'\'-\'\' || replace(i.iban, \'\' \'\', \'\'\'\') = d.rib THEN 0 ELSE 1 END
+              END = 1
+
+          -- Filtre FC
+          AND (tpjs.fc = 0 OR i_h.fc > 0)
+        GROUP BY
+          i.annee_id,
+          i.id,
+          tpj.id) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.TYPE_PIECE_JOINTE_ID = v.TYPE_PIECE_JOINTE_ID
+        AND t.INTERVENANT_ID       = v.INTERVENANT_ID
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      ANNEE_ID             = v.ANNEE_ID,
+      HEURES_POUR_SEUIL    = v.HEURES_POUR_SEUIL,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      TYPE_PIECE_JOINTE_ID,
+      INTERVENANT_ID,
+      HEURES_POUR_SEUIL,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_PIECE_JOINTE_DEMAND_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.TYPE_PIECE_JOINTE_ID,
+      v.INTERVENANT_ID,
+      v.HEURES_POUR_SEUIL,
+      0
+
+    );
+
+    DELETE TBL_PIECE_JOINTE_DEMANDE WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_PIECE_JOINTE_FOURNIE( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_PIECE_JOINTE_FOURNIE SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_PIECE_JOINTE_FOURNIE t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (SELECT
+          i.annee_id,
+          pj.type_piece_jointe_id,
+          pj.intervenant_id,
+          pj.id piece_jointe_id,
+          v.id validation_id,
+          f.id fichier_id
+        FROM
+                    piece_jointe          pj
+               JOIN intervenant            i ON i.id = pj.intervenant_id
+                                            AND i.histo_destruction IS NULL
+
+               JOIN piece_jointe_fichier pjf ON pjf.piece_jointe_id = pj.id
+               JOIN fichier                f ON f.id = pjf.fichier_id
+                                            AND f.histo_destruction IS NULL
+
+          LEFT JOIN validation             v ON v.id = pj.validation_id
+                                            AND v.histo_destruction IS NULL
+        WHERE
+          pj.histo_destruction IS NULL) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.TYPE_PIECE_JOINTE_ID = v.TYPE_PIECE_JOINTE_ID
+        AND t.INTERVENANT_ID       = v.INTERVENANT_ID
+        AND COALESCE(t.VALIDATION_ID,0) = COALESCE(v.VALIDATION_ID,0)
+        AND COALESCE(t.FICHIER_ID,0) = COALESCE(v.FICHIER_ID,0)
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      ANNEE_ID             = v.ANNEE_ID,
+      PIECE_JOINTE_ID      = v.PIECE_JOINTE_ID,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      TYPE_PIECE_JOINTE_ID,
+      INTERVENANT_ID,
+      VALIDATION_ID,
+      FICHIER_ID,
+      PIECE_JOINTE_ID,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_PIECE_JOINTE_FOURNI_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.TYPE_PIECE_JOINTE_ID,
+      v.INTERVENANT_ID,
+      v.VALIDATION_ID,
+      v.FICHIER_ID,
+      v.PIECE_JOINTE_ID,
+      0
+
+    );
+
+    DELETE TBL_PIECE_JOINTE_FOURNIE WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_SERVICE( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_SERVICE SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_SERVICE t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (WITH t AS (
+        SELECT
+          s.id                                                                                      service_id,
+          s.intervenant_id                                                                          intervenant_id,
+          ep.structure_id                                                                           structure_id,
+          ep.id                                                                                     element_pedagogique_id,
+          ep.periode_id                                                                             element_pedagogique_periode_id,
+          etp.id                                                                                    etape_id,
+
+          vh.type_volume_horaire_id                                                                 type_volume_horaire_id,
+          vh.heures                                                                                 heures,
+          tvh.code                                                                                  type_volume_horaire_code,
+
+          CASE WHEN ep.histo_destruction IS NULL THEN 1 ELSE 0 END                                  element_pedagogique_histo,
+          CASE WHEN etp.histo_destruction IS NULL OR cp.id IS NOT NULL THEN 1 ELSE 0 END            etape_histo,
+
+          CASE WHEN ep.periode_id IS NOT NULL THEN
+            SUM( CASE WHEN vh.periode_id <> ep.periode_id THEN 1 ELSE 0 END ) OVER( PARTITION BY vh.service_id, vh.periode_id, vh.type_volume_horaire_id, vh.type_intervention_id )
+          ELSE 0 END has_heures_mauvaise_periode,
+
+          CASE WHEN v.id IS NULL AND vh.auto_validation=0 THEN 0 ELSE 1 END valide
+        FROM
+          service                                       s
+          LEFT JOIN element_pedagogique                ep ON ep.id = s.element_pedagogique_id
+          LEFT JOIN etape                             etp ON etp.id = ep.etape_id
+          LEFT JOIN chemin_pedagogique                 cp ON cp.etape_id = etp.id
+                                                         AND cp.element_pedagogique_id = ep.id
+                                                         AND cp.histo_destruction IS NULL
+
+               JOIN volume_horaire                     vh ON vh.service_id = s.id
+                                                         AND vh.histo_destruction IS NULL
+
+               JOIN type_volume_horaire               tvh ON tvh.id = vh.type_volume_horaire_id
+
+          LEFT JOIN validation_vol_horaire            vvh ON vvh.volume_horaire_id = vh.id
+
+          LEFT JOIN validation                          v ON v.id = vvh.validation_id
+                                                         AND v.histo_destruction IS NULL
+        WHERE
+          s.histo_destruction IS NULL
+        )
+        SELECT
+          i.annee_id                                                                                annee_id,
+          i.id                                                                                      intervenant_id,
+          i.structure_id                                                                            intervenant_structure_id,
+          NVL( t.structure_id, i.structure_id )                                                     structure_id,
+          ti.id                                                                                     type_intervenant_id,
+          ti.code                                                                                   type_intervenant_code,
+          si.peut_saisir_service                                                                    peut_saisir_service,
+
+          t.element_pedagogique_id,
+          t.service_id,
+          t.element_pedagogique_periode_id,
+          t.etape_id,
+          t.type_volume_horaire_id,
+          t.type_volume_horaire_code,
+          t.element_pedagogique_histo,
+          t.etape_histo,
+
+          CASE WHEN SUM(t.has_heures_mauvaise_periode) > 0 THEN 1 ELSE 0 END has_heures_mauvaise_periode,
+
+          CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE count(*) END nbvh,
+          CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE sum(t.heures) END heures,
+          sum(valide) valide
+        FROM
+          t
+          JOIN intervenant                              i ON i.id = t.intervenant_id
+          JOIN statut_intervenant                      si ON si.id = i.statut_id
+          JOIN type_intervenant                        ti ON ti.id = si.type_intervenant_id
+        GROUP BY
+          i.annee_id,
+          i.id,
+          i.structure_id,
+          t.structure_id,
+          i.structure_id,
+          ti.id,
+          ti.code,
+          si.peut_saisir_service,
+          t.element_pedagogique_id,
+          t.service_id,
+          t.element_pedagogique_periode_id,
+          t.etape_id,
+          t.type_volume_horaire_id,
+          t.type_volume_horaire_code,
+          t.element_pedagogique_histo,
+          t.etape_histo) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            COALESCE(t.TYPE_VOLUME_HORAIRE_ID,0) = COALESCE(v.TYPE_VOLUME_HORAIRE_ID,0)
+        AND t.SERVICE_ID             = v.SERVICE_ID
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      ANNEE_ID                       = v.ANNEE_ID,
+      INTERVENANT_ID                 = v.INTERVENANT_ID,
+      PEUT_SAISIR_SERVICE            = v.PEUT_SAISIR_SERVICE,
+      STRUCTURE_ID                   = v.STRUCTURE_ID,
+      NBVH                           = v.NBVH,
+      VALIDE                         = v.VALIDE,
+      ELEMENT_PEDAGOGIQUE_ID         = v.ELEMENT_PEDAGOGIQUE_ID,
+      ELEMENT_PEDAGOGIQUE_PERIODE_ID = v.ELEMENT_PEDAGOGIQUE_PERIODE_ID,
+      ETAPE_ID                       = v.ETAPE_ID,
+      ELEMENT_PEDAGOGIQUE_HISTO      = v.ELEMENT_PEDAGOGIQUE_HISTO,
+      ETAPE_HISTO                    = v.ETAPE_HISTO,
+      HAS_HEURES_MAUVAISE_PERIODE    = v.HAS_HEURES_MAUVAISE_PERIODE,
+      INTERVENANT_STRUCTURE_ID       = v.INTERVENANT_STRUCTURE_ID,
+      TYPE_INTERVENANT_ID            = v.TYPE_INTERVENANT_ID,
+      TYPE_INTERVENANT_CODE          = v.TYPE_INTERVENANT_CODE,
+      TYPE_VOLUME_HORAIRE_CODE       = v.TYPE_VOLUME_HORAIRE_CODE,
+      HEURES                         = v.HEURES,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      INTERVENANT_ID,
+      PEUT_SAISIR_SERVICE,
+      TYPE_VOLUME_HORAIRE_ID,
+      STRUCTURE_ID,
+      NBVH,
+      VALIDE,
+      ELEMENT_PEDAGOGIQUE_ID,
+      ELEMENT_PEDAGOGIQUE_PERIODE_ID,
+      ETAPE_ID,
+      ELEMENT_PEDAGOGIQUE_HISTO,
+      ETAPE_HISTO,
+      HAS_HEURES_MAUVAISE_PERIODE,
+      SERVICE_ID,
+      INTERVENANT_STRUCTURE_ID,
+      TYPE_INTERVENANT_ID,
+      TYPE_INTERVENANT_CODE,
+      TYPE_VOLUME_HORAIRE_CODE,
+      HEURES,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_SERVICE_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.INTERVENANT_ID,
+      v.PEUT_SAISIR_SERVICE,
+      v.TYPE_VOLUME_HORAIRE_ID,
+      v.STRUCTURE_ID,
+      v.NBVH,
+      v.VALIDE,
+      v.ELEMENT_PEDAGOGIQUE_ID,
+      v.ELEMENT_PEDAGOGIQUE_PERIODE_ID,
+      v.ETAPE_ID,
+      v.ELEMENT_PEDAGOGIQUE_HISTO,
+      v.ETAPE_HISTO,
+      v.HAS_HEURES_MAUVAISE_PERIODE,
+      v.SERVICE_ID,
+      v.INTERVENANT_STRUCTURE_ID,
+      v.TYPE_INTERVENANT_ID,
+      v.TYPE_INTERVENANT_CODE,
+      v.TYPE_VOLUME_HORAIRE_CODE,
+      v.HEURES,
+      0
+
+    );
+
+    DELETE TBL_SERVICE WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_SERVICE_REFERENTIEL( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_SERVICE_REFERENTIEL SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_SERVICE_REFERENTIEL t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (WITH t AS (
+
+          SELECT
+            i.annee_id,
+            i.id intervenant_id,
+            si.peut_saisir_referentiel peut_saisir_service,
+            vh.type_volume_horaire_id,
+            s.structure_id,
+            CASE WHEN v.id IS NULL AND vh.auto_validation=0 THEN 0 ELSE 1 END valide
+          FROM
+                      intervenant                     i
+
+                 JOIN statut_intervenant          si ON si.id = i.statut_id
+
+            LEFT JOIN service_referentiel          s ON s.intervenant_id = i.id
+                                                    AND s.histo_destruction IS NULL
+
+            LEFT JOIN volume_horaire_ref          vh ON vh.service_referentiel_id = s.id
+                                                    AND vh.histo_destruction IS NULL
+
+            LEFT JOIN validation_vol_horaire_ref vvh ON vvh.volume_horaire_ref_id = vh.id
+
+            LEFT JOIN validation                   v ON v.id = vvh.validation_id
+                                                    AND v.histo_destruction IS NULL
+          WHERE
+            i.histo_destruction IS NULL
+
+        )
+        SELECT
+          annee_id,
+          intervenant_id,
+          peut_saisir_service,
+          type_volume_horaire_id,
+          structure_id,
+          CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE count(*) END nbvh,
+          sum(valide) valide
+        FROM
+          t
+        WHERE
+          NOT (structure_id IS NOT NULL AND type_volume_horaire_id IS NULL)
+        GROUP BY
+          annee_id,
+          intervenant_id,
+          peut_saisir_service,
+          type_volume_horaire_id,
+          structure_id) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.INTERVENANT_ID         = v.INTERVENANT_ID
+        AND COALESCE(t.TYPE_VOLUME_HORAIRE_ID,0) = COALESCE(v.TYPE_VOLUME_HORAIRE_ID,0)
+        AND COALESCE(t.STRUCTURE_ID,0) = COALESCE(v.STRUCTURE_ID,0)
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      ANNEE_ID               = v.ANNEE_ID,
+      PEUT_SAISIR_SERVICE    = v.PEUT_SAISIR_SERVICE,
+      NBVH                   = v.NBVH,
+      VALIDE                 = v.VALIDE,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      INTERVENANT_ID,
+      PEUT_SAISIR_SERVICE,
+      TYPE_VOLUME_HORAIRE_ID,
+      STRUCTURE_ID,
+      NBVH,
+      VALIDE,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_SERVICE_REFERENTIEL_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.INTERVENANT_ID,
+      v.PEUT_SAISIR_SERVICE,
+      v.TYPE_VOLUME_HORAIRE_ID,
+      v.STRUCTURE_ID,
+      v.NBVH,
+      v.VALIDE,
+      0
+
+    );
+
+    DELETE TBL_SERVICE_REFERENTIEL WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_SERVICE_SAISIE( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_SERVICE_SAISIE SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_SERVICE_SAISIE t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (SELECT
+          i.annee_id,
+          i.id intervenant_id,
+          si.peut_saisir_service,
+          si.peut_saisir_referentiel,
+          SUM( CASE WHEN tvhs.code = \'\'PREVU\'\'   THEN NVL(vh .heures,0) ELSE 0 END ) heures_service_prev,
+          SUM( CASE WHEN tvhs.code = \'\'PREVU\'\'   THEN NVL(vhr.heures,0) ELSE 0 END ) heures_referentiel_prev,
+          SUM( CASE WHEN tvhs.code = \'\'REALISE\'\' THEN NVL(vh .heures,0) ELSE 0 END ) heures_service_real,
+          SUM( CASE WHEN tvhs.code = \'\'REALISE\'\' THEN NVL(vhr.heures,0) ELSE 0 END ) heures_referentiel_real
+        FROM
+          intervenant i
+          JOIN statut_intervenant si ON si.id = i.statut_id
+          LEFT JOIN service s ON s.intervenant_id = i.id AND s.histo_destruction IS NULL
+          LEFT JOIN volume_horaire vh ON vh.service_id = s.id AND vh.histo_destruction IS NULL
+          LEFT JOIN type_volume_horaire tvhs ON tvhs.id = vh.type_volume_horaire_id
+
+          LEFT JOIN service_referentiel sr ON sr.intervenant_id = i.id AND sr.histo_destruction IS NULL
+          LEFT JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL
+          LEFT JOIN type_volume_horaire tvhrs ON tvhrs.id = vhr.type_volume_horaire_id
+        WHERE
+          i.histo_destruction IS NULL
+        GROUP BY
+          i.annee_id,
+          i.id,
+          si.peut_saisir_service,
+          si.peut_saisir_referentiel) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.INTERVENANT_ID = v.INTERVENANT_ID
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      ANNEE_ID                = v.ANNEE_ID,
+      PEUT_SAISIR_SERVICE     = v.PEUT_SAISIR_SERVICE,
+      PEUT_SAISIR_REFERENTIEL = v.PEUT_SAISIR_REFERENTIEL,
+      HEURES_SERVICE_PREV     = v.HEURES_SERVICE_PREV,
+      HEURES_REFERENTIEL_PREV = v.HEURES_REFERENTIEL_PREV,
+      HEURES_SERVICE_REAL     = v.HEURES_SERVICE_REAL,
+      HEURES_REFERENTIEL_REAL = v.HEURES_REFERENTIEL_REAL,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      INTERVENANT_ID,
+      PEUT_SAISIR_SERVICE,
+      PEUT_SAISIR_REFERENTIEL,
+      HEURES_SERVICE_PREV,
+      HEURES_REFERENTIEL_PREV,
+      HEURES_SERVICE_REAL,
+      HEURES_REFERENTIEL_REAL,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_SERVICE_SAISIE_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.INTERVENANT_ID,
+      v.PEUT_SAISIR_SERVICE,
+      v.PEUT_SAISIR_REFERENTIEL,
+      v.HEURES_SERVICE_PREV,
+      v.HEURES_REFERENTIEL_PREV,
+      v.HEURES_SERVICE_REAL,
+      v.HEURES_REFERENTIEL_REAL,
+      0
+
+    );
+
+    DELETE TBL_SERVICE_SAISIE WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_VALIDATION_ENSEIGNEMENT( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_VALIDATION_ENSEIGNEMENT SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_VALIDATION_ENSEIGNEMENT t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (SELECT DISTINCT
+          i.annee_id,
+          i.id intervenant_id,
+          CASE WHEN rsv.priorite = \'\'affectation\'\' THEN
+            COALESCE( i.structure_id, ep.structure_id )
+          ELSE
+            COALESCE( ep.structure_id, i.structure_id )
+          END structure_id,
+          vh.type_volume_horaire_id,
+          s.id service_id,
+          vh.id volume_horaire_id,
+          vh.auto_validation,
+          v.id validation_id
+        FROM
+          service s
+          JOIN volume_horaire vh ON vh.service_id = s.id AND vh.histo_destruction IS NULL
+          JOIN intervenant i ON i.id = s.intervenant_id AND i.histo_destruction IS NULL
+          JOIN statut_intervenant si ON si.id = i.statut_id
+          JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id
+          LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
+          LEFT JOIN validation_vol_horaire vvh ON vvh.volume_horaire_id = vh.id
+          LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL
+        WHERE
+          s.histo_destruction IS NULL) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.INTERVENANT_ID         = v.INTERVENANT_ID
+        AND t.STRUCTURE_ID           = v.STRUCTURE_ID
+        AND t.TYPE_VOLUME_HORAIRE_ID = v.TYPE_VOLUME_HORAIRE_ID
+        AND t.SERVICE_ID             = v.SERVICE_ID
+        AND COALESCE(t.VALIDATION_ID,0) = COALESCE(v.VALIDATION_ID,0)
+        AND t.VOLUME_HORAIRE_ID      = v.VOLUME_HORAIRE_ID
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      ANNEE_ID               = v.ANNEE_ID,
+      AUTO_VALIDATION        = v.AUTO_VALIDATION,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      INTERVENANT_ID,
+      STRUCTURE_ID,
+      TYPE_VOLUME_HORAIRE_ID,
+      SERVICE_ID,
+      VALIDATION_ID,
+      VOLUME_HORAIRE_ID,
+      AUTO_VALIDATION,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_VALIDATION_ENSEIGNE_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.INTERVENANT_ID,
+      v.STRUCTURE_ID,
+      v.TYPE_VOLUME_HORAIRE_ID,
+      v.SERVICE_ID,
+      v.VALIDATION_ID,
+      v.VOLUME_HORAIRE_ID,
+      v.AUTO_VALIDATION,
+      0
+
+    );
+
+    DELETE TBL_VALIDATION_ENSEIGNEMENT WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+
+
+  PROCEDURE C_VALIDATION_REFERENTIEL( PARAMS UNICAEN_TBL.T_PARAMS ) IS
+    conds CLOB;
+  BEGIN
+    conds := params_to_conds( params );
+
+    EXECUTE IMMEDIATE \'BEGIN
+
+    UPDATE TBL_VALIDATION_REFERENTIEL SET to_delete = 1 WHERE \' || conds || \';
+
+    MERGE INTO
+      TBL_VALIDATION_REFERENTIEL t
+    USING (
+
+      SELECT
+        tv.*
+      FROM
+        (SELECT DISTINCT
+          i.annee_id,
+          i.id intervenant_id,
+          CASE WHEN rsv.priorite = \'\'affectation\'\' THEN
+            COALESCE( i.structure_id, s.structure_id )
+          ELSE
+            COALESCE( s.structure_id, i.structure_id )
+          END structure_id,
+          vh.type_volume_horaire_id,
+          s.id service_referentiel_id,
+          vh.id volume_horaire_ref_id,
+          vh.auto_validation,
+          v.id validation_id
+        FROM
+          service_referentiel s
+          JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id AND vh.histo_destruction IS NULL
+          JOIN intervenant i ON i.id = s.intervenant_id AND i.histo_destruction IS NULL
+          JOIN statut_intervenant si ON si.id = i.statut_id
+          JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id
+          LEFT JOIN validation_vol_horaire_ref vvh ON vvh.volume_horaire_ref_id = vh.id
+          LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL
+        WHERE
+          s.histo_destruction IS NULL) tv
+      WHERE
+        \' || conds || \'
+
+    ) v ON (
+            t.INTERVENANT_ID         = v.INTERVENANT_ID
+        AND t.STRUCTURE_ID           = v.STRUCTURE_ID
+        AND t.TYPE_VOLUME_HORAIRE_ID = v.TYPE_VOLUME_HORAIRE_ID
+        AND t.SERVICE_REFERENTIEL_ID = v.SERVICE_REFERENTIEL_ID
+        AND COALESCE(t.VALIDATION_ID,0) = COALESCE(v.VALIDATION_ID,0)
+        AND t.VOLUME_HORAIRE_REF_ID  = v.VOLUME_HORAIRE_REF_ID
+
+    ) WHEN MATCHED THEN UPDATE SET
+
+      ANNEE_ID               = v.ANNEE_ID,
+      AUTO_VALIDATION        = v.AUTO_VALIDATION,
+      to_delete = 0
+
+    WHEN NOT MATCHED THEN INSERT (
+
+      ID,
+      ANNEE_ID,
+      INTERVENANT_ID,
+      STRUCTURE_ID,
+      TYPE_VOLUME_HORAIRE_ID,
+      SERVICE_REFERENTIEL_ID,
+      VALIDATION_ID,
+      VOLUME_HORAIRE_REF_ID,
+      AUTO_VALIDATION,
+      TO_DELETE
+
+    ) VALUES (
+
+      TBL_VALIDATION_REFERENT_ID_SEQ.NEXTVAL,
+      v.ANNEE_ID,
+      v.INTERVENANT_ID,
+      v.STRUCTURE_ID,
+      v.TYPE_VOLUME_HORAIRE_ID,
+      v.SERVICE_REFERENTIEL_ID,
+      v.VALIDATION_ID,
+      v.VOLUME_HORAIRE_REF_ID,
+      v.AUTO_VALIDATION,
+      0
+
+    );
+
+    DELETE TBL_VALIDATION_REFERENTIEL WHERE to_delete = 1 AND \' || conds || \';
+
+    END;\';
+
+  END;
+
+  -- END OF AUTOMATIC GENERATION --
+
+END UNICAEN_TBL;',
+    ),
+  ),
+  'BddAdmin\\Ddl\\DdlView' => 
+  array (
+    'V_AGREMENT_EXPORT_CSV' => 
+    array (
+      'name' => 'V_AGREMENT_EXPORT_CSV',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_AGREMENT_EXPORT_CSV AS
+WITH heures_s AS (
+  SELECT
+    i.id                                      intervenant_id,
+    COALESCE(ep.structure_id,i.structure_id)  structure_id,
+    SUM(frs.service_fi)                       service_fi,
+    SUM(frs.service_fa)                       service_fa,
+    SUM(frs.service_fc)                       service_fc,
+    SUM(frs.heures_compl_fi)                  heures_compl_fi,
+    SUM(frs.heures_compl_fa)                  heures_compl_fa,
+    SUM(frs.heures_compl_fc)                  heures_compl_fc,
+    SUM(frs.heures_compl_fc_majorees)         heures_compl_fc_majorees,
+    SUM(frs.total)                            total
+  FROM
+              formule_resultat_service frs
+         JOIN type_volume_horaire      tvh ON tvh.code = \'PREVU\'
+         JOIN etat_volume_horaire      evh ON evh.code = \'valide\'
+         JOIN formule_resultat          fr ON fr.id = frs.formule_resultat_id
+                                          AND fr.type_volume_horaire_id = tvh.id
+                                          AND fr.etat_volume_horaire_id = evh.id
+         JOIN intervenant                i ON i.id = fr.intervenant_id
+         JOIN service                    s ON s.id = frs.service_id
+    LEFT JOIN element_pedagogique       ep ON ep.id = s.element_pedagogique_id
+  GROUP BY
+    i.id,
+    ep.structure_id,
+    i.structure_id
+)
+SELECT
+  a.id                                                                        annee_id,
+  i.id                                                                        intervenant_id,
+  s.id                                                                        structure_id,
+
+  a.libelle                                                                   annee,
+  s.libelle_court                                                             structure_libelle,
+  i.code                                                                      intervenant_code,
+  i.nom_usuel                                                                 intervenant_nom_usuel,
+  i.nom_patronymique                                                          intervenant_nom_patronymique,
+  i.prenom                                                                    intervenant_prenom,
+
+  si.libelle                                                                  intervenant_statut_libelle,
+  i.premier_recrutement                                                       premier_recrutement,
+  d.libelle_court                                                             discipline,
+
+  COALESCE(heures_s.service_fi, fr.service_fi)
+  + COALESCE(heures_s.heures_compl_fi, fr.heures_compl_fi)
+                                                                              hetd_fi,
+  COALESCE(heures_s.service_fa, fr.service_fa)
+  + COALESCE(heures_s.heures_compl_fa, fr.heures_compl_fa)
+                                                                              hetd_fa,
+  COALESCE(heures_s.service_fc, fr.service_fc)
+  + COALESCE(heures_s.heures_compl_fc, fr.heures_compl_fc)
+  + COALESCE(heures_s.heures_compl_fc_majorees, fr.heures_compl_fc_majorees)
+                                                                              hetd_fc,
+  COALESCE(heures_s.total, fr.total)                                          hetd_total,
+
+
+
+
+  tagr.libelle                                                                type_agrement,
+  CASE WHEN agr.id IS NULL THEN 0 ELSE 1 END                                  agree,
+  agr.date_decision                                                           date_decision,
+  u.display_name                                                              modificateur,
+  agr.histo_modification                                                      date_modification
+FROM
+            tbl_agrement             ta
+       JOIN intervenant               i ON i.id = ta.intervenant_id
+       JOIN statut_intervenant       si ON si.id = i.statut_id
+       JOIN annee                     a ON a.id = ta.annee_id
+       JOIN type_agrement          tagr ON tagr.id = ta.type_agrement_id
+       JOIN type_volume_horaire     tvh ON tvh.code = \'PREVU\'
+       JOIN etat_volume_horaire     evh ON evh.code = \'valide\'
+
+
+  LEFT JOIN structure                 s ON s.id = ta.structure_id
+  LEFT JOIN agrement                agr ON agr.id = ta.agrement_id
+  LEFT JOIN utilisateur               u ON u.id = agr.histo_modificateur_id
+  LEFT JOIN discipline                d ON d.id = i.discipline_id
+
+  LEFT JOIN formule_resultat         fr ON fr.intervenant_id = i.id
+                                       AND fr.type_volume_horaire_id = tvh.id
+                                       AND fr.etat_volume_horaire_id = evh.id
+
+  LEFT JOIN heures_s                    ON heures_s.intervenant_id = i.id
+                                       AND heures_s.structure_id = s.id',
+    ),
+    'V_CENTRE_COUT_STRUCTURE' => 
+    array (
+      'name' => 'V_CENTRE_COUT_STRUCTURE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_CENTRE_COUT_STRUCTURE AS
+SELECT
+  ccs.centre_cout_id,
+  ccs.structure_id
+FROM
+  centre_cout_structure ccs
+WHERE
+  ccs.histo_destruction IS NULL',
+    ),
+    'V_CENTRE_COUT_TYPE_HEURES' => 
+    array (
+      'name' => 'V_CENTRE_COUT_TYPE_HEURES',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_CENTRE_COUT_TYPE_HEURES AS
+select
+  cc.id centre_cout_id,
+  th.id type_heures_id
+from
+  centre_cout cc
+  join type_ressource  tr on tr.id = cc.type_ressource_id
+  join cc_activite    cca on cca.id = cc.activite_id
+  join type_heures     th on th.code = decode(tr.fi + cca.fi, 2, \'fi\', null)
+
+union all
+
+select
+  cc.id centre_cout_id,
+  th.id type_heures_id
+from
+  centre_cout cc
+  join type_ressource  tr on tr.id = cc.type_ressource_id
+  join cc_activite    cca on cca.id = cc.activite_id
+  join type_heures     th on th.code = decode(tr.fc + cca.fc, 2, \'fc\', null)
+
+union all
+
+select
+  cc.id centre_cout_id,
+  th.id type_heures_id
+from
+  centre_cout cc
+  join type_ressource  tr on tr.id = cc.type_ressource_id
+  join cc_activite    cca on cca.id = cc.activite_id
+  join type_heures     th on th.code = decode(tr.fa + cca.fa, 2, \'fa\', null)
+
+union all
+
+select
+  cc.id centre_cout_id,
+  th.id type_heures_id
+from
+  centre_cout cc
+  join type_ressource  tr on tr.id = cc.type_ressource_id
+  join cc_activite    cca on cca.id = cc.activite_id
+  join type_heures     th on th.code = decode(tr.referentiel + cca.referentiel, 2, \'referentiel\', null)
+
+union all
+
+select
+  cc.id centre_cout_id,
+  th.id type_heures_id
+from
+  centre_cout cc
+  join type_ressource  tr on tr.id = cc.type_ressource_id
+  join cc_activite    cca on cca.id = cc.activite_id
+  join type_heures     th on th.code = decode(tr.fc_majorees + cca.fc_majorees, 2, \'fc_majorees\', null)',
+    ),
+    'V_CHARGENS_CALC_EFFECTIF' => 
+    array (
+      'name' => 'V_CHARGENS_CALC_EFFECTIF',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_CHARGENS_CALC_EFFECTIF AS
+SELECT
+  gl.noeud_inf_id             noeud_id,
+  snsup.scenario_id           scenario_id,
+  sninf.id                    scenario_noeud_id,
+  sne.type_heures_id          type_heures_id,
+  sne.etape_id                etape_id,
+--  sne.effectif                effectif,
+--  slsup.choix_minimum         choix_minimum,
+--  slsup.choix_maximum         choix_maximum,
+--  COALESCE(slinf.poids,1)     poids,
+--  COALESCE(sninf.assiduite,1) assiduite,
+--  MIN(COALESCE(sl.poids,1))   min_poids,
+--  MAX(COALESCE(sl.poids,1))   max_poids,
+--  SUM(COALESCE(sl.poids,1))   total_poids,
+--  COUNT(*)                    nb_choix,
+  OSE_CHARGENS.CALC_COEF(
+    slsup.choix_minimum,
+    slsup.choix_maximum,
+    COALESCE(slinf.poids,1),
+    MAX(COALESCE(sl.poids,1)),
+    SUM(COALESCE(sl.poids,1)),
+    COUNT(*)
+  ) * sne.effectif effectif
+FROM
+            v_chargens_grands_liens  gl
+       JOIN scenario_noeud        snsup ON snsup.noeud_id = gl.noeud_sup_id
+                                       AND snsup.histo_destruction IS NULL
+
+       JOIN scenario_noeud_effectif sne ON sne.scenario_noeud_id = snsup.id
+
+  LEFT JOIN scenario_lien         slsup ON slsup.histo_destruction IS NULL
+                                       AND slsup.lien_id = gl.lien_sup_id
+                                       AND slsup.scenario_id = snsup.scenario_id
+
+  LEFT JOIN scenario_lien         slinf ON slinf.histo_destruction IS NULL
+                                       AND slinf.lien_id = gl.lien_inf_id
+                                       AND slinf.scenario_id = snsup.scenario_id
+
+  LEFT JOIN scenario_noeud        sninf ON sninf.noeud_id = gl.noeud_inf_id
+                                       AND sninf.scenario_id = snsup.scenario_id
+                                       AND sninf.histo_destruction IS NULL
+
+       JOIN lien                      l ON l.noeud_sup_id = gl.noeud_liste_id
+                                       AND l.histo_destruction IS NULL
+
+  LEFT JOIN scenario_lien            sl ON sl.lien_id = l.id
+                                       AND sl.scenario_id = snsup.scenario_id
+                                       AND sl.histo_destruction IS NULL
+
+WHERE
+  (slsup.actif = 1 OR slsup.actif IS NULL)
+  AND (slinf.actif = 1 OR slinf.actif IS NULL)
+  AND (sl.actif = 1 OR sl.actif IS NULL)
+  AND (snsup.scenario_id = 0 OR NULL IS NULL)
+  AND (sne.type_heures_id = 0 OR NULL IS NULL)
+  AND (sne.etape_id = 0 OR NULL IS NULL)
+GROUP BY
+  gl.noeud_sup_id,
+  gl.noeud_inf_id,
+  snsup.scenario_id,
+  sninf.id,
+  sne.type_heures_id,
+  sne.etape_id,
+  sne.effectif,
+  slsup.choix_minimum,
+  slsup.choix_maximum,
+  slinf.poids',
+    ),
+    'V_CHARGENS_EXPORT_CSV' => 
+    array (
+      'name' => 'V_CHARGENS_EXPORT_CSV',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_CHARGENS_EXPORT_CSV AS
+SELECT
+  a.id              annee_id,
+  cph.scenario_id   scenario_id,
+  sp.id             structure_porteuse_id,
+  si.id             structure_ins_id,
+
+  a.libelle         annee,
+
+  sp.source_code    structure_porteuse_code,
+  sp.libelle_court  structure_porteuse_libelle,
+  eport.code        etape_porteuse_code,
+  eport.libelle     etape_porteuse_libelle,
+
+  si.source_code    structure_ins_code,
+  si.libelle_court  structure_ins_libelle,
+  eins.code         etape_ins_code,
+  eins.libelle      etape_ins_libelle,
+
+  ep.code           element_code,
+  ep.libelle        element_libelle,
+  p.libelle_court   periode,
+  d.source_code     discipline_code,
+  d.libelle_court   discipline_libelle,
+  th.libelle_court  type_heures,
+  ti.code           type_intervention,
+
+  cph.ouverture     seuil_ouverture,
+  cph.dedoublement  seuil_dedoublement,
+  cph.assiduite     assiduite,
+  sne.effectif      effectif_etape,
+  cph.effectif      effectif_element,
+  cph.heures_ens    heures_ens,
+  cph.groupes       groupes,
+  cph.heures        heures,
+  cph.hetd          hetd
+  FROM
+            tbl_chargens                cph
+       JOIN annee                         a ON a.id = cph.annee_id
+       JOIN structure                    sp ON sp.id = cph.structure_id
+       JOIN etape                     eport ON eport.id = cph.etape_id
+       JOIN etape                      eins ON eins.id = cph.etape_ens_id
+       JOIN structure                    si ON si.id = eins.structure_id
+       JOIN element_pedagogique          ep ON ep.id = cph.element_pedagogique_id
+       JOIN type_heures                  th ON th.id = cph.type_heures_id
+       JOIN type_intervention            ti ON ti.id = cph.type_intervention_id
+  LEFT JOIN periode                       p ON p.id = ep.periode_id
+  LEFT JOIN discipline                    d ON d.id = ep.discipline_id
+  LEFT JOIN noeud                         n ON n.etape_id = eins.id
+                                           AND n.histo_destruction IS NULL
+
+  LEFT JOIN scenario_noeud               sn ON sn.noeud_id = n.id
+                                           AND sn.histo_destruction IS NULL
+                                           AND sn.scenario_id = cph.scenario_id
+
+  LEFT JOIN scenario_noeud_effectif     sne ON sne.scenario_noeud_id = sn.id
+                                           AND sne.type_heures_id = cph.type_heures_id
+                                           AND sne.etape_id = n.etape_id
+ORDER BY
+  structure_porteuse_code,
+  etape_porteuse_code,
+  structure_ins_code,
+  etape_ins_code,
+  element_code,
+  type_heures,
+  type_intervention',
+    ),
+    'V_CHARGENS_GRANDS_LIENS' => 
+    array (
+      'name' => 'V_CHARGENS_GRANDS_LIENS',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_CHARGENS_GRANDS_LIENS AS
+SELECT
+  nsup.id noeud_sup_id,
+  lsup.id lien_sup_id,
+  nl.id   noeud_liste_id,
+  linf.id lien_inf_id,
+  ninf.id noeud_inf_id
+FROM
+       noeud            nsup
+
+  JOIN lien             lsup   ON lsup.noeud_sup_id = nsup.id
+                              AND lsup.histo_destruction IS NULL
+
+  JOIN noeud              nl   ON nl.liste = 1
+                              AND nl.histo_destruction IS NULL
+                              AND nl.id = lsup.noeud_inf_id
+
+  JOIN lien             linf   ON linf.noeud_sup_id = nl.id
+                              AND linf.histo_destruction IS NULL
+
+  JOIN noeud            ninf   ON ninf.id = linf.noeud_inf_id
+                              AND ninf.histo_destruction IS NULL
+                              AND ninf.liste = 0
+WHERE
+  nsup.histo_destruction IS NULL
+  AND nsup.liste = 0',
+    ),
+    'V_CHARGENS_PRECALCUL_HEURES' => 
+    array (
+      'name' => 'V_CHARGENS_PRECALCUL_HEURES',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_CHARGENS_PRECALCUL_HEURES AS
+WITH t AS (
+SELECT
+  n.annee_id                        annee_id,
+  n.noeud_id                        noeud_id,
+  sn.scenario_id                    scenario_id,
+  sne.type_heures_id                type_heures_id,
+  ti.id                             type_intervention_id,
+
+  n.element_pedagogique_id          element_pedagogique_id,
+  n.element_pedagogique_etape_id    etape_id,
+  sne.etape_id                      etape_ens_id,
+  n.structure_id                    structure_id,
+
+  vhe.heures                        heures,
+  vhe.heures * ti.taux_hetd_service hetd,
+
+  GREATEST(COALESCE(sns.ouverture, 1),1)                                           ouverture,
+  GREATEST(COALESCE(sns.dedoublement, snsetp.dedoublement, csdd.dedoublement,1),1) dedoublement,
+  COALESCE(sns.assiduite,1)                                                        assiduite,
+  sne.effectif*COALESCE(sns.assiduite,1)                                           effectif,
+
+  SUM(sne.effectif*COALESCE(sns.assiduite,1)) OVER (PARTITION BY n.noeud_id, sn.scenario_id, ti.id) t_effectif
+
+FROM
+            scenario_noeud_effectif    sne
+            JOIN etape                        e ON e.id = sne.etape_id
+                                          AND e.histo_destruction IS NULL
+
+       JOIN scenario_noeud              sn ON sn.id = sne.scenario_noeud_id
+                                          AND sn.histo_destruction IS NULL
+
+       JOIN tbl_noeud                       n ON n.noeud_id = sn.noeud_id
+
+       JOIN volume_horaire_ens         vhe ON vhe.element_pedagogique_id = n.element_pedagogique_id
+                                          AND vhe.histo_destruction IS NULL
+                                          AND vhe.heures > 0
+
+       JOIN type_intervention           ti ON ti.id = vhe.type_intervention_id
+
+  LEFT JOIN tbl_noeud                 netp ON netp.etape_id = e.id
+
+  LEFT JOIN scenario_noeud           snetp ON snetp.scenario_id = sn.scenario_id
+                                          AND snetp.noeud_id = netp.noeud_id
+                                          AND snetp.histo_destruction IS NULL
+
+  LEFT JOIN scenario_noeud_seuil    snsetp ON snsetp.scenario_noeud_id = snetp.id
+                                          AND snsetp.type_intervention_id = ti.id
+
+  LEFT JOIN tbl_chargens_seuils_def   csdd ON csdd.annee_id = n.annee_id
+                                          AND csdd.scenario_id = sn.scenario_id
+                                          AND csdd.type_intervention_id = ti.id
+                                          AND csdd.groupe_type_formation_id = n.groupe_type_formation_id
+                                          AND csdd.structure_id = n.structure_id
+
+  LEFT JOIN scenario_noeud_seuil       sns ON sns.scenario_noeud_id = sn.id
+                                          AND sns.type_intervention_id = ti.id
+WHERE
+  1 = OSE_CHARGENS.MATCH_PRECALC_HEURES_PARAMS( n.annee_id, n.structure_id, sn.scenario_id, sne.type_heures_id, sne.etape_id, n.noeud_id )
+)
+SELECT
+  annee_id,
+  noeud_id,
+  scenario_id,
+  type_heures_id,
+  type_intervention_id,
+
+  element_pedagogique_id,
+  etape_id,
+  etape_ens_id,
+  structure_id,
+
+  ouverture,
+  dedoublement,
+  assiduite,
+  effectif,
+  heures heures_ens,
+  --t_effectif,
+
+  CASE WHEN t_effectif < ouverture THEN 0 ELSE
+    CEIL( t_effectif / dedoublement ) * effectif / t_effectif
+  END groupes,
+
+  CASE WHEN t_effectif < ouverture THEN 0 ELSE
+    CEIL( t_effectif / dedoublement ) * heures * effectif / t_effectif
+  END heures,
+
+  CASE WHEN t_effectif < ouverture THEN 0 ELSE
+    CEIL( t_effectif / dedoublement ) * hetd * effectif / t_effectif
+  END  hetd
+
+FROM
+  t',
+    ),
+    'V_CHARGENS_SEUILS_DED_DEF' => 
+    array (
+      'name' => 'V_CHARGENS_SEUILS_DED_DEF',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_CHARGENS_SEUILS_DED_DEF AS
+WITH tisc AS (
+  SELECT DISTINCT
+    sc.type_intervention_id,
+    sc.scenario_id
+  FROM
+    seuil_charge sc
+  WHERE
+    sc.histo_destruction IS NULL
+)
+SELECT
+  n.noeud_id noeud_id,
+  tisc.scenario_id,
+  tisc.type_intervention_id,
+  COALESCE(snsetp.dedoublement, tcsd.dedoublement) dedoublement
+FROM
+            tbl_noeud                  n
+       JOIN                         tisc ON 1=1
+
+  LEFT JOIN scenario_noeud         snetp ON snetp.noeud_id = n.noeud_etape_id
+                                        AND snetp.scenario_id = tisc.scenario_id
+                                        AND snetp.histo_destruction IS NULL
+
+  LEFT JOIN scenario_noeud_seuil  snsetp ON snsetp.scenario_noeud_id = snetp.id
+                                        AND snsetp.type_intervention_id = tisc.type_intervention_id
+
+  LEFT JOIN tbl_chargens_seuils_def tcsd ON tcsd.annee_id = n.annee_id
+                                        AND tcsd.scenario_id = tisc.scenario_id
+                                        AND tcsd.groupe_type_formation_id = n.groupe_type_formation_id
+                                        AND tcsd.type_intervention_id = tisc.type_intervention_id
+WHERE
+  COALESCE(snsetp.dedoublement, tcsd.dedoublement)  IS NOT NULL',
+    ),
+    'V_CONTRAT_MAIN' => 
+    array (
+      'name' => 'V_CONTRAT_MAIN',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_CONTRAT_MAIN AS
+WITH hs AS (
+  SELECT contrat_id, sum(heures) "serviceTotal" FROM V_CONTRAT_SERVICES GROUP BY contrat_id
+)
+SELECT
+  ct.annee_id,
+  ct.structure_id,
+  ct.intervenant_id,
+  ct.formule_resultat_id,
+  ct.id contrat_id,
+
+  ct."annee",
+  ct."nom",
+  ct."prenom",
+  ct."civilite",
+  ct."e",
+  ct."dateNaissance",
+  ct."adresse",
+  ct."numInsee",
+  ct."statut",
+  ct."totalHETD",
+  ct."tauxHoraireValeur",
+  ct."tauxHoraireDate",
+  ct."dateSignature",
+  ct."modifieComplete",
+  CASE WHEN ct.est_contrat=1 THEN 1 ELSE null END "contrat1",
+  CASE WHEN ct.est_contrat=1 THEN null ELSE 1 END "avenant1",
+  CASE WHEN ct.est_contrat=1 THEN \'3\' ELSE \'2\' END "n",
+  to_char(SYSDATE, \'dd/mm/YYYY - hh24:mi:ss\') "horodatage",
+  \'Exemplaire à conserver\' "exemplaire1",
+  \'Exemplaire à retourner\' || ct."exemplaire2" "exemplaire2",
+  ct."serviceTotal",
+
+  CASE ct.est_contrat
+    WHEN 1 THEN -- contrat
+      \'Contrat de travail\'
+    ELSE
+      \'Avenant au contrat de travail initial modifiant le volume horaire initial\'
+      || \' de recrutement en qualité\'
+  END                                         "titre",
+  CASE WHEN ct.est_atv = 1 THEN
+    \'d\'\'agent temporaire vacataire\'
+  ELSE
+    \'de chargé\' || ct."e" || \' d\'\'enseignement vacataire\'
+  END                                         "qualite",
+
+  CASE
+    WHEN ct.est_projet = 1 AND ct.est_contrat = 1 THEN \'Projet de contrat\'
+    WHEN ct.est_projet = 0 AND ct.est_contrat = 1 THEN \'Contrat n°\' || ct.id
+    WHEN ct.est_projet = 1 AND ct.est_contrat = 0 THEN \'Projet d\'\'avenant\'
+    WHEN ct.est_projet = 0 AND ct.est_contrat = 0 THEN \'Avenant n°\' || ct.contrat_id || \'.\' || ct.numero_avenant
+  END                                         "titreCourt"
+FROM
+(
+  SELECT
+    c.*,
+    i.annee_id                                                                                    annee_id,
+    fr.id                                                                                         formule_resultat_id,
+    a.libelle                                                                                     "annee",
+    COALESCE(d.nom_usuel,i.nom_usuel)                                                             "nom",
+    COALESCE(d.prenom,i.prenom)                                                                   "prenom",
+    civ.libelle_court                                                                             "civilite",
+    CASE WHEN civ.sexe = \'F\' THEN \'e\' ELSE \'\' END                                                 "e",
+    to_char(COALESCE(d.date_naissance,i.date_naissance), \'dd/mm/YYYY\')                            "dateNaissance",
+    COALESCE(d.adresse,ose_divers.formatted_adresse(
+        ai.NO_VOIE, ai.NOM_VOIE, ai.BATIMENT, ai.MENTION_COMPLEMENTAIRE, ai.LOCALITE,
+        ai.CODE_POSTAL, ai.VILLE, ai.PAYS_LIBELLE))                                               "adresse",
+    COALESCE(d.numero_insee,i.numero_insee || \' \' || COALESCE(LPAD(i.numero_insee_cle,2,\'0\'),\'\')) "numInsee",
+    si.libelle                                                                                    "statut",
+    replace(ltrim(to_char(COALESCE(fr.total,0), \'999999.00\')),\'.\',\',\')                            "totalHETD",
+    replace(ltrim(to_char(COALESCE(th.valeur,0), \'999999.00\')),\'.\',\',\')                           "tauxHoraireValeur",
+    COALESCE(to_char(th.histo_creation, \'dd/mm/YYYY\'), \'TAUX INTROUVABLE\')                        "tauxHoraireDate",
+    to_char(COALESCE(v.histo_creation, c.histo_creation), \'dd/mm/YYYY\')                           "dateSignature",
+    CASE WHEN c.structure_id <> COALESCE(cp.structure_id,0) THEN \'modifié\' ELSE \'complété\' END    "modifieComplete",
+    CASE WHEN s.aff_adresse_contrat = 1 THEN
+      \' signé à l\'\'adresse suivante :\' || CHR(13) || CHR(10) ||
+      s.libelle_court || \' - \' || REPLACE(ose_divers.formatted_adresse(
+        astr.NO_VOIE, astr.NOM_VOIE, null, null, astr.LOCALITE,
+        astr.CODE_POSTAL, astr.VILLE, null), CHR(13), \' - \')
+    ELSE \'\' END                                                                                   "exemplaire2",
+    replace(ltrim(to_char(COALESCE(hs."serviceTotal",0), \'999999.00\')),\'.\',\',\')                   "serviceTotal",
+    CASE WHEN c.contrat_id IS NULL THEN 1 ELSE 0 END                                              est_contrat,
+    CASE WHEN v.id IS NULL THEN 1 ELSE 0 END                                                      est_projet,
+    si.tem_atv                                                                                    est_atv
+
+  FROM
+              contrat               c
+         JOIN type_contrat         tc ON tc.id = c.type_contrat_id
+         JOIN intervenant           i ON i.id = c.intervenant_id
+         JOIN annee                 a ON a.id = i.annee_id
+         JOIN statut_intervenant   si ON si.id = i.statut_id
+         JOIN structure             s ON s.id = c.structure_id
+    LEFT JOIN adresse_structure  astr ON astr.structure_id = s.id AND astr.principale = 1 AND astr.histo_destruction IS NULL
+    LEFT JOIN dossier               d ON d.intervenant_id = i.id AND d.histo_destruction IS NULL
+         JOIN civilite            civ ON civ.id = COALESCE(d.civilite_id,i.civilite_id)
+    LEFT JOIN validation            v ON v.id = c.validation_id AND v.histo_destruction IS NULL
+    LEFT JOIN adresse_intervenant  ai ON ai.intervenant_id = i.id AND ai.histo_destruction IS NULL
+
+         JOIN type_volume_horaire tvh ON tvh.code = \'PREVU\'
+         JOIN etat_volume_horaire evh ON evh.code = \'valide\'
+    LEFT JOIN formule_resultat     fr ON fr.intervenant_id = i.id AND fr.type_volume_horaire_id = tvh.id AND fr.etat_volume_horaire_id = evh.id
+    LEFT JOIN taux_horaire_hetd    th ON c.histo_creation BETWEEN th.histo_creation AND COALESCE(th.histo_destruction,SYSDATE)
+    LEFT JOIN                      hs ON hs.contrat_id = c.id
+    LEFT JOIN contrat              cp ON cp.id = c.contrat_id
+  WHERE
+    c.histo_destruction IS NULL
+) ct',
+    ),
+    'V_CONTRAT_SERVICES' => 
+    array (
+      'name' => 'V_CONTRAT_SERVICES',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_CONTRAT_SERVICES AS
+SELECT
+  c.id                                             contrat_id,
+  str.libelle_court                                "serviceComposante",
+  ep.code                                          "serviceCode",
+  ep.libelle                                       "serviceLibelle",
+  sum(vh.heures)                                   heures,
+  replace(ltrim(to_char(sum(vh.heures), \'999999.00\')),\'.\',\',\') "serviceHeures"
+FROM
+            contrat                  c
+       JOIN intervenant              i ON i.id = c.intervenant_id
+       JOIN type_volume_horaire    tvh ON tvh.code = \'PREVU\'
+       JOIN service                  s ON s.intervenant_id = i.id AND s.histo_destruction IS NULL
+       JOIN volume_horaire          vh ON vh.service_id = s.id AND vh.histo_destruction IS NULL AND vh.type_volume_horaire_id = tvh.id
+  LEFT JOIN validation_vol_horaire vvh ON vvh.volume_horaire_id = vh.id
+  LEFT JOIN validation               v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL
+  LEFT JOIN validation              cv ON cv.id = c.validation_id AND cv.histo_destruction IS NULL
+  LEFT JOIN element_pedagogique     ep ON ep.id = s.element_pedagogique_id
+       JOIN structure              str ON str.id = COALESCE(ep.structure_id,i.structure_id)
+WHERE
+  c.histo_destruction IS NULL
+  -- On récapitule tous les enseignements validés de la composante et pas seulement le différentiel...
+  --AND (cv.id IS NULL OR vh.contrat_id = c.id)
+  AND COALESCE(ep.structure_id,i.structure_id) = c.structure_id
+  AND (vh.auto_validation = 1 OR v.id IS NOT NULL)
+GROUP BY
+  c.id, str.libelle_court, ep.code, ep.libelle',
+    ),
+    'V_CTL_SERVICES_ODF_HISTO' => 
+    array (
+      'name' => 'V_CTL_SERVICES_ODF_HISTO',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_CTL_SERVICES_ODF_HISTO AS
+with vh as (
+  SELECT
+    vh.service_id,
+    ti.code type_intervention,
+    SUM(heures) heures,
+    CASE WHEN vh.contrat_id IS NULL THEN 0 ELSE 1 END has_contrat,
+    CASE WHEN (SELECT COUNT(*) FROM validation_vol_horaire vvh WHERE vvh.volume_horaire_id = vh.id) = 1 THEN 1 ELSE 0 END has_validation
+  FROM
+    volume_horaire vh
+    JOIN type_volume_horaire tvh ON tvh.id = vh.type_volume_horaire_id
+    JOIN type_intervention ti ON ti.id = vh.type_intervention_id
+  WHERE
+    vh.histo_destruction IS NULL
+    AND tvh.code = \'PREVU\'
+  GROUP BY
+    vh.id, ti.code, vh.service_id, vh.contrat_id
+)
+SELECT
+  i.prenom, i.nom_usuel,
+  ep.source_code "ELEMENT",
+  e.source_code etape,
+
+  vh.type_intervention,
+  vh.heures,
+  vh.has_contrat,
+  vh.has_validation,
+  CASE WHEN ep.histo_destruction IS NOT NULL THEN 1 ELSE 0 END element_supprime,
+  CASE WHEN e.histo_destruction IS NOT NULL THEN 1 ELSE 0 END etape_supprimee,
+  CASE WHEN et.histo_destruction IS NOT NULL THEN 1 ELSE 0 END etablissement_supprime
+FROM
+  service s
+  JOIN intervenant i ON i.id = s.intervenant_id
+  LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
+  LEFT JOIN etape e ON e.id = ep.etape_id
+  LEFT JOIN etablissement et ON et.id = s.etablissement_id
+  LEFT JOIN vh ON vh.service_id = s.id
+WHERE
+  s.histo_destruction IS NULL
+  AND (
+    (ep.id IS NOT NULL AND ep.histo_destruction IS NOT NULL)
+    OR
+    (e.id IS NOT NULL AND e.histo_destruction IS NOT NULL)
+    OR
+    (et.id IS NOT NULL AND et.histo_destruction IS NOT NULL)
+  )
+order by
+  nom_usuel, prenom, etape, "ELEMENT", heures',
+    ),
+    'V_CTL_VH_MAUVAIS_SEMESTRE' => 
+    array (
+      'name' => 'V_CTL_VH_MAUVAIS_SEMESTRE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_CTL_VH_MAUVAIS_SEMESTRE AS
+SELECT
+  vh.id,
+  i.nom_usuel, i.prenom,
+  vh.heures,
+  vvh.validation_id
+FROM
+  volume_horaire vh
+  JOIN type_volume_horaire tvh ON tvh.id = vh.type_volume_horaire_id
+  JOIN service s ON s.id = vh.service_id
+  JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
+  JOIN intervenant i ON i.id = s.intervenant_id
+  LEFT JOIN VALIDATION_VOL_HORAIRE vvh on VVH.VOLUME_HORAIRE_ID = vh.id
+WHERE
+  tvh.code = \'PREVU\'
+  AND ep.periode_id IS NOT NULL
+  AND vh.periode_id <> ep.periode_id
+ORDER BY
+  nom_usuel, prenom, heures',
+    ),
+    'V_ELEMENT_TYPE_HEURES' => 
+    array (
+      'name' => 'V_ELEMENT_TYPE_HEURES',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_ELEMENT_TYPE_HEURES AS
+select ep.id element_pedagogique_id, th.id type_heures_id
+  from element_pedagogique ep
+  join type_heures th on th.code = decode(ep.fi, 1, \'fi\', null)
+union all
+  select ep.id element_pedagogique_id, th.id type_heures_id
+  from element_pedagogique ep
+  join type_heures th on th.code = decode(ep.fc, 1, \'fc\', null)
+union all
+  select ep.id element_pedagogique_id, th.id type_heures_id
+  from element_pedagogique ep
+  join type_heures th on th.code = decode(ep.fa, 1, \'fa\', null)',
+    ),
+    'V_ELEMENT_TYPE_INTERVENTION' => 
+    array (
+      'name' => 'V_ELEMENT_TYPE_INTERVENTION',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_ELEMENT_TYPE_INTERVENTION AS
+SELECT
+  type_intervention_id,
+  element_pedagogique_id
+FROM
+  type_intervention_ep tie
+  JOIN type_intervention ti ON ti.id = tie.type_intervention_id
+WHERE
+  tie.histo_destruction IS NULL
+ORDER BY
+  ti.ordre',
+    ),
+    'V_ELEMENT_TYPE_INTERV_POSSIBLE' => 
+    array (
+      'name' => 'V_ELEMENT_TYPE_INTERV_POSSIBLE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_ELEMENT_TYPE_INTERV_POSSIBLE AS
+SELECT
+  ti.id       type_intervention_id,
+  ep.id       element_pedagogique_id
+FROM
+            element_pedagogique              ep
+
+       JOIN type_intervention                ti ON ep.annee_id BETWEEN COALESCE(ti.annee_debut_id,ep.annee_id) AND COALESCE(ti.annee_fin_id, ep.annee_id)
+                                               AND ti.histo_destruction IS NULL
+
+  LEFT JOIN type_intervention_structure     tis ON tis.type_intervention_id = ti.id
+                                               AND tis.structure_id = ep.structure_id
+                                               AND ep.annee_id BETWEEN COALESCE(tis.annee_debut_id,ep.annee_id) AND COALESCE(tis.annee_fin_id, ep.annee_id)
+                                               AND tis.histo_destruction IS NULL
+WHERE
+  ep.histo_destruction IS NULL
+  AND COALESCE( tis.visible, ti.visible ) = 1
+  AND (ti.regle_foad = 0 OR ep.taux_foad > 0)
+  AND (ti.regle_fc = 0 OR ep.taux_fc > 0)',
+    ),
+    'V_ELEMENT_TYPE_MODULATEUR' => 
+    array (
+      'name' => 'V_ELEMENT_TYPE_MODULATEUR',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_ELEMENT_TYPE_MODULATEUR AS
+SELECT
+  ep.id element_pedagogique_id,
+  tms.type_modulateur_id type_modulateur_id
+FROM
+       element_pedagogique        ep
+  JOIN structure                   s ON s.id = ep.structure_id
+                                    AND s.histo_destruction IS NULL
+
+  JOIN type_modulateur_structure tms ON tms.structure_id = s.id
+                                    AND tms.histo_destruction IS NULL
+                                    AND ep.annee_id BETWEEN GREATEST(NVL(tms.annee_debut_id,0),ep.annee_id) AND LEAST(NVL(tms.annee_fin_id,9999),ep.annee_id)
+
+UNION
+
+SELECT
+  tm_ep.element_pedagogique_id element_pedagogique_id,
+  tm_ep.type_modulateur_id type_modulateur_id
+FROM
+  type_modulateur_ep tm_ep
+WHERE
+  tm_ep.histo_destruction IS NULL',
+    ),
+    'V_ETAPE_NIVEAU_FORMATION' => 
+    array (
+      'name' => 'V_ETAPE_NIVEAU_FORMATION',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_ETAPE_NIVEAU_FORMATION AS
+SELECT
+  e.id etape_id,
+  nf.id niveau_formation_id
+FROM
+  etape e
+  JOIN type_formation tf ON tf.id = e.type_formation_id AND tf.histo_destruction IS NULL
+  JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id AND gtf.histo_destruction IS NULL
+  JOIN v_niveau_formation nf ON nf.code = gtf.libelle_court || e.niveau
+WHERE
+  e.histo_destruction IS NULL
+  AND gtf.pertinence_niveau = 1
+  AND e.niveau IS NOT NULL',
+    ),
+    'V_ETAPE_TYPE_MODULATEUR' => 
+    array (
+      'name' => 'V_ETAPE_TYPE_MODULATEUR',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_ETAPE_TYPE_MODULATEUR AS
+SELECT DISTINCT
+  etm.type_modulateur_id type_modulateur_id,
+  ep.etape_id etape_id
+FROM
+  v_element_type_modulateur etm
+  JOIN element_pedagogique ep ON ep.id = etm.element_pedagogique_id AND ep.histo_destruction IS NULL',
+    ),
+    'V_ETAT_PAIEMENT' => 
+    array (
+      'name' => 'V_ETAT_PAIEMENT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_ETAT_PAIEMENT AS
+SELECT
+             annee_id,
+             type_intervenant_id,
+             structure_id,
+             periode_id,
+             intervenant_id,
+             centre_cout_id,
+             domaine_fonctionnel_id,
+
+             annee_id || \'/\' || (annee_id+1) annee,
+             etat,
+             composante,
+             date_mise_en_paiement,
+             periode,
+             statut,
+             intervenant_code,
+             intervenant_nom,
+             intervenant_numero_insee,
+             centre_cout_code,
+             centre_cout_libelle,
+             domaine_fonctionnel_code,
+             domaine_fonctionnel_libelle,
+             hetd,
+             CASE WHEN pourc_ecart >= 0 THEN
+                 CASE WHEN RANK() OVER (PARTITION BY periode_id, intervenant_id, etat, structure_id ORDER BY CASE WHEN (pourc_ecart >= 0 AND pourc_diff >= 0) OR (pourc_ecart < 0 AND pourc_diff < 0) THEN pourc_diff ELSE -1 END DESC) <= (ABS(pourc_ecart) / 0.001) THEN hetd_pourc + (pourc_ecart / ABS(pourc_ecart) * 0.001) ELSE hetd_pourc END
+                  ELSE
+                 CASE WHEN RANK() OVER (PARTITION BY periode_id, intervenant_id, etat, structure_id ORDER BY CASE WHEN (pourc_ecart >= 0 AND pourc_diff >= 0) OR (pourc_ecart < 0 AND pourc_diff < 0) THEN pourc_diff ELSE -1 END) <= (ABS(pourc_ecart) / 0.001) THEN hetd_pourc + (pourc_ecart / ABS(pourc_ecart) * 0.001) ELSE hetd_pourc END
+                 END hetd_pourc,
+             hetd_montant,
+             rem_fc_d714,
+             exercice_aa,
+             exercice_aa_montant,
+             exercice_ac,
+             exercice_ac_montant
+      FROM
+           (
+           SELECT
+                  dep3.*,
+
+                  1-CASE WHEN hetd > 0 THEN SUM( hetd_pourc ) OVER ( PARTITION BY periode_id, intervenant_id, etat, structure_id) ELSE 0 END pourc_ecart
+
+
+           FROM (
+
+                SELECT
+                       periode_id,
+                       structure_id,
+                       type_intervenant_id,
+                       intervenant_id,
+                       annee_id,
+                       centre_cout_id,
+                       domaine_fonctionnel_id,
+                       etat,
+                       composante,
+                       date_mise_en_paiement,
+                       periode,
+                       statut,
+                       intervenant_code,
+                       intervenant_nom,
+                       intervenant_numero_insee,
+                       centre_cout_code,
+                       centre_cout_libelle,
+                       domaine_fonctionnel_code,
+                       domaine_fonctionnel_libelle,
+                       hetd,
+                       ROUND( CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_id, intervenant_id, etat, structure_id) ELSE 0 END, 3 ) hetd_pourc,
+                       ROUND( hetd * taux_horaire, 2 ) hetd_montant,
+                       ROUND( fc_majorees * taux_horaire, 2 ) rem_fc_d714,
+                       exercice_aa,
+                       ROUND( exercice_aa * taux_horaire, 2 ) exercice_aa_montant,
+                       exercice_ac,
+                       ROUND( exercice_ac * taux_horaire, 2 ) exercice_ac_montant,
+
+
+                       (CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_id, intervenant_id, etat, structure_id) ELSE 0 END)
+                             -
+                       ROUND( CASE WHEN hetd > 0 THEN hetd / SUM( hetd ) OVER( PARTITION BY periode_id, intervenant_id, etat, structure_id) ELSE 0 END, 3 ) pourc_diff
+
+                FROM (
+                     WITH dep AS ( -- détails par état de paiement
+                         SELECT
+                                CASE WHEN th.code = \'fc_majorees\' THEN 1 ELSE 0 END                 is_fc_majoree,
+                                p.id                                                                periode_id,
+                                s.id                                                                structure_id,
+                                i.id                                                                intervenant_id,
+                                i.annee_id                                                          annee_id,
+                                cc.id                                                               centre_cout_id,
+                                df.id                                                               domaine_fonctionnel_id,
+                                ti.id                                                               type_intervenant_id,
+                                CASE
+                                      WHEN mep.date_mise_en_paiement IS NULL THEN \'a-mettre-en-paiement\'
+                                      ELSE \'mis-en-paiement\'
+                                    END                                                                 etat,
+
+                                TRIM(p.libelle_long || \' \' || to_char( add_months( a.date_debut, p.ecart_mois ), \'yyyy\' )) periode,
+                                mep.date_mise_en_paiement                                           date_mise_en_paiement,
+                                s.libelle_court                                                     composante,
+                                ti.libelle                                                          statut,
+                                i.source_code                                                       intervenant_code,
+                                i.nom_usuel || \' \' || i.prenom                                      intervenant_nom,
+                                TRIM( i.numero_insee || NVL(TRIM(i.numero_insee_cle),\'00\') )        intervenant_numero_insee,
+                                cc.source_code                                                      centre_cout_code,
+                                cc.libelle                                                          centre_cout_libelle,
+                                df.source_code                                                      domaine_fonctionnel_code,
+                                df.libelle                                                          domaine_fonctionnel_libelle,
+                                CASE WHEN th.code = \'fc_majorees\' THEN 0 ELSE mep.heures END        hetd,
+                                CASE WHEN th.code = \'fc_majorees\' THEN mep.heures ELSE 0 END        fc_majorees,
+                                mep.heures * 4 / 10                                                 exercice_aa,
+                                mep.heures * 6 / 10                                                 exercice_ac,
+                             --CASE WHEN th.code = \'fc_majorees\' THEN 0 ELSE mep.heures END * 4 / 10                                                 exercice_aa,
+                             --CASE WHEN th.code = \'fc_majorees\' THEN 0 ELSE mep.heures END * 6 / 10                                                 exercice_ac,
+                                OSE_FORMULE.GET_TAUX_HORAIRE_HETD( NVL(mep.date_mise_en_paiement,SYSDATE) )      taux_horaire
+                         FROM
+                              v_mep_intervenant_structure  mis
+                                    JOIN mise_en_paiement        mep ON mep.id = mis.mise_en_paiement_id AND mep.histo_destruction IS NULL
+                                    JOIN type_heures              th ON  th.id = mep.type_heures_id
+                                    JOIN centre_cout              cc ON  cc.id = mep.centre_cout_id      -- pas d\'historique pour les centres de coût, qui devront tout de même apparaitre mais en erreur
+                                    JOIN intervenant               i ON   i.id = mis.intervenant_id      AND i.histo_destruction IS NULL
+                                    JOIN annee                     a ON   a.id = i.annee_id
+                                    JOIN statut_intervenant       si ON  si.id = i.statut_id
+                                    JOIN type_intervenant         ti ON  ti.id = si.type_intervenant_id
+                                    JOIN structure                 s ON   s.id = mis.structure_id
+                                    LEFT JOIN validation           v ON   v.id = mep.validation_id       AND v.histo_destruction IS NULL
+                                    LEFT JOIN domaine_fonctionnel df ON  df.id = mis.domaine_fonctionnel_id
+                                    LEFT JOIN periode              p ON   p.id = mep.periode_paiement_id
+                     )
+                     SELECT
+                            periode_id,
+                            structure_id,
+                            type_intervenant_id,
+                            intervenant_id,
+                            annee_id,
+                            centre_cout_id,
+                            domaine_fonctionnel_id,
+                            etat,
+                            periode,
+                            composante,
+                            date_mise_en_paiement,
+                            statut,
+                            intervenant_code,
+                            intervenant_nom,
+                            intervenant_numero_insee,
+                            centre_cout_code,
+                            centre_cout_libelle,
+                            domaine_fonctionnel_code,
+                            domaine_fonctionnel_libelle,
+                            SUM( hetd ) hetd,
+                            SUM( fc_majorees ) fc_majorees,
+                            SUM( exercice_aa ) exercice_aa,
+                            SUM( exercice_ac ) exercice_ac,
+                            taux_horaire
+                     FROM
+                          dep
+                     GROUP BY
+                              periode_id,
+                              structure_id,
+                              type_intervenant_id,
+                              intervenant_id,
+                              annee_id,
+                              centre_cout_id,
+                              domaine_fonctionnel_id,
+                              etat,
+                              periode,
+                              composante,
+                              date_mise_en_paiement,
+                              statut,
+                              intervenant_code,
+                              intervenant_nom,
+                              intervenant_numero_insee,
+                              centre_cout_code,
+                              centre_cout_libelle,
+                              domaine_fonctionnel_code,
+                              domaine_fonctionnel_libelle,
+                              taux_horaire,
+                              is_fc_majoree
+                     )
+                         dep2
+                )
+                    dep3
+           )
+               dep4
+      ORDER BY
+               annee_id,
+               type_intervenant_id,
+               structure_id,
+               periode_id,
+               intervenant_nom',
+    ),
+    'V_EXPORT_DEPASS_CHARGES' => 
+    array (
+      'name' => 'V_EXPORT_DEPASS_CHARGES',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_EXPORT_DEPASS_CHARGES AS
+WITH c AS (
+  SELECT
+    vhe.element_pedagogique_id,
+    vhe.type_intervention_id,
+    CASE WHEN MAX(vhe.groupes) IS NULL THEN
+      \'Charges OSE\' ELSE s.libelle END source,
+    MAX(vhe.heures) heures,
+    COALESCE( MAX(vhe.groupes), ROUND(SUM(t.groupes),10) ) groupes
+
+  FROM
+    volume_horaire_ens     vhe
+         JOIN parametre p ON p.nom = \'scenario_charges_services\'
+         JOIN source    s ON s.id = vhe.source_id
+    LEFT JOIN tbl_chargens   t ON t.element_pedagogique_id = vhe.element_pedagogique_id
+                              AND t.type_intervention_id = vhe.type_intervention_id
+                              AND t.scenario_id = to_number(p.valeur)
+  WHERE
+    vhe.histo_destruction IS NULL
+  GROUP BY
+    vhe.element_pedagogique_id,
+    vhe.type_intervention_id,
+    s.libelle
+), s AS (
+  SELECT
+    i.annee_id,
+    vh.type_volume_horaire_id,
+    s.intervenant_id,
+    s.element_pedagogique_id,
+    vh.type_intervention_id,
+    SUM(vh.heures) heures
+  FROM
+    volume_horaire vh
+    JOIN service     s ON s.id = vh.service_id
+                      AND s.element_pedagogique_id IS NOT NULL
+                      AND s.histo_destruction IS NULL
+    JOIN intervenant i ON i.id = s.intervenant_id
+                      AND i.histo_destruction IS NULL
+  WHERE
+    vh.histo_destruction IS NULL
+  GROUP BY
+    i.annee_id,
+    vh.type_volume_horaire_id,
+    s.intervenant_id,
+    s.element_pedagogique_id,
+    vh.type_intervention_id
+)
+SELECT
+  s.annee_id                                  annee_id,
+  sens.id                                     structure_id,
+  tiv.id                                      type_intervention_id,
+
+  a.libelle                                   annee,
+  tvh.libelle                                 type_volume_horaire_code,
+  i.source_code                               intervenant_code,
+  i.nom_usuel || \' \' || i.prenom              intervenant_nom,
+  i.date_naissance                            intervenant_date_naissance,
+  si.libelle                                  intervenant_statut_libelle,
+
+  ti.code                                     intervenant_type_code,
+  ti.libelle                                  intervenant_type_libelle,
+  CASE WHEN ti.code = \'P\' THEN saff.libelle_court ELSE NULL END structure_aff_libelle,
+  sens.libelle_court                          structure_ens_libelle,
+
+  gtf.libelle_court                           groupe_type_formation_libelle,
+  tf.libelle_court                            type_formation_libelle,
+  etp.niveau                                  etape_niveau,
+  etp.source_code                             etape_code,
+  etp.libelle                                 etape_libelle,
+  ep.source_code                              element_code,
+  ep.libelle                                  element_libelle,
+  ep.taux_fi                                  element_taux_fi,
+  ep.taux_fc                                  element_taux_fc,
+  ep.taux_fa                                  element_taux_fa,
+  src.libelle                                 element_source_libelle,
+  p.libelle_court                             periode,
+  tiv.code                                    type_intervention_code,
+  s.heures                                    heures_service,
+  c.source                                    source_charges,
+  c.heures                                    heures_charges,
+  c.groupes                                   groupes_charges,
+  s.heures - COALESCE(c.heures * c.groupes,0) heures_depassement
+FROM
+                                    s
+       JOIN annee                   a ON a.id = s.annee_id
+       JOIN type_volume_horaire   tvh ON tvh.id = s.type_volume_horaire_id
+       JOIN intervenant             i ON i.id = s.intervenant_id
+       JOIN statut_intervenant     si ON si.id = i.statut_id
+       JOIN type_intervenant       ti ON ti.id = si.type_intervenant_id
+       JOIN element_pedagogique    ep ON ep.id = s.element_pedagogique_id
+       JOIN etape                 etp ON etp.id = ep.etape_id
+       JOIN type_formation         tf ON tf.id = etp.type_formation_id
+       JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id
+       JOIN structure            sens ON sens.id = ep.structure_id
+       JOIN source                src ON src.id = ep.source_id
+       JOIN type_intervention     tiv ON tiv.id = s.type_intervention_id
+  LEFT JOIN structure            saff ON saff.id = i.structure_id
+  LEFT JOIN                         c ON c.element_pedagogique_id = s.element_pedagogique_id
+                                     AND c.type_intervention_id = COALESCE(tiv.type_intervention_maquette_id,tiv.id)
+  LEFT JOIN periode                 p ON p.id = ep.periode_id',
+    ),
+    'V_EXPORT_DMEP' => 
+    array (
+      'name' => 'V_EXPORT_DMEP',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_EXPORT_DMEP AS
+WITH mep AS (
+  SELECT
+    frs.service_id,
+    frsr.service_referentiel_id,
+    mep.date_mise_en_paiement,
+    mep.periode_paiement_id,
+    mep.centre_cout_id,
+    mep.domaine_fonctionnel_id,
+
+    sum(case when th.code = \'fi\' then mep.heures else 0 end) heures_fi,
+    sum(case when th.code = \'fa\' then mep.heures else 0 end) heures_fa,
+    sum(case when th.code = \'fc\' then mep.heures else 0 end) heures_fc,
+    sum(case when th.code = \'fc_majorees\' then mep.heures else 0 end) heures_fc_majorees,
+    sum(case when th.code = \'referentiel\' then mep.heures else 0 end) heures_referentiel
+  FROM
+              mise_en_paiement              mep
+         JOIN type_heures                    th ON th.id   = mep.type_heures_id
+    LEFT JOIN formule_resultat_service      frs ON frs.id  = mep.formule_res_service_id
+    LEFT JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id
+  WHERE
+    mep.histo_destruction IS NULL
+  GROUP BY
+    frs.service_id,
+    frsr.service_referentiel_id,
+    mep.date_mise_en_paiement,
+    mep.periode_paiement_id,
+    mep.centre_cout_id,
+    mep.domaine_fonctionnel_id
+)
+SELECT
+  i.id                            intervenant_id,
+  ti.id                           type_intervenant_id,
+  i.annee_id                      annee_id,
+  saff.id                         structure_aff_id,
+  sens.id                         structure_ens_id,
+  NVL(sens.id,saff.id)            structure_id,
+  cc.id                           centre_cout_id,
+  ep.id                           element_pedagogique_id,
+  etp.id                          etape_id,
+  tf.id                           type_formation_id,
+  gtf.id                          groupe_type_formation_id,
+  si.id                           statut_intervenant_id,
+  p.id                            periode_id,
+
+  i.source_code                   intervenant_code,
+  i.nom_usuel || \' \' || i.prenom  intervenant_nom,
+  i.date_naissance                intervenant_date_naissance,
+  si.libelle                      intervenant_statut_libelle,
+  ti.code                         intervenant_type_code,
+  ti.libelle                      intervenant_type_libelle,
+  g.source_code                   intervenant_grade_code,
+  g.libelle_court                 intervenant_grade_libelle,
+  di.source_code                  intervenant_discipline_code,
+  di.libelle_court                intervenant_discipline_libelle,
+  saff.libelle_court              service_structure_aff_libelle,
+
+  sens.libelle_court              service_structure_ens_libelle,
+  etab.libelle                    etablissement_libelle,
+  gtf.libelle_court               groupe_type_formation_libelle,
+  tf.libelle_court                type_formation_libelle,
+  etp.niveau                      etape_niveau,
+  etp.source_code                 etape_code,
+  etp.libelle                     etape_libelle,
+  ep.source_code                  element_code,
+  ep.libelle                      element_libelle,
+  de.source_code                  element_discipline_code,
+  de.libelle_court                element_discipline_libelle,
+  fr.libelle_long                 fonction_referentiel_libelle,
+  ep.taux_fi                      element_taux_fi,
+  ep.taux_fc                      element_taux_fc,
+  ep.taux_fa                      element_taux_fa,
+  src.libelle                     element_source_libelle,
+  COALESCE(to_char(s.description),to_char(sr.commentaires)) commentaires,
+
+  CASE
+    WHEN mep.date_mise_en_paiement IS NULL THEN \'a-mettre-en-paiement\'
+    ELSE \'mis-en-paiement\'
+  END                             etat,
+  tr.libelle                      type_ressource_libelle,
+  cc.source_code                  centre_couts_code,
+  cc.libelle                      centre_couts_libelle,
+  df.source_code                  domaine_fonctionnel_code,
+  df.libelle                      domaine_fonctionnel_libelle,
+  p.libelle_long                  periode_libelle,
+  mep.date_mise_en_paiement       date_mise_en_paiement,
+  mep.heures_fi                   heures_fi,
+  mep.heures_fa                   heures_fa,
+  mep.heures_fc                   heures_fc,
+  mep.heures_fc_majorees          heures_fc_majorees,
+  mep.heures_referentiel          heures_referentiel
+FROM
+              mep
+         JOIN centre_cout               cc ON cc.id   = mep.centre_cout_id
+         JOIN type_ressource            tr ON tr.id   = cc.type_ressource_id
+    LEFT JOIN service                    s ON s.id    = mep.service_id
+    LEFT JOIN element_pedagogique       ep ON ep.id   = s.element_pedagogique_id
+    LEFT JOIN source                   src ON src.id  = ep.source_id OR (ep.source_id IS NULL AND src.code = \'OSE\')
+    LEFT JOIN discipline                de ON de.id   = ep.discipline_id
+    LEFT JOIN etape                    etp ON etp.id  = ep.etape_id
+    LEFT JOIN type_formation            tf ON tf.id   = etp.type_formation_id
+    LEFT JOIN groupe_type_formation    gtf ON gtf.id  = tf.groupe_id
+    LEFT JOIN service_referentiel       sr ON sr.id   = mep.service_referentiel_id
+    LEFT JOIN fonction_referentiel      fr ON fr.id   = sr.fonction_id
+         JOIN intervenant                i ON i.id    = NVL( s.intervenant_id, sr.intervenant_id )
+         JOIN statut_intervenant        si ON si.id   = i.statut_id
+         JOIN type_intervenant          ti ON ti.id   = si.type_intervenant_id
+    LEFT JOIN grade                      g ON g.id    = i.grade_id
+    LEFT JOIN discipline                di ON di.id   = i.discipline_id
+    LEFT JOIN structure               saff ON saff.id = i.structure_id AND ti.code = \'P\'
+    LEFT JOIN structure               sens ON sens.id = NVL( ep.structure_id, sr.structure_id )
+         JOIN etablissement           etab ON etab.id = NVL( s.etablissement_id, ose_parametre.get_etablissement() )
+    LEFT JOIN periode                    p ON p.id    = mep.periode_paiement_id
+    LEFT JOIN domaine_fonctionnel       df ON df.id   = mep.domaine_fonctionnel_id
+ORDER BY
+  intervenant_nom,
+  service_structure_aff_libelle,
+  service_structure_ens_libelle,
+  etape_libelle,
+  element_libelle',
+    ),
+    'V_EXPORT_PAIEMENT_WINPAIE' => 
+    array (
+      'name' => 'V_EXPORT_PAIEMENT_WINPAIE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_EXPORT_PAIEMENT_WINPAIE AS
+SELECT
+  annee_id,
+  type_intervenant_id,
+  structure_id,
+  periode_id,
+  intervenant_id,
+
+  insee,
+  nom,
+  \'20\' carte,
+  code_origine,
+  CASE WHEN type_intervenant_code = \'P\' THEN \'0204\' ELSE \'2251\' END retenue,
+  \'0\' sens,
+  \'B\' mc,
+  nbu,
+  montant,
+  libelle || \' \' || LPAD(TO_CHAR(FLOOR(nbu)),2,\'00\') || \' H\' ||
+  CASE to_char(ROUND( nbu-FLOOR(nbu), 2 )*100,\'00\')
+  WHEN \' 00\' THEN \'\' ELSE \' \' || LPAD(ROUND( nbu-FLOOR(nbu), 2 )*100,2,\'00\') END libelle
+FROM (
+  SELECT
+    i.annee_id                                                                                          annee_id,
+    ti.id                                                                                               type_intervenant_id,
+    ti.code                                                                                             type_intervenant_code,
+    t2.structure_id                                                                                     structure_id,
+    t2.periode_paiement_id                                                                              periode_id,
+    i.id                                                                                                intervenant_id,
+    CASE WHEN i.numero_insee IS NULL THEN \'\'\'\' ELSE
+      \'\'\'\' || TRIM(i.numero_insee) || COALESCE(LPAD(TRIM(i.numero_insee_cle), 2, \'0\'),\'00\')
+    END                                                                                                 insee,
+    i.nom_usuel || \',\' || i.prenom                                                                      nom,
+    t2.code_origine                                                                                     code_origine,
+    CASE WHEN ind <> CEIL(t2.nbu/max_nbu) THEN max_nbu ELSE t2.nbu - max_nbu*(ind-1) END                nbu,
+    t2.nbu                                                                                              tnbu,
+    OSE_FORMULE.GET_TAUX_HORAIRE_HETD( NVL(t2.date_mise_en_paiement,SYSDATE) )                          montant,
+    COALESCE(t2.unite_budgetaire,\'\') || \' \' || to_char(i.annee_id) || \' \' || to_char(i.annee_id+1)      libelle
+  FROM (
+    SELECT
+      structure_id,
+      periode_paiement_id,
+      intervenant_id,
+      code_origine,
+      ROUND( SUM(nbu), 2) nbu,
+      unite_budgetaire,
+      date_mise_en_paiement
+    FROM (
+      WITH mep AS (
+        SELECT
+          -- pour les filtres
+          mep.id,
+          mis.structure_id,
+          mep.periode_paiement_id,
+          mis.intervenant_id,
+          mep.heures,
+          cc.unite_budgetaire,
+          mep.date_mise_en_paiement
+        FROM
+          v_mep_intervenant_structure  mis
+          JOIN mise_en_paiement        mep ON mep.id = mis.mise_en_paiement_id AND mep.histo_destruction IS NULL
+          JOIN centre_cout              cc ON cc.id = mep.centre_cout_id
+          JOIN type_heures              th ON th.id = mep.type_heures_id
+        WHERE
+          mep.date_mise_en_paiement IS NOT NULL
+          AND mep.periode_paiement_id IS NOT NULL
+          AND th.eligible_extraction_paie = 1
+      )
+      SELECT
+        mep.id,
+        mep.structure_id,
+        mep.periode_paiement_id,
+        mep.intervenant_id,
+        2 code_origine,
+        mep.heures * 4 / 10 nbu,
+        mep.unite_budgetaire,
+        mep.date_mise_en_paiement
+      FROM
+        mep
+      WHERE
+        mep.heures * 4 / 10 > 0
+
+      UNION
+
+      SELECT
+        mep.id,
+        mep.structure_id,
+        mep.periode_paiement_id,
+        mep.intervenant_id,
+        1 code_origine,
+        mep.heures * 6 / 10 nbu,
+        mep.unite_budgetaire,
+        mep.date_mise_en_paiement
+      FROM
+        mep
+      WHERE
+        mep.heures * 6 / 10 > 0
+    ) t1
+    GROUP BY
+      structure_id,
+      periode_paiement_id,
+      intervenant_id,
+      code_origine,
+      unite_budgetaire,
+      date_mise_en_paiement
+  ) t2
+  JOIN (SELECT level ind, 99 max_nbu FROM dual CONNECT BY 1=1 AND LEVEL <= 11) tnbu ON ceil(t2.nbu / max_nbu) >= ind
+  JOIN intervenant         i ON i.id = t2.intervenant_id
+  JOIN statut_intervenant si ON si.id = i.statut_id
+  JOIN type_intervenant   ti ON ti.id = si.type_intervenant_id
+  JOIN structure           s ON s.id = t2.structure_id
+) t3
+ORDER BY
+  annee_id, type_intervenant_id, structure_id, periode_id, nom, code_origine, nbu DESC',
+    ),
+    'V_EXPORT_PILOTAGE_ECARTS_ETATS' => 
+    array (
+      'name' => 'V_EXPORT_PILOTAGE_ECARTS_ETATS',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_EXPORT_PILOTAGE_ECARTS_ETATS AS
+SELECT
+  t3.annee_id annee_id,
+  t3.annee_id || \'-\' || (t3.annee_id+1) annee,
+  t3.etat,
+  t3.type_heures_id,
+  t3.type_heures,
+  s.id structure_id,
+  s.libelle_court structure,
+  i.id intervenant_id,
+  ti.libelle intervenant_type,
+  i.source_code intervenant_code,
+  i.prenom || \' \' || i.nom_usuel intervenant,
+  t3.hetd_payables
+FROM
+
+(
+SELECT
+  annee_id,
+  etat,
+  type_heures_id,
+  type_heures,
+  structure_id,
+  intervenant_id,
+  sum(hetd) hetd_payables
+FROM (
+  SELECT
+    annee_id,
+    LOWER(tvh.code) || \'-\' || evh.code etat,
+    10*tvh.ordre + evh.ordre ordre,
+    type_heures_id,
+    type_heures,
+    structure_id,
+    intervenant_id,
+    SUM(hetd) hetd
+  FROM (
+    SELECT
+      i.annee_id,
+      fr.type_volume_horaire_id,
+      fr.etat_volume_horaire_id,
+      th.id type_heures_id,
+      th.code type_heures,
+      COALESCE(ep.structure_id,i.structure_id) structure_id,
+      fr.intervenant_id,
+      SUM(frs.heures_compl_fi) hetd
+    FROM
+           formule_resultat_service  frs
+      JOIN formule_resultat           fr ON fr.id = frs.formule_resultat_id
+      JOIN service                     s ON s.id = frs.service_id
+      JOIN intervenant                 i ON i.id = fr.intervenant_id
+      JOIN type_heures                th ON th.code = \'fi\'
+      LEFT JOIN element_pedagogique   ep ON ep.id = s.element_pedagogique_id
+    GROUP BY
+      i.annee_id,
+      fr.type_volume_horaire_id,
+      fr.etat_volume_horaire_id,
+      th.id, th.code,
+      fr.intervenant_id,
+      ep.structure_id,
+      i.structure_id
+
+    UNION ALL
+
+    SELECT
+      i.annee_id,
+      fr.type_volume_horaire_id,
+      fr.etat_volume_horaire_id,
+      th.id type_heures_id,
+      th.code type_heures,
+      COALESCE(ep.structure_id,i.structure_id) structure_id,
+      fr.intervenant_id,
+      SUM(frs.heures_compl_fa) hetd
+    FROM
+           formule_resultat_service  frs
+      JOIN formule_resultat           fr ON fr.id = frs.formule_resultat_id
+      JOIN service                     s ON s.id = frs.service_id
+      JOIN intervenant                 i ON i.id = fr.intervenant_id
+      JOIN type_heures                th ON th.code = \'fa\'
+      LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
+    GROUP BY
+      i.annee_id,
+      fr.type_volume_horaire_id,
+      fr.etat_volume_horaire_id,
+      th.id, th.code,
+      fr.intervenant_id,
+      ep.structure_id,
+      i.structure_id
+
+    UNION ALL
+
+    SELECT
+      i.annee_id,
+      fr.type_volume_horaire_id,
+      fr.etat_volume_horaire_id,
+      th.id type_heures_id,
+      th.code type_heures,
+      COALESCE(ep.structure_id,i.structure_id) structure_id,
+      fr.intervenant_id,
+      SUM(frs.heures_compl_fc) hetd
+    FROM
+           formule_resultat_service  frs
+      JOIN formule_resultat           fr ON fr.id = frs.formule_resultat_id
+      JOIN service                     s ON s.id = frs.service_id
+      JOIN intervenant                 i ON i.id = fr.intervenant_id
+      JOIN type_heures                th ON th.code = \'fc\'
+      LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
+    GROUP BY
+      i.annee_id,
+      fr.type_volume_horaire_id,
+      fr.etat_volume_horaire_id,
+      th.id, th.code,
+      fr.intervenant_id,
+      ep.structure_id,
+      i.structure_id
+
+    UNION ALL
+
+    SELECT
+      i.annee_id,
+      fr.type_volume_horaire_id,
+      fr.etat_volume_horaire_id,
+      th.id type_heures_id,
+      th.code type_heures,
+      sr.structure_id,
+      fr.intervenant_id,
+      sum( frsr.heures_compl_referentiel ) hetd
+    FROM
+           formule_resultat_service_ref  frsr
+      JOIN formule_resultat                fr ON fr.id = frsr.formule_resultat_id
+      JOIN service_referentiel             sr ON sr.id = frsr.service_referentiel_id
+      JOIN intervenant                      i ON i.id = fr.intervenant_id
+      JOIN type_heures                th ON th.code = \'referentiel\'
+    GROUP BY
+      i.annee_id,
+      fr.type_volume_horaire_id,
+      fr.etat_volume_horaire_id,
+      th.id, th.code,
+      fr.intervenant_id,
+      sr.structure_id
+  ) t1
+    JOIN type_volume_horaire            tvh ON tvh.id = t1.type_volume_horaire_id
+    JOIN etat_volume_horaire            evh ON evh.id = t1.etat_volume_horaire_id
+  GROUP BY
+    annee_id, tvh.code, evh.code, tvh.ordre, evh.ordre, type_heures_id, type_heures, structure_id, intervenant_id
+
+  UNION ALL
+
+  SELECT
+    annee_id,
+    etat,
+    ordre,
+    type_heures_id,
+    type_heures,
+    structure_id,
+    intervenant_id,
+    SUM(hetd) hetd
+  FROM (
+    SELECT
+      i.annee_id,
+      \'demande-mise-en-paiement\' etat,
+      90 ordre,
+      th.id   type_heures_id,
+      th.code type_heures,
+      COALESCE( sr.structure_id, ep.structure_id, i.structure_id ) structure_id,
+      i.id intervenant_id,
+      mep.heures hetd
+    FROM
+                mise_en_paiement              mep
+           JOIN type_heures                    th ON th.id = mep.type_heures_id
+           JOIN centre_cout                    cc ON cc.id = mep.centre_cout_id
+      LEFT JOIN formule_resultat_service      frs ON frs.id = mep.formule_res_service_id
+      LEFT JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id
+      LEFT JOIN formule_resultat               fr ON fr.id = COALESCE(frs.formule_resultat_id, frsr.formule_resultat_id)
+      LEFT JOIN service                         s ON s.id = frs.service_id
+      LEFT JOIN element_pedagogique            ep ON ep.id = s.element_pedagogique_id
+      LEFT JOIN service_referentiel            sr ON sr.id = frsr.service_referentiel_id
+      LEFT JOIN intervenant                     i ON i.id = fr.intervenant_id
+    WHERE
+      mep.histo_destruction IS NULL
+      AND th.eligible_extraction_paie = 1
+
+    UNION ALL
+
+    SELECT
+      i.annee_id,
+      \'mise-en-paiement\' etat,
+      91 ordre,
+      th.id type_heures_id,
+      th.code type_heures,
+      COALESCE( sr.structure_id, ep.structure_id, i.structure_id ) structure_id,
+      i.id intervenant_id,
+      mep.heures hetd
+    FROM
+                mise_en_paiement              mep
+           JOIN type_heures                    th ON th.id = mep.type_heures_id
+           JOIN centre_cout                    cc ON cc.id = mep.centre_cout_id
+      LEFT JOIN formule_resultat_service      frs ON frs.id = mep.formule_res_service_id
+      LEFT JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id
+      LEFT JOIN formule_resultat               fr ON fr.id = COALESCE(frs.formule_resultat_id, frsr.formule_resultat_id)
+      LEFT JOIN service                         s ON s.id = frs.service_id
+      LEFT JOIN element_pedagogique            ep ON ep.id = s.element_pedagogique_id
+      LEFT JOIN service_referentiel            sr ON sr.id = frsr.service_referentiel_id
+      LEFT JOIN intervenant                     i ON i.id = fr.intervenant_id
+    WHERE
+      mep.histo_destruction IS NULL
+      AND th.eligible_extraction_paie = 1
+      AND mep.PERIODE_PAIEMENT_ID IS NOT NULL
+  ) t1
+  GROUP BY
+    annee_id, etat, ordre, type_heures_id, type_heures, structure_id, intervenant_id
+) t2
+GROUP BY
+  annee_id,
+  etat, ordre
+  ,type_heures_id, type_heures
+  ,structure_id
+  ,intervenant_id
+ORDER BY
+  annee_id, ordre
+
+) t3
+  JOIN intervenant i ON i.id = t3.intervenant_id
+  JOIN statut_intervenant si ON si.id = i.statut_id
+  JOIN type_intervenant ti ON ti.id = si.type_intervenant_id
+  JOIN structure s ON s.id = t3.structure_id',
+    ),
+    'V_EXPORT_SERVICE' => 
+    array (
+      'name' => 'V_EXPORT_SERVICE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_EXPORT_SERVICE AS
+WITH t AS ( SELECT
+  \'vh_\' || vh.id                    id,
+  s.id                              service_id,
+  s.intervenant_id                  intervenant_id,
+  vh.type_volume_horaire_id         type_volume_horaire_id,
+  fr.etat_volume_horaire_id         etat_volume_horaire_id,
+  s.element_pedagogique_id          element_pedagogique_id,
+  s.etablissement_id                etablissement_id,
+  NULL                              structure_aff_id,
+  NULL                              structure_ens_id,
+  vh.periode_id                     periode_id,
+  vh.type_intervention_id           type_intervention_id,
+  NULL                              fonction_referentiel_id,
+
+  s.description                     service_description,
+
+  vh.heures                         heures,
+  0                                 heures_ref,
+  0                                 heures_non_payees,
+  frvh.service_fi                   service_fi,
+  frvh.service_fa                   service_fa,
+  frvh.service_fc                   service_fc,
+  0                                 service_referentiel,
+  frvh.heures_compl_fi              heures_compl_fi,
+  frvh.heures_compl_fa              heures_compl_fa,
+  frvh.heures_compl_fc              heures_compl_fc,
+  frvh.heures_compl_fc_majorees     heures_compl_fc_majorees,
+  0                                 heures_compl_referentiel,
+  frvh.total                        total,
+  fr.solde                          solde,
+  NULL                              service_ref_formation,
+  NULL                              commentaires
+FROM
+  formule_resultat_vh                frvh
+  JOIN formule_resultat                fr ON fr.id = frvh.formule_resultat_id
+  JOIN volume_horaire                  vh ON vh.id = frvh.volume_horaire_id AND vh.motif_non_paiement_id IS NULL AND vh.histo_destruction IS NULL
+  JOIN service                          s ON s.id = vh.service_id AND s.intervenant_id = fr.intervenant_id AND s.histo_destruction IS NULL
+
+UNION ALL
+
+SELECT
+  \'vh_\' || vh.id                    id,
+  s.id                              service_id,
+  s.intervenant_id                  intervenant_id,
+  vh.type_volume_horaire_id         type_volume_horaire_id,
+  vhe.etat_volume_horaire_id        etat_volume_horaire_id,
+  s.element_pedagogique_id          element_pedagogique_id,
+  s.etablissement_id                etablissement_id,
+  NULL                              structure_aff_id,
+  NULL                              structure_ens_id,
+  vh.periode_id                     periode_id,
+  vh.type_intervention_id           type_intervention_id,
+  NULL                              fonction_referentiel_id,
+
+  s.description                     service_description,
+
+  vh.heures                         heures,
+  0                                 heures_ref,
+  1                                 heures_non_payees,
+  0                                 service_fi,
+  0                                 service_fa,
+  0                                 service_fc,
+  0                                 service_referentiel,
+  0                                 heures_compl_fi,
+  0                                 heures_compl_fa,
+  0                                 heures_compl_fc,
+  0                                 heures_compl_fc_majorees,
+  0                                 heures_compl_referentiel,
+  0                                 total,
+  fr.solde                          solde,
+  NULL                              service_ref_formation,
+  NULL                              commentaires
+FROM
+  volume_horaire                  vh
+  JOIN service                     s ON s.id = vh.service_id
+  JOIN v_volume_horaire_etat     vhe ON vhe.volume_horaire_id = vh.id
+  JOIN formule_resultat           fr ON fr.intervenant_id = s.intervenant_id AND fr.type_volume_horaire_id = vh.type_volume_horaire_id AND fr.etat_volume_horaire_id = vhe.etat_volume_horaire_id
+WHERE
+  vh.motif_non_paiement_id IS NOT NULL
+  AND vh.histo_destruction IS NULL
+  AND s.histo_destruction IS NULL
+
+UNION ALL
+
+SELECT
+  \'vh_ref_\' || vhr.id               id,
+  sr.id                             service_id,
+  sr.intervenant_id                 intervenant_id,
+  fr.type_volume_horaire_id         type_volume_horaire_id,
+  fr.etat_volume_horaire_id         etat_volume_horaire_id,
+  NULL                              element_pedagogique_id,
+  OSE_PARAMETRE.GET_ETABLISSEMENT   etablissement_id,
+  NULL                              structure_aff_id,
+  sr.structure_id                   structure_ens_id,
+  NULL                              periode_id,
+  NULL                              type_intervention_id,
+  sr.fonction_id                    fonction_referentiel_id,
+
+  NULL                              service_description,
+
+  0                                 heures,
+  vhr.heures                        heures_ref,
+  0                                 heures_non_payees,
+  0                                 service_fi,
+  0                                 service_fa,
+  0                                 service_fc,
+  frvr.service_referentiel          service_referentiel,
+  0                                 heures_compl_fi,
+  0                                 heures_compl_fa,
+  0                                 heures_compl_fc,
+  0                                 heures_compl_fc_majorees,
+  frvr.heures_compl_referentiel     heures_compl_referentiel,
+  frvr.total                        total,
+  fr.solde                          solde,
+  sr.formation                      service_ref_formation,
+  sr.commentaires                   commentaires
+FROM
+  formule_resultat_vh_ref       frvr
+  JOIN formule_resultat           fr ON fr.id = frvr.formule_resultat_id
+  JOIN volume_horaire_ref        vhr ON vhr.id =  frvr.volume_horaire_ref_id AND vhr.histo_destruction IS NULL
+  JOIN service_referentiel        sr ON sr.id = vhr.service_referentiel_id AND sr.intervenant_id = fr.intervenant_id AND sr.histo_destruction IS NULL
+
+UNION ALL
+
+SELECT
+  \'vh_0_\' || i.id                   id,
+  NULL                              service_id,
+  i.id                              intervenant_id,
+  tvh.id                            type_volume_horaire_id,
+  evh.id                            etat_volume_horaire_id,
+  NULL                              element_pedagogique_id,
+  OSE_PARAMETRE.GET_ETABLISSEMENT   etablissement_id,
+  NULL                              structure_aff_id,
+  NULL                              structure_ens_id,
+  NULL                              periode_id,
+  NULL                              type_intervention_id,
+  NULL                              fonction_referentiel_id,
+
+  NULL                              service_description,
+
+  0                                 heures,
+  0                                 heures_ref,
+  0                                 heures_non_payees,
+  0                                 service_fi,
+  0                                 service_fa,
+  0                                 service_fc,
+  0                                 service_referentiel,
+  0                                 heures_compl_fi,
+  0                                 heures_compl_fa,
+  0                                 heures_compl_fc,
+  0                                 heures_compl_fc_majorees,
+  NULL                              heures_compl_referentiel,
+  0                                 total,
+  0                                 solde,
+  NULL                              service_ref_formation,
+  NULL                              commentaires
+FROM
+  intervenant i
+  JOIN statut_intervenant si ON si.id = i.statut_id
+  JOIN etat_volume_horaire evh ON evh.code IN (\'saisi\',\'valide\')
+  JOIN type_volume_horaire tvh ON tvh.code IN (\'PREVU\',\'REALISE\')
+  LEFT JOIN modification_service_du msd ON msd.intervenant_id = i.id AND msd.histo_destruction IS NULL
+  LEFT JOIN motif_modification_service mms ON mms.id = msd.motif_id
+WHERE
+  i.histo_destruction IS NULL
+  AND si.service_statutaire > 0
+GROUP BY
+  i.id, si.service_statutaire, evh.id, tvh.id
+HAVING
+  si.service_statutaire + SUM(msd.heures * mms.multiplicateur) = 0
+
+
+), ponds AS (
+SELECT
+  ep.id                                          element_pedagogique_id,
+  MAX(COALESCE( m.ponderation_service_du, 1))    ponderation_service_du,
+  MAX(COALESCE( m.ponderation_service_compl, 1)) ponderation_service_compl
+FROM
+            element_pedagogique ep
+  LEFT JOIN element_modulateur  em ON em.element_id = ep.id
+                                  AND em.histo_destruction IS NULL
+  LEFT JOIN modulateur          m ON m.id = em.modulateur_id
+WHERE
+  ep.histo_destruction IS NULL
+GROUP BY
+  ep.id
+)
+SELECT
+  t.id                            id,
+  t.service_id                    service_id,
+  i.id                            intervenant_id,
+  ti.id                           type_intervenant_id,
+  i.annee_id                      annee_id,
+  his.histo_modification          service_date_modification,
+  t.type_volume_horaire_id        type_volume_horaire_id,
+  t.etat_volume_horaire_id        etat_volume_horaire_id,
+  etab.id                         etablissement_id,
+  saff.id                         structure_aff_id,
+  sens.id                         structure_ens_id,
+  ose_divers.niveau_formation_id_calc( gtf.id, gtf.pertinence_niveau, etp.niveau ) niveau_formation_id,
+  etp.id                          etape_id,
+  ep.id                           element_pedagogique_id,
+  t.periode_id                    periode_id,
+  t.type_intervention_id          type_intervention_id,
+  t.fonction_referentiel_id       fonction_referentiel_id,
+
+  tvh.libelle || \' \' || evh.libelle type_etat,
+  i.source_code                   intervenant_code,
+  i.nom_usuel || \' \' || i.prenom  intervenant_nom,
+  i.date_naissance                intervenant_date_naissance,
+  si.libelle                      intervenant_statut_libelle,
+  ti.code                         intervenant_type_code,
+  ti.libelle                      intervenant_type_libelle,
+  g.source_code                   intervenant_grade_code,
+  g.libelle_court                 intervenant_grade_libelle,
+  di.source_code                  intervenant_discipline_code,
+  di.libelle_court                intervenant_discipline_libelle,
+  saff.libelle_court              service_structure_aff_libelle,
+
+  sens.libelle_court              service_structure_ens_libelle,
+  etab.libelle                    etablissement_libelle,
+  gtf.libelle_court               groupe_type_formation_libelle,
+  tf.libelle_court                type_formation_libelle,
+  etp.niveau                      etape_niveau,
+  etp.source_code                 etape_code,
+  etp.libelle                     etape_libelle,
+  ep.source_code                  element_code,
+  COALESCE(ep.libelle,to_char(t.service_description)) element_libelle,
+  de.source_code                  element_discipline_code,
+  de.libelle_court                element_discipline_libelle,
+  fr.libelle_long                 fonction_referentiel_libelle,
+  ep.taux_fi                      element_taux_fi,
+  ep.taux_fc                      element_taux_fc,
+  ep.taux_fa                      element_taux_fa,
+  t.service_ref_formation         service_ref_formation,
+  t.commentaires                  commentaires,
+  p.libelle_court                 periode_libelle,
+  CASE WHEN ponds.ponderation_service_compl = 1 THEN NULL ELSE ponds.ponderation_service_compl END element_ponderation_compl,
+  src.libelle                     element_source_libelle,
+
+  t.heures                        heures,
+  t.heures_ref                    heures_ref,
+  t.heures_non_payees             heures_non_payees,
+  si.service_statutaire           service_statutaire,
+  fi.heures_service_modifie       service_du_modifie,
+  t.service_fi                    service_fi,
+  t.service_fa                    service_fa,
+  t.service_fc                    service_fc,
+  t.service_referentiel           service_referentiel,
+  t.heures_compl_fi               heures_compl_fi,
+  t.heures_compl_fa               heures_compl_fa,
+  t.heures_compl_fc               heures_compl_fc,
+  t.heures_compl_fc_majorees      heures_compl_fc_majorees,
+  t.heures_compl_referentiel      heures_compl_referentiel,
+  t.total                         total,
+  t.solde                         solde,
+  v.histo_modification            date_cloture_realise
+
+FROM
+  t
+  JOIN intervenant                        i ON i.id     = t.intervenant_id AND i.histo_destruction IS NULL
+  JOIN statut_intervenant                si ON si.id    = i.statut_id
+  JOIN type_intervenant                  ti ON ti.id    = si.type_intervenant_id
+  JOIN etablissement                   etab ON etab.id  = t.etablissement_id
+  JOIN type_volume_horaire              tvh ON tvh.id   = t.type_volume_horaire_id
+  JOIN etat_volume_horaire              evh ON evh.id   = t.etat_volume_horaire_id
+  LEFT JOIN histo_intervenant_service   his ON his.intervenant_id = i.id AND his.type_volume_horaire_id = tvh.id AND his.referentiel = 0
+  LEFT JOIN grade                         g ON g.id     = i.grade_id
+  LEFT JOIN discipline                   di ON di.id    = i.discipline_id
+  LEFT JOIN structure                  saff ON saff.id  = i.structure_id AND ti.code = \'P\'
+  LEFT JOIN element_pedagogique          ep ON ep.id    = t.element_pedagogique_id
+  LEFT JOIN discipline                   de ON de.id    = ep.discipline_id
+  LEFT JOIN structure                  sens ON sens.id  = NVL(t.structure_ens_id, ep.structure_id)
+  LEFT JOIN periode                       p ON p.id     = t.periode_id
+  LEFT JOIN source                      src ON src.id   = ep.source_id OR (ep.source_id IS NULL AND src.code = \'OSE\')
+  LEFT JOIN etape                       etp ON etp.id   = ep.etape_id
+  LEFT JOIN type_formation               tf ON tf.id    = etp.type_formation_id AND tf.histo_destruction IS NULL
+  LEFT JOIN groupe_type_formation       gtf ON gtf.id   = tf.groupe_id AND gtf.histo_destruction IS NULL
+  LEFT JOIN v_formule_intervenant        fi ON fi.intervenant_id = i.id
+  LEFT JOIN ponds                     ponds ON ponds.element_pedagogique_id = ep.id
+  LEFT JOIN fonction_referentiel         fr ON fr.id    = t.fonction_referentiel_id
+  LEFT JOIN type_validation              tv ON tvh.code = \'REALISE\' AND tv.code = \'CLOTURE_REALISE\'
+  LEFT JOIN validation                    v ON v.intervenant_id = i.id AND v.type_validation_id = tv.id AND v.histo_destruction IS NULL',
+    ),
+    'V_EXP_HETD_CENTRE_COUT' => 
+    array (
+      'name' => 'V_EXP_HETD_CENTRE_COUT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_EXP_HETD_CENTRE_COUT AS
+WITH t AS (
+  SELECT
+    tvh.id                              type_volume_horaire_id,
+    evh.id                              etat_volume_horaire_id,
+    a.id                                annee_id,
+    i.id                                intervenant_id,
+    si.id                               statut_intervenant_id,
+    ti.id                               type_intervenant_id,
+    g.id                                grade_id,
+    str.id                              structure_id,
+    gtf.id                              groupe_type_formation_id,
+    tf.id                               type_formation_id,
+    e.id                                etape_id,
+
+    tvh.code                            type_volume_horaire,
+    evh.code                            etat_volume_horaire,
+    a.libelle                           annee,
+    i.code                              code_intervenant,
+    i.nom_usuel || \' \' || i.prenom      intervenant,
+    si.libelle                          statut_intervenant,
+    ti.libelle                          type_intervenant,
+    g.libelle_long                      grade,
+    str.libelle_court                   structure_enseignement,
+    gtf.libelle_long                    groupe_type_formation,
+    tf.libelle_long                     type_formation,
+    e.source_code                       code_formation,
+
+    CASE WHEN mep.id IS NULL THEN frs.total ELSE mep.heures END
+                                        total_hetd,
+
+    cc.source_code || \' \' || cc.libelle centre_couts,
+    OSE_FORMULE.GET_TAUX_HORAIRE_HETD( NVL(mep.date_mise_en_paiement,SYSDATE) ) * CASE WHEN mep.id IS NULL THEN frs.total ELSE mep.heures END
+                                        total_euros
+  FROM
+              formule_resultat_service  frs
+         JOIN formule_resultat           fr ON fr.id = frs.formule_resultat_id
+         JOIN etat_volume_horaire       evh ON evh.id = fr.etat_volume_horaire_id
+         JOIN type_volume_horaire       tvh ON tvh.id = fr.type_volume_horaire_id
+         JOIN intervenant                 i ON i.id = fr.intervenant_id
+         JOIN annee                       a ON a.id = i.annee_id
+         JOIN statut_intervenant         si ON si.id = i.statut_id
+         JOIN type_intervenant           ti ON ti.id = si.type_intervenant_id
+         JOIN service                     s ON s.id = frs.service_id
+    LEFT JOIN grade                       g ON g.id = i.grade_id
+    LEFT JOIN element_pedagogique        ep ON ep.id = s.element_pedagogique_id
+         JOIN structure                 str ON str.id = NVL(ep.structure_id, i.structure_id)
+    LEFT JOIN etape                       e ON e.id = ep.etape_id
+    LEFT JOIN type_formation             tf ON tf.id = e.type_formation_id
+    LEFT JOIN groupe_type_formation     gtf ON gtf.id = tf.groupe_id
+    LEFT JOIN mise_en_paiement          mep ON mep.formule_res_service_id = frs.id
+                                           AND mep.histo_destruction IS NULL
+
+    LEFT JOIN centre_cout                cc ON cc.id = MEP.CENTRE_COUT_ID
+
+  UNION ALL
+
+  SELECT
+    type_volume_horaire_id, etat_volume_horaire_id, annee_id, intervenant_id, statut_intervenant_id, type_intervenant_id,
+    grade_id, structure_id, groupe_type_formation_id, type_formation_id, etape_id,
+
+    type_volume_horaire, etat_volume_horaire, annee, code_intervenant, intervenant, statut_intervenant,
+    type_intervenant, grade, structure_enseignement, groupe_type_formation, type_formation,
+    code_formation, total_hetd, centre_couts,
+    OSE_FORMULE.GET_TAUX_HORAIRE_HETD( SYSDATE ) * total_hetd total_euros
+  FROM (
+  SELECT
+    tvh.id                              type_volume_horaire_id,
+    evh.id                              etat_volume_horaire_id,
+    a.id                                annee_id,
+    i.id                                intervenant_id,
+    si.id                               statut_intervenant_id,
+    ti.id                               type_intervenant_id,
+    g.id                                grade_id,
+    str.id                              structure_id,
+    gtf.id                              groupe_type_formation_id,
+    tf.id                               type_formation_id,
+    e.id                                etape_id,
+
+    tvh.code                            type_volume_horaire,
+    evh.code                            etat_volume_horaire,
+    a.libelle                           annee,
+    i.code                              code_intervenant,
+    i.nom_usuel || \' \' || i.prenom      intervenant,
+    si.libelle                          statut_intervenant,
+    ti.libelle                          type_intervenant,
+    g.libelle_long                      grade,
+    str.libelle_court                   structure_enseignement,
+    gtf.libelle_long                    groupe_type_formation,
+    tf.libelle_long                     type_formation,
+    e.source_code                       code_formation,
+    frs.total - SUM(mep.heures) OVER (PARTITION BY frs.id) total_hetd,
+    RANK() OVER ( PARTITION BY frs.id ORDER BY mep.id) ordre,
+    null centre_couts
+  FROM
+              formule_resultat_service  frs
+         JOIN formule_resultat           fr ON fr.id = frs.formule_resultat_id
+         JOIN etat_volume_horaire       evh ON evh.id = fr.etat_volume_horaire_id
+         JOIN type_volume_horaire       tvh ON tvh.id = fr.type_volume_horaire_id
+         JOIN intervenant                 i ON i.id = fr.intervenant_id
+         JOIN annee                       a ON a.id = i.annee_id
+         JOIN statut_intervenant         si ON si.id = i.statut_id
+         JOIN type_intervenant           ti ON ti.id = si.type_intervenant_id
+         JOIN service                     s ON s.id = frs.service_id
+    LEFT JOIN grade                       g ON g.id = i.grade_id
+    LEFT JOIN element_pedagogique        ep ON ep.id = s.element_pedagogique_id
+         JOIN structure                 str ON str.id = NVL(ep.structure_id, i.structure_id)
+    LEFT JOIN etape                       e ON e.id = ep.etape_id
+    LEFT JOIN type_formation             tf ON tf.id = e.type_formation_id
+    LEFT JOIN groupe_type_formation     gtf ON gtf.id = tf.groupe_id
+    LEFT JOIN mise_en_paiement          mep ON mep.formule_res_service_id = frs.id
+                                           AND mep.histo_destruction IS NULL
+  ) t WHERE ordre = 1 AND total_hetd > 0
+)
+SELECT
+  type_volume_horaire_id,
+  etat_volume_horaire_id,
+  annee_id,
+  intervenant_id,
+  statut_intervenant_id,
+  type_intervenant_id,
+  grade_id,
+  structure_id,
+  groupe_type_formation_id,
+  type_formation_id,
+  etape_id,
+
+  type_volume_horaire,
+  etat_volume_horaire,
+  annee,
+  code_intervenant,
+  intervenant,
+  statut_intervenant,
+  type_intervenant,
+  grade,
+  structure_enseignement,
+  groupe_type_formation,
+  type_formation,
+  code_formation,
+  SUM(total_hetd) total_hetd,
+  centre_couts,
+  SUM(total_euros) total_euros
+FROM
+  t
+GROUP BY
+  type_volume_horaire_id,
+  etat_volume_horaire_id,
+  annee_id,
+  intervenant_id,
+  statut_intervenant_id,
+  type_intervenant_id,
+  grade_id,
+  structure_id,
+  groupe_type_formation_id,
+  type_formation_id,
+  etape_id,
+
+  type_volume_horaire,
+  etat_volume_horaire,
+  annee,
+  code_intervenant,
+  intervenant,
+  statut_intervenant,
+  type_intervenant,
+  grade,
+  structure_enseignement,
+  groupe_type_formation,
+  type_formation,
+  code_formation,
+  centre_couts',
+    ),
+    'V_FORMULE_INTERVENANT' => 
+    array (
+      'name' => 'V_FORMULE_INTERVENANT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_FORMULE_INTERVENANT AS
+SELECT
+  i.id                                                                 intervenant_id,
+  i.annee_id                                                           annee_id,
+  CASE WHEN ti.code = \'P\' THEN i.structure_id ELSE NULL END           structure_id,
+  ti.code                                                              type_intervenant_code,
+  si.service_statutaire                                                heures_service_statutaire,
+  si.depassement_service_du_sans_hc                                    depassement_service_du_sans_hc,
+  COALESCE( SUM( msd.heures * mms.multiplicateur ), 0 )                heures_service_modifie,
+  COALESCE( SUM( msd.heures * mms.multiplicateur * mms.decharge ), 0 ) heures_decharge
+FROM
+            intervenant                  i
+  LEFT JOIN modification_service_du    msd ON msd.intervenant_id = i.id AND msd.histo_destruction IS NULL
+  LEFT JOIN motif_modification_service mms ON mms.id = msd.motif_id
+       JOIN statut_intervenant          si ON si.id = i.statut_id
+       JOIN type_intervenant            ti ON ti.id = si.type_intervenant_id
+WHERE
+  i.histo_destruction IS NULL
+  AND i.id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, i.id )
+GROUP BY
+  i.id, i.annee_id, i.structure_id, ti.code, si.service_statutaire, si.depassement_service_du_sans_hc',
+    ),
+    'V_FORMULE_LOCAL_I_PARAMS' => 
+    array (
+      'name' => 'V_FORMULE_LOCAL_I_PARAMS',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_FORMULE_LOCAL_I_PARAMS AS
+SELECT
+  null intervenant_id,
+  null param_1,
+  null param_2,
+  null param_3,
+  null param_4,
+  null param_5
+FROM
+  dual',
+    ),
+    'V_FORMULE_LOCAL_VH_PARAMS' => 
+    array (
+      'name' => 'V_FORMULE_LOCAL_VH_PARAMS',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_FORMULE_LOCAL_VH_PARAMS AS
+SELECT
+  vh.id     volume_horaire_id,
+  null      volume_horaire_ref_id,
+  str.code  param_1,
+  null      param_2,
+  null      param_3,
+  null      param_4,
+  null      param_5
+FROM
+            volume_horaire            vh
+       JOIN service                    s ON s.id = vh.service_id
+       JOIN intervenant                i ON i.id = s.intervenant_id
+  LEFT JOIN element_pedagogique       ep ON ep.id = s.element_pedagogique_id
+       JOIN structure                str ON str.id = COALESCE(ep.structure_id,i.structure_id)
+WHERE
+  vh.histo_destruction IS NULL
+  AND s.histo_destruction IS NULL
+  AND vh.heures <> 0
+  AND vh.motif_non_paiement_id IS NULL
+  AND s.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, s.intervenant_id )
+
+UNION ALL
+
+SELECT
+  null      volume_horaire_id,
+  vhr.id    volume_horaire_ref_id,
+  str.code  param_1,
+  null      param_2,
+  null      param_3,
+  null      param_4,
+  null      param_5
+FROM
+  volume_horaire_ref               vhr
+  JOIN service_referentiel          sr ON sr.id = vhr.service_referentiel_id
+  JOIN structure                   str ON str.id = sr.structure_id
+WHERE
+  vhr.histo_destruction IS NULL
+  AND sr.histo_destruction IS NULL
+  AND vhr.heures <> 0
+  AND sr.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, sr.intervenant_id )',
+    ),
+    'V_FORMULE_VOLUME_HORAIRE' => 
+    array (
+      'name' => 'V_FORMULE_VOLUME_HORAIRE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_FORMULE_VOLUME_HORAIRE AS
+SELECT
+  rownum ordre,
+  t.ID,
+  t.VOLUME_HORAIRE_ID,
+  t.VOLUME_HORAIRE_REF_ID,
+  t.SERVICE_ID,
+  t.SERVICE_REFERENTIEL_ID,
+  t.INTERVENANT_ID,
+  t.TYPE_INTERVENTION_ID,
+  t.TYPE_VOLUME_HORAIRE_ID,
+  t.ETAT_VOLUME_HORAIRE_ID,
+  t.TAUX_FI,
+  t.TAUX_FA,
+  t.TAUX_FC,
+  t.STRUCTURE_ID,
+  t.structure_is_affectation,
+  t.structure_is_univ,
+  t.PONDERATION_SERVICE_DU,
+  t.PONDERATION_SERVICE_COMPL,
+  t.SERVICE_STATUTAIRE,
+  t.HEURES,
+  t.HORAIRE_DEBUT,
+  t.HORAIRE_FIN,
+  t.TYPE_INTERVENTION_CODE,
+  t.TAUX_SERVICE_DU,
+  t.TAUX_SERVICE_COMPL
+FROM (
+SELECT
+  to_number( 1 || vh.id )                                              id,
+  vh.id                                                                volume_horaire_id,
+  null                                                                 volume_horaire_ref_id,
+  s.id                                                                 service_id,
+  null                                                                 service_referentiel_id,
+  s.intervenant_id                                                     intervenant_id,
+  ti.id                                                                type_intervention_id,
+  vh.type_volume_horaire_id                                            type_volume_horaire_id,
+  vhe.etat_volume_horaire_id                                           etat_volume_horaire_id,
+
+  CASE WHEN ep.id IS NOT NULL THEN ep.taux_fi ELSE 1 END               taux_fi,
+  CASE WHEN ep.id IS NOT NULL THEN ep.taux_fa ELSE 0 END               taux_fa,
+  CASE WHEN ep.id IS NOT NULL THEN ep.taux_fc ELSE 0 END               taux_fc,
+  ep.structure_id                                                      structure_id,
+  CASE WHEN COALESCE(ep.structure_id,0) = COALESCE(i.structure_id,0)      THEN 1 ELSE 0 END structure_is_affectation,
+  CASE WHEN COALESCE(ep.structure_id,0) = COALESCE(to_number(p.valeur),0) THEN 1 ELSE 0 END structure_is_univ,
+  MAX(COALESCE( m.ponderation_service_du, 1))                          ponderation_service_du,
+  MAX(COALESCE( m.ponderation_service_compl, 1))                       ponderation_service_compl,
+  COALESCE(tf.service_statutaire,1)                                    service_statutaire,
+
+  vh.heures                                                            heures,
+  vh.horaire_debut                                                     horaire_debut,
+  vh.horaire_fin                                                       horaire_fin,
+  ti.code                                                              type_intervention_code,
+  COALESCE(tis.taux_hetd_service,ti.taux_hetd_service,1)               taux_service_du,
+  COALESCE(tis.taux_hetd_complementaire,ti.taux_hetd_complementaire,1) taux_service_compl
+FROM
+            volume_horaire            vh
+       JOIN parametre                  p ON p.nom = \'structure_univ\'
+       JOIN service                    s ON s.id = vh.service_id
+       JOIN intervenant                i ON i.id = s.intervenant_id
+       JOIN type_intervention         ti ON ti.id = vh.type_intervention_id
+       JOIN v_volume_horaire_etat    vhe ON vhe.volume_horaire_id = vh.id
+
+  LEFT JOIN element_pedagogique       ep ON ep.id = s.element_pedagogique_id
+  LEFT JOIN etape                      e ON e.id = ep.etape_id
+  LEFT JOIN type_formation            tf ON tf.id = e.type_formation_id
+  LEFT JOIN element_modulateur        em ON em.element_id = s.element_pedagogique_id
+                                        AND em.histo_destruction IS NULL
+  LEFT JOIN modulateur                 m ON m.id = em.modulateur_id
+  LEFT JOIN type_intervention_statut tis ON tis.type_intervention_id = ti.id AND tis.statut_intervenant_id = i.statut_id
+WHERE
+  vh.histo_destruction IS NULL
+  AND s.histo_destruction IS NULL
+  AND vh.heures <> 0
+  AND vh.motif_non_paiement_id IS NULL
+  AND s.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, s.intervenant_id )
+GROUP BY
+  vh.id, s.id, s.intervenant_id, ti.id, vh.type_volume_horaire_id, vhe.etat_volume_horaire_id, ep.id,
+  ep.taux_fi, ep.taux_fa, ep.taux_fc, ep.structure_id, tf.service_statutaire, vh.heures,
+  vh.horaire_debut, vh.horaire_fin, tis.taux_hetd_service, tis.taux_hetd_complementaire,
+  ti.code, ti.taux_hetd_service, ti.taux_hetd_complementaire, i.structure_id, p.valeur
+
+UNION ALL
+
+SELECT
+  to_number( 2 || vhr.id )          id,
+  null                              volume_horaire_id,
+  vhr.id                            volume_horaire_ref_id,
+  null                              service_id,
+  sr.id                             service_referentiel_id,
+  sr.intervenant_id                 intervenant_id,
+  null                              type_intervention_id,
+  vhr.type_volume_horaire_id        type_volume_horaire_id,
+  evh.id                            etat_volume_horaire_id,
+
+  0                                 taux_fi,
+  0                                 taux_fa,
+  0                                 taux_fc,
+  sr.structure_id                   structure_id,
+  CASE WHEN COALESCE(sr.structure_id,0) = COALESCE(i.structure_id,0)      THEN 1 ELSE 0 END structure_is_affectation,
+  CASE WHEN COALESCE(sr.structure_id,0) = COALESCE(to_number(p.valeur),0) THEN 1 ELSE 0 END structure_is_univ,
+  1                                 ponderation_service_du,
+  1                                 ponderation_service_compl,
+  COALESCE(fr.service_statutaire,1) service_statutaire,
+
+  vhr.heures                        heures,
+  vhr.horaire_debut                 horaire_debut,
+  vhr.horaire_fin                   horaire_fin,
+  null                              type_intervention_code,
+  1                                 taux_service_du,
+  1                                 taux_service_compl
+FROM
+       volume_horaire_ref          vhr
+  JOIN parametre                     p ON p.nom = \'structure_univ\'
+  JOIN service_referentiel          sr ON sr.id = vhr.service_referentiel_id
+  JOIN intervenant                   i ON i.id = sr.intervenant_id
+  JOIN v_volume_horaire_ref_etat  vher ON vher.volume_horaire_ref_id = vhr.id
+  JOIN etat_volume_horaire         evh ON evh.id = vher.etat_volume_horaire_id
+  JOIN fonction_referentiel         fr ON fr.id = sr.fonction_id
+WHERE
+  vhr.histo_destruction IS NULL
+  AND sr.histo_destruction IS NULL
+  AND vhr.heures <> 0
+  AND sr.intervenant_id = COALESCE( OSE_FORMULE.GET_INTERVENANT_ID, sr.intervenant_id )
+
+ORDER BY
+  horaire_fin, horaire_debut, volume_horaire_id, volume_horaire_ref_id
+) t',
+    ),
+    'V_FR_SERVICE_CENTRE_COUT' => 
+    array (
+      'name' => 'V_FR_SERVICE_CENTRE_COUT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_FR_SERVICE_CENTRE_COUT AS
+SELECT
+  frs.id formule_resultat_service_id, cc.id centre_cout_id
+FROM
+  formule_resultat_service   frs
+  JOIN service                 s ON s.id = frs.service_id
+  JOIN element_pedagogique    ep ON ep.id = s.element_pedagogique_id
+  JOIN centre_cout            cc ON cc.histo_destruction IS NULL
+
+  JOIN centre_cout_structure ccs ON ccs.centre_cout_id = cc.id
+                                AND ccs.structure_id = ep.structure_id
+                                AND ccs.histo_destruction IS NULL
+
+  JOIN cc_activite             a ON a.id = cc.activite_id
+                                AND a.histo_destruction IS NULL
+
+  JOIN type_ressource         tr ON tr.id = cc.type_ressource_id
+                                AND tr.histo_destruction IS NULL
+WHERE
+  (
+    (frs.heures_compl_fi > 0 AND tr.fi = 1 AND a.fi = 1 )
+    OR (frs.heures_compl_fa > 0 AND tr.fa = 1 AND a.fa = 1 )
+    OR (frs.heures_compl_fc > 0 AND tr.fc = 1 AND a.fc = 1 )
+    OR (frs.heures_compl_fc_majorees > 0 AND tr.fc_majorees = 1 AND a.fc_majorees = 1 )
+  )
+
+UNION
+
+SELECT
+  frs.id formule_resultat_service_id, cc.id
+FROM
+  formule_resultat_service   frs
+  JOIN service                 s ON s.id = frs.service_id
+                                AND s.element_pedagogique_id IS NULL
+
+  JOIN intervenant             i ON i.id = s.intervenant_id
+  JOIN centre_cout            cc ON cc.histo_destruction IS NULL
+
+  JOIN centre_cout_structure ccs ON ccs.centre_cout_id = cc.id
+                                AND ccs.structure_id = i.structure_id
+                                AND ccs.histo_destruction IS NULL
+
+  JOIN cc_activite             a ON a.id = cc.activite_id
+                                AND a.histo_destruction IS NULL
+
+  JOIN type_ressource         tr ON tr.id = cc.type_ressource_id
+                                AND tr.histo_destruction IS NULL
+WHERE
+  (
+    (frs.heures_compl_fi > 0 AND tr.fi = 1 AND a.fi = 1 )
+    OR (frs.heures_compl_fa > 0 AND tr.fa = 1 AND a.fa = 1 )
+    OR (frs.heures_compl_fc > 0 AND tr.fc = 1 AND a.fc = 1 )
+    OR (frs.heures_compl_fc_majorees > 0 AND tr.fc_majorees = 1 AND a.fc_majorees = 1 )
+  )',
+    ),
+    'V_FR_SERVICE_REF_CENTRE_COUT' => 
+    array (
+      'name' => 'V_FR_SERVICE_REF_CENTRE_COUT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_FR_SERVICE_REF_CENTRE_COUT AS
+SELECT
+  frsr.id formule_resultat_serv_ref_id, cc.id
+FROM
+  formule_resultat_service_ref   frsr
+  JOIN service_referentiel    sr ON sr.id = frsr.service_referentiel_id
+  JOIN centre_cout            cc ON cc.histo_destruction IS NULL
+
+  JOIN centre_cout_structure ccs ON ccs.centre_cout_id = cc.id
+                                AND ccs.structure_id = sr.structure_id
+                                AND ccs.histo_destruction IS NULL
+
+  JOIN cc_activite             a ON a.id = cc.activite_id
+                                AND a.histo_destruction IS NULL
+
+  JOIN type_ressource         tr ON tr.id = cc.type_ressource_id
+                                AND tr.histo_destruction IS NULL
+WHERE
+  frsr.heures_compl_referentiel > 0 AND tr.referentiel = 1',
+    ),
+    'V_HAS_DMEP_A_FAIRE' => 
+    array (
+      'name' => 'V_HAS_DMEP_A_FAIRE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_HAS_DMEP_A_FAIRE AS
+SELECT
+  intervenant_id,
+  structure_id,
+  CASE WHEN
+    SUM(CASE WHEN heures_dmep > heures_compl THEN heures_compl ELSE heures_dmep END) < SUM(heures_compl)
+  THEN 1 ELSE 0 END has_dmep_a_faire
+FROM
+  (
+  SELECT
+    fr.intervenant_id intervenant_id,
+    NVL( ep.structure_id, i.structure_id ) structure_id,
+    frs.heures_compl_fi + frs.heures_compl_fa + frs.heures_compl_fc + frs.heures_compl_fc_majorees heures_compl,
+    SUM( NVL(mep.heures,0) ) OVER (PARTITION BY frs.id) heures_dmep,
+    SUM( NVL(CASE WHEN mep.periode_paiement_id IS NOT NULL THEN mep.heures ELSE 0 END,0) ) OVER (PARTITION BY frs.id) heures_mep,
+    ROW_NUMBER() OVER (PARTITION BY frs.id ORDER BY 1) index__
+  FROM
+    formule_resultat_service frs
+    JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id
+    JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code = \'REALISE\'
+    JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id AND evh.code = \'valide\'
+    JOIN intervenant i on i.id = fr.intervenant_id
+    JOIN service s ON s.id = frs.service_id
+    LEFT JOIN element_pedagogique ep on ep.id = s.element_pedagogique_id
+    LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id AND mep.histo_destruction IS NULL
+
+  UNION
+
+    SELECT
+    fr.intervenant_id intervenant_id,
+    NVL( s.structure_id, i.structure_id ) structure_id,
+    frs.heures_compl_referentiel heures_compl,
+    SUM( NVL(mep.heures,0) ) OVER (PARTITION BY frs.id) heures_dmep,
+    SUM( NVL(CASE WHEN mep.periode_paiement_id IS NOT NULL THEN mep.heures ELSE 0 END,0) ) OVER (PARTITION BY frs.id) heures_mep,
+    ROW_NUMBER() OVER (PARTITION BY frs.id ORDER BY 1) index__
+  FROM
+    formule_resultat_service_ref frs
+    JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id
+    JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code = \'REALISE\'
+    JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id AND evh.code = \'valide\'
+    JOIN intervenant i on i.id = fr.intervenant_id
+    JOIN service_referentiel s ON s.id = frs.service_referentiel_id
+    LEFT JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frs.id AND mep.histo_destruction IS NULL
+  )mep
+WHERE
+  index__ = 1
+GROUP BY
+  intervenant_id,
+  structure_id',
+    ),
+    'V_HETD_PREV_VAL_STRUCT' => 
+    array (
+      'name' => 'V_HETD_PREV_VAL_STRUCT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_HETD_PREV_VAL_STRUCT AS
+SELECT
+  annee_id,
+  structure_id,
+  sum(heures) heures
+
+FROM
+(
+SELECT
+  i.annee_id,
+  NVL( ep.structure_id, i.structure_id ) structure_id,
+  frs.total heures
+FROM
+  formule_resultat_service frs
+  JOIN formule_resultat fr ON fr.id = frs.formule_resultat_id
+  JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id
+  JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id
+  JOIN intervenant i ON i.id = fr.intervenant_id
+  JOIN service s ON s.id = frs.service_id
+  LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
+
+WHERE
+  tvh.code = \'PREVU\'
+  AND evh.code = \'valide\'
+) t1
+
+GROUP BY
+  annee_id, structure_id',
+    ),
+    'V_IMPORT_TAB_COLS' => 
+    array (
+      'name' => 'V_IMPORT_TAB_COLS',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_IMPORT_TAB_COLS AS
+WITH importable_tables (table_name )AS (
+  SELECT
+  t.table_name
+FROM
+  user_tab_cols c
+  join user_tables t on t.table_name = c.table_name
+WHERE
+  c.column_name = \'SOURCE_CODE\'
+
+MINUS
+
+SELECT
+  mview_name table_name
+FROM
+  USER_MVIEWS
+), c_values (table_name, column_name, c_table_name, c_column_name) AS (
+SELECT
+  tc.table_name,
+  tc.column_name,
+  pcc.table_name c_table_name,
+  pcc.column_name c_column_name
+FROM
+  user_tab_cols tc
+  JOIN USER_CONS_COLUMNS cc ON cc.table_name = tc.table_name AND cc.column_name = tc.column_name
+  JOIN USER_CONSTRAINTS c ON c.constraint_name = cc.constraint_name
+  JOIN USER_CONSTRAINTS pc ON pc.constraint_name = c.r_constraint_name
+  JOIN USER_CONS_COLUMNS pcc ON pcc.constraint_name = pc.constraint_name
+WHERE
+  c.constraint_type = \'R\' AND pc.constraint_type = \'P\'
+)
+SELECT
+  tc.table_name,
+  tc.column_name,
+  tc.data_type,
+  CASE WHEN tc.char_length = 0 THEN NULL ELSE tc.char_length END length,
+  CASE WHEN tc.nullable = \'Y\' THEN 1 ELSE 0 END nullable,
+  CASE WHEN tc.data_default IS NOT NULL THEN 1 ELSE 0 END has_default,
+  cv.c_table_name,
+  cv.c_column_name,
+  CASE WHEN stc.table_name IS NULL THEN 0 ELSE 1 END AS import_actif
+FROM
+  user_tab_cols tc
+  JOIN importable_tables t ON t.table_name = tc.table_name
+  LEFT JOIN import_tables it ON it.table_name = tc.table_name
+  LEFT JOIN c_values cv ON cv.table_name = tc.table_name AND cv.column_name = tc.column_name
+  LEFT JOIN user_tab_cols stc ON stc.table_name = \'SRC_\' || tc.table_name AND stc.column_name = tc.column_name
+WHERE
+  tc.column_name not like \'HISTO_%\'
+  AND tc.column_name <> \'ID\'
+  AND tc.table_name <> \'SYNC_LOG\'
+ORDER BY
+  it.ordre, tc.table_name, tc.column_id',
+    ),
+    'V_INDICATEUR_1010' => 
+    array (
+      'name' => 'V_INDICATEUR_1010',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1010 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  i.structure_id
+FROM
+  tbl_workflow w
+  JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id
+  JOIN intervenant i ON i.id = w.intervenant_id
+WHERE
+  w.etape_code = \'PJ_SAISIE\'
+  AND wc.etape_code = \'SERVICE_SAISIE\'
+  AND w.type_intervenant_code = \'E\'
+  AND wc.realisation > 0
+  AND w.atteignable = 1
+  AND w.objectif > w.realisation
+) t',
+    ),
+    'V_INDICATEUR_1011' => 
+    array (
+      'name' => 'V_INDICATEUR_1011',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1011 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  i.structure_id
+FROM
+  tbl_workflow w
+  JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id
+  JOIN intervenant i ON i.id = w.intervenant_id
+WHERE
+  w.etape_code = \'PJ_SAISIE\'
+  AND wc.etape_code = \'SERVICE_SAISIE\'
+  AND w.type_intervenant_code = \'P\'
+  AND wc.realisation > 0
+  AND w.atteignable = 1
+  AND w.objectif > w.realisation
+) t',
+    ),
+    'V_INDICATEUR_1020' => 
+    array (
+      'name' => 'V_INDICATEUR_1020',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1020 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  i.structure_id
+FROM
+  tbl_workflow w
+  JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id
+  JOIN intervenant i ON i.id = w.intervenant_id
+WHERE
+  w.etape_code = \'PJ_VALIDATION\'
+  AND wc.etape_code = \'PJ_SAISIE\'
+  AND w.type_intervenant_code = \'E\'
+  AND wc.objectif = wc.realisation
+  AND w.atteignable = 1
+  AND w.objectif > w.realisation
+) t',
+    ),
+    'V_INDICATEUR_1021' => 
+    array (
+      'name' => 'V_INDICATEUR_1021',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1021 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  i.structure_id
+FROM
+  tbl_workflow w
+  JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id
+  JOIN intervenant i ON i.id = w.intervenant_id
+WHERE
+  w.etape_code = \'PJ_VALIDATION\'
+  AND wc.etape_code = \'PJ_SAISIE\'
+  AND w.type_intervenant_code = \'P\'
+  AND wc.objectif = wc.realisation
+  AND w.atteignable = 1
+  AND w.objectif > w.realisation
+) t',
+    ),
+    'V_INDICATEUR_110' => 
+    array (
+      'name' => 'V_INDICATEUR_110',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_110 AS
+SELECT
+  rownum id,
+  t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM (
+
+SELECT DISTINCT
+  s.annee_id       annee_id,
+  s.intervenant_id intervenant_id,
+  s.structure_id   structure_id
+FROM
+  tbl_service s
+WHERE
+  s.type_intervenant_code = \'P\'
+  AND s.type_volume_horaire_code = \'PREVU\'
+  AND s.intervenant_structure_id <> s.structure_id
+  AND s.valide > 0
+  AND s.structure_id IS NOT NULL
+
+) t',
+    ),
+    'V_INDICATEUR_1110' => 
+    array (
+      'name' => 'V_INDICATEUR_1110',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1110 AS
+SELECT rownum id, t.ANNEE_ID,t.INTERVENANT_ID,t.STRUCTURE_ID FROM (
+SELECT DISTINCT
+  idc.annee_id,
+  idc.intervenant_id,
+  idc.structure_id
+FROM
+            v_indic_depass_charges  idc
+       JOIN type_volume_horaire     tvh ON tvh.id = idc.type_volume_horaire_id
+  LEFT JOIN periode                 p ON p.id = idc.periode_id
+WHERE
+  (p.code = \'S1\' OR p.id IS NULL)
+  AND tvh.code = \'PREVU\'
+) t',
+    ),
+    'V_INDICATEUR_1111' => 
+    array (
+      'name' => 'V_INDICATEUR_1111',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1111 AS
+SELECT rownum id, t.ANNEE_ID,t.INTERVENANT_ID,t.STRUCTURE_ID FROM (
+SELECT DISTINCT
+  idc.annee_id,
+  idc.intervenant_id,
+  idc.structure_id
+FROM
+            v_indic_depass_charges  idc
+       JOIN type_volume_horaire     tvh ON tvh.id = idc.type_volume_horaire_id
+  LEFT JOIN periode                 p ON p.id = idc.periode_id
+WHERE
+  (p.code = \'S2\' OR p.id IS NULL)
+  AND tvh.code = \'PREVU\'
+) t',
+    ),
+    'V_INDICATEUR_1120' => 
+    array (
+      'name' => 'V_INDICATEUR_1120',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1120 AS
+SELECT rownum id, t.ANNEE_ID,t.INTERVENANT_ID,t.STRUCTURE_ID FROM (
+SELECT DISTINCT
+  idc.annee_id,
+  idc.intervenant_id,
+  idc.structure_id
+FROM
+            v_indic_depass_charges  idc
+       JOIN type_volume_horaire     tvh ON tvh.id = idc.type_volume_horaire_id
+  LEFT JOIN periode                 p ON p.id = idc.periode_id
+WHERE
+  (p.code = \'S1\' OR p.id IS NULL)
+  AND tvh.code = \'REALISE\'
+) t',
+    ),
+    'V_INDICATEUR_1121' => 
+    array (
+      'name' => 'V_INDICATEUR_1121',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1121 AS
+SELECT rownum id, t.ANNEE_ID,t.INTERVENANT_ID,t.STRUCTURE_ID FROM (
+SELECT DISTINCT
+  idc.annee_id,
+  idc.intervenant_id,
+  idc.structure_id
+FROM
+            v_indic_depass_charges  idc
+       JOIN type_volume_horaire     tvh ON tvh.id = idc.type_volume_horaire_id
+  LEFT JOIN periode                 p ON p.id = idc.periode_id
+WHERE
+  (p.code = \'S2\' OR p.id IS NULL)
+  AND tvh.code = \'REALISE\'
+) t',
+    ),
+    'V_INDICATEUR_120' => 
+    array (
+      'name' => 'V_INDICATEUR_120',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_120 AS
+SELECT
+  rownum id,
+  t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM (
+
+SELECT DISTINCT
+  s.annee_id annee_id,
+  s.intervenant_id intervenant_id,
+  s.structure_id structure_id
+FROM
+  tbl_service s
+WHERE
+  s.type_intervenant_code = \'P\'
+  AND s.type_volume_horaire_code = \'PREVU\'
+  AND s.intervenant_structure_id <> s.structure_id
+  AND s.valide > 0
+  AND s.structure_id IS NOT NULL
+
+) t',
+    ),
+    'V_INDICATEUR_1210' => 
+    array (
+      'name' => 'V_INDICATEUR_1210',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1210 AS
+SELECT
+  i.id id,
+  i.annee_id,
+  i.id intervenant_id,
+  i.structure_id,
+  AVG(t.plafond)  plafond,
+  AVG(t.heures)   heures
+FROM
+  (
+  SELECT
+    vhr.type_volume_horaire_id        type_volume_horaire_id,
+    sr.intervenant_id                 intervenant_id,
+    fr.plafond                        plafond,
+    fr.id                             fr_id,
+    SUM(vhr.heures)                   heures
+  FROM
+         service_referentiel       sr
+    JOIN fonction_referentiel      fr ON fr.id = sr.fonction_id
+    JOIN volume_horaire_ref       vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL
+    JOIN type_volume_horaire      tvh ON tvh.id = vhr.type_volume_horaire_id AND tvh.code= \'PREVU\'
+  WHERE
+    sr.histo_destruction IS NULL
+  GROUP BY
+    vhr.type_volume_horaire_id,
+    sr.intervenant_id,
+    fr.plafond,
+    fr.id
+  ) t
+  JOIN intervenant i ON i.id = t.intervenant_id
+WHERE
+  t.heures > t.plafond
+  /*i.id*/
+GROUP BY
+  t.type_volume_horaire_id,
+  i.annee_id,
+  i.id,
+  i.structure_id',
+    ),
+    'V_INDICATEUR_1211' => 
+    array (
+      'name' => 'V_INDICATEUR_1211',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1211 AS
+SELECT
+  i.id id,
+  i.annee_id,
+  i.id intervenant_id,
+  i.structure_id,
+  AVG(t.plafond)  plafond,
+  AVG(t.heures)   heures
+FROM
+  (
+  SELECT
+    vhr.type_volume_horaire_id        type_volume_horaire_id,
+    sr.intervenant_id                 intervenant_id,
+    fr.plafond                        plafond,
+    fr.id                             fr_id,
+    SUM(vhr.heures)                   heures
+  FROM
+         service_referentiel       sr
+    JOIN fonction_referentiel      frf ON frf.id = sr.fonction_id
+    JOIN fonction_referentiel      fr ON fr.id = frf.parent_id
+    JOIN volume_horaire_ref       vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL
+    JOIN type_volume_horaire      tvh ON tvh.id = vhr.type_volume_horaire_id AND tvh.code= \'PREVU\'
+  WHERE
+    sr.histo_destruction IS NULL
+  GROUP BY
+    vhr.type_volume_horaire_id,
+    sr.intervenant_id,
+    fr.plafond,
+    fr.id
+  ) t
+  JOIN intervenant i ON i.id = t.intervenant_id
+WHERE
+  t.heures > t.plafond
+  /*i.id*/
+GROUP BY
+  t.type_volume_horaire_id,
+  i.annee_id,
+  i.id,
+  i.structure_id',
+    ),
+    'V_INDICATEUR_1220' => 
+    array (
+      'name' => 'V_INDICATEUR_1220',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1220 AS
+SELECT
+  i.id id,
+  i.annee_id,
+  i.id intervenant_id,
+  i.structure_id,
+  AVG(t.plafond)  plafond,
+  AVG(t.heures)   heures
+FROM
+  (
+  SELECT
+    vhr.type_volume_horaire_id        type_volume_horaire_id,
+    sr.intervenant_id                 intervenant_id,
+    fr.plafond                        plafond,
+    fr.id                             fr_id,
+    SUM(vhr.heures)                   heures
+  FROM
+         service_referentiel       sr
+    JOIN fonction_referentiel      fr ON fr.id = sr.fonction_id
+    JOIN volume_horaire_ref       vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL
+    JOIN type_volume_horaire      tvh ON tvh.id = vhr.type_volume_horaire_id AND tvh.code= \'REALISE\'
+  WHERE
+    sr.histo_destruction IS NULL
+  GROUP BY
+    vhr.type_volume_horaire_id,
+    sr.intervenant_id,
+    fr.plafond,
+    fr.id
+  ) t
+  JOIN intervenant i ON i.id = t.intervenant_id
+WHERE
+  t.heures > t.plafond
+  /*i.id*/
+GROUP BY
+  t.type_volume_horaire_id,
+  i.annee_id,
+  i.id,
+  i.structure_id',
+    ),
+    'V_INDICATEUR_1221' => 
+    array (
+      'name' => 'V_INDICATEUR_1221',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1221 AS
+SELECT
+  i.id id,
+  i.annee_id,
+  i.id intervenant_id,
+  i.structure_id,
+  AVG(t.plafond)  plafond,
+  AVG(t.heures)   heures
+FROM
+  (
+  SELECT
+    vhr.type_volume_horaire_id        type_volume_horaire_id,
+    sr.intervenant_id                 intervenant_id,
+    fr.plafond                        plafond,
+    fr.id                             fr_id,
+    SUM(vhr.heures)                   heures
+  FROM
+         service_referentiel       sr
+    JOIN fonction_referentiel      frf ON frf.id = sr.fonction_id
+    JOIN fonction_referentiel      fr ON fr.id = frf.parent_id
+    JOIN volume_horaire_ref       vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL
+    JOIN type_volume_horaire      tvh ON tvh.id = vhr.type_volume_horaire_id AND tvh.code= \'REALISE\'
+  WHERE
+    sr.histo_destruction IS NULL
+  GROUP BY
+    vhr.type_volume_horaire_id,
+    sr.intervenant_id,
+    fr.plafond,
+    fr.id
+  ) t
+  JOIN intervenant i ON i.id = t.intervenant_id
+WHERE
+  t.heures > t.plafond
+  /*i.id*/
+GROUP BY
+  t.type_volume_horaire_id,
+  i.annee_id,
+  i.id,
+  i.structure_id',
+    ),
+    'V_INDICATEUR_1230' => 
+    array (
+      'name' => 'V_INDICATEUR_1230',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1230 AS
+SELECT
+  t.intervenant_id    id,
+  t.annee_id          annee_id,
+  t.intervenant_id    intervenant_id,
+  t.structure_id      structure_id,
+  t.plafond           plafond,
+  t.heures            heures
+FROM
+  (
+    SELECT DISTINCT
+      i.id                              intervenant_id,
+      i.annee_id                        annee_id,
+      s.plafond_referentiel             plafond,
+      s.id                              structure_id,
+      s.libelle_court                   structure_libelle,
+      SUM(vhr.heures) OVER (PARTITION BY s.id,vhr.type_volume_horaire_id,i.annee_id) heures
+    FROM
+             service_referentiel       sr
+        JOIN intervenant                i ON i.id = sr.intervenant_id
+        JOIN structure                  s ON s.id = sr.structure_id AND s.plafond_referentiel IS NOT NULL
+        JOIN volume_horaire_ref       vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL
+        JOIN type_volume_horaire      tvh ON tvh.id = vhr.type_volume_horaire_id AND tvh.code = \'PREVU\'
+    WHERE
+        sr.histo_destruction IS NULL
+  ) t
+WHERE
+    t.heures > t.plafond',
+    ),
+    'V_INDICATEUR_1240' => 
+    array (
+      'name' => 'V_INDICATEUR_1240',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_1240 AS
+SELECT
+  t.intervenant_id    id,
+  t.annee_id          annee_id,
+  t.intervenant_id    intervenant_id,
+  t.structure_id      structure_id,
+  t.plafond           plafond,
+  t.heures            heures
+FROM
+  (
+    SELECT DISTINCT
+      i.id                              intervenant_id,
+      i.annee_id                        annee_id,
+      s.plafond_referentiel             plafond,
+      s.id                              structure_id,
+      s.libelle_court                   structure_libelle,
+      SUM(vhr.heures) OVER (PARTITION BY s.id,vhr.type_volume_horaire_id,i.annee_id) heures
+    FROM
+             service_referentiel       sr
+        JOIN intervenant                i ON i.id = sr.intervenant_id
+        JOIN structure                  s ON s.id = sr.structure_id AND s.plafond_referentiel IS NOT NULL
+        JOIN volume_horaire_ref       vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL
+        JOIN type_volume_horaire      tvh ON tvh.id = vhr.type_volume_horaire_id AND tvh.code = \'REALISE\'
+    WHERE
+        sr.histo_destruction IS NULL
+  ) t
+WHERE
+    t.heures > t.plafond',
+    ),
+    'V_INDICATEUR_130' => 
+    array (
+      'name' => 'V_INDICATEUR_130',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_130 AS
+SELECT
+  rownum id,
+  t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM (
+
+SELECT DISTINCT
+  s.annee_id annee_id,
+  s.intervenant_id intervenant_id,
+  i.structure_id structure_id
+FROM
+  tbl_service s
+  JOIN intervenant i ON i.id = s.intervenant_id
+  JOIN statut_intervenant si ON si.id = i.statut_id
+WHERE
+  si.tem_biatss = 1
+  AND s.type_volume_horaire_code = \'PREVU\'
+  AND s.intervenant_structure_id <> s.structure_id
+  AND s.valide > 0
+  AND s.structure_id IS NOT NULL
+
+) t',
+    ),
+    'V_INDICATEUR_210' => 
+    array (
+      'name' => 'V_INDICATEUR_210',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_210 AS
+SELECT
+  rownum id,
+  w.annee_id,
+  w.intervenant_id,
+  w.structure_id
+FROM
+  tbl_workflow w
+WHERE
+  w.atteignable = 1
+  AND w.etape_code = \'CONSEIL_RESTREINT\'
+  AND w.objectif > 0
+  AND w.realisation < 1',
+    ),
+    'V_INDICATEUR_220' => 
+    array (
+      'name' => 'V_INDICATEUR_220',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_220 AS
+SELECT
+  rownum id,
+  w.annee_id,
+  w.intervenant_id,
+  i.structure_id
+FROM
+  tbl_workflow w
+  JOIN intervenant i ON i.id = w.intervenant_id
+WHERE
+  w.atteignable = 1
+  AND w.etape_code = \'CONSEIL_ACADEMIQUE\'
+  AND w.objectif > 0
+  AND w.realisation < 1',
+    ),
+    'V_INDICATEUR_310' => 
+    array (
+      'name' => 'V_INDICATEUR_310',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_310 AS
+WITH caok AS (
+  SELECT
+    w.intervenant_id
+  FROM
+    tbl_workflow w
+  WHERE
+    w.objectif > 0
+    AND w.etape_code = \'CONSEIL_ACADEMIQUE\'
+    AND w.realisation = w.objectif
+)
+SELECT
+  rownum id,
+  w.annee_id,
+  w.intervenant_id,
+  w.structure_id
+FROM
+  tbl_workflow w
+  JOIN caok ON caok.intervenant_id = w.intervenant_id
+WHERE
+  w.atteignable = 1
+  AND w.etape_code = \'CONTRAT\'
+  AND w.objectif > 0
+  AND w.realisation < 1',
+    ),
+    'V_INDICATEUR_320' => 
+    array (
+      'name' => 'V_INDICATEUR_320',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_320 AS
+SELECT
+  rownum id,
+  t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID"
+FROM (
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  w.structure_id
+FROM
+  tbl_workflow w
+  LEFT JOIN tbl_contrat c ON c.INTERVENANT_ID = w.intervenant_id AND w.structure_id = c.structure_id
+WHERE
+  w.atteignable = 1
+  AND w.etape_code = \'CONTRAT\'
+  AND w.objectif > 0
+  AND w.realisation = 0
+  AND NVL(c.EDITE,0) <> 1
+) t',
+    ),
+    'V_INDICATEUR_330' => 
+    array (
+      'name' => 'V_INDICATEUR_330',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_330 AS
+WITH has_contrat AS (
+  SELECT DISTINCT
+    intervenant_id
+  FROM
+    tbl_contrat
+  WHERE
+    edite > 0
+)
+SELECT
+  rownum id,
+  w.annee_id,
+  w.intervenant_id,
+  w.structure_id
+FROM
+  tbl_workflow w
+  JOIN has_contrat hc ON hc.intervenant_id = w.intervenant_id
+WHERE
+  w.atteignable = 1
+  AND w.etape_code = \'CONTRAT\'
+  AND w.objectif > 0
+  AND w.realisation < w.objectif',
+    ),
+    'V_INDICATEUR_340' => 
+    array (
+      'name' => 'V_INDICATEUR_340',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_340 AS
+SELECT
+  rownum id,
+  s.annee_id,
+  s.intervenant_id,
+  s.structure_id
+FROM
+  tbl_service s
+  JOIN tbl_workflow w ON w.intervenant_id = s.intervenant_id AND w.structure_id = s.structure_id
+WHERE
+  s.type_intervenant_code = \'V\'
+  AND s.type_volume_horaire_code = \'PREVU\'
+  AND nbvh <> valide
+  AND w.etape_code = \'CONTRAT\'
+  AND w.atteignable = 1
+  AND w.objectif > 0
+  AND w.realisation = w.objectif',
+    ),
+    'V_INDICATEUR_350' => 
+    array (
+      'name' => 'V_INDICATEUR_350',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_350 AS
+SELECT
+  rownum id,
+  t."INTERVENANT_ID",t."ANNEE_ID",t."STRUCTURE_ID",t."CONTRAT_ID"
+FROM (
+SELECT DISTINCT
+  i.id intervenant_id,
+  i.annee_id annee_id,
+  c.structure_id structure_id,
+  c.id contrat_id
+FROM
+  contrat                c
+  JOIN contrat_fichier  cf ON cf.contrat_id = c.id
+  JOIN fichier           f ON f.id = cf.fichier_id
+                          AND f.histo_destruction IS NULL
+  JOIN intervenant i ON i.id = c.intervenant_id
+WHERE
+  c.histo_destruction IS NULL
+) t',
+    ),
+    'V_INDICATEUR_360' => 
+    array (
+      'name' => 'V_INDICATEUR_360',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_360 AS
+SELECT
+  rownum id,
+  t."INTERVENANT_ID",t."ANNEE_ID",t."STRUCTURE_ID",t."CONTRAT_ID"
+FROM (
+SELECT DISTINCT
+  i.id intervenant_id,
+  i.annee_id annee_id,
+  c.structure_id structure_id,
+  c.id contrat_id
+FROM
+  contrat                c
+  JOIN intervenant i ON i.id = c.intervenant_id
+  JOIN tbl_workflow w ON w.intervenant_id = i.id AND w.structure_id = c.structure_id AND w.etape_code = \'CONTRAT\' AND w.atteignable = 1
+  JOIN validation v ON v.id = c.validation_id AND v.histo_destruction IS NULL
+WHERE
+  c.histo_destruction IS NULL
+  AND c.date_retour_signe IS NULL
+) t',
+    ),
+    'V_INDICATEUR_410' => 
+    array (
+      'name' => 'V_INDICATEUR_410',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_410 AS
+SELECT
+  rownum id,
+  d.annee_id,
+  d.intervenant_id,
+  i.structure_id
+FROM
+  tbl_dossier d
+  JOIN intervenant i ON i.id = d.intervenant_id
+WHERE
+  d.dossier_id IS NOT NULL
+  AND d.validation_id IS NULL
+  AND d.peut_saisir_dossier = 1',
+    ),
+    'V_INDICATEUR_420' => 
+    array (
+      'name' => 'V_INDICATEUR_420',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_420 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM (
+  SELECT DISTINCT
+    i.annee_id annee_id,
+    i.id intervenant_id,
+    i.structure_id
+  FROM
+    indic_modif_dossier d
+    JOIN intervenant i ON i.id = d.intervenant_id
+  WHERE
+    d.histo_destruction IS NULL
+) t',
+    ),
+    'V_INDICATEUR_510' => 
+    array (
+      'name' => 'V_INDICATEUR_510',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_510 AS
+WITH t AS (
+SELECT
+  s.intervenant_id,
+  s.annee_id,
+  s.structure_id,
+  listagg( ep.source_code || \' - \' || ep.libelle, \'||\') WITHIN GROUP (ORDER BY ep.libelle) elements
+FROM
+  tbl_service s
+  LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
+WHERE
+  (
+    s.has_heures_mauvaise_periode = 1
+    OR s.etape_histo = 0
+    OR s.element_pedagogique_histo = 0
+  )
+  AND s.heures > 0
+GROUP BY
+  s.intervenant_id,
+  s.annee_id,
+  s.structure_id
+)
+SELECT
+  rownum id, t."INTERVENANT_ID",t."ANNEE_ID",t."STRUCTURE_ID", t.elements
+FROM t',
+    ),
+    'V_INDICATEUR_520' => 
+    array (
+      'name' => 'V_INDICATEUR_520',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_520 AS
+SELECT
+  fr.id id,
+  i.annee_id annee_id,
+  i.id intervenant_id,
+  i.structure_id structure_id,
+  si.plafond_hc_hors_remu_fc plafond,
+  fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_fi + fr.heures_compl_referentiel heures
+FROM
+  formule_resultat fr
+  JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id
+  JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id
+  JOIN intervenant i ON i.id = fr.intervenant_id
+  JOIN statut_intervenant si ON si.id = i.statut_id
+WHERE
+  tvh.code = \'PREVU\'
+  AND evh.code = \'saisi\'
+  AND si.plafond_hc_hors_remu_fc < fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_fi + fr.heures_compl_referentiel',
+    ),
+    'V_INDICATEUR_530' => 
+    array (
+      'name' => 'V_INDICATEUR_530',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_530 AS
+SELECT
+  fr.id id,
+  i.annee_id annee_id,
+  i.id intervenant_id,
+  i.structure_id structure_id,
+  si.plafond_hc_hors_remu_fc plafond,
+  fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_fi + fr.heures_compl_referentiel heures
+FROM
+  formule_resultat fr
+  JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id
+  JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id
+  JOIN intervenant i ON i.id = fr.intervenant_id
+  JOIN statut_intervenant si ON si.id = i.statut_id
+WHERE
+  tvh.code = \'REALISE\'
+  AND evh.code = \'saisi\'
+  AND si.plafond_hc_hors_remu_fc < fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_fi + fr.heures_compl_referentiel',
+    ),
+    'V_INDICATEUR_540' => 
+    array (
+      'name' => 'V_INDICATEUR_540',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_540 AS
+SELECT
+  rownum                              id,
+  i.annee_id                          annee_id,
+  i.id                                intervenant_id,
+  i.structure_id                      structure_id,
+  ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 ) plafond,
+  fr.heures_compl_fc_majorees         heures
+FROM
+       intervenant                i
+  JOIN annee                      a ON a.id = i.annee_id
+  JOIN statut_intervenant        si ON si.id = i.statut_id
+  JOIN etat_volume_horaire      evh ON evh.code = \'saisi\'
+  JOIN formule_resultat          fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
+  JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id
+WHERE
+  fr.heures_compl_fc_majorees > ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 )
+  AND tvh.code = \'PREVU\'',
+    ),
+    'V_INDICATEUR_550' => 
+    array (
+      'name' => 'V_INDICATEUR_550',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_550 AS
+SELECT
+  rownum                              id,
+  i.annee_id                          annee_id,
+  i.id                                intervenant_id,
+  i.structure_id                      structure_id,
+  ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 ) plafond,
+  fr.heures_compl_fc_majorees         heures
+FROM
+       intervenant                i
+  JOIN annee                      a ON a.id = i.annee_id
+  JOIN statut_intervenant        si ON si.id = i.statut_id
+  JOIN etat_volume_horaire      evh ON evh.code = \'saisi\'
+  JOIN formule_resultat          fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
+  JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id
+WHERE
+  fr.heures_compl_fc_majorees > ROUND( (COALESCE(si.plafond_hc_remu_fc,0) - COALESCE(i.montant_indemnite_fc,0)) / a.taux_hetd, 2 )
+  AND tvh.code = \'REALISE\'',
+    ),
+    'V_INDICATEUR_560' => 
+    array (
+      'name' => 'V_INDICATEUR_560',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_560 AS
+SELECT
+  rownum                              id,
+  i.annee_id                          annee_id,
+  i.id                                intervenant_id,
+  i.structure_id                      structure_id,
+  si.maximum_hetd                     plafond,
+  fr.total                            heures
+FROM
+  intervenant                     i
+  JOIN etat_volume_horaire      evh ON evh.code = \'saisi\'
+  JOIN formule_resultat          fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
+  JOIN statut_intervenant        si ON si.id = i.statut_id
+  JOIN type_volume_horaire      tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code= \'PREVU\'
+WHERE
+  fr.total - fr.heures_compl_fc_majorees > si.maximum_hetd',
+    ),
+    'V_INDICATEUR_570' => 
+    array (
+      'name' => 'V_INDICATEUR_570',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_570 AS
+SELECT
+  rownum                              id,
+  i.annee_id                          annee_id,
+  i.id                                intervenant_id,
+  i.structure_id                      structure_id,
+  si.maximum_hetd                     plafond,
+  fr.total                            heures
+FROM
+  intervenant                     i
+  JOIN etat_volume_horaire      evh ON evh.code = \'saisi\'
+  JOIN formule_resultat          fr ON fr.intervenant_id = i.id AND fr.etat_volume_horaire_id = evh.id
+  JOIN statut_intervenant        si ON si.id = i.statut_id
+  JOIN type_volume_horaire      tvh ON tvh.id = fr.type_volume_horaire_id AND tvh.code= \'REALISE\'
+WHERE
+  fr.total - fr.heures_compl_fc_majorees > si.maximum_hetd',
+    ),
+    'V_INDICATEUR_610' => 
+    array (
+      'name' => 'V_INDICATEUR_610',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_610 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID",t."STATUT_INTERVENANT_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  w.structure_id,
+  w.statut_intervenant_id
+FROM
+  tbl_workflow w
+WHERE
+  w.etape_code = \'SERVICE_VALIDATION\'
+  AND w.type_intervenant_code = \'P\'
+  AND w.atteignable = 1
+  AND w.objectif > w.realisation
+) t',
+    ),
+    'V_INDICATEUR_620' => 
+    array (
+      'name' => 'V_INDICATEUR_620',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_620 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  w.structure_id
+FROM
+  tbl_workflow w
+WHERE
+  w.etape_code = \'REFERENTIEL_VALIDATION\'
+  AND w.type_intervenant_code = \'P\'
+  AND w.atteignable = 1
+  AND w.objectif > w.realisation
+) t',
+    ),
+    'V_INDICATEUR_630' => 
+    array (
+      'name' => 'V_INDICATEUR_630',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_630 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  i.structure_id
+FROM
+  tbl_workflow w
+  JOIN intervenant i ON i.id = w.intervenant_id
+WHERE
+  w.etape_code = \'CLOTURE_REALISE\'
+  AND w.atteignable = 1
+  AND w.objectif > w.realisation
+) t',
+    ),
+    'V_INDICATEUR_640' => 
+    array (
+      'name' => 'V_INDICATEUR_640',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_640 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  w.structure_id
+FROM
+  tbl_workflow w
+  JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id
+WHERE
+  w.etape_code = \'SERVICE_VALIDATION_REALISE\'
+  AND w.objectif > w.realisation
+  AND w.atteignable = 1
+
+  AND wc.etape_code = \'CLOTURE_REALISE\'
+  AND wc.objectif = wc.realisation
+) t',
+    ),
+    'V_INDICATEUR_650' => 
+    array (
+      'name' => 'V_INDICATEUR_650',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_650 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID",t."STRUCTURES_CONCERNEES" FROM
+(
+SELECT
+  w.annee_id,
+  w.intervenant_id,
+  i.structure_id,
+  LISTAGG(s.libelle_court, \'||\') WITHIN GROUP (ORDER BY s.libelle_court) structures_concernees
+FROM
+  tbl_workflow w
+  JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id
+  JOIN intervenant i ON i.id = wc.intervenant_id
+  JOIN structure s ON s.id = w.structure_id
+WHERE
+  w.etape_code = \'SERVICE_VALIDATION_REALISE\'
+  AND w.objectif > w.realisation
+  AND w.atteignable = 1
+
+  AND wc.etape_code = \'CLOTURE_REALISE\'
+  AND wc.objectif = wc.realisation
+  AND w.structure_id <> i.structure_id
+GROUP BY
+  w.annee_id,
+  w.intervenant_id,
+  i.structure_id
+) t',
+    ),
+    'V_INDICATEUR_660' => 
+    array (
+      'name' => 'V_INDICATEUR_660',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_660 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT
+  w.annee_id,
+  w.intervenant_id,
+  i.structure_id
+FROM
+  tbl_workflow w
+  JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id
+  JOIN intervenant i ON i.id = wc.intervenant_id
+  JOIN structure s ON s.id = w.structure_id
+WHERE
+  w.etape_code = \'REFERENTIEL_VALIDATION_REALISE\'
+  AND w.objectif > w.realisation
+  AND w.atteignable = 1
+
+  AND wc.etape_code = \'CLOTURE_REALISE\'
+  AND wc.objectif = wc.realisation
+  AND w.structure_id = i.structure_id
+GROUP BY
+  w.annee_id,
+  w.intervenant_id,
+  i.structure_id
+) t',
+    ),
+    'V_INDICATEUR_670' => 
+    array (
+      'name' => 'V_INDICATEUR_670',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_670 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID",t."STRUCTURES_CONCERNEES" FROM
+(
+SELECT
+  w.annee_id,
+  w.intervenant_id,
+  i.structure_id,
+  LISTAGG(s.libelle_court, \'||\') WITHIN GROUP (ORDER BY s.libelle_court) structures_concernees
+FROM
+  tbl_workflow w
+  JOIN tbl_workflow wc ON wc.intervenant_id = w.intervenant_id
+  JOIN intervenant i ON i.id = wc.intervenant_id
+  JOIN structure s ON s.id = w.structure_id
+WHERE
+  w.etape_code = \'REFERENTIEL_VALIDATION_REALISE\'
+  AND w.objectif > w.realisation
+  AND w.atteignable = 1
+
+  AND wc.etape_code = \'CLOTURE_REALISE\'
+  AND wc.objectif = wc.realisation
+  AND w.structure_id <> i.structure_id
+GROUP BY
+  w.annee_id,
+  w.intervenant_id,
+  i.structure_id
+) t',
+    ),
+    'V_INDICATEUR_680' => 
+    array (
+      'name' => 'V_INDICATEUR_680',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_680 AS
+SELECT
+  fr.id id,
+  i.annee_id annee_id,
+  i.id intervenant_id,
+  i.structure_id structure_id,
+  si.plafond_referentiel plafond,
+  fr.heures_compl_referentiel heures
+FROM
+  formule_resultat fr
+  JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id
+  JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id
+  JOIN intervenant i ON i.id = fr.intervenant_id
+  JOIN statut_intervenant si ON si.id = i.statut_id
+WHERE
+  tvh.code = \'PREVU\'
+  AND evh.code = \'saisi\'
+  AND si.plafond_referentiel < fr.service_referentiel + fr.heures_compl_referentiel',
+    ),
+    'V_INDICATEUR_690' => 
+    array (
+      'name' => 'V_INDICATEUR_690',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_690 AS
+SELECT
+  fr.id id,
+  i.annee_id annee_id,
+  i.id intervenant_id,
+  i.structure_id structure_id,
+  si.plafond_referentiel plafond,
+  fr.heures_compl_referentiel heures
+FROM
+  formule_resultat fr
+  JOIN type_volume_horaire tvh ON tvh.id = fr.type_volume_horaire_id
+  JOIN etat_volume_horaire evh ON evh.id = fr.etat_volume_horaire_id
+  JOIN intervenant i ON i.id = fr.intervenant_id
+  JOIN statut_intervenant si ON si.id = i.statut_id
+WHERE
+  tvh.code = \'REALISE\'
+  AND evh.code = \'saisi\'
+  AND si.plafond_referentiel < fr.service_referentiel + fr.heures_compl_referentiel',
+    ),
+    'V_INDICATEUR_710' => 
+    array (
+      'name' => 'V_INDICATEUR_710',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_710 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  w.structure_id
+FROM
+  tbl_workflow w
+WHERE
+  w.etape_code = \'SERVICE_VALIDATION\'
+  AND w.type_intervenant_code = \'E\'
+  AND w.atteignable = 1
+  AND w.objectif > w.realisation
+) t',
+    ),
+    'V_INDICATEUR_720' => 
+    array (
+      'name' => 'V_INDICATEUR_720',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_720 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  w.structure_id
+FROM
+  tbl_workflow w
+WHERE
+  w.etape_code = \'SERVICE_VALIDATION_REALISE\'
+  AND w.type_intervenant_code = \'E\'
+  AND w.atteignable = 1
+  AND w.objectif > w.realisation
+) t',
+    ),
+    'V_INDICATEUR_810' => 
+    array (
+      'name' => 'V_INDICATEUR_810',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_810 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  w.structure_id
+FROM
+  tbl_workflow w
+WHERE
+  w.etape_code = \'DEMANDE_MEP\'
+  AND w.type_intervenant_code = \'P\'
+  AND w.atteignable = 1
+  AND w.objectif > w.realisation
+) t',
+    ),
+    'V_INDICATEUR_820' => 
+    array (
+      'name' => 'V_INDICATEUR_820',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_820 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  w.structure_id
+FROM
+  tbl_workflow w
+WHERE
+  w.etape_code = \'SAISIE_MEP\'
+  AND w.type_intervenant_code = \'P\'
+  AND w.atteignable = 1
+  AND w.objectif > w.realisation
+) t',
+    ),
+    'V_INDICATEUR_910' => 
+    array (
+      'name' => 'V_INDICATEUR_910',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_910 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  w.structure_id
+FROM
+  tbl_workflow w
+WHERE
+  w.etape_code = \'DEMANDE_MEP\'
+  AND w.type_intervenant_code = \'E\'
+  AND w.atteignable = 1
+  AND w.objectif > w.realisation
+) t',
+    ),
+    'V_INDICATEUR_920' => 
+    array (
+      'name' => 'V_INDICATEUR_920',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDICATEUR_920 AS
+SELECT rownum id, t."ANNEE_ID",t."INTERVENANT_ID",t."STRUCTURE_ID" FROM
+(
+SELECT DISTINCT
+  w.annee_id,
+  w.intervenant_id,
+  w.structure_id
+FROM
+  tbl_workflow w
+WHERE
+  w.etape_code = \'SAISIE_MEP\'
+  AND w.type_intervenant_code = \'E\'
+  AND w.atteignable = 1
+  AND w.objectif > w.realisation
+) t',
+    ),
+    'V_INDIC_ATTENTE_DEMANDE_MEP' => 
+    array (
+      'name' => 'V_INDIC_ATTENTE_DEMANDE_MEP',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDIC_ATTENTE_DEMANDE_MEP AS
+select to_number(i.id||dmep.structure_id) id, i.id intervenant_id, i.source_code, ti.code, i.annee_id, dmep.structure_id, 0 TOTAL_HEURES_MEP, 0 TOTAL_HEURES_COMPL
+  from intervenant i
+  join statut_intervenant si on si.id = i.statut_id
+  join type_intervenant ti on ti.id = si.type_intervenant_id
+  -- l\'intervenant doit avoir des heures disponibles pour une demande de MEP
+  join V_HAS_DMEP_A_FAIRE dmep on dmep.intervenant_id = i.id and dmep.has_dmep_a_faire <> 0
+  where (
+    -- un vacataire n\'a pas d\'autre contrainte
+    ti.code = \'E\'
+    or
+    -- mais un permanent doit...
+    (
+      -- avoir sa saisie de service réalisé clôturée
+      exists (
+        select * from validation v
+        join type_validation tv on v.type_validation_id = tv.id and tv.code = \'CLOTURE_REALISE\'
+        where v.intervenant_id = i.id and v.histo_destruction IS NULL
+      )
+      -- et tous ses enseignements réalisés validés (toutes composantes d\'intervention confondues)
+      and not exists (
+        select * from volume_horaire vh
+        join service s on vh.service_id = s.id and s.histo_destruction IS NULL
+        join type_volume_horaire tvh on vh.type_volume_horaire_id = tvh.id and tvh.code = \'REALISE\'
+        left join validation_vol_horaire vvh on vvh.volume_horaire_id = vh.id
+        left join validation v on vvh.validation_id = v.id and v.histo_destruction IS NULL
+        left join type_validation tv on v.type_validation_id = tv.id and tv.code = \'SERVICES_PAR_COMP\'
+        where s.intervenant_id = i.id and v.id is null and vh.histo_destruction IS NULL
+      )
+      -- et tout son référentiel réalisé validé (toutes composantes d\'intervention confondues)
+      and not exists (
+        select * from volume_horaire_ref vh
+        join service_referentiel s on vh.service_referentiel_id = s.id and s.histo_destruction IS NULL
+        join type_volume_horaire tvh on vh.type_volume_horaire_id = tvh.id and tvh.code = \'REALISE\'
+        left join validation_vol_horaire_ref vvh on vvh.volume_horaire_ref_id = vh.id
+        left join validation v on vvh.validation_id = v.id and v.histo_destruction IS NULL
+        left join type_validation tv on v.type_validation_id = tv.id and tv.code = \'SERVICES_PAR_COMP\'
+        where s.intervenant_id = i.id and v.id is null and vh.histo_destruction IS NULL
+      )
+    )
+  )',
+    ),
+    'V_INDIC_ATTENTE_MEP' => 
+    array (
+      'name' => 'V_INDIC_ATTENTE_MEP',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDIC_ATTENTE_MEP AS
+with
+  -- total des heures comp ayant fait l\'objet d\'une *demande* de mise en paiement
+  mep as (
+    select intervenant_id, structure_id, sum(nvl(mep_heures, 0)) total_heures_mep
+    from (
+      -- enseignements
+      select
+        fr.intervenant_id,
+        nvl(ep.structure_id, i.structure_id) structure_id,
+        nvl(mep.heures, 0) mep_heures
+      from mise_en_paiement mep
+      join formule_resultat_service frs on mep.formule_res_service_id = frs.id
+      join formule_resultat fr on frs.formule_resultat_id = fr.id
+      join intervenant i on fr.intervenant_id = i.id
+      join type_volume_horaire tvh on fr.type_volume_horaire_id = tvh.id and tvh.code = \'REALISE\'
+      join etat_volume_horaire evh on fr.etat_volume_horaire_id = evh.id and evh.code = \'valide\'
+      join service s on frs.service_id = s.id
+      left join element_pedagogique ep on s.element_pedagogique_id = ep.id
+      where mep.histo_destruction IS NULL and mep.date_mise_en_paiement is null -- si date_mise_en_paiement = null, c\'est une demande
+      union all
+      -- referentiel
+      select
+        fr.intervenant_id,
+        s.structure_id,
+        nvl(mep.heures, 0) mep_heures
+      from mise_en_paiement mep
+      join formule_resultat_service_ref frs on mep.formule_res_service_ref_id = frs.id
+      join formule_resultat fr on frs.formule_resultat_id = fr.id
+      join intervenant i on fr.intervenant_id = i.id
+      join type_volume_horaire tvh on fr.type_volume_horaire_id = tvh.id and tvh.code = \'REALISE\'
+      join etat_volume_horaire evh on fr.etat_volume_horaire_id = evh.id and evh.code = \'valide\'
+      join service_referentiel s on frs.service_referentiel_id = s.id
+      where mep.histo_destruction IS NULL and mep.date_mise_en_paiement is null -- si date_mise_en_paiement = null, c\'est une demande
+    )
+    group by intervenant_id, structure_id
+  )
+select to_number(intervenant_id||structure_id) id, 2014 annee_id, intervenant_id, structure_id, total_heures_mep from mep',
+    ),
+    'V_INDIC_ATT_VALID_ENS_AUTRE' => 
+    array (
+      'name' => 'V_INDIC_ATT_VALID_ENS_AUTRE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDIC_ATT_VALID_ENS_AUTRE AS
+SELECT distinct
+    to_char(v.intervenant_id)||to_char(v.structure_id) as id,
+    v.intervenant_id,
+    v.structure_id
+FROM v_indic_tous_services_valides v
+INNER JOIN intervenant i                    ON V.INTERVENANT_ID = i.id              AND i.HISTO_DESTRUCTION IS NULL
+INNER JOIN TYPE_VOLUME_HORAIRE tvh          ON v.type_volume_horaire_id = tvh.id    AND tvh.code = \'REALISE\'
+INNER JOIN VALIDATION clot                  ON clot.intervenant_id = i.id           AND clot.HISTO_DESTRUCTION IS NULL
+INNER JOIN TYPE_VALIDATION tv               ON tv.id = clot.type_validation_id      AND tv.code = \'CLOTURE_REALISE\'
+WHERE EXISTS
+    (
+        SELECT s2.ID
+        FROM SERVICE s2
+        INNER JOIN ELEMENT_PEDAGOGIQUE ep2      ON s2.ELEMENT_PEDAGOGIQUE_ID  = ep2.ID  AND ep2.HISTO_DESTRUCTION IS NULL
+        INNER JOIN VOLUME_HORAIRE vh2           ON s2.ID = vh2.SERVICE_ID               AND vh2.HISTO_DESTRUCTION IS NULL
+        LEFT JOIN VALIDATION_VOL_HORAIRE vvh2   ON vh2.ID = vvh2.VOLUME_HORAIRE_ID
+        LEFT JOIN VALIDATION val2               ON val2.ID = vvh2.VALIDATION_ID         AND val2.HISTO_DESTRUCTION IS NULL
+        WHERE
+            s2.INTERVENANT_ID = v.intervenant_id
+            AND s2.HISTO_DESTRUCTION IS NULL
+            AND VH2.TYPE_VOLUME_HORAIRE_ID = V.TYPE_VOLUME_HORAIRE_ID
+            AND ep2.structure_id <> v.structure_id -- autre composante d\'intervention que celle qui a tout validé
+            AND val2.ID IS NULL -- au moins un VH non validé
+    )',
+    ),
+    'V_INDIC_ATT_VALID_REF_AUTRE' => 
+    array (
+      'name' => 'V_INDIC_ATT_VALID_REF_AUTRE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDIC_ATT_VALID_REF_AUTRE AS
+SELECT distinct
+    to_char(v.intervenant_id)||to_char(v.structure_id) as id,
+    v.intervenant_id,
+    v.structure_id
+FROM v_indic_tous_services_valides v
+INNER JOIN intervenant i                    ON V.INTERVENANT_ID = i.id              AND i.HISTO_DESTRUCTION IS NULL
+INNER JOIN TYPE_VOLUME_HORAIRE tvh          ON v.type_volume_horaire_id = tvh.id    AND tvh.code = \'REALISE\'
+INNER JOIN VALIDATION clot                  ON clot.intervenant_id = i.id           AND clot.HISTO_DESTRUCTION IS NULL
+INNER JOIN TYPE_VALIDATION tv               ON tv.id = clot.type_validation_id      AND tv.code = \'CLOTURE_REALISE\'
+WHERE EXISTS
+    (
+        SELECT s.ID
+        FROM SERVICE_REFERENTIEL s
+        INNER JOIN FONCTION_REFERENTIEL f       ON S.FONCTION_ID = f.ID                 AND f.HISTO_DESTRUCTION IS NULL
+        INNER JOIN VOLUME_HORAIRE_REF vh        ON s.ID = VH.SERVICE_REFERENTIEL_ID     AND vh.HISTO_DESTRUCTION IS NULL
+        LEFT JOIN VALIDATION_VOL_HORAIRE vvh    ON vh.ID = vvh.VOLUME_HORAIRE_ID
+        LEFT JOIN VALIDATION val                ON val.ID = vvh.VALIDATION_ID           AND val.HISTO_DESTRUCTION IS NULL
+        WHERE
+            s.INTERVENANT_ID = v.intervenant_id
+            AND s.HISTO_DESTRUCTION IS NULL
+            AND VH.TYPE_VOLUME_HORAIRE_ID = V.TYPE_VOLUME_HORAIRE_ID
+            AND s.structure_id <> v.structure_id -- autre composante d\'intervention que celle qui a tout validé
+            AND val.ID IS NULL -- au moins un VH non validé
+    )',
+    ),
+    'V_INDIC_ATT_VALID_SERVICE' => 
+    array (
+      'name' => 'V_INDIC_ATT_VALID_SERVICE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDIC_ATT_VALID_SERVICE AS
+select distinct rownum id, i.id intervenant_id, nvl(ep.structure_id, i.structure_id) structure_id, vh.type_volume_horaire_id
+from service s
+join intervenant i on i.id = s.intervenant_id and i.histo_destruction IS NULL
+join volume_horaire vh on vh.service_id = s.id and vh.histo_destruction IS NULL
+join element_pedagogique ep on s.element_pedagogique_id = ep.id and ep.histo_destruction IS NULL
+--join type_volume_horaire tvh on vh.type_volume_horaire_id = tvh.id and tvh.code = \'REALISE\'
+left join validation_vol_horaire vvh on vvh.volume_horaire_id = vh.id
+left join validation v on vvh.validation_id = v.id and v.histo_destruction IS NULL
+where v.id is null and s.histo_destruction IS NULL',
+    ),
+    'V_INDIC_ATT_VALID_SERVICE_REF' => 
+    array (
+      'name' => 'V_INDIC_ATT_VALID_SERVICE_REF',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDIC_ATT_VALID_SERVICE_REF AS
+select distinct rownum id, i.id intervenant_id, s.structure_id, vh.type_volume_horaire_id
+from service_referentiel s
+join intervenant i on i.id = s.intervenant_id and i.histo_destruction IS NULL
+join volume_horaire_ref vh on vh.service_referentiel_id = s.id and vh.histo_destruction IS NULL
+join fonction_referentiel f on s.fonction_id = f.id and f.histo_destruction IS NULL
+--join type_volume_horaire tvh on vh.type_volume_horaire_id = tvh.id and tvh.code = \'REALISE\'
+left join validation_vol_horaire_ref vvh on vvh.volume_horaire_ref_id = vh.id
+left join validation v on vvh.validation_id = v.id and v.histo_destruction IS NULL
+where v.id is null and s.histo_destruction IS NULL',
+    ),
+    'V_INDIC_DEPASS_CHARGES' => 
+    array (
+      'name' => 'V_INDIC_DEPASS_CHARGES',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDIC_DEPASS_CHARGES AS
+WITH c AS (
+  SELECT
+    vhe.element_pedagogique_id,
+    vhe.type_intervention_id,
+    MAX(vhe.heures) heures,
+    COALESCE( MAX(vhe.groupes), ROUND(SUM(t.groupes),10) ) groupes
+
+  FROM
+    volume_horaire_ens     vhe
+         JOIN parametre p ON p.nom = \'scenario_charges_services\'
+    LEFT JOIN tbl_chargens   t ON t.element_pedagogique_id = vhe.element_pedagogique_id
+                              AND t.type_intervention_id = vhe.type_intervention_id
+                              AND t.scenario_id = to_number(p.valeur)
+  GROUP BY
+    vhe.element_pedagogique_id,
+    vhe.type_intervention_id
+), s AS (
+  SELECT
+    i.annee_id,
+    vh.type_volume_horaire_id,
+    s.intervenant_id,
+    s.element_pedagogique_id,
+    vh.type_intervention_id,
+    SUM(vh.heures) heures
+  FROM
+    volume_horaire vh
+    JOIN service     s ON s.id = vh.service_id
+                      AND s.element_pedagogique_id IS NOT NULL
+                      AND s.histo_destruction IS NULL
+    JOIN intervenant i ON i.id = s.intervenant_id
+                      AND i.histo_destruction IS NULL
+  WHERE
+    vh.histo_destruction IS NULL
+  GROUP BY
+    i.annee_id,
+    vh.type_volume_horaire_id,
+    s.intervenant_id,
+    s.element_pedagogique_id,
+    vh.type_intervention_id
+)
+SELECT
+  rownum                                      id,
+  s.annee_id                                  annee_id,
+  s.type_volume_horaire_id                    type_volume_horaire_id,
+  s.intervenant_id                            intervenant_id,
+  ep.structure_id                             structure_id,
+  s.element_pedagogique_id                    element_pedagogique_id,
+  ep.periode_id                               periode_id,
+  s.type_intervention_id                      type_intervention_id,
+  s.heures - COALESCE(c.heures * c.groupes,0) heures
+FROM
+            s
+       JOIN type_intervention ti ON ti.id = s.type_intervention_id
+       JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
+  LEFT JOIN c ON c.element_pedagogique_id = s.element_pedagogique_id
+             AND c.type_intervention_id = COALESCE(ti.type_intervention_maquette_id,ti.id)
+WHERE
+  s.heures - COALESCE(c.heures * c.groupes,0) > 0',
+    ),
+    'V_INDIC_DEPASS_HC_HORS_REMU_FC' => 
+    array (
+      'name' => 'V_INDIC_DEPASS_HC_HORS_REMU_FC',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDIC_DEPASS_HC_HORS_REMU_FC AS
+with totaux as (
+  -- totaux HC FI+FA+FC+Ref par intervenant et type de VH
+  select fr.intervenant_id, fr.type_volume_horaire_id, sum(fr.heures_compl_fi + fr.heures_compl_fa + fr.heures_compl_fc + fr.heures_compl_referentiel) total
+  from formule_resultat fr
+  join etat_volume_horaire evh on evh.id = fr.etat_volume_horaire_id and evh.code = \'saisi\'
+  group by fr.intervenant_id, fr.type_volume_horaire_id
+),
+depass as (
+  -- totaux HC FI+FA+FC+Ref dépassant le plafond HC par intervenant et type de VH
+  select i.id intervenant_id, t.type_volume_horaire_id, t.total, si.plafond_hc_hors_remu_fc plafond
+  from intervenant i
+  join statut_intervenant si on i.statut_id = si.id and si.plafond_hc_hors_remu_fc is not null
+  join totaux t on t.intervenant_id = i.id
+  where t.total > si.plafond_hc_hors_remu_fc
+),
+str_interv as (
+  -- structures d\'intervention distinctes par intervenant et type de VH
+  select distinct s.intervenant_id, vh.type_volume_horaire_id, coalesce(ep.structure_id, i.structure_id) structure_id
+  from service s
+  left join element_pedagogique ep on s.element_pedagogique_id = ep.id and ep.histo_destruction IS NULL
+  join intervenant i on s.intervenant_id = i.id and i.histo_destruction IS NULL
+  join volume_horaire vh on vh.service_id = s.id and vh.histo_destruction IS NULL
+  join v_vol_horaire_etat_multi vhe on vhe.volume_horaire_id = vh.id
+  join etat_volume_horaire evh on vhe.etat_volume_horaire_id = evh.id and evh.code = \'saisi\'
+  where s.histo_destruction IS NULL
+)
+select to_number(d.intervenant_id||d.type_volume_horaire_id||str.structure_id) id, 2014 annee_id, d.intervenant_id, d.type_volume_horaire_id, str.structure_id, d.total, d.plafond
+from depass d
+join str_interv str on str.intervenant_id = d.intervenant_id and str.type_volume_horaire_id = d.type_volume_horaire_id',
+    ),
+    'V_INDIC_DEPASS_REF' => 
+    array (
+      'name' => 'V_INDIC_DEPASS_REF',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDIC_DEPASS_REF AS
+with totaux as (
+  select fr.intervenant_id, fr.type_volume_horaire_id, sum(fr.service_referentiel) total
+  from formule_resultat fr
+  join etat_volume_horaire evh on evh.id = fr.etat_volume_horaire_id and evh.code = \'saisi\'
+  group by fr.intervenant_id, fr.type_volume_horaire_id
+  having sum(fr.service_referentiel) > 0
+),
+depass as (
+  select i.id intervenant_id, t.type_volume_horaire_id, t.total, si.plafond_referentiel plafond
+  from intervenant i
+  join statut_intervenant si on i.statut_id = si.id and si.plafond_referentiel is not null and si.plafond_referentiel <> 0
+  join totaux t on t.intervenant_id = i.id
+  where t.total > si.plafond_referentiel
+),
+str_interv as (
+  -- structures d\'intervention distinctes par intervenant et type de VH
+  select distinct s.intervenant_id, vh.type_volume_horaire_id, s.structure_id
+  from service_referentiel s
+  join volume_horaire_ref vh on vh.service_referentiel_id = s.id and vh.histo_destruction IS NULL
+  join v_vol_horaire_ref_etat_multi vhe on vhe.volume_horaire_ref_id = vh.id
+  join etat_volume_horaire evh on vhe.etat_volume_horaire_id = evh.id and evh.code = \'saisi\'
+  where s.histo_destruction IS NULL
+)
+select to_number(d.intervenant_id||d.type_volume_horaire_id||str.structure_id) id, 2014 annee_id, d.intervenant_id, d.type_volume_horaire_id, str.structure_id, d.total, d.plafond
+from depass d
+join str_interv str on str.intervenant_id = d.intervenant_id and str.type_volume_horaire_id = d.type_volume_horaire_id',
+    ),
+    'V_INDIC_DIFF_DOSSIER' => 
+    array (
+      'name' => 'V_INDIC_DIFF_DOSSIER',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDIC_DIFF_DOSSIER AS
+WITH aa AS (
+  SELECT a.*, ose_divers.formatted_adresse(
+      a.NO_VOIE,
+      a.NOM_VOIE,
+      a.BATIMENT,
+      a.MENTION_COMPLEMENTAIRE,
+      a.LOCALITE,
+      a.CODE_POSTAL,
+      a.VILLE,
+      a.PAYS_LIBELLE) to_string FROM adresse_intervenant a
+)
+select
+    i.id,
+    i.nom_usuel,
+    case when d.adresse <> a.to_string                                              then d.adresse                            else null end adresse_dossier,
+    case when d.adresse <> a.to_string                                              then a.to_string                          else null end adresse_import,
+    case when d.rib <> REPLACE(i.BIC || \'-\' || i.IBAN, \' \')                         then d.rib                                else null end rib_dossier,
+    case when d.rib <> REPLACE(i.BIC || \'-\' || i.IBAN, \' \')                         then REPLACE(i.BIC || \'-\' || i.IBAN, \' \') else null end rib_import,
+    case when UPPER(REPLACE(d.nom_usuel, \' \')) <> UPPER(REPLACE(i.nom_usuel, \' \'))  then REPLACE(d.nom_usuel, \' \')            else null end nom_usuel_dossier,
+    case when UPPER(REPLACE(d.nom_usuel, \' \')) <> UPPER(REPLACE(i.nom_usuel, \' \'))  then REPLACE(i.nom_usuel, \' \')            else null end nom_usuel_import,
+    case when UPPER(REPLACE(d.prenom, \' \')) <> UPPER(REPLACE(i.prenom, \' \'))        then REPLACE(d.prenom, \' \')               else null end prenom_dossier,
+    case when UPPER(REPLACE(d.prenom, \' \')) <> UPPER(REPLACE(i.prenom, \' \'))        then REPLACE(i.prenom, \' \')               else null end prenom_import
+  from intervenant i
+  join dossier d on d.intervenant_id = i.id
+  left join aa a on a.intervenant_id = i.id',
+    ),
+    'V_INDIC_TOUS_SERVICES_VALIDES' => 
+    array (
+      'name' => 'V_INDIC_TOUS_SERVICES_VALIDES',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_INDIC_TOUS_SERVICES_VALIDES AS
+with struct_ens_non_valides as (
+    -- intervenants et structures d\'intervention pour lesquelles des VH d\'enseignement NE SONT PAS validés
+    SELECT distinct s.intervenant_id, ep.structure_id, vh.type_volume_horaire_id
+    FROM SERVICE s
+    INNER JOIN ELEMENT_PEDAGOGIQUE ep    ON s.ELEMENT_PEDAGOGIQUE_ID = ep.ID   AND ep.HISTO_DESTRUCTION IS NULL
+    INNER JOIN VOLUME_HORAIRE vh         ON s.ID = vh.SERVICE_ID               AND vh.HISTO_DESTRUCTION IS NULL
+    LEFT JOIN VALIDATION_VOL_HORAIRE vvh ON vvh.volume_horaire_id = vh.id
+    LEFT JOIN VALIDATION val             ON val.ID = vvh.validation_id         AND val.HISTO_DESTRUCTION IS NULL
+    WHERE s.HISTO_DESTRUCTION IS NULL
+    AND val.id is null
+),
+struct_ref_non_valides as (
+    -- intervenants et structures d\'intervention pour lesquelles des VH de référentiel NE SONT PAS validés
+    SELECT distinct s.intervenant_id, s.structure_id, vh.type_volume_horaire_id
+    FROM SERVICE_REFERENTIEL s
+    INNER JOIN FONCTION_REFERENTIEL f        ON s.FONCTION_ID = f.ID               AND f.HISTO_DESTRUCTION IS NULL
+    INNER JOIN VOLUME_HORAIRE_REF vh         ON s.ID = VH.SERVICE_REFERENTIEL_ID   AND vh.HISTO_DESTRUCTION IS NULL
+    LEFT JOIN VALIDATION_VOL_HORAIRE_REF vvh ON VVH.VOLUME_HORAIRE_REF_ID = vh.id
+    LEFT JOIN VALIDATION val                 ON val.ID = vvh.validation_id         AND val.HISTO_DESTRUCTION IS NULL
+    WHERE s.HISTO_DESTRUCTION IS NULL
+    AND val.id is null
+)
+-- intervenants et structures d\'intervention pour lesquelles tous les VH de référentiel et tous les VH d\'enseignement SONT validés
+SELECT distinct s.intervenant_id, ep.structure_id, vh.type_volume_horaire_id
+FROM SERVICE s
+INNER JOIN ELEMENT_PEDAGOGIQUE ep     ON s.ELEMENT_PEDAGOGIQUE_ID = ep.ID   AND ep.HISTO_DESTRUCTION IS NULL
+INNER JOIN VOLUME_HORAIRE vh          ON s.ID = vh.SERVICE_ID               AND vh.HISTO_DESTRUCTION IS NULL
+WHERE not exists (
+    SELECT * from struct_ens_non_valides ens_nv
+    where ens_nv.INTERVENANT_ID = s.intervenant_id and ens_nv.structure_id = ep.structure_id and ens_nv.type_volume_horaire_id = vh.type_volume_horaire_id
+)
+-----
+UNION
+-----
+SELECT distinct s.intervenant_id, s.structure_id, vh.type_volume_horaire_id
+FROM SERVICE_REFERENTIEL s
+INNER JOIN FONCTION_REFERENTIEL f     ON s.FONCTION_ID = f.ID               AND f.HISTO_DESTRUCTION IS NULL
+INNER JOIN VOLUME_HORAIRE_REF vh      ON s.ID = VH.SERVICE_REFERENTIEL_ID   AND vh.HISTO_DESTRUCTION IS NULL
+WHERE s.HISTO_DESTRUCTION IS NULL
+and not exists (
+    SELECT * from struct_ref_non_valides ref_nv
+    where ref_nv.INTERVENANT_ID = s.intervenant_id and ref_nv.structure_id = s.structure_id and ref_nv.type_volume_horaire_id = vh.type_volume_horaire_id
+)',
+    ),
+    'V_MEP_INTERVENANT_STRUCTURE' => 
+    array (
+      'name' => 'V_MEP_INTERVENANT_STRUCTURE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_MEP_INTERVENANT_STRUCTURE AS
+SELECT
+  rownum id,
+  t1."MISE_EN_PAIEMENT_ID",
+  t1."INTERVENANT_ID",
+  t1."STRUCTURE_ID",
+  t1.periode_paiement_id,
+  t1.domaine_fonctionnel_id
+FROM (
+
+SELECT
+  mep.id                   mise_en_paiement_id,
+  fr.intervenant_id        intervenant_id,
+  sr.structure_id          structure_id,
+  mep.periode_paiement_id  periode_paiement_id,
+  COALESCE(mep.domaine_fonctionnel_id, fr.domaine_fonctionnel_id) domaine_fonctionnel_id
+FROM
+  formule_resultat fr
+  JOIN formule_resultat_service_ref frsr ON frsr.formule_resultat_id = fr.id
+  JOIN mise_en_paiement              mep ON mep.formule_res_service_ref_id = frsr.id
+  JOIN centre_cout                    cc ON cc.id = mep.centre_cout_id
+  JOIN service_referentiel            sr ON sr.id = frsr.service_referentiel_id
+  JOIN fonction_referentiel           fr ON fr.id = sr.fonction_id
+UNION
+
+SELECT
+  mep.id                                      mise_en_paiement_id,
+  fr.intervenant_id                           intervenant_id,
+  COALESCE( ep.structure_id, i.structure_id ) structure_id,
+  mep.periode_paiement_id                     periode_paiement_id,
+  COALESCE(
+    mep.domaine_fonctionnel_id,
+    e.domaine_fonctionnel_id,
+    to_number((SELECT valeur FROM parametre WHERE nom = \'domaine_fonctionnel_ens_ext\'))
+  ) domaine_fonctionnel_id
+FROM
+  formule_resultat fr
+  JOIN intervenant                       i ON i.id = fr.intervenant_id
+  JOIN formule_resultat_service        frs ON frs.formule_resultat_id = fr.id
+  JOIN mise_en_paiement                mep ON mep.formule_res_service_id = frs.id
+  JOIN centre_cout                      cc ON cc.id = mep.centre_cout_id
+  JOIN service                           s ON s.id = frs.service_id
+  LEFT JOIN element_pedagogique         ep ON ep.id = s.element_pedagogique_id
+  LEFT JOIN etape                        e ON e.id = ep.etape_id
+) t1',
+    ),
+    'V_MODIF_SERVICE_DU_EXPORT_CSV' => 
+    array (
+      'name' => 'V_MODIF_SERVICE_DU_EXPORT_CSV',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_MODIF_SERVICE_DU_EXPORT_CSV AS
+SELECT
+  i.annee_id                      annee_id,
+  i.id                            intervenant_id,
+  i.structure_id                  structure_id,
+
+  a.libelle                       annee,
+  s.libelle_court                 structure_libelle,
+
+  i.code                          intervenant_code,
+  i.nom_usuel                     intervenant_nom_usuel,
+  i.nom_patronymique              intervenant_nom_patronymique,
+  i.prenom                        intervenant_prenom,
+  si.libelle                      intervenant_statut_libelle,
+  si.service_statutaire           intervenant_service_statutaire,
+
+  mss.code                        motif_code,
+  mss.libelle                     motif_libelle,
+
+  msd.heures * mss.multiplicateur heures,
+
+  msd.commentaires                commentaires,
+  u.display_name                  modificateur,
+  msd.histo_modification          date_modification
+FROM
+       modification_service_du    msd
+  JOIN intervenant                  i ON i.id = msd.intervenant_id
+  JOIN annee                        a ON a.id = i.annee_id
+  JOIN structure                    s ON s.id = i.structure_id
+  JOIN statut_intervenant          si ON si.id = i.statut_id
+  JOIN motif_modification_service mss ON mss.id = msd.motif_id
+  JOIN utilisateur                  u ON u.id = msd.histo_modificateur_id
+WHERE
+  msd.histo_destruction IS NULL
+  AND i.histo_destruction IS NULL
+ORDER BY
+  annee_id,
+  structure_libelle,
+  intervenant_nom_usuel,
+  motif_libelle,
+  heures',
+    ),
+    'V_NIVEAU_FORMATION' => 
+    array (
+      'name' => 'V_NIVEAU_FORMATION',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_NIVEAU_FORMATION AS
+SELECT DISTINCT
+  ose_divers.niveau_formation_id_calc( gtf.id, gtf.pertinence_niveau, e.niveau ) id,
+  gtf.libelle_court || e.niveau code,
+  gtf.libelle_long,
+  e.niveau,
+  gtf.id groupe_type_formation_id
+FROM
+  etape e
+  JOIN type_formation tf ON tf.id = e.type_formation_id AND tf.histo_destruction IS NULL
+  JOIN groupe_type_formation gtf ON gtf.id = tf.groupe_id AND gtf.histo_destruction IS NULL
+WHERE
+  e.histo_destruction IS NULL
+  AND ose_divers.niveau_formation_id_calc( gtf.id, gtf.pertinence_niveau, e.niveau ) IS NOT NULL
+ORDER BY
+  gtf.libelle_long, e.niveau',
+    ),
+    'V_PJ_HEURES' => 
+    array (
+      'name' => 'V_PJ_HEURES',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_PJ_HEURES AS
+SELECT
+  i.NOM_USUEL,
+  i.PRENOM,
+  i.id intervenant_id,
+  i.SOURCE_CODE,
+  i.annee_id, \'service\' categ,
+  sum(vh.HEURES) as total_heures
+from INTERVENANT i
+  join SERVICE s on s.INTERVENANT_ID = i.id      and s.histo_destruction IS NULL
+  join VOLUME_HORAIRE vh on vh.SERVICE_ID = s.id and vh.histo_destruction IS NULL
+  join type_volume_horaire tvh ON TVH.ID = VH.TYPE_VOLUME_HORAIRE_ID AND (tvh.code = \'PREVU\')
+  join ELEMENT_PEDAGOGIQUE ep on s.ELEMENT_PEDAGOGIQUE_ID = ep.id        and ep.histo_destruction IS NULL
+  join ETAPE e on ep.ETAPE_ID = e.id and e.histo_destruction IS NULL
+where i.histo_destruction IS NULL
+  group by i.NOM_USUEL, i.PRENOM, i.id, i.SOURCE_CODE, i.annee_id, \'service\'
+UNION
+  SELECT i.NOM_USUEL, i.PRENOM, i.id intervenant_id, i.SOURCE_CODE, i.annee_id, \'referentiel\' categ, sum(vh.HEURES) as total_heures
+  from INTERVENANT i
+  join service_referentiel s on s.INTERVENANT_ID = i.id                  and s.histo_destruction IS NULL
+  join volume_horaire_ref vh on vh.service_referentiel_id = s.id         and vh.histo_destruction IS NULL
+  join type_volume_horaire tvh ON TVH.ID = VH.TYPE_VOLUME_HORAIRE_ID     AND (tvh.code = \'PREVU\')
+  join fonction_referentiel ep on s.fonction_id = ep.id                  and ep.histo_destruction IS NULL
+  where i.histo_destruction IS NULL
+  group by i.NOM_USUEL, i.PRENOM, i.id, i.SOURCE_CODE, i.annee_id, \'referentiel\'',
+    ),
+    'V_PRIVILEGES_ROLES' => 
+    array (
+      'name' => 'V_PRIVILEGES_ROLES',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_PRIVILEGES_ROLES AS
+WITH statuts_roles AS (
+SELECT
+  rp.privilege_id,
+  r.code role
+FROM
+  role_privilege rp
+  JOIN role r ON r.id = rp.role_id AND r.histo_destruction IS NULL
+
+UNION ALL
+
+SELECT
+  sp.privilege_id,
+  \'statut/\' || s.source_code role
+FROM
+  statut_privilege sp
+  JOIN statut_intervenant s ON s.id = sp.statut_id AND s.histo_destruction IS NULL
+)
+SELECT
+  cp.code || \'-\' || p.code privilege,
+  sr.role
+FROM
+  privilege p
+  JOIN categorie_privilege cp ON cp.id = p.categorie_id
+  LEFT JOIN statuts_roles sr ON sr.privilege_id = p.id',
+    ),
+    'V_REF_INTERVENANT' => 
+    array (
+      'name' => 'V_REF_INTERVENANT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_REF_INTERVENANT AS
+SELECT DISTINCT
+  i.source_code C_INTERVENANT
+FROM
+  tbl_service s
+  JOIN intervenant i ON i.id = s.intervenant_id
+  JOIN annee a ON a.id = s.annee_id
+WHERE
+  s.nbvh > 0
+  AND SYSDATE BETWEEN a.date_debut AND a.date_fin',
+    ),
+    'V_SERVICE_NON_VALIDE' => 
+    array (
+      'name' => 'V_SERVICE_NON_VALIDE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_SERVICE_NON_VALIDE AS
+select vh.ID, i.ID as intervenant_id, s.ID as service_id, vh.ID as volume_horaire_id, ep.id as element_pedagogique_id, ep.LIBELLE, vh.HEURES
+  from service s
+  inner join INTERVENANT i on s.INTERVENANT_ID = i.id
+  inner join ELEMENT_PEDAGOGIQUE ep on s.ELEMENT_PEDAGOGIQUE_ID = ep.id and ep.histo_destruction IS NULL
+  inner join VOLUME_HORAIRE vh on vh.SERVICE_ID = s.ID and vh.HISTO_DESTRUCTION is null
+  left join VALIDATION_VOL_HORAIRE vvh on vvh.VOLUME_HORAIRE_ID = vh.ID
+  left join VALIDATION v on vvh.VALIDATION_ID = v.ID
+  left join TYPE_VALIDATION tv on v.TYPE_VALIDATION_ID = tv.ID
+  where (v.ID is null or v.HISTO_DESTRUCTION is not null) and
+  not exists (
+    select * from VALIDATION_VOL_HORAIRE vvh2
+    inner join VALIDATION v2 on vvh2.VALIDATION_ID = v2.ID and v2.histo_destruction IS NULL
+    where vvh2.VOLUME_HORAIRE_ID = vvh.VOLUME_HORAIRE_ID
+  )',
+    ),
+    'V_SERVICE_VALIDE' => 
+    array (
+      'name' => 'V_SERVICE_VALIDE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_SERVICE_VALIDE AS
+select vh.ID, i.ID as intervenant_id, s.ID as service_id, vh.ID as volume_horaire_id, ep.id as element_pedagogique_id, ep.LIBELLE, vh.HEURES, v.ID as validation_id, tv.CODE
+  from service s
+  inner join INTERVENANT i on s.INTERVENANT_ID = i.id
+  left join ELEMENT_PEDAGOGIQUE ep on s.ELEMENT_PEDAGOGIQUE_ID = ep.id and ep.histo_destruction IS NULL -- pas d\'EP si intervention hors-UCBN
+  inner join VOLUME_HORAIRE vh on vh.SERVICE_ID = s.ID and vh.histo_destruction IS NULL
+  inner join VALIDATION_VOL_HORAIRE vvh on vvh.VOLUME_HORAIRE_ID = vh.ID
+  inner join VALIDATION v on vvh.VALIDATION_ID = v.ID and v.histo_destruction IS NULL
+  inner join TYPE_VALIDATION tv on v.TYPE_VALIDATION_ID = tv.ID',
+    ),
+    'V_STRUCTURE_TYPE_MODULATEUR' => 
+    array (
+      'name' => 'V_STRUCTURE_TYPE_MODULATEUR',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_STRUCTURE_TYPE_MODULATEUR AS
+SELECT DISTINCT
+  etm.type_modulateur_id type_modulateur_id,
+  ep.structure_id structure_id
+FROM
+  v_element_type_modulateur etm
+  JOIN element_pedagogique ep ON ep.id = etm.element_pedagogique_id AND ep.histo_destruction IS NULL',
+    ),
+    'V_TBL_AGREMENT' => 
+    array (
+      'name' => 'V_TBL_AGREMENT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_AGREMENT AS
+WITH i_s AS (
+  SELECT DISTINCT
+    fr.intervenant_id,
+    ep.structure_id
+  FROM
+    formule_resultat fr
+    JOIN type_volume_horaire  tvh ON tvh.code = \'PREVU\' AND tvh.id = fr.type_volume_horaire_id
+    JOIN etat_volume_horaire  evh ON evh.code = \'valide\' AND evh.id = fr.etat_volume_horaire_id
+
+    JOIN formule_resultat_service frs ON frs.formule_resultat_id = fr.id
+    JOIN service s ON s.id = frs.service_id
+    JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
+  WHERE
+    frs.total > 0
+)
+SELECT
+  i.annee_id              annee_id,
+  tas.type_agrement_id    type_agrement_id,
+  i.id                    intervenant_id,
+  null                    structure_id,
+  tas.obligatoire         obligatoire,
+  a.id                    agrement_id
+FROM
+  type_agrement                  ta
+  JOIN type_agrement_statut      tas ON tas.type_agrement_id = ta.id
+                                    AND tas.histo_destruction IS NULL
+
+  JOIN intervenant                 i ON i.histo_destruction IS NULL
+                                    AND (tas.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = tas.premier_recrutement)
+                                    AND i.statut_id = tas.statut_intervenant_id
+
+  LEFT JOIN agrement               a ON a.type_agrement_id = ta.id
+                                    AND a.intervenant_id = i.id
+                                    AND a.histo_destruction IS NULL
+WHERE
+  ta.code = \'CONSEIL_ACADEMIQUE\'
+
+UNION ALL
+
+SELECT
+  i.annee_id              annee_id,
+  tas.type_agrement_id    type_agrement_id,
+  i.id                    intervenant_id,
+  i_s.structure_id        structure_id,
+  tas.obligatoire         obligatoire,
+  a.id                    agrement_id
+FROM
+  type_agrement                   ta
+  JOIN type_agrement_statut      tas ON tas.type_agrement_id = ta.id
+                                    AND tas.histo_destruction IS NULL
+
+  JOIN intervenant                 i ON i.histo_destruction IS NULL
+                                    AND (tas.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = tas.premier_recrutement)
+                                    AND i.statut_id = tas.statut_intervenant_id
+
+  JOIN                           i_s ON i_s.intervenant_id = i.id
+
+  LEFT JOIN agrement               a ON a.type_agrement_id = ta.id
+                                    AND a.intervenant_id = i.id
+                                    AND a.structure_id = i_s.structure_id
+                                    AND a.histo_destruction IS NULL
+WHERE
+  ta.code = \'CONSEIL_RESTREINT\'',
+    ),
+    'V_TBL_CHARGENS' => 
+    array (
+      'name' => 'V_TBL_CHARGENS',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_CHARGENS AS
+WITH t AS (
+SELECT
+  n.annee_id                        annee_id,
+  n.noeud_id                        noeud_id,
+  sn.scenario_id                    scenario_id,
+  sne.type_heures_id                type_heures_id,
+  ti.id                             type_intervention_id,
+
+  n.element_pedagogique_id          element_pedagogique_id,
+  n.element_pedagogique_etape_id    etape_id,
+  sne.etape_id                      etape_ens_id,
+  n.structure_id                    structure_id,
+  n.groupe_type_formation_id        groupe_type_formation_id,
+
+  vhe.heures                        heures,
+  vhe.heures * ti.taux_hetd_service hetd,
+
+  GREATEST(COALESCE(sns.ouverture, 1),1)                                           ouverture,
+  GREATEST(COALESCE(sns.dedoublement, snsetp.dedoublement, csdd.dedoublement,1),1) dedoublement,
+  COALESCE(sns.assiduite,1)                                                        assiduite,
+  sne.effectif*COALESCE(sns.assiduite,1)                                           effectif,
+
+  SUM(sne.effectif*COALESCE(sns.assiduite,1)) OVER (PARTITION BY n.noeud_id, sn.scenario_id, ti.id) t_effectif
+
+FROM
+            scenario_noeud_effectif    sne
+       JOIN etape                        e ON e.id = sne.etape_id
+                                          AND e.histo_destruction IS NULL
+
+       JOIN scenario_noeud              sn ON sn.id = sne.scenario_noeud_id
+                                          AND sn.histo_destruction IS NULL
+
+       JOIN tbl_noeud                       n ON n.noeud_id = sn.noeud_id
+
+       JOIN volume_horaire_ens         vhe ON vhe.element_pedagogique_id = n.element_pedagogique_id
+                                          AND vhe.histo_destruction IS NULL
+                                          AND vhe.heures > 0
+
+       JOIN type_intervention           ti ON ti.id = vhe.type_intervention_id
+
+  LEFT JOIN tbl_noeud                 netp ON netp.etape_id = e.id
+
+  LEFT JOIN scenario_noeud           snetp ON snetp.scenario_id = sn.scenario_id
+                                          AND snetp.noeud_id = netp.noeud_id
+                                          AND snetp.histo_destruction IS NULL
+
+  LEFT JOIN scenario_noeud_seuil    snsetp ON snsetp.scenario_noeud_id = snetp.id
+                                          AND snsetp.type_intervention_id = ti.id
+
+  LEFT JOIN tbl_chargens_seuils_def   csdd ON csdd.annee_id = n.annee_id
+                                          AND csdd.scenario_id = sn.scenario_id
+                                          AND csdd.type_intervention_id = ti.id
+                                          AND csdd.groupe_type_formation_id = n.groupe_type_formation_id
+                                          AND csdd.structure_id = n.structure_id
+
+  LEFT JOIN scenario_noeud_seuil       sns ON sns.scenario_noeud_id = sn.id
+                                          AND sns.type_intervention_id = ti.id
+)
+SELECT
+  annee_id,
+  noeud_id,
+  scenario_id,
+  type_heures_id,
+  type_intervention_id,
+
+  element_pedagogique_id,
+  etape_id,
+  etape_ens_id,
+  structure_id,
+  groupe_type_formation_id,
+
+  ouverture,
+  dedoublement,
+  assiduite,
+  effectif,
+  heures heures_ens,
+  --t_effectif,
+
+  CASE WHEN t_effectif < ouverture THEN 0 ELSE
+    CEIL( t_effectif / dedoublement ) * effectif / t_effectif
+  END groupes,
+
+  CASE WHEN t_effectif < ouverture THEN 0 ELSE
+    CEIL( t_effectif / dedoublement ) * heures * effectif / t_effectif
+  END heures,
+
+  CASE WHEN t_effectif < ouverture THEN 0 ELSE
+    CEIL( t_effectif / dedoublement ) * hetd * effectif / t_effectif
+  END  hetd
+
+FROM
+  t',
+    ),
+    'V_TBL_CHARGENS_SEUILS_DEF' => 
+    array (
+      'name' => 'V_TBL_CHARGENS_SEUILS_DEF',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_CHARGENS_SEUILS_DEF AS
+SELECT
+  sta.annee_id,
+  sta.scenario_id,
+  s.structure_id,
+  gtf.groupe_type_formation_id,
+  sta.type_intervention_id,
+  COALESCE(sc1.dedoublement, sc2.dedoublement, sc3.dedoublement, sc4.dedoublement) dedoublement
+FROM
+  (SELECT DISTINCT scenario_id, type_intervention_id, annee_id FROM seuil_charge WHERE histo_destruction IS NULL) sta
+  JOIN (SELECT DISTINCT structure_id FROM noeud WHERE structure_id IS NOT NULL) s ON 1=1
+  JOIN (SELECT id groupe_type_formation_id FROM groupe_type_formation) gtf ON 1=1
+
+  LEFT JOIN seuil_charge sc1 ON
+    sc1.histo_destruction            IS NULL
+    AND sc1.annee_id                 = sta.annee_id
+    AND sc1.scenario_id              = sta.scenario_id
+    AND sc1.type_intervention_id     = sta.type_intervention_id
+    AND sc1.structure_id             = s.structure_id
+    AND sc1.groupe_type_formation_id = gtf.groupe_type_formation_id
+
+  LEFT JOIN seuil_charge sc2 ON
+    sc2.histo_destruction            IS NULL
+    AND sc2.annee_id                 = sta.annee_id
+    AND sc2.scenario_id              = sta.scenario_id
+    AND sc2.type_intervention_id     = sta.type_intervention_id
+    AND sc2.structure_id             = s.structure_id
+    AND sc2.groupe_type_formation_id IS NULL
+
+  LEFT JOIN seuil_charge sc3 ON
+    sc3.histo_destruction            IS NULL
+    AND sc3.annee_id                 = sta.annee_id
+    AND sc3.scenario_id              = sta.scenario_id
+    AND sc3.type_intervention_id     = sta.type_intervention_id
+    AND sc3.structure_id             IS NULL
+    AND sc3.groupe_type_formation_id = gtf.groupe_type_formation_id
+
+  LEFT JOIN seuil_charge sc4 ON
+    sc4.histo_destruction            IS NULL
+    AND sc4.annee_id                 = sta.annee_id
+    AND sc4.scenario_id              = sta.scenario_id
+    AND sc4.type_intervention_id     = sta.type_intervention_id
+    AND sc4.structure_id             IS NULL
+    AND sc4.groupe_type_formation_id IS NULL
+WHERE
+  COALESCE(sc1.dedoublement, sc2.dedoublement, sc3.dedoublement, sc4.dedoublement, 1) <> 1',
+    ),
+    'V_TBL_CLOTURE_REALISE' => 
+    array (
+      'name' => 'V_TBL_CLOTURE_REALISE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_CLOTURE_REALISE AS
+WITH t AS (
+  SELECT
+    i.annee_id              annee_id,
+    i.id                    intervenant_id,
+    si.peut_cloturer_saisie peut_cloturer_saisie,
+    CASE WHEN v.id IS NULL THEN 0 ELSE 1 END cloture
+  FROM
+              intervenant         i
+         JOIN statut_intervenant si ON si.id = i.statut_id
+         JOIN type_validation    tv ON tv.code = \'CLOTURE_REALISE\'
+
+    LEFT JOIN validation          v ON v.intervenant_id = i.id
+                                   AND v.type_validation_id = tv.id
+                                   AND v.histo_destruction IS NULL
+
+  WHERE
+    i.histo_destruction IS NULL
+)
+SELECT
+  annee_id,
+  intervenant_id,
+  peut_cloturer_saisie,
+  CASE WHEN sum(cloture) = 0 THEN 0 ELSE 1 END cloture
+FROM
+  t
+GROUP BY
+  annee_id,
+  intervenant_id,
+  peut_cloturer_saisie',
+    ),
+    'V_TBL_CONTRAT' => 
+    array (
+      'name' => 'V_TBL_CONTRAT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_CONTRAT AS
+WITH t AS (
+  SELECT
+    i.annee_id                                                                annee_id,
+    i.id                                                                      intervenant_id,
+    si.peut_avoir_contrat                                                     peut_avoir_contrat,
+    NVL(ep.structure_id, i.structure_id)                                      structure_id,
+    CASE WHEN evh.code IN (\'contrat-edite\',\'contrat-signe\') THEN 1 ELSE 0 END edite,
+    CASE WHEN evh.code IN (\'contrat-signe\')                 THEN 1 ELSE 0 END signe
+  FROM
+              intervenant                 i
+
+         JOIN statut_intervenant         si ON si.id = i.statut_id
+
+         JOIN service                     s ON s.intervenant_id = i.id
+                                           AND s.histo_destruction IS NULL
+
+         JOIN type_volume_horaire       tvh ON tvh.code = \'PREVU\'
+
+         JOIN volume_horaire             vh ON vh.service_id = s.id
+                                           AND vh.histo_destruction IS NULL
+                                           AND vh.heures <> 0
+                                           AND vh.type_volume_horaire_id = tvh.id
+                                           AND vh.motif_non_paiement_id IS NULL
+
+         JOIN v_volume_horaire_etat     vhe ON vhe.volume_horaire_id = vh.id
+
+         JOIN etat_volume_horaire       evh ON evh.id = vhe.etat_volume_horaire_id
+                                           AND evh.code IN (\'valide\', \'contrat-edite\', \'contrat-signe\')
+
+         JOIN element_pedagogique        ep ON ep.id = s.element_pedagogique_id
+
+  WHERE
+    i.histo_destruction IS NULL
+    AND NOT (si.peut_avoir_contrat = 0 AND evh.code = \'valide\')
+
+  UNION ALL
+
+  SELECT
+    i.annee_id                                                                annee_id,
+    i.id                                                                      intervenant_id,
+    si.peut_avoir_contrat                                                     peut_avoir_contrat,
+    s.structure_id                                                            structure_id,
+    CASE WHEN evh.code IN (\'contrat-edite\',\'contrat-signe\') THEN 1 ELSE 0 END edite,
+    CASE WHEN evh.code IN (\'contrat-signe\')                 THEN 1 ELSE 0 END signe
+  FROM
+              intervenant                 i
+
+         JOIN statut_intervenant         si ON si.id = i.statut_id
+
+         JOIN service_referentiel         s ON s.intervenant_id = i.id
+                                           AND s.histo_destruction IS NULL
+
+         JOIN type_volume_horaire       tvh ON tvh.code = \'PREVU\'
+
+         JOIN volume_horaire_ref         vh ON vh.service_referentiel_id = s.id
+                                           AND vh.histo_destruction IS NULL
+                                           AND vh.heures <> 0
+                                           AND vh.type_volume_horaire_id = tvh.id
+
+         JOIN v_volume_horaire_ref_etat vhe ON vhe.volume_horaire_ref_id = vh.id
+
+         JOIN etat_volume_horaire       evh ON evh.id = vhe.etat_volume_horaire_id
+                                           AND evh.code IN (\'valide\', \'contrat-edite\', \'contrat-signe\')
+
+  WHERE
+    i.histo_destruction IS NULL
+    AND NOT (si.peut_avoir_contrat = 0 AND evh.code = \'valide\')
+)
+SELECT
+  annee_id,
+  intervenant_id,
+  peut_avoir_contrat,
+  structure_id,
+  count(*) as nbvh,
+  sum(edite) as edite,
+  sum(signe) as signe
+FROM
+  t
+GROUP BY
+  annee_id,
+  intervenant_id,
+  peut_avoir_contrat,
+  structure_id',
+    ),
+    'V_TBL_DMEP_LIQUIDATION' => 
+    array (
+      'name' => 'V_TBL_DMEP_LIQUIDATION',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_DMEP_LIQUIDATION AS
+SELECT
+  annee_id,
+  type_ressource_id,
+  structure_id,
+  SUM(heures) heures
+FROM
+(
+  SELECT
+    i.annee_id,
+    cc.type_ressource_id,
+    COALESCE( ep.structure_id, i.structure_id ) structure_id,
+    mep.heures
+  FROM
+              mise_en_paiement         mep
+         JOIN centre_cout               cc ON cc.id = mep.centre_cout_id
+         JOIN formule_resultat_service frs ON frs.id = mep.formule_res_service_id
+         JOIN service                    s ON s.id = frs.service_id
+         JOIN intervenant                i ON i.id = s.intervenant_id
+    LEFT JOIN element_pedagogique       ep ON ep.id = s.element_pedagogique_id
+  WHERE
+    mep.histo_destruction IS NULL
+
+  UNION ALL
+
+  SELECT
+    i.annee_id,
+    cc.type_ressource_id,
+    sr.structure_id structure_id,
+    heures
+  FROM
+              mise_en_paiement              mep
+         JOIN centre_cout                    cc ON cc.id = mep.centre_cout_id
+         JOIN formule_resultat_service_ref frsr ON frsr.id = mep.formule_res_service_ref_id
+         JOIN service_referentiel            sr ON sr.id = frsr.service_referentiel_id
+         JOIN intervenant                     i ON i.id = sr.intervenant_id
+
+  WHERE
+    mep.histo_destruction IS NULL
+
+) t1
+GROUP BY
+  annee_id, type_ressource_id, structure_id',
+    ),
+    'V_TBL_DOSSIER' => 
+    array (
+      'name' => 'V_TBL_DOSSIER',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_DOSSIER AS
+SELECT
+  i.annee_id,
+  i.id intervenant_id,
+  si.peut_saisir_dossier,
+  d.id dossier_id,
+  v.id validation_id
+FROM
+            intervenant         i
+       JOIN statut_intervenant si ON si.id = i.statut_id
+  LEFT JOIN dossier             d ON d.intervenant_id = i.id
+                              AND d.histo_destruction IS NULL
+
+       JOIN type_validation tv ON tv.code = \'DONNEES_PERSO_PAR_COMP\'
+  LEFT JOIN validation       v ON v.intervenant_id = i.id
+                              AND v.type_validation_id = tv.id
+                              AND v.histo_destruction IS NULL
+WHERE
+  i.histo_destruction IS NULL',
+    ),
+    'V_TBL_LIEN' => 
+    array (
+      'name' => 'V_TBL_LIEN',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_LIEN AS
+SELECT
+  l.id             lien_id,
+  s.id             scenario_id,
+  sl.id            scenario_lien_id,
+  l.noeud_sup_id   noeud_sup_id,
+  l.noeud_inf_id   noeud_inf_id,
+  l.structure_id   structure_id,
+  NVL(sl.actif,1)  actif,
+  NVL(sl.poids,1)  poids,
+  MAX(CASE WHEN 1 = NVL(sl.actif,1) THEN NVL(sl.poids,1) ELSE 0 END) OVER (PARTITION BY l.noeud_sup_id, s.id) max_poids,
+  sl.choix_maximum choix_maximum,
+  sl.choix_minimum choix_minimum,
+
+  SUM(NVL(sl.actif,1)) OVER (PARTITION BY l.noeud_sup_id, s.id) nb_choix,
+  SUM(CASE WHEN 1 = NVL(sl.actif,1) THEN NVL(sl.poids,1) ELSE 0 END) OVER (PARTITION BY l.noeud_sup_id, s.id) total_poids
+
+FROM
+  lien l
+  JOIN scenario s ON s.histo_destruction IS NULL
+  LEFT JOIN scenario_lien sl ON
+    sl.lien_id = l.id
+    AND sl.scenario_id = s.id
+    AND s.histo_destruction IS NULL
+WHERE
+  l.histo_destruction IS NULL',
+    ),
+    'V_TBL_PAIEMENT' => 
+    array (
+      'name' => 'V_TBL_PAIEMENT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_PAIEMENT AS
+SELECT
+  i.annee_id                                  annee_id,
+  frs.id                                      formule_res_service_id,
+  null                                        formule_res_service_ref_id,
+  i.id                                        intervenant_id,
+  COALESCE( ep.structure_id, i.structure_id ) structure_id,
+  mep.id                                      mise_en_paiement_id,
+  mep.periode_paiement_id                     periode_paiement_id,
+  frs.heures_compl_fi + frs.heures_compl_fc + frs.heures_compl_fa + frs.heures_compl_fc_majorees heures_a_payer,
+  count(*) OVER(PARTITION BY frs.id)          heures_a_payer_pond,
+  NVL(mep.heures,0)                           heures_demandees,
+  CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees
+FROM
+            formule_resultat_service        frs
+       JOIN type_volume_horaire             tvh ON tvh.code = \'REALISE\'
+       JOIN etat_volume_horaire             evh ON evh.code = \'valide\'
+       JOIN formule_resultat                 fr ON fr.id = frs.formule_resultat_id
+                                               AND fr.type_volume_horaire_id = tvh.id
+                                               AND fr.etat_volume_horaire_id = evh.id
+
+       JOIN intervenant                       i ON i.id = fr.intervenant_id
+       JOIN service                           s ON s.id = frs.service_id
+  LEFT JOIN element_pedagogique              ep ON ep.id = s.element_pedagogique_id
+  LEFT JOIN mise_en_paiement                mep ON mep.formule_res_service_id = frs.id
+                                               AND mep.histo_destruction IS NULL
+
+UNION ALL
+
+SELECT
+  i.annee_id                                  annee_id,
+  null                                        formule_res_service_id,
+  frs.id                                      formule_res_service_ref_id,
+  i.id                                        intervenant_id,
+  s.structure_id                              structure_id,
+  mep.id                                      mise_en_paiement_id,
+  mep.periode_paiement_id                     periode_paiement_id,
+  frs.heures_compl_referentiel                heures_a_payer,
+  count(*) OVER(PARTITION BY frs.id)          heures_a_payer_pond,
+  NVL(mep.heures,0)                           heures_demandees,
+  CASE WHEN mep.periode_paiement_id IS NULL THEN 0 ELSE mep.heures END heures_payees
+FROM
+            formule_resultat_service_ref    frs
+       JOIN type_volume_horaire             tvh ON tvh.code = \'REALISE\'
+       JOIN etat_volume_horaire             evh ON evh.code = \'valide\'
+       JOIN formule_resultat                 fr ON fr.id = frs.formule_resultat_id
+                                               AND fr.type_volume_horaire_id = tvh.id
+                                               AND fr.etat_volume_horaire_id = evh.id
+
+       JOIN intervenant                       i ON i.id = fr.intervenant_id
+       JOIN service_referentiel               s ON s.id = frs.service_referentiel_id
+  LEFT JOIN mise_en_paiement                mep ON mep.formule_res_service_ref_id = frs.id
+                                               AND mep.histo_destruction IS NULL',
+    ),
+    'V_TBL_PIECE_JOINTE' => 
+    array (
+      'name' => 'V_TBL_PIECE_JOINTE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_PIECE_JOINTE AS
+WITH pjf AS (
+  SELECT
+    pjf.annee_id,
+    pjf.type_piece_jointe_id,
+    pjf.intervenant_id,
+    COUNT(*) count,
+    SUM(CASE WHEN validation_id IS NULL THEN 0 ELSE 1 END) validation,
+    SUM(CASE WHEN fichier_id IS NULL THEN 0 ELSE 1 END) fichier
+  FROM
+    tbl_piece_jointe_fournie pjf
+  GROUP BY
+    pjf.annee_id,
+    pjf.type_piece_jointe_id,
+    pjf.intervenant_id
+)
+SELECT
+  NVL( pjd.annee_id, pjf.annee_id ) annee_id,
+  NVL( pjd.type_piece_jointe_id, pjf.type_piece_jointe_id ) type_piece_jointe_id,
+  NVL( pjd.intervenant_id, pjf.intervenant_id ) intervenant_id,
+  CASE WHEN pjd.intervenant_id IS NULL THEN 0 ELSE 1 END demandee,
+  CASE WHEN pjf.fichier = pjf.count THEN 1 ELSE 0 END fournie,
+  CASE WHEN pjf.validation = pjf.count THEN 1 ELSE 0 END validee,
+  NVL(pjd.heures_pour_seuil,0) heures_pour_seuil
+FROM
+  tbl_piece_jointe_demande pjd
+  FULL JOIN pjf ON pjf.type_piece_jointe_id = pjd.type_piece_jointe_id AND pjf.intervenant_id = pjd.intervenant_id',
+    ),
+    'V_TBL_PIECE_JOINTE_DEMANDE' => 
+    array (
+      'name' => 'V_TBL_PIECE_JOINTE_DEMANDE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_PIECE_JOINTE_DEMANDE AS
+WITH i_h AS (
+  SELECT
+    s.intervenant_id,
+    sum(vh.heures) heures,
+    sum(ep.taux_fc) fc
+  FROM
+         service               s
+    JOIN type_volume_horaire tvh ON tvh.code = \'PREVU\'
+    JOIN volume_horaire       vh ON vh.service_id = s.id
+                                AND vh.type_volume_horaire_id = tvh.id
+                                AND vh.histo_destruction IS NULL
+    JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id -- Service sur l\'établissement
+  WHERE
+    s.histo_destruction IS NULL
+    AND vh.motif_non_paiement_id IS NULL -- pas de motif de non paiement
+  GROUP BY
+    s.intervenant_id
+)
+SELECT
+  i.annee_id                      annee_id,
+  i.id                            intervenant_id,
+  tpj.id                          type_piece_jointe_id,
+  MAX(COALESCE(i_h.heures, 0))    heures_pour_seuil
+FROM
+            intervenant                 i
+
+  LEFT JOIN dossier                     d ON d.intervenant_id = i.id
+                                         AND d.histo_destruction IS NULL
+
+       JOIN type_piece_jointe_statut tpjs ON tpjs.statut_intervenant_id = i.statut_id
+                                         AND tpjs.histo_destruction IS NULL
+                                         AND i.annee_id BETWEEN COALESCE(tpjs.annee_debut_id,i.annee_id) AND COALESCE(tpjs.annee_fin_id,i.annee_id)
+
+       JOIN type_piece_jointe         tpj ON tpj.id = tpjs.type_piece_jointe_id
+                                         AND tpj.histo_destruction IS NULL
+
+  LEFT JOIN                           i_h ON i_h.intervenant_id = i.id
+WHERE
+  -- Gestion de l\'historique
+  i.histo_destruction IS NULL
+
+  -- Seuil HETD
+  AND (COALESCE(i_h.heures,0) > COALESCE(tpjs.seuil_hetd,-1))
+
+  -- En fonction du premier recrutement ou non
+  AND (tpjs.premier_recrutement = 0 OR COALESCE(i.premier_recrutement,0) = 1)
+
+  -- Le RIB n\'est demandé QUE s\'il est différent!!
+  AND CASE
+        WHEN tpjs.changement_rib = 0 OR d.id IS NULL THEN 1
+        ELSE CASE WHEN replace(i.bic, \' \', \'\') || \'-\' || replace(i.iban, \' \', \'\') = d.rib THEN 0 ELSE 1 END
+      END = 1
+
+  -- Filtre FC
+  AND (tpjs.fc = 0 OR i_h.fc > 0)
+GROUP BY
+  i.annee_id,
+  i.id,
+  tpj.id',
+    ),
+    'V_TBL_PIECE_JOINTE_FOURNIE' => 
+    array (
+      'name' => 'V_TBL_PIECE_JOINTE_FOURNIE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_PIECE_JOINTE_FOURNIE AS
+SELECT
+  i.annee_id,
+  pj.type_piece_jointe_id,
+  pj.intervenant_id,
+  pj.id piece_jointe_id,
+  v.id validation_id,
+  f.id fichier_id
+FROM
+            piece_jointe          pj
+       JOIN intervenant            i ON i.id = pj.intervenant_id
+                                    AND i.histo_destruction IS NULL
+
+       JOIN piece_jointe_fichier pjf ON pjf.piece_jointe_id = pj.id
+       JOIN fichier                f ON f.id = pjf.fichier_id
+                                    AND f.histo_destruction IS NULL
+
+  LEFT JOIN validation             v ON v.id = pj.validation_id
+                                    AND v.histo_destruction IS NULL
+WHERE
+  pj.histo_destruction IS NULL',
+    ),
+    'V_TBL_SERVICE' => 
+    array (
+      'name' => 'V_TBL_SERVICE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_SERVICE AS
+WITH t AS (
+SELECT
+  s.id                                                                                      service_id,
+  s.intervenant_id                                                                          intervenant_id,
+  ep.structure_id                                                                           structure_id,
+  ep.id                                                                                     element_pedagogique_id,
+  ep.periode_id                                                                             element_pedagogique_periode_id,
+  etp.id                                                                                    etape_id,
+
+  vh.type_volume_horaire_id                                                                 type_volume_horaire_id,
+  vh.heures                                                                                 heures,
+  tvh.code                                                                                  type_volume_horaire_code,
+
+  CASE WHEN ep.histo_destruction IS NULL THEN 1 ELSE 0 END                                  element_pedagogique_histo,
+  CASE WHEN etp.histo_destruction IS NULL OR cp.id IS NOT NULL THEN 1 ELSE 0 END            etape_histo,
+
+  CASE WHEN ep.periode_id IS NOT NULL THEN
+    SUM( CASE WHEN vh.periode_id <> ep.periode_id THEN 1 ELSE 0 END ) OVER( PARTITION BY vh.service_id, vh.periode_id, vh.type_volume_horaire_id, vh.type_intervention_id )
+  ELSE 0 END has_heures_mauvaise_periode,
+
+  CASE WHEN v.id IS NULL AND vh.auto_validation=0 THEN 0 ELSE 1 END valide
+FROM
+  service                                       s
+  LEFT JOIN element_pedagogique                ep ON ep.id = s.element_pedagogique_id
+  LEFT JOIN etape                             etp ON etp.id = ep.etape_id
+  LEFT JOIN chemin_pedagogique                 cp ON cp.etape_id = etp.id
+                                                 AND cp.element_pedagogique_id = ep.id
+                                                 AND cp.histo_destruction IS NULL
+
+       JOIN volume_horaire                     vh ON vh.service_id = s.id
+                                                 AND vh.histo_destruction IS NULL
+
+       JOIN type_volume_horaire               tvh ON tvh.id = vh.type_volume_horaire_id
+
+  LEFT JOIN validation_vol_horaire            vvh ON vvh.volume_horaire_id = vh.id
+
+  LEFT JOIN validation                          v ON v.id = vvh.validation_id
+                                                 AND v.histo_destruction IS NULL
+WHERE
+  s.histo_destruction IS NULL
+)
+SELECT
+  i.annee_id                                                                                annee_id,
+  i.id                                                                                      intervenant_id,
+  i.structure_id                                                                            intervenant_structure_id,
+  NVL( t.structure_id, i.structure_id )                                                     structure_id,
+  ti.id                                                                                     type_intervenant_id,
+  ti.code                                                                                   type_intervenant_code,
+  si.peut_saisir_service                                                                    peut_saisir_service,
+
+  t.element_pedagogique_id,
+  t.service_id,
+  t.element_pedagogique_periode_id,
+  t.etape_id,
+  t.type_volume_horaire_id,
+  t.type_volume_horaire_code,
+  t.element_pedagogique_histo,
+  t.etape_histo,
+
+  CASE WHEN SUM(t.has_heures_mauvaise_periode) > 0 THEN 1 ELSE 0 END has_heures_mauvaise_periode,
+
+  CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE count(*) END nbvh,
+  CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE sum(t.heures) END heures,
+  sum(valide) valide
+FROM
+  t
+  JOIN intervenant                              i ON i.id = t.intervenant_id
+  JOIN statut_intervenant                      si ON si.id = i.statut_id
+  JOIN type_intervenant                        ti ON ti.id = si.type_intervenant_id
+GROUP BY
+  i.annee_id,
+  i.id,
+  i.structure_id,
+  t.structure_id,
+  i.structure_id,
+  ti.id,
+  ti.code,
+  si.peut_saisir_service,
+  t.element_pedagogique_id,
+  t.service_id,
+  t.element_pedagogique_periode_id,
+  t.etape_id,
+  t.type_volume_horaire_id,
+  t.type_volume_horaire_code,
+  t.element_pedagogique_histo,
+  t.etape_histo',
+    ),
+    'V_TBL_SERVICE_REFERENTIEL' => 
+    array (
+      'name' => 'V_TBL_SERVICE_REFERENTIEL',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_SERVICE_REFERENTIEL AS
+WITH t AS (
+
+  SELECT
+    i.annee_id,
+    i.id intervenant_id,
+    si.peut_saisir_referentiel peut_saisir_service,
+    vh.type_volume_horaire_id,
+    s.structure_id,
+    CASE WHEN v.id IS NULL AND vh.auto_validation=0 THEN 0 ELSE 1 END valide
+  FROM
+              intervenant                     i
+
+         JOIN statut_intervenant          si ON si.id = i.statut_id
+
+    LEFT JOIN service_referentiel          s ON s.intervenant_id = i.id
+                                            AND s.histo_destruction IS NULL
+
+    LEFT JOIN volume_horaire_ref          vh ON vh.service_referentiel_id = s.id
+                                            AND vh.histo_destruction IS NULL
+
+    LEFT JOIN validation_vol_horaire_ref vvh ON vvh.volume_horaire_ref_id = vh.id
+
+    LEFT JOIN validation                   v ON v.id = vvh.validation_id
+                                            AND v.histo_destruction IS NULL
+  WHERE
+    i.histo_destruction IS NULL
+
+)
+SELECT
+  annee_id,
+  intervenant_id,
+  peut_saisir_service,
+  type_volume_horaire_id,
+  structure_id,
+  CASE WHEN type_volume_horaire_id IS NULL THEN 0 ELSE count(*) END nbvh,
+  sum(valide) valide
+FROM
+  t
+WHERE
+  NOT (structure_id IS NOT NULL AND type_volume_horaire_id IS NULL)
+GROUP BY
+  annee_id,
+  intervenant_id,
+  peut_saisir_service,
+  type_volume_horaire_id,
+  structure_id',
+    ),
+    'V_TBL_SERVICE_SAISIE' => 
+    array (
+      'name' => 'V_TBL_SERVICE_SAISIE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_SERVICE_SAISIE AS
+SELECT
+  i.annee_id,
+  i.id intervenant_id,
+  si.peut_saisir_service,
+  si.peut_saisir_referentiel,
+  SUM( CASE WHEN tvhs.code = \'PREVU\'   THEN NVL(vh .heures,0) ELSE 0 END ) heures_service_prev,
+  SUM( CASE WHEN tvhs.code = \'PREVU\'   THEN NVL(vhr.heures,0) ELSE 0 END ) heures_referentiel_prev,
+  SUM( CASE WHEN tvhs.code = \'REALISE\' THEN NVL(vh .heures,0) ELSE 0 END ) heures_service_real,
+  SUM( CASE WHEN tvhs.code = \'REALISE\' THEN NVL(vhr.heures,0) ELSE 0 END ) heures_referentiel_real
+FROM
+  intervenant i
+  JOIN statut_intervenant si ON si.id = i.statut_id
+  LEFT JOIN service s ON s.intervenant_id = i.id AND s.histo_destruction IS NULL
+  LEFT JOIN volume_horaire vh ON vh.service_id = s.id AND vh.histo_destruction IS NULL
+  LEFT JOIN type_volume_horaire tvhs ON tvhs.id = vh.type_volume_horaire_id
+
+  LEFT JOIN service_referentiel sr ON sr.intervenant_id = i.id AND sr.histo_destruction IS NULL
+  LEFT JOIN volume_horaire_ref vhr ON vhr.service_referentiel_id = sr.id AND vhr.histo_destruction IS NULL
+  LEFT JOIN type_volume_horaire tvhrs ON tvhrs.id = vhr.type_volume_horaire_id
+WHERE
+  i.histo_destruction IS NULL
+GROUP BY
+  i.annee_id,
+  i.id,
+  si.peut_saisir_service,
+  si.peut_saisir_referentiel',
+    ),
+    'V_TBL_VALIDATION_ENSEIGNEMENT' => 
+    array (
+      'name' => 'V_TBL_VALIDATION_ENSEIGNEMENT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_VALIDATION_ENSEIGNEMENT AS
+SELECT DISTINCT
+  i.annee_id,
+  i.id intervenant_id,
+  CASE WHEN rsv.priorite = \'affectation\' THEN
+    COALESCE( i.structure_id, ep.structure_id )
+  ELSE
+    COALESCE( ep.structure_id, i.structure_id )
+  END structure_id,
+  vh.type_volume_horaire_id,
+  s.id service_id,
+  vh.id volume_horaire_id,
+  vh.auto_validation,
+  v.id validation_id
+FROM
+  service s
+  JOIN volume_horaire vh ON vh.service_id = s.id AND vh.histo_destruction IS NULL
+  JOIN intervenant i ON i.id = s.intervenant_id AND i.histo_destruction IS NULL
+  JOIN statut_intervenant si ON si.id = i.statut_id
+  JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id
+  LEFT JOIN element_pedagogique ep ON ep.id = s.element_pedagogique_id
+  LEFT JOIN validation_vol_horaire vvh ON vvh.volume_horaire_id = vh.id
+  LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL
+WHERE
+  s.histo_destruction IS NULL',
+    ),
+    'V_TBL_VALIDATION_REFERENTIEL' => 
+    array (
+      'name' => 'V_TBL_VALIDATION_REFERENTIEL',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_VALIDATION_REFERENTIEL AS
+SELECT DISTINCT
+  i.annee_id,
+  i.id intervenant_id,
+  CASE WHEN rsv.priorite = \'affectation\' THEN
+    COALESCE( i.structure_id, s.structure_id )
+  ELSE
+    COALESCE( s.structure_id, i.structure_id )
+  END structure_id,
+  vh.type_volume_horaire_id,
+  s.id service_referentiel_id,
+  vh.id volume_horaire_ref_id,
+  vh.auto_validation,
+  v.id validation_id
+FROM
+  service_referentiel s
+  JOIN volume_horaire_ref vh ON vh.service_referentiel_id = s.id AND vh.histo_destruction IS NULL
+  JOIN intervenant i ON i.id = s.intervenant_id AND i.histo_destruction IS NULL
+  JOIN statut_intervenant si ON si.id = i.statut_id
+  JOIN regle_structure_validation rsv ON rsv.type_intervenant_id = si.type_intervenant_id AND rsv.type_volume_horaire_id = vh.type_volume_horaire_id
+  LEFT JOIN validation_vol_horaire_ref vvh ON vvh.volume_horaire_ref_id = vh.id
+  LEFT JOIN validation v ON v.id = vvh.validation_id AND v.histo_destruction IS NULL
+WHERE
+  s.histo_destruction IS NULL',
+    ),
+    'V_TBL_VOLUME_HORAIRE' => 
+    array (
+      'name' => 'V_TBL_VOLUME_HORAIRE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_VOLUME_HORAIRE AS
+WITH has_cp AS (
+SELECT
+  etape_id
+FROM
+  chemin_pedagogique cp
+WHERE
+  cp.histo_destruction IS NULL
+GROUP BY
+  etape_id
+)
+SELECT
+  i.annee_id                                                                                annee_id,
+  i.id                                                                                      intervenant_id,
+  i.structure_id                                                                            intervenant_structure_id,
+  NVL(ep.structure_id, i.structure_id)                                                      structure_id,
+  ti.id                                                                                     type_intervenant_id,
+  s.id                                                                                      service_id,
+  vh.id                                                                                     volume_horaire_id,
+  vh.type_intervention_id                                                                   type_intervention_id,
+  vh.motif_non_paiement_id                                                                  motif_non_paiement_id,
+  vh.periode_id                                                                             volume_horaire_periode_id,
+  tvh.id                                                                                    type_volume_horaire_id,
+  evh.id                                                                                    etat_volume_horaire_id,
+  ep.id                                                                                     element_pedagogique_id,
+  ep.periode_id                                                                             element_pedagogique_periode_id,
+  etp.id                                                                                    etape_id,
+
+  ti.code                                                                                   type_intervenant_code,
+  tvh.code                                                                                  type_volume_horaire_code,
+  evh.code                                                                                  etat_volume_horaire_code,
+  si.peut_saisir_service                                                                    peut_saisir_service,
+  vh.heures                                                                                 heures,
+
+  CASE WHEN ep.histo_destruction IS NULL THEN 1 ELSE 0 END                                  element_pedagogique_histo,
+  CASE WHEN etp.histo_destruction IS NULL OR has_cp.etape_id IS NOT NULL THEN 1 ELSE 0 END  etape_histo,
+  CASE WHEN ep.periode_id IS NOT NULL AND vh.periode_id <> ep.periode_id THEN 0 ELSE 1 END  periode_corresp
+
+FROM
+  intervenant                                   i
+  JOIN statut_intervenant                      si ON si.id = i.statut_id
+  JOIN type_intervenant                        ti ON ti.id = si.type_intervenant_id
+  JOIN service                                  s ON s.intervenant_id = i.id
+                                                 AND s.histo_destruction IS NULL
+  JOIN element_pedagogique                     ep ON ep.id = s.element_pedagogique_id
+  JOIN etape                                  etp ON etp.id = ep.etape_id
+  JOIN volume_horaire                          vh ON vh.service_id = s.id
+                                                 AND vh.histo_destruction IS NULL
+  JOIN type_volume_horaire                    tvh ON tvh.id = vh.type_volume_horaire_id
+  JOIN v_volume_horaire_etat                  vhe ON vhe.volume_horaire_id = vh.id
+  JOIN etat_volume_horaire                    evh ON evh.id = vhe.etat_volume_horaire_id
+  LEFT JOIN has_cp                                ON has_cp.etape_id = etp.id
+WHERE
+  i.histo_destruction IS NULL',
+    ),
+    'V_TBL_WORKFLOW' => 
+    array (
+      'name' => 'V_TBL_WORKFLOW',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TBL_WORKFLOW AS
+WITH pj AS (
+  SELECT
+    annee_id,
+    intervenant_id,
+    SUM(demandee) demandees,
+    SUM(fournie)  fournies,
+    SUM(validee)  validees
+  FROM
+    tbl_piece_jointe
+  WHERE
+    1 = OSE_WORKFLOW.match_intervenant(intervenant_id)
+    AND demandee > 0
+  GROUP BY
+    annee_id,
+    intervenant_id
+),
+mep AS (
+  SELECT
+    annee_id,
+    intervenant_id,
+    structure_id,
+    SUM(heures_a_payer / heures_a_payer_pond) sap,
+    SUM(heures_demandees) dmep,
+    SUM(heures_payees) mep
+    --COUNT(*)  sap,
+    --SUM(CASE WHEN mise_en_paiement_id IS NULL THEN 0 ELSE 1 END) dmep,
+    --SUM(CASE WHEN periode_paiement_id IS NULL THEN 0 ELSE 1 END) mep
+  FROM
+    tbl_paiement
+  WHERE
+    1 = OSE_WORKFLOW.match_intervenant(intervenant_id)
+  GROUP BY
+    annee_id,
+    intervenant_id,
+    structure_id
+)
+SELECT
+  e.code                                                    etape_code,
+  d.annee_id                                                annee_id,
+  d.intervenant_id                                          intervenant_id,
+  null                                                      structure_id,
+  1                                                         objectif,
+  CASE
+    WHEN e.code = \'DONNEES_PERSO_SAISIE\' THEN
+      CASE WHEN d.dossier_id IS NULL THEN 0 ELSE 1 END
+
+    WHEN e.code = \'DONNEES_PERSO_VALIDATION\' THEN
+      CASE WHEN d.validation_id IS NULL THEN 0 ELSE 1 END
+
+  END                                                       realisation
+FROM
+  tbl_dossier d
+  JOIN (
+          SELECT \'DONNEES_PERSO_SAISIE\'     code FROM dual
+    UNION SELECT \'DONNEES_PERSO_VALIDATION\' code FROM dual
+  ) e ON 1=1
+WHERE
+  d. peut_saisir_dossier = 1
+  AND 1 = OSE_WORKFLOW.match_intervenant(d.intervenant_id)
+
+UNION ALL
+
+SELECT
+  e.code                                                    etape_code,
+  tss.annee_id                                              annee_id,
+  tss.intervenant_id                                        intervenant_id,
+  NULL                                                      structure_id,
+  1                                                         objectif,
+  CASE
+    WHEN e.code = \'SERVICE_SAISIE\' THEN
+      CASE WHEN tss.heures_service_prev + tss.heures_referentiel_prev > 0 THEN 1 ELSE 0 END
+
+    WHEN e.code = \'SERVICE_SAISIE_REALISE\' THEN
+      CASE WHEN tss.heures_service_real + tss.heures_referentiel_real > 0 THEN 1 ELSE 0 END
+
+  END                                                       realisation
+FROM
+  TBL_SERVICE_SAISIE tss
+  JOIN (
+          SELECT \'SERVICE_SAISIE\'                 code FROM dual
+    UNION SELECT \'SERVICE_SAISIE_REALISE\'         code FROM dual
+  ) e ON 1=1
+WHERE
+  (tss.peut_saisir_service = 1 OR tss.peut_saisir_referentiel = 1)
+  AND 1 = OSE_WORKFLOW.match_intervenant(tss.intervenant_id)
+
+UNION ALL
+
+SELECT
+  CASE
+    WHEN tvh.code = \'PREVU\'   THEN \'SERVICE_VALIDATION\'
+    WHEN tvh.code = \'REALISE\' THEN \'SERVICE_VALIDATION_REALISE\'
+  END                                                        etape_code,
+  tve.annee_id                                               annee_id,
+  tve.intervenant_id                                         intervenant_id,
+  tve.structure_id                                           structure_id,
+  COUNT(*)                                                   objectif,
+  SUM(CASE WHEN tve.validation_id IS NOT NULL THEN 1 ELSE 0 END) realisation
+FROM
+  tbl_validation_enseignement tve
+  JOIN type_volume_horaire tvh ON tvh.id = tve.type_volume_horaire_id
+WHERE
+  1 = OSE_WORKFLOW.match_intervenant(tve.intervenant_id)
+  AND tve.auto_validation = 0
+GROUP BY
+  tve.annee_id,
+  tve.intervenant_id,
+  tve.structure_id,
+  tvh.code
+
+UNION ALL
+
+SELECT
+  CASE
+    WHEN tvh.code = \'PREVU\'   THEN \'REFERENTIEL_VALIDATION\'
+    WHEN tvh.code = \'REALISE\' THEN \'REFERENTIEL_VALIDATION_REALISE\'
+  END                                                        etape_code,
+  tvr.annee_id                                               annee_id,
+  tvr.intervenant_id                                         intervenant_id,
+  tvr.structure_id                                           structure_id,
+  count(*)                                                   objectif,
+  SUM(CASE WHEN tvr.validation_id IS NOT NULL THEN 1 ELSE 0 END) realisation
+FROM
+  tbl_validation_referentiel tvr
+  JOIN type_volume_horaire tvh ON tvh.id = tvr.type_volume_horaire_id
+WHERE
+  1 = OSE_WORKFLOW.match_intervenant(tvr.intervenant_id)
+  AND tvr.auto_validation = 0
+GROUP BY
+  tvr.annee_id,
+  tvr.intervenant_id,
+  tvr.structure_id,
+  tvh.code
+
+UNION ALL
+
+SELECT
+  e.code                                                    etape_code,
+  pj.annee_id                                               annee_id,
+  pj.intervenant_id                                         intervenant_id,
+  null                                                      structure_id,
+  CASE
+    WHEN e.code = \'PJ_SAISIE\' THEN pj.demandees
+    WHEN e.code = \'PJ_VALIDATION\' THEN pj.demandees
+  END                                                       objectif,
+  CASE
+    WHEN e.code = \'PJ_SAISIE\' THEN pj.fournies
+    WHEN e.code = \'PJ_VALIDATION\' THEN pj.validees
+  END                                                       realisation
+FROM
+  pj
+  JOIN (
+          SELECT \'PJ_SAISIE\'      code FROM dual
+    UNION SELECT \'PJ_VALIDATION\'  code FROM dual
+  ) e ON (
+       (e.code = \'PJ_SAISIE\'     AND pj.demandees > 0)
+    OR (e.code = \'PJ_VALIDATION\' AND pj.fournies  > 0)
+  )
+
+UNION ALL
+
+SELECT
+  ta.code                                                   etape_code,
+  a.annee_id                                                annee_id,
+  a.intervenant_id                                          intervenant_id,
+  a.structure_id                                            structure_id,
+  1                                                         objectif,
+  CASE WHEN a.agrement_id IS NULL THEN 0 ELSE 1 END         realisation
+FROM
+  tbl_agrement a
+  JOIN type_agrement ta ON ta.id = a.type_agrement_id
+WHERE
+  1 = OSE_WORKFLOW.match_intervenant(a.intervenant_id)
+
+UNION ALL
+
+SELECT
+  \'CLOTURE_REALISE\'                                         etape_code,
+  c.annee_id                                                annee_id,
+  c.intervenant_id                                          intervenant_id,
+  null                                                      structure_id,
+  1                                                         objectif,
+  c.cloture                                                 realisation
+FROM
+  tbl_cloture_realise c
+WHERE
+  c.peut_cloturer_saisie = 1
+  AND 1 = OSE_WORKFLOW.match_intervenant(c.intervenant_id)
+
+UNION ALL
+
+SELECT
+  e.code                                                    etape_code,
+  mep.annee_id                                              annee_id,
+  mep.intervenant_id                                        intervenant_id,
+  mep.structure_id                                          structure_id,
+  CASE
+    WHEN e.code = \'DEMANDE_MEP\' THEN mep.sap
+    WHEN e.code = \'SAISIE_MEP\' THEN mep.dmep
+  END                                                       objectif,
+  CASE
+    WHEN e.code = \'DEMANDE_MEP\' THEN mep.dmep
+    WHEN e.code = \'SAISIE_MEP\' THEN mep.mep
+  END                                                       realisation
+FROM
+  mep
+  JOIN (
+          SELECT \'DEMANDE_MEP\'  code FROM dual
+    UNION SELECT \'SAISIE_MEP\'   code FROM dual
+  ) e ON (
+       (e.code = \'DEMANDE_MEP\' AND mep.sap > 0)
+    OR (e.code = \'SAISIE_MEP\'  AND mep.dmep > 0)
+  )
+
+
+UNION ALL
+
+SELECT
+  \'CONTRAT\'                                                 etape_code,
+  annee_id                                                  annee_id,
+  intervenant_id                                            intervenant_id,
+  structure_id                                              structure_id,
+  nbvh                                                      objectif,
+  edite                                                     realisation
+FROM
+  tbl_contrat c
+WHERE
+  peut_avoir_contrat = 1
+  AND nbvh > 0
+  AND 1 = OSE_WORKFLOW.match_intervenant(c.intervenant_id)',
+    ),
+    'V_TOTAL_DEMANDE_MEP_STRUCTURE' => 
+    array (
+      'name' => 'V_TOTAL_DEMANDE_MEP_STRUCTURE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_TOTAL_DEMANDE_MEP_STRUCTURE AS
+with mep as (
+  -- enseignements
+  select
+    fr.intervenant_id,
+    nvl(ep.structure_id, i.structure_id) structure_id,
+    nvl(mep.heures, 0) mep_heures
+  from mise_en_paiement mep
+  join formule_resultat_service frs on mep.formule_res_service_id = frs.id --and mep.date_mise_en_paiement is null -- date_mise_en_paiement is null <=> demande
+  join formule_resultat fr on frs.formule_resultat_id = fr.id
+  join intervenant i on fr.intervenant_id = i.id
+  join service s on frs.service_id = s.id
+  left join element_pedagogique ep on s.element_pedagogique_id = ep.id and ep.histo_destruction IS NULL
+  where mep.histo_destruction IS NULL
+  union all
+  -- referentiel
+  select
+    fr.intervenant_id,
+    s.structure_id,
+    nvl(mep.heures, 0) mep_heures
+  from mise_en_paiement mep
+  join formule_resultat_service_ref frs on mep.formule_res_service_ref_id = frs.id --and mep.date_mise_en_paiement is null -- date_mise_en_paiement is null <=> demande
+  join formule_resultat fr on frs.formule_resultat_id = fr.id
+  join intervenant i on fr.intervenant_id = i.id
+  join service_referentiel s on frs.service_referentiel_id = s.id
+  where mep.histo_destruction IS NULL
+)
+select intervenant_id, structure_id, sum(nvl(mep_heures, 0)) total_heures_mep from mep
+group by intervenant_id, structure_id',
+    ),
+    'V_VALIDATION_MISE_EN_PAIEMENT' => 
+    array (
+      'name' => 'V_VALIDATION_MISE_EN_PAIEMENT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_VALIDATION_MISE_EN_PAIEMENT AS
+SELECT
+  vvh.validation_id,
+  mep.id mise_en_paiement_id
+FROM
+  validation_vol_horaire vvh
+  JOIN volume_horaire vh ON vh.id = vvh.volume_horaire_id
+  JOIN formule_resultat_service frs ON frs.service_id = vh.service_id
+  JOIN mise_en_paiement mep ON mep.formule_res_service_id = frs.id
+
+UNION
+
+SELECT
+  vvh.validation_id,
+  mep.id mise_en_paiement_id
+FROM
+  validation_vol_horaire_ref vvh
+  JOIN volume_horaire_ref vh ON vh.id = vvh.volume_horaire_ref_id
+  JOIN formule_resultat_service_ref frs ON frs.service_referentiel_id = vh.service_referentiel_id
+  JOIN mise_en_paiement mep ON mep.formule_res_service_ref_id = frs.id',
+    ),
+    'V_VOLUME_HORAIRE_ETAT' => 
+    array (
+      'name' => 'V_VOLUME_HORAIRE_ETAT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_VOLUME_HORAIRE_ETAT AS
+SELECT
+  vh.id volume_horaire_id,
+  evh.id etat_volume_horaire_id
+FROM
+  volume_horaire vh
+  LEFT JOIN contrat c ON c.id = vh.contrat_id AND c.histo_destruction IS NULL
+  LEFT JOIN validation cv ON cv.id = c.validation_id AND cv.histo_destruction IS NULL
+  JOIN etat_volume_horaire evh ON evh.code = CASE
+    WHEN c.date_retour_signe IS NOT NULL THEN \'contrat-signe\'
+    WHEN cv.id IS NOT NULL THEN \'contrat-edite\'
+    WHEN vh.auto_validation = 1 OR EXISTS(
+      SELECT * FROM validation v JOIN validation_vol_horaire vvh ON vvh.validation_id = v.id
+      WHERE vvh.volume_horaire_id = vh.id AND v.histo_destruction IS NULL
+    ) THEN \'valide\'
+    ELSE \'saisi\'
+    END',
+    ),
+    'V_VOLUME_HORAIRE_REF_ETAT' => 
+    array (
+      'name' => 'V_VOLUME_HORAIRE_REF_ETAT',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_VOLUME_HORAIRE_REF_ETAT AS
+SELECT
+  vhr.id volume_horaire_ref_id,
+  evh.id etat_volume_horaire_id
+FROM
+  volume_horaire_ref vhr
+  JOIN etat_volume_horaire evh ON evh.code = CASE
+    WHEN vhr.auto_validation = 1 OR EXISTS(
+      SELECT * FROM validation v JOIN validation_vol_horaire_ref vvhr ON vvhr.validation_id = v.id
+      WHERE vvhr.volume_horaire_ref_id = vhr.id AND v.histo_destruction IS NULL
+    ) THEN \'valide\'
+    ELSE \'saisi\'
+  END',
+    ),
+    'V_VOL_HORAIRE_ETAT_MULTI' => 
+    array (
+      'name' => 'V_VOL_HORAIRE_ETAT_MULTI',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_VOL_HORAIRE_ETAT_MULTI AS
+select vh.id VOLUME_HORAIRE_ID, evh.id ETAT_VOLUME_HORAIRE_ID
+  from volume_horaire vh
+  join service s on s.id = vh.service_id and s.histo_destruction IS NULL
+  join etat_volume_horaire evh on evh.code = \'saisi\'
+  where vh.histo_destruction IS NULL
+union all
+  select vh.id, evh.id
+  from volume_horaire vh
+  join service s on s.id = vh.service_id and s.histo_destruction IS NULL
+  join etat_volume_horaire evh on evh.code = \'valide\'
+  where vh.histo_destruction IS NULL
+  and EXISTS(
+    SELECT * FROM validation v JOIN validation_vol_horaire vvh ON vvh.validation_id = v.id
+    WHERE vvh.volume_horaire_id = vh.id AND v.histo_destruction IS NULL
+  ) OR vh.auto_validation = 1
+union all
+  select vh.id, evh.id
+  from volume_horaire vh
+  join service s on s.id = vh.service_id and s.histo_destruction IS NULL
+  join contrat c on vh.contrat_id = c.id and c.histo_destruction IS NULL
+  join etat_volume_horaire evh on evh.code = \'contrat-edite\'
+  where vh.histo_destruction IS NULL
+union all
+  select vh.id, evh.id
+  from volume_horaire vh
+  join service s on s.id = vh.service_id and s.histo_destruction IS NULL
+  join contrat c on vh.contrat_id = c.id and c.histo_destruction IS NULL and c.date_retour_signe is not null
+  join etat_volume_horaire evh on evh.code = \'contrat-signe\'
+  where vh.histo_destruction IS NULL',
+    ),
+    'V_VOL_HORAIRE_REF_ETAT_MULTI' => 
+    array (
+      'name' => 'V_VOL_HORAIRE_REF_ETAT_MULTI',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_VOL_HORAIRE_REF_ETAT_MULTI AS
+select vh.id VOLUME_HORAIRE_REF_ID, evh.id ETAT_VOLUME_HORAIRE_ID
+  from volume_horaire_ref vh
+  join service_referentiel s on s.id = vh.service_referentiel_id and s.histo_destruction IS NULL
+  join etat_volume_horaire evh on evh.code = \'saisi\'
+  where vh.histo_destruction IS NULL
+union all
+  select vh.id, evh.id
+  from volume_horaire_ref vh
+  join service_referentiel s on s.id = vh.service_referentiel_id and s.histo_destruction IS NULL
+  join etat_volume_horaire evh on evh.code = \'valide\'
+  where vh.histo_destruction IS NULL
+  and vh.auto_validation=1 OR EXISTS(
+    SELECT * FROM validation v JOIN validation_vol_horaire_ref vvh ON vvh.validation_id = v.id
+    WHERE vvh.volume_horaire_ref_id = vh.id AND v.histo_destruction IS NULL
+  )',
+    ),
+    'V_WORKFLOW_ETAPE_PERTINENTE' => 
+    array (
+      'name' => 'V_WORKFLOW_ETAPE_PERTINENTE',
+      'definition' => 'CREATE OR REPLACE FORCE VIEW V_WORKFLOW_ETAPE_PERTINENTE AS
+WITH peut_pj AS (
+  SELECT DISTINCT
+    statut_intervenant_id,
+    1 tem
+  FROM
+    type_piece_jointe_statut tpjs
+  WHERE
+    tpjs.histo_destruction IS NULL
+),
+peut_agr AS (
+  SELECT
+    tas.statut_intervenant_id,
+    ta.code,
+    tas.premier_recrutement
+  FROM
+    type_agrement_statut tas
+    JOIN type_agrement ta ON ta.id = tas.type_agrement_id
+  WHERE
+    tas.histo_destruction IS NULL
+)
+SELECT
+  i.annee_id annee_id,
+  i.id intervenant_id,
+  e.code etape_code
+FROM
+            intervenant i
+       JOIN statut_intervenant si ON si.id = i.statut_id
+  LEFT JOIN peut_pj ON peut_pj.statut_intervenant_id = si.id
+  LEFT JOIN peut_agr peut_cr ON peut_cr.code = \'CONSEIL_RESTREINT\'  AND peut_cr.statut_intervenant_id = si.id AND (peut_cr.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = peut_cr.premier_recrutement)
+  LEFT JOIN peut_agr peut_ca ON peut_ca.code = \'CONSEIL_ACADEMIQUE\' AND peut_ca.statut_intervenant_id = si.id AND (peut_ca.premier_recrutement IS NULL OR NVL(i.premier_recrutement,0) = peut_ca.premier_recrutement)
+       JOIN wf_etape e ON 1 = CASE e.code
+
+    WHEN \'DONNEES_PERSO_SAISIE\' THEN
+      si.peut_saisir_dossier
+
+    WHEN \'SERVICE_SAISIE\' THEN
+      CASE WHEN si.peut_saisir_service + si.peut_saisir_referentiel = 0 THEN 0 ELSE 1 END
+
+    WHEN \'PJ_SAISIE\' THEN
+      peut_pj.tem
+
+    WHEN \'PJ_VALIDATION\' THEN
+      peut_pj.tem
+
+    WHEN \'DONNEES_PERSO_VALIDATION\' THEN
+      si.peut_saisir_dossier
+
+    WHEN \'SERVICE_VALIDATION\' THEN
+      si.peut_saisir_service
+
+    WHEN \'REFERENTIEL_VALIDATION\' THEN
+      si.peut_saisir_referentiel
+
+    WHEN \'CONSEIL_RESTREINT\' THEN
+      CASE WHEN peut_cr.code IS NULL THEN 0 ELSE 1 END
+
+    WHEN \'CONSEIL_ACADEMIQUE\' THEN
+      CASE WHEN peut_ca.code IS NULL THEN 0 ELSE 1 END
+
+    WHEN \'CONTRAT\' THEN
+      si.peut_avoir_contrat
+
+    WHEN \'SERVICE_SAISIE_REALISE\' THEN
+      CASE WHEN si.peut_saisir_service + si.peut_saisir_referentiel = 0 THEN 0 ELSE 1 END
+
+    WHEN \'CLOTURE_REALISE\' THEN
+      si.peut_cloturer_saisie
+
+    WHEN \'SERVICE_VALIDATION_REALISE\' THEN
+      si.peut_saisir_service
+
+    WHEN \'REFERENTIEL_VALIDATION_REALISE\' THEN
+      si.peut_saisir_referentiel
+
+    WHEN \'DEMANDE_MEP\' THEN
+      CASE WHEN si.peut_saisir_service + si.peut_saisir_referentiel = 0 THEN 0 ELSE 1 END
+
+    WHEN \'SAISIE_MEP\' THEN
+      CASE WHEN si.peut_saisir_service + si.peut_saisir_referentiel = 0 THEN 0 ELSE 1 END
+
+  END
+WHERE
+  i.histo_destruction IS NULL',
+    ),
+  ),
+  'BddAdmin\\Ddl\\DdlMaterializedView' => 
+  array (
+    'TBL_NOEUD' => 
+    array (
+      'name' => 'TBL_NOEUD',
+      'definition' => 'SELECT
+  n.id                     noeud_id,
+  en.id                    noeud_etape_id,
+  n.code                   code,
+  n.libelle                libelle,
+  n.annee_id               annee_id,
+  n.etape_id               etape_id,
+  n.element_pedagogique_id element_pedagogique_id,
+  etp.id                   element_pedagogique_etape_id,
+  n.structure_id           structure_id,
+  tf.groupe_id             groupe_type_formation_id
+FROM
+            noeud                n
+  LEFT JOIN element_pedagogique ep ON ep.id = n.element_pedagogique_id
+  LEFT JOIN etape              etp ON etp.id = COALESCE(n.etape_id,ep.etape_id)
+  LEFT JOIN type_formation      tf ON tf.id = etp.type_formation_id
+  LEFT JOIN noeud               en ON en.etape_id = etp.id
+WHERE
+  n.histo_destruction IS NULL',
+    ),
+  ),
+  'BddAdmin\\Ddl\\DdlRefConstraint' => 
+  array (
+    'ADRESSE_INTERVENANT_HCFK' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT_HCFK',
+      'table' => 'ADRESSE_INTERVENANT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'ADRESSE_INTERVENANT_HDFK' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT_HDFK',
+      'table' => 'ADRESSE_INTERVENANT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'ADRESSE_INTERVENANT_HMFK' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT_HMFK',
+      'table' => 'ADRESSE_INTERVENANT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'ADRESSE_INTERVENANT_SOURCE_FK' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT_SOURCE_FK',
+      'table' => 'ADRESSE_INTERVENANT',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_HCFK' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_HCFK',
+      'table' => 'ADRESSE_STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_HDFK' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_HDFK',
+      'table' => 'ADRESSE_STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_HMFK' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_HMFK',
+      'table' => 'ADRESSE_STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_SOURCE_FK' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_SOURCE_FK',
+      'table' => 'ADRESSE_STRUCTURE',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_STRUCTURE_FK' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_STRUCTURE_FK',
+      'table' => 'ADRESSE_STRUCTURE',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'AFFECTATION_HCFK' => 
+    array (
+      'name' => 'AFFECTATION_HCFK',
+      'table' => 'AFFECTATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'AFFECTATION_HDFK' => 
+    array (
+      'name' => 'AFFECTATION_HDFK',
+      'table' => 'AFFECTATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'AFFECTATION_HMFK' => 
+    array (
+      'name' => 'AFFECTATION_HMFK',
+      'table' => 'AFFECTATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'AFFECTATION_RECHERCH_SOURCE_FK' => 
+    array (
+      'name' => 'AFFECTATION_RECHERCH_SOURCE_FK',
+      'table' => 'AFFECTATION_RECHERCHE',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'AFFECTATION_ROLE_FK' => 
+    array (
+      'name' => 'AFFECTATION_ROLE_FK',
+      'table' => 'AFFECTATION',
+      'rtable' => 'ROLE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ROLE_ID' => 'ID',
+      ),
+    ),
+    'AFFECTATION_R_HCFK' => 
+    array (
+      'name' => 'AFFECTATION_R_HCFK',
+      'table' => 'AFFECTATION_RECHERCHE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'AFFECTATION_R_HDFK' => 
+    array (
+      'name' => 'AFFECTATION_R_HDFK',
+      'table' => 'AFFECTATION_RECHERCHE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'AFFECTATION_R_HMFK' => 
+    array (
+      'name' => 'AFFECTATION_R_HMFK',
+      'table' => 'AFFECTATION_RECHERCHE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'AFFECTATION_R_INTERVENANT_FK' => 
+    array (
+      'name' => 'AFFECTATION_R_INTERVENANT_FK',
+      'table' => 'AFFECTATION_RECHERCHE',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'AFFECTATION_R_STRUCTURE_FK' => 
+    array (
+      'name' => 'AFFECTATION_R_STRUCTURE_FK',
+      'table' => 'AFFECTATION_RECHERCHE',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'AFFECTATION_SOURCE_FK' => 
+    array (
+      'name' => 'AFFECTATION_SOURCE_FK',
+      'table' => 'AFFECTATION',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'AFFECTATION_STRUCTURE_FK' => 
+    array (
+      'name' => 'AFFECTATION_STRUCTURE_FK',
+      'table' => 'AFFECTATION',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'AFFECTATION_UTILISATEUR_FK' => 
+    array (
+      'name' => 'AFFECTATION_UTILISATEUR_FK',
+      'table' => 'AFFECTATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'UTILISATEUR_ID' => 'ID',
+      ),
+    ),
+    'AGREMENT_HCFK' => 
+    array (
+      'name' => 'AGREMENT_HCFK',
+      'table' => 'AGREMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'AGREMENT_HDFK' => 
+    array (
+      'name' => 'AGREMENT_HDFK',
+      'table' => 'AGREMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'AGREMENT_HMFK' => 
+    array (
+      'name' => 'AGREMENT_HMFK',
+      'table' => 'AGREMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'AGREMENT_INTERVENANT_FK' => 
+    array (
+      'name' => 'AGREMENT_INTERVENANT_FK',
+      'table' => 'AGREMENT',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'AGREMENT_STRUCTURE_FK' => 
+    array (
+      'name' => 'AGREMENT_STRUCTURE_FK',
+      'table' => 'AGREMENT',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'AGREMENT_TYPE_AGREMENT_FK' => 
+    array (
+      'name' => 'AGREMENT_TYPE_AGREMENT_FK',
+      'table' => 'AGREMENT',
+      'rtable' => 'TYPE_AGREMENT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_AGREMENT_ID' => 'ID',
+      ),
+    ),
+    'AII_FK' => 
+    array (
+      'name' => 'AII_FK',
+      'table' => 'ADRESSE_INTERVENANT',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'CAMPAGNE_SAISIE_ANNEE_FK' => 
+    array (
+      'name' => 'CAMPAGNE_SAISIE_ANNEE_FK',
+      'table' => 'CAMPAGNE_SAISIE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'CCEP_CENTRE_COUT_FK' => 
+    array (
+      'name' => 'CCEP_CENTRE_COUT_FK',
+      'table' => 'CENTRE_COUT_EP',
+      'rtable' => 'CENTRE_COUT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'CENTRE_COUT_ID' => 'ID',
+      ),
+    ),
+    'CCEP_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'CCEP_ELEMENT_PEDAGOGIQUE_FK',
+      'table' => 'CENTRE_COUT_EP',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_ID' => 'ID',
+      ),
+    ),
+    'CCEP_TYPE_HEURES_FK' => 
+    array (
+      'name' => 'CCEP_TYPE_HEURES_FK',
+      'table' => 'CENTRE_COUT_EP',
+      'rtable' => 'TYPE_HEURES',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_HEURES_ID' => 'ID',
+      ),
+    ),
+    'CCS_CENTRE_COUT_FK' => 
+    array (
+      'name' => 'CCS_CENTRE_COUT_FK',
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'rtable' => 'CENTRE_COUT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'CENTRE_COUT_ID' => 'ID',
+      ),
+    ),
+    'CCS_STRUCTURE_FK' => 
+    array (
+      'name' => 'CCS_STRUCTURE_FK',
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'CC_ACTIVITE_HCFK' => 
+    array (
+      'name' => 'CC_ACTIVITE_HCFK',
+      'table' => 'CC_ACTIVITE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'CC_ACTIVITE_HDFK' => 
+    array (
+      'name' => 'CC_ACTIVITE_HDFK',
+      'table' => 'CC_ACTIVITE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'CC_ACTIVITE_HMFK' => 
+    array (
+      'name' => 'CC_ACTIVITE_HMFK',
+      'table' => 'CC_ACTIVITE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_ACTIVITE_FK' => 
+    array (
+      'name' => 'CENTRE_COUT_ACTIVITE_FK',
+      'table' => 'CENTRE_COUT',
+      'rtable' => 'CC_ACTIVITE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ACTIVITE_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_CENTRE_COUT_FK' => 
+    array (
+      'name' => 'CENTRE_COUT_CENTRE_COUT_FK',
+      'table' => 'CENTRE_COUT',
+      'rtable' => 'CENTRE_COUT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PARENT_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_EP_HCFK' => 
+    array (
+      'name' => 'CENTRE_COUT_EP_HCFK',
+      'table' => 'CENTRE_COUT_EP',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_EP_HDFK' => 
+    array (
+      'name' => 'CENTRE_COUT_EP_HDFK',
+      'table' => 'CENTRE_COUT_EP',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_EP_HMFK' => 
+    array (
+      'name' => 'CENTRE_COUT_EP_HMFK',
+      'table' => 'CENTRE_COUT_EP',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_EP_SOURCE_FK' => 
+    array (
+      'name' => 'CENTRE_COUT_EP_SOURCE_FK',
+      'table' => 'CENTRE_COUT_EP',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_HCFK' => 
+    array (
+      'name' => 'CENTRE_COUT_HCFK',
+      'table' => 'CENTRE_COUT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_HDFK' => 
+    array (
+      'name' => 'CENTRE_COUT_HDFK',
+      'table' => 'CENTRE_COUT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_HMFK' => 
+    array (
+      'name' => 'CENTRE_COUT_HMFK',
+      'table' => 'CENTRE_COUT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_SOURCE_FK' => 
+    array (
+      'name' => 'CENTRE_COUT_SOURCE_FK',
+      'table' => 'CENTRE_COUT',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_STRUCTURE_HCFK' => 
+    array (
+      'name' => 'CENTRE_COUT_STRUCTURE_HCFK',
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_STRUCTURE_HDFK' => 
+    array (
+      'name' => 'CENTRE_COUT_STRUCTURE_HDFK',
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_STRUCTURE_HMFK' => 
+    array (
+      'name' => 'CENTRE_COUT_STRUCTURE_HMFK',
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_STRUCTUR_SOURCE_FK' => 
+    array (
+      'name' => 'CENTRE_COUT_STRUCTUR_SOURCE_FK',
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_TYPE_RESSOURCE_FK' => 
+    array (
+      'name' => 'CENTRE_COUT_TYPE_RESSOURCE_FK',
+      'table' => 'CENTRE_COUT',
+      'rtable' => 'TYPE_RESSOURCE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_RESSOURCE_ID' => 'ID',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE_ETAPE_FK' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_ETAPE_FK',
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'rtable' => 'ETAPE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ETAPE_ID' => 'ID',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE_HCFK' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_HCFK',
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE_HDFK' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_HDFK',
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE_HMFK' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_HMFK',
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE_SOURCE_FK' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_SOURCE_FK',
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'CONTRAT_CONTRAT_FK' => 
+    array (
+      'name' => 'CONTRAT_CONTRAT_FK',
+      'table' => 'CONTRAT',
+      'rtable' => 'CONTRAT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'CONTRAT_ID' => 'ID',
+      ),
+    ),
+    'CONTRAT_FICHIER_FFK' => 
+    array (
+      'name' => 'CONTRAT_FICHIER_FFK',
+      'table' => 'CONTRAT_FICHIER',
+      'rtable' => 'FICHIER',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'FICHIER_ID' => 'ID',
+      ),
+    ),
+    'CONTRAT_FICHIER_FK' => 
+    array (
+      'name' => 'CONTRAT_FICHIER_FK',
+      'table' => 'CONTRAT_FICHIER',
+      'rtable' => 'CONTRAT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'CONTRAT_ID' => 'ID',
+      ),
+    ),
+    'CONTRAT_HCFK' => 
+    array (
+      'name' => 'CONTRAT_HCFK',
+      'table' => 'CONTRAT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'CONTRAT_HDFK' => 
+    array (
+      'name' => 'CONTRAT_HDFK',
+      'table' => 'CONTRAT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'CONTRAT_HMFK' => 
+    array (
+      'name' => 'CONTRAT_HMFK',
+      'table' => 'CONTRAT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'CONTRAT_INTERVENANT_FK' => 
+    array (
+      'name' => 'CONTRAT_INTERVENANT_FK',
+      'table' => 'CONTRAT',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'CONTRAT_STRUCTURE_FK' => 
+    array (
+      'name' => 'CONTRAT_STRUCTURE_FK',
+      'table' => 'CONTRAT',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'CONTRAT_TYPE_CONTRAT_FK' => 
+    array (
+      'name' => 'CONTRAT_TYPE_CONTRAT_FK',
+      'table' => 'CONTRAT',
+      'rtable' => 'TYPE_CONTRAT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_CONTRAT_ID' => 'ID',
+      ),
+    ),
+    'CONTRAT_VALIDATION_FK' => 
+    array (
+      'name' => 'CONTRAT_VALIDATION_FK',
+      'table' => 'CONTRAT',
+      'rtable' => 'VALIDATION',
+      'delete_rule' => 'SET NULL',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VALIDATION_ID' => 'ID',
+      ),
+    ),
+    'CORPS_HCFK' => 
+    array (
+      'name' => 'CORPS_HCFK',
+      'table' => 'CORPS',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'CORPS_HDFK' => 
+    array (
+      'name' => 'CORPS_HDFK',
+      'table' => 'CORPS',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'CORPS_HMFK' => 
+    array (
+      'name' => 'CORPS_HMFK',
+      'table' => 'CORPS',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'CORPS_SOURCE_FK' => 
+    array (
+      'name' => 'CORPS_SOURCE_FK',
+      'table' => 'CORPS',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'CPEP_FK' => 
+    array (
+      'name' => 'CPEP_FK',
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_ID' => 'ID',
+      ),
+    ),
+    'CS_TYPE_INTERVENANT_FK' => 
+    array (
+      'name' => 'CS_TYPE_INTERVENANT_FK',
+      'table' => 'CAMPAGNE_SAISIE',
+      'rtable' => 'TYPE_INTERVENANT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'CS_TYPE_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'CS_TYPE_VOLUME_HORAIRE_FK',
+      'table' => 'CAMPAGNE_SAISIE',
+      'rtable' => 'TYPE_VOLUME_HORAIRE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'DEPARTEMENT_HCFK' => 
+    array (
+      'name' => 'DEPARTEMENT_HCFK',
+      'table' => 'DEPARTEMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'DEPARTEMENT_HDFK' => 
+    array (
+      'name' => 'DEPARTEMENT_HDFK',
+      'table' => 'DEPARTEMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'DEPARTEMENT_HMFK' => 
+    array (
+      'name' => 'DEPARTEMENT_HMFK',
+      'table' => 'DEPARTEMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'DEPARTEMENT_SOURCE_FK' => 
+    array (
+      'name' => 'DEPARTEMENT_SOURCE_FK',
+      'table' => 'DEPARTEMENT',
+      'rtable' => 'SOURCE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'DISCIPLINE_HCFK' => 
+    array (
+      'name' => 'DISCIPLINE_HCFK',
+      'table' => 'DISCIPLINE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'DISCIPLINE_HDFK' => 
+    array (
+      'name' => 'DISCIPLINE_HDFK',
+      'table' => 'DISCIPLINE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'DISCIPLINE_HMFK' => 
+    array (
+      'name' => 'DISCIPLINE_HMFK',
+      'table' => 'DISCIPLINE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'DISCIPLINE_SOURCE_FK' => 
+    array (
+      'name' => 'DISCIPLINE_SOURCE_FK',
+      'table' => 'DISCIPLINE',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'DOMAINE_FONCTIONNEL_HCFK' => 
+    array (
+      'name' => 'DOMAINE_FONCTIONNEL_HCFK',
+      'table' => 'DOMAINE_FONCTIONNEL',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'DOMAINE_FONCTIONNEL_HDFK' => 
+    array (
+      'name' => 'DOMAINE_FONCTIONNEL_HDFK',
+      'table' => 'DOMAINE_FONCTIONNEL',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'DOMAINE_FONCTIONNEL_HMFK' => 
+    array (
+      'name' => 'DOMAINE_FONCTIONNEL_HMFK',
+      'table' => 'DOMAINE_FONCTIONNEL',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'DOMAINE_FONCTIONNEL_SOURCE_FK' => 
+    array (
+      'name' => 'DOMAINE_FONCTIONNEL_SOURCE_FK',
+      'table' => 'DOMAINE_FONCTIONNEL',
+      'rtable' => 'SOURCE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'DOSSIER_D_FK' => 
+    array (
+      'name' => 'DOSSIER_D_FK',
+      'table' => 'DOSSIER',
+      'rtable' => 'DEPARTEMENT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'DEPT_NAISSANCE_ID' => 'ID',
+      ),
+    ),
+    'DOSSIER_HCFK' => 
+    array (
+      'name' => 'DOSSIER_HCFK',
+      'table' => 'DOSSIER',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'DOSSIER_HDFK' => 
+    array (
+      'name' => 'DOSSIER_HDFK',
+      'table' => 'DOSSIER',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'DOSSIER_HMFK' => 
+    array (
+      'name' => 'DOSSIER_HMFK',
+      'table' => 'DOSSIER',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'DOSSIER_INTERVENANT_FK' => 
+    array (
+      'name' => 'DOSSIER_INTERVENANT_FK',
+      'table' => 'DOSSIER',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'DOSSIER_P_FK' => 
+    array (
+      'name' => 'DOSSIER_P_FK',
+      'table' => 'DOSSIER',
+      'rtable' => 'PAYS',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PAYS_NAISSANCE_ID' => 'ID',
+      ),
+    ),
+    'DOTATION_ANNEE_FK' => 
+    array (
+      'name' => 'DOTATION_ANNEE_FK',
+      'table' => 'DOTATION',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'DOTATION_HCFK' => 
+    array (
+      'name' => 'DOTATION_HCFK',
+      'table' => 'DOTATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'DOTATION_HDFK' => 
+    array (
+      'name' => 'DOTATION_HDFK',
+      'table' => 'DOTATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'DOTATION_HMFK' => 
+    array (
+      'name' => 'DOTATION_HMFK',
+      'table' => 'DOTATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'DOTATION_STRUCTURE_FK' => 
+    array (
+      'name' => 'DOTATION_STRUCTURE_FK',
+      'table' => 'DOTATION',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'DOTATION_TYPE_RESSOURCE_FK' => 
+    array (
+      'name' => 'DOTATION_TYPE_RESSOURCE_FK',
+      'table' => 'DOTATION',
+      'rtable' => 'TYPE_RESSOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_RESSOURCE_ID' => 'ID',
+      ),
+    ),
+    'DS_MDS_FK' => 
+    array (
+      'name' => 'DS_MDS_FK',
+      'table' => 'MODIFICATION_SERVICE_DU',
+      'rtable' => 'MOTIF_MODIFICATION_SERVICE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'MOTIF_ID' => 'ID',
+      ),
+    ),
+    'EFFECTIFS_ELEMENT_FK' => 
+    array (
+      'name' => 'EFFECTIFS_ELEMENT_FK',
+      'table' => 'EFFECTIFS',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_ID' => 'ID',
+      ),
+    ),
+    'EFFECTIFS_FK' => 
+    array (
+      'name' => 'EFFECTIFS_FK',
+      'table' => 'EFFECTIFS',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'EFFECTIFS_HCFK' => 
+    array (
+      'name' => 'EFFECTIFS_HCFK',
+      'table' => 'EFFECTIFS',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'EFFECTIFS_HDFK' => 
+    array (
+      'name' => 'EFFECTIFS_HDFK',
+      'table' => 'EFFECTIFS',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'EFFECTIFS_HMFK' => 
+    array (
+      'name' => 'EFFECTIFS_HMFK',
+      'table' => 'EFFECTIFS',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'EFFECTIFS_SOURCE_FK' => 
+    array (
+      'name' => 'EFFECTIFS_SOURCE_FK',
+      'table' => 'EFFECTIFS',
+      'rtable' => 'SOURCE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_MODULATEUR_HCFK' => 
+    array (
+      'name' => 'ELEMENT_MODULATEUR_HCFK',
+      'table' => 'ELEMENT_MODULATEUR',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_MODULATEUR_HDFK' => 
+    array (
+      'name' => 'ELEMENT_MODULATEUR_HDFK',
+      'table' => 'ELEMENT_MODULATEUR',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_MODULATEUR_HMFK' => 
+    array (
+      'name' => 'ELEMENT_MODULATEUR_HMFK',
+      'table' => 'ELEMENT_MODULATEUR',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_ANNEE_FK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_ANNEE_FK',
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_ETAPE_FK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_ETAPE_FK',
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'rtable' => 'ETAPE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ETAPE_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_HCFK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_HCFK',
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_HDFK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_HDFK',
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_HMFK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_HMFK',
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_PERIODE_FK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_PERIODE_FK',
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'rtable' => 'PERIODE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PERIODE_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_SOURCE_FK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_SOURCE_FK',
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'rtable' => 'SOURCE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES_HCFK' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES_HCFK',
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES_HDFK' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES_HDFK',
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES_HMFK' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES_HMFK',
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES_SOURCE_FK' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES_SOURCE_FK',
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'EM_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'EM_ELEMENT_PEDAGOGIQUE_FK',
+      'table' => 'ELEMENT_MODULATEUR',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_ID' => 'ID',
+      ),
+    ),
+    'EM_MODULATEUR_FK' => 
+    array (
+      'name' => 'EM_MODULATEUR_FK',
+      'table' => 'ELEMENT_MODULATEUR',
+      'rtable' => 'MODULATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'MODULATEUR_ID' => 'ID',
+      ),
+    ),
+    'EPS_FK' => 
+    array (
+      'name' => 'EPS_FK',
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'EP_DISCIPLINE_FK' => 
+    array (
+      'name' => 'EP_DISCIPLINE_FK',
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'rtable' => 'DISCIPLINE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'DISCIPLINE_ID' => 'ID',
+      ),
+    ),
+    'ETABLISSEMENT_HCFK' => 
+    array (
+      'name' => 'ETABLISSEMENT_HCFK',
+      'table' => 'ETABLISSEMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'ETABLISSEMENT_HDFK' => 
+    array (
+      'name' => 'ETABLISSEMENT_HDFK',
+      'table' => 'ETABLISSEMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'ETABLISSEMENT_HMFK' => 
+    array (
+      'name' => 'ETABLISSEMENT_HMFK',
+      'table' => 'ETABLISSEMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'ETABLISSEMENT_SOURCE_FK' => 
+    array (
+      'name' => 'ETABLISSEMENT_SOURCE_FK',
+      'table' => 'ETABLISSEMENT',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'ETAPE_ANNEE_FK' => 
+    array (
+      'name' => 'ETAPE_ANNEE_FK',
+      'table' => 'ETAPE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'ETAPE_DOMAINE_FONCTIONNEL_FK' => 
+    array (
+      'name' => 'ETAPE_DOMAINE_FONCTIONNEL_FK',
+      'table' => 'ETAPE',
+      'rtable' => 'DOMAINE_FONCTIONNEL',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'DOMAINE_FONCTIONNEL_ID' => 'ID',
+      ),
+    ),
+    'ETAPE_HCFK' => 
+    array (
+      'name' => 'ETAPE_HCFK',
+      'table' => 'ETAPE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'ETAPE_HDFK' => 
+    array (
+      'name' => 'ETAPE_HDFK',
+      'table' => 'ETAPE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'ETAPE_HMFK' => 
+    array (
+      'name' => 'ETAPE_HMFK',
+      'table' => 'ETAPE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'ETAPE_SOURCE_FK' => 
+    array (
+      'name' => 'ETAPE_SOURCE_FK',
+      'table' => 'ETAPE',
+      'rtable' => 'SOURCE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'ETAPE_STRUCTURE_FK' => 
+    array (
+      'name' => 'ETAPE_STRUCTURE_FK',
+      'table' => 'ETAPE',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'ETAPE_TYPE_FORMATION_FK' => 
+    array (
+      'name' => 'ETAPE_TYPE_FORMATION_FK',
+      'table' => 'ETAPE',
+      'rtable' => 'TYPE_FORMATION',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_FORMATION_ID' => 'ID',
+      ),
+    ),
+    'ETR_ELEMENT_FK' => 
+    array (
+      'name' => 'ETR_ELEMENT_FK',
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_ID' => 'ID',
+      ),
+    ),
+    'FICHIER_HCFK' => 
+    array (
+      'name' => 'FICHIER_HCFK',
+      'table' => 'FICHIER',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'FICHIER_HDFK' => 
+    array (
+      'name' => 'FICHIER_HDFK',
+      'table' => 'FICHIER',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'FICHIER_HMFK' => 
+    array (
+      'name' => 'FICHIER_HMFK',
+      'table' => 'FICHIER',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'FICHIER_VALID_FK' => 
+    array (
+      'name' => 'FICHIER_VALID_FK',
+      'table' => 'FICHIER',
+      'rtable' => 'VALIDATION',
+      'delete_rule' => 'SET NULL',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VALIDATION_ID' => 'ID',
+      ),
+    ),
+    'FONCTION_REFERENTIEL_HCFK' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL_HCFK',
+      'table' => 'FONCTION_REFERENTIEL',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'FONCTION_REFERENTIEL_HDFK' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL_HDFK',
+      'table' => 'FONCTION_REFERENTIEL',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'FONCTION_REFERENTIEL_HMFK' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL_HMFK',
+      'table' => 'FONCTION_REFERENTIEL',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'FONCTION_REFERENTIEL_SFK' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL_SFK',
+      'table' => 'FONCTION_REFERENTIEL',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'FONC_REF_DOMAINE_FONCT_FK' => 
+    array (
+      'name' => 'FONC_REF_DOMAINE_FONCT_FK',
+      'table' => 'FONCTION_REFERENTIEL',
+      'rtable' => 'DOMAINE_FONCTIONNEL',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'DOMAINE_FONCTIONNEL_ID' => 'ID',
+      ),
+    ),
+    'FRES_ETAT_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'FRES_ETAT_VOLUME_HORAIRE_FK',
+      'table' => 'FORMULE_RESULTAT',
+      'rtable' => 'ETAT_VOLUME_HORAIRE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ETAT_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'FRES_INTERVENANT_FK' => 
+    array (
+      'name' => 'FRES_INTERVENANT_FK',
+      'table' => 'FORMULE_RESULTAT',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'FRES_TYPE_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'FRES_TYPE_VOLUME_HORAIRE_FK',
+      'table' => 'FORMULE_RESULTAT',
+      'rtable' => 'TYPE_VOLUME_HORAIRE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'FRR_FORMULE_RESULTAT_FK' => 
+    array (
+      'name' => 'FRR_FORMULE_RESULTAT_FK',
+      'table' => 'FORMULE_RESULTAT_SERVICE_REF',
+      'rtable' => 'FORMULE_RESULTAT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'FORMULE_RESULTAT_ID' => 'ID',
+      ),
+    ),
+    'FRSR_SERVICE_REFERENTIEL_FK' => 
+    array (
+      'name' => 'FRSR_SERVICE_REFERENTIEL_FK',
+      'table' => 'FORMULE_RESULTAT_SERVICE_REF',
+      'rtable' => 'SERVICE_REFERENTIEL',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SERVICE_REFERENTIEL_ID' => 'ID',
+      ),
+    ),
+    'FRS_FORMULE_RESULTAT_FK' => 
+    array (
+      'name' => 'FRS_FORMULE_RESULTAT_FK',
+      'table' => 'FORMULE_RESULTAT_SERVICE',
+      'rtable' => 'FORMULE_RESULTAT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'FORMULE_RESULTAT_ID' => 'ID',
+      ),
+    ),
+    'FRS_SERVICE_FK' => 
+    array (
+      'name' => 'FRS_SERVICE_FK',
+      'table' => 'FORMULE_RESULTAT_SERVICE',
+      'rtable' => 'SERVICE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SERVICE_ID' => 'ID',
+      ),
+    ),
+    'FRVHR_FORMULE_RESULTAT_FK' => 
+    array (
+      'name' => 'FRVHR_FORMULE_RESULTAT_FK',
+      'table' => 'FORMULE_RESULTAT_VH_REF',
+      'rtable' => 'FORMULE_RESULTAT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'FORMULE_RESULTAT_ID' => 'ID',
+      ),
+    ),
+    'FRVHR_VOLUME_HORAIRE_REF_FK' => 
+    array (
+      'name' => 'FRVHR_VOLUME_HORAIRE_REF_FK',
+      'table' => 'FORMULE_RESULTAT_VH_REF',
+      'rtable' => 'VOLUME_HORAIRE_REF',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VOLUME_HORAIRE_REF_ID' => 'ID',
+      ),
+    ),
+    'FRVH_FORMULE_RESULTAT_FK' => 
+    array (
+      'name' => 'FRVH_FORMULE_RESULTAT_FK',
+      'table' => 'FORMULE_RESULTAT_VH',
+      'rtable' => 'FORMULE_RESULTAT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'FORMULE_RESULTAT_ID' => 'ID',
+      ),
+    ),
+    'FRVH_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'FRVH_VOLUME_HORAIRE_FK',
+      'table' => 'FORMULE_RESULTAT_VH',
+      'rtable' => 'VOLUME_HORAIRE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'FR_PARENT_FK' => 
+    array (
+      'name' => 'FR_PARENT_FK',
+      'table' => 'FONCTION_REFERENTIEL',
+      'rtable' => 'FONCTION_REFERENTIEL',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PARENT_ID' => 'ID',
+      ),
+    ),
+    'FTI_ANNEE_FK' => 
+    array (
+      'name' => 'FTI_ANNEE_FK',
+      'table' => 'FORMULE_TEST_INTERVENANT',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'FTI_ETAT_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'FTI_ETAT_VOLUME_HORAIRE_FK',
+      'table' => 'FORMULE_TEST_INTERVENANT',
+      'rtable' => 'ETAT_VOLUME_HORAIRE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ETAT_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'FTI_FORMULE_FK' => 
+    array (
+      'name' => 'FTI_FORMULE_FK',
+      'table' => 'FORMULE_TEST_INTERVENANT',
+      'rtable' => 'FORMULE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'FORMULE_ID' => 'ID',
+      ),
+    ),
+    'FTI_FORMULE_TEST_STRUCTURE_FK' => 
+    array (
+      'name' => 'FTI_FORMULE_TEST_STRUCTURE_FK',
+      'table' => 'FORMULE_TEST_INTERVENANT',
+      'rtable' => 'FORMULE_TEST_STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_TEST_ID' => 'ID',
+      ),
+    ),
+    'FTI_TYPE_INTERVENANT_FK' => 
+    array (
+      'name' => 'FTI_TYPE_INTERVENANT_FK',
+      'table' => 'FORMULE_TEST_INTERVENANT',
+      'rtable' => 'TYPE_INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'FTI_TYPE_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'FTI_TYPE_VOLUME_HORAIRE_FK',
+      'table' => 'FORMULE_TEST_INTERVENANT',
+      'rtable' => 'TYPE_VOLUME_HORAIRE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'FTVH_FORMULE_TEST_INTERV_FK' => 
+    array (
+      'name' => 'FTVH_FORMULE_TEST_INTERV_FK',
+      'table' => 'FORMULE_TEST_VOLUME_HORAIRE',
+      'rtable' => 'FORMULE_TEST_INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_TEST_ID' => 'ID',
+      ),
+    ),
+    'FTVH_FORMULE_TEST_STRUCTURE_FK' => 
+    array (
+      'name' => 'FTVH_FORMULE_TEST_STRUCTURE_FK',
+      'table' => 'FORMULE_TEST_VOLUME_HORAIRE',
+      'rtable' => 'FORMULE_TEST_STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_TEST_ID' => 'ID',
+      ),
+    ),
+    'GRADE_CORPS_FK' => 
+    array (
+      'name' => 'GRADE_CORPS_FK',
+      'table' => 'GRADE',
+      'rtable' => 'CORPS',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'CORPS_ID' => 'ID',
+      ),
+    ),
+    'GRADE_HCFK' => 
+    array (
+      'name' => 'GRADE_HCFK',
+      'table' => 'GRADE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'GRADE_HDFK' => 
+    array (
+      'name' => 'GRADE_HDFK',
+      'table' => 'GRADE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'GRADE_HMFK' => 
+    array (
+      'name' => 'GRADE_HMFK',
+      'table' => 'GRADE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'GRADE_SOURCE_FK' => 
+    array (
+      'name' => 'GRADE_SOURCE_FK',
+      'table' => 'GRADE',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'GROUPE_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'GROUPE_ELEMENT_PEDAGOGIQUE_FK',
+      'table' => 'GROUPE',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_ID' => 'ID',
+      ),
+    ),
+    'GROUPE_HCFK' => 
+    array (
+      'name' => 'GROUPE_HCFK',
+      'table' => 'GROUPE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'GROUPE_HDFK' => 
+    array (
+      'name' => 'GROUPE_HDFK',
+      'table' => 'GROUPE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'GROUPE_HMFK' => 
+    array (
+      'name' => 'GROUPE_HMFK',
+      'table' => 'GROUPE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'GROUPE_TYPE_FORMATION_HCFK' => 
+    array (
+      'name' => 'GROUPE_TYPE_FORMATION_HCFK',
+      'table' => 'GROUPE_TYPE_FORMATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'GROUPE_TYPE_FORMATION_HDFK' => 
+    array (
+      'name' => 'GROUPE_TYPE_FORMATION_HDFK',
+      'table' => 'GROUPE_TYPE_FORMATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'GROUPE_TYPE_FORMATION_HMFK' => 
+    array (
+      'name' => 'GROUPE_TYPE_FORMATION_HMFK',
+      'table' => 'GROUPE_TYPE_FORMATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'GROUPE_TYPE_FORMATIO_SOURCE_FK' => 
+    array (
+      'name' => 'GROUPE_TYPE_FORMATIO_SOURCE_FK',
+      'table' => 'GROUPE_TYPE_FORMATION',
+      'rtable' => 'SOURCE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'GROUPE_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'GROUPE_TYPE_INTERVENTION_FK',
+      'table' => 'GROUPE',
+      'rtable' => 'TYPE_INTERVENTION',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENTION_ID' => 'ID',
+      ),
+    ),
+    'HSM_INTERVENANT_FK' => 
+    array (
+      'name' => 'HSM_INTERVENANT_FK',
+      'table' => 'HISTO_INTERVENANT_SERVICE',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'HSM_TYPE_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'HSM_TYPE_VOLUME_HORAIRE_FK',
+      'table' => 'HISTO_INTERVENANT_SERVICE',
+      'rtable' => 'TYPE_VOLUME_HORAIRE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'HSM_UTILISATEUR_FK' => 
+    array (
+      'name' => 'HSM_UTILISATEUR_FK',
+      'table' => 'HISTO_INTERVENANT_SERVICE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'INDIC_DIFF_DOSSIER_INT_FK' => 
+    array (
+      'name' => 'INDIC_DIFF_DOSSIER_INT_FK',
+      'table' => 'INDIC_MODIF_DOSSIER',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'INDIC_MODIF_DOSSIER_HCFK' => 
+    array (
+      'name' => 'INDIC_MODIF_DOSSIER_HCFK',
+      'table' => 'INDIC_MODIF_DOSSIER',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'INDIC_MODIF_DOSSIER_HDFK' => 
+    array (
+      'name' => 'INDIC_MODIF_DOSSIER_HDFK',
+      'table' => 'INDIC_MODIF_DOSSIER',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'INDIC_MODIF_DOSSIER_HMFK' => 
+    array (
+      'name' => 'INDIC_MODIF_DOSSIER_HMFK',
+      'table' => 'INDIC_MODIF_DOSSIER',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANTS_CIVILITES_FK' => 
+    array (
+      'name' => 'INTERVENANTS_CIVILITES_FK',
+      'table' => 'INTERVENANT',
+      'rtable' => 'CIVILITE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'CIVILITE_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANT_ANNEE_FK' => 
+    array (
+      'name' => 'INTERVENANT_ANNEE_FK',
+      'table' => 'INTERVENANT',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANT_DEPARTEMENT_FK' => 
+    array (
+      'name' => 'INTERVENANT_DEPARTEMENT_FK',
+      'table' => 'INTERVENANT',
+      'rtable' => 'DEPARTEMENT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'DEP_NAISSANCE_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANT_DISCIPLINE_FK' => 
+    array (
+      'name' => 'INTERVENANT_DISCIPLINE_FK',
+      'table' => 'INTERVENANT',
+      'rtable' => 'DISCIPLINE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'DISCIPLINE_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANT_GRADE_FK' => 
+    array (
+      'name' => 'INTERVENANT_GRADE_FK',
+      'table' => 'INTERVENANT',
+      'rtable' => 'GRADE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'GRADE_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANT_HCFK' => 
+    array (
+      'name' => 'INTERVENANT_HCFK',
+      'table' => 'INTERVENANT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANT_HDFK' => 
+    array (
+      'name' => 'INTERVENANT_HDFK',
+      'table' => 'INTERVENANT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANT_HMFK' => 
+    array (
+      'name' => 'INTERVENANT_HMFK',
+      'table' => 'INTERVENANT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANT_PAYS_NAISS_FK' => 
+    array (
+      'name' => 'INTERVENANT_PAYS_NAISS_FK',
+      'table' => 'INTERVENANT',
+      'rtable' => 'PAYS',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PAYS_NAISSANCE_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANT_PAYS_NAT_FK' => 
+    array (
+      'name' => 'INTERVENANT_PAYS_NAT_FK',
+      'table' => 'INTERVENANT',
+      'rtable' => 'PAYS',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PAYS_NATIONALITE_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANT_SAISIE_INTERV_FK' => 
+    array (
+      'name' => 'INTERVENANT_SAISIE_INTERV_FK',
+      'table' => 'INTERVENANT_SAISIE',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANT_SOURCE_FK' => 
+    array (
+      'name' => 'INTERVENANT_SOURCE_FK',
+      'table' => 'INTERVENANT',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANT_STATUT_FK' => 
+    array (
+      'name' => 'INTERVENANT_STATUT_FK',
+      'table' => 'INTERVENANT',
+      'rtable' => 'STATUT_INTERVENANT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STATUT_ID' => 'ID',
+      ),
+    ),
+    'INTERVENANT_STRUCTURE_FK' => 
+    array (
+      'name' => 'INTERVENANT_STRUCTURE_FK',
+      'table' => 'INTERVENANT',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'IS_STATUT_INTERVENANT_FK' => 
+    array (
+      'name' => 'IS_STATUT_INTERVENANT_FK',
+      'table' => 'INTERVENANT_SAISIE',
+      'rtable' => 'STATUT_INTERVENANT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STATUT_ID' => 'ID',
+      ),
+    ),
+    'LIEN_HCFK' => 
+    array (
+      'name' => 'LIEN_HCFK',
+      'table' => 'LIEN',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'LIEN_HDFK' => 
+    array (
+      'name' => 'LIEN_HDFK',
+      'table' => 'LIEN',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'LIEN_HMFK' => 
+    array (
+      'name' => 'LIEN_HMFK',
+      'table' => 'LIEN',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'LIEN_NOEUD_INF_FK' => 
+    array (
+      'name' => 'LIEN_NOEUD_INF_FK',
+      'table' => 'LIEN',
+      'rtable' => 'NOEUD',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'NOEUD_INF_ID' => 'ID',
+      ),
+    ),
+    'LIEN_NOEUD_SUP_FK' => 
+    array (
+      'name' => 'LIEN_NOEUD_SUP_FK',
+      'table' => 'LIEN',
+      'rtable' => 'NOEUD',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'NOEUD_SUP_ID' => 'ID',
+      ),
+    ),
+    'LIEN_SOURCE_FK' => 
+    array (
+      'name' => 'LIEN_SOURCE_FK',
+      'table' => 'LIEN',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'LIEN_STRUCTURE_FK' => 
+    array (
+      'name' => 'LIEN_STRUCTURE_FK',
+      'table' => 'LIEN',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'MCT_STATUT_INTERVENANT_FK' => 
+    array (
+      'name' => 'MCT_STATUT_INTERVENANT_FK',
+      'table' => 'MODELE_CONTRAT',
+      'rtable' => 'STATUT_INTERVENANT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STATUT_INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'MCT_STRUCTURE_FK' => 
+    array (
+      'name' => 'MCT_STRUCTURE_FK',
+      'table' => 'MODELE_CONTRAT',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'MEP_CENTRE_COUT_FK' => 
+    array (
+      'name' => 'MEP_CENTRE_COUT_FK',
+      'table' => 'MISE_EN_PAIEMENT',
+      'rtable' => 'CENTRE_COUT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'CENTRE_COUT_ID' => 'ID',
+      ),
+    ),
+    'MEP_DOMAINE_FONCTIONNEL_FK' => 
+    array (
+      'name' => 'MEP_DOMAINE_FONCTIONNEL_FK',
+      'table' => 'MISE_EN_PAIEMENT',
+      'rtable' => 'DOMAINE_FONCTIONNEL',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'DOMAINE_FONCTIONNEL_ID' => 'ID',
+      ),
+    ),
+    'MEP_FR_SERVICE_FK' => 
+    array (
+      'name' => 'MEP_FR_SERVICE_FK',
+      'table' => 'MISE_EN_PAIEMENT',
+      'rtable' => 'FORMULE_RESULTAT_SERVICE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'FORMULE_RES_SERVICE_ID' => 'ID',
+      ),
+    ),
+    'MEP_FR_SERVICE_REF_FK' => 
+    array (
+      'name' => 'MEP_FR_SERVICE_REF_FK',
+      'table' => 'MISE_EN_PAIEMENT',
+      'rtable' => 'FORMULE_RESULTAT_SERVICE_REF',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'FORMULE_RES_SERVICE_REF_ID' => 'ID',
+      ),
+    ),
+    'MEP_TYPE_HEURES_FK' => 
+    array (
+      'name' => 'MEP_TYPE_HEURES_FK',
+      'table' => 'MISE_EN_PAIEMENT',
+      'rtable' => 'TYPE_HEURES',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_HEURES_ID' => 'ID',
+      ),
+    ),
+    'MISE_EN_PAIEMENT_HCFK' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_HCFK',
+      'table' => 'MISE_EN_PAIEMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'MISE_EN_PAIEMENT_HDFK' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_HDFK',
+      'table' => 'MISE_EN_PAIEMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'MISE_EN_PAIEMENT_HMFK' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_HMFK',
+      'table' => 'MISE_EN_PAIEMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'MISE_EN_PAIEMENT_PERIODE_FK' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_PERIODE_FK',
+      'table' => 'MISE_EN_PAIEMENT',
+      'rtable' => 'PERIODE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PERIODE_PAIEMENT_ID' => 'ID',
+      ),
+    ),
+    'MISE_EN_PAIEMENT_VALIDATION_FK' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_VALIDATION_FK',
+      'table' => 'MISE_EN_PAIEMENT',
+      'rtable' => 'VALIDATION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VALIDATION_ID' => 'ID',
+      ),
+    ),
+    'MODIFICATION_SERVICE_DU_HCFK' => 
+    array (
+      'name' => 'MODIFICATION_SERVICE_DU_HCFK',
+      'table' => 'MODIFICATION_SERVICE_DU',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'MODIFICATION_SERVICE_DU_HDFK' => 
+    array (
+      'name' => 'MODIFICATION_SERVICE_DU_HDFK',
+      'table' => 'MODIFICATION_SERVICE_DU',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'MODIFICATION_SERVICE_DU_HMFK' => 
+    array (
+      'name' => 'MODIFICATION_SERVICE_DU_HMFK',
+      'table' => 'MODIFICATION_SERVICE_DU',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'MODULATEUR_HCFK' => 
+    array (
+      'name' => 'MODULATEUR_HCFK',
+      'table' => 'MODULATEUR',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'MODULATEUR_HDFK' => 
+    array (
+      'name' => 'MODULATEUR_HDFK',
+      'table' => 'MODULATEUR',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'MODULATEUR_HMFK' => 
+    array (
+      'name' => 'MODULATEUR_HMFK',
+      'table' => 'MODULATEUR',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'MODULATEUR_TYPE_MODULATEUR_FK' => 
+    array (
+      'name' => 'MODULATEUR_TYPE_MODULATEUR_FK',
+      'table' => 'MODULATEUR',
+      'rtable' => 'TYPE_MODULATEUR',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_MODULATEUR_ID' => 'ID',
+      ),
+    ),
+    'MOTIF_MODIFICATION_SERVIC_HCFK' => 
+    array (
+      'name' => 'MOTIF_MODIFICATION_SERVIC_HCFK',
+      'table' => 'MOTIF_MODIFICATION_SERVICE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'MOTIF_MODIFICATION_SERVIC_HDFK' => 
+    array (
+      'name' => 'MOTIF_MODIFICATION_SERVIC_HDFK',
+      'table' => 'MOTIF_MODIFICATION_SERVICE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'MOTIF_MODIFICATION_SERVIC_HMFK' => 
+    array (
+      'name' => 'MOTIF_MODIFICATION_SERVIC_HMFK',
+      'table' => 'MOTIF_MODIFICATION_SERVICE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'MOTIF_NON_PAIEMENT_HCFK' => 
+    array (
+      'name' => 'MOTIF_NON_PAIEMENT_HCFK',
+      'table' => 'MOTIF_NON_PAIEMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'MOTIF_NON_PAIEMENT_HDFK' => 
+    array (
+      'name' => 'MOTIF_NON_PAIEMENT_HDFK',
+      'table' => 'MOTIF_NON_PAIEMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'MOTIF_NON_PAIEMENT_HMFK' => 
+    array (
+      'name' => 'MOTIF_NON_PAIEMENT_HMFK',
+      'table' => 'MOTIF_NON_PAIEMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'MSD_INTERVENANT_FK' => 
+    array (
+      'name' => 'MSD_INTERVENANT_FK',
+      'table' => 'MODIFICATION_SERVICE_DU',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'NOEUD_ANNEE_FK' => 
+    array (
+      'name' => 'NOEUD_ANNEE_FK',
+      'table' => 'NOEUD',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'NOEUD_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'NOEUD_ELEMENT_PEDAGOGIQUE_FK',
+      'table' => 'NOEUD',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_ID' => 'ID',
+      ),
+    ),
+    'NOEUD_ETAPE_FK' => 
+    array (
+      'name' => 'NOEUD_ETAPE_FK',
+      'table' => 'NOEUD',
+      'rtable' => 'ETAPE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ETAPE_ID' => 'ID',
+      ),
+    ),
+    'NOEUD_HCFK' => 
+    array (
+      'name' => 'NOEUD_HCFK',
+      'table' => 'NOEUD',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'NOEUD_HDFK' => 
+    array (
+      'name' => 'NOEUD_HDFK',
+      'table' => 'NOEUD',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'NOEUD_HMFK' => 
+    array (
+      'name' => 'NOEUD_HMFK',
+      'table' => 'NOEUD',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'NOEUD_SOURCE_FK' => 
+    array (
+      'name' => 'NOEUD_SOURCE_FK',
+      'table' => 'NOEUD',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'NOEUD_STRUCTURE_FK' => 
+    array (
+      'name' => 'NOEUD_STRUCTURE_FK',
+      'table' => 'NOEUD',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'NOTIF_INDICATEUR_IFK' => 
+    array (
+      'name' => 'NOTIF_INDICATEUR_IFK',
+      'table' => 'NOTIFICATION_INDICATEUR',
+      'rtable' => 'INDICATEUR',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INDICATEUR_ID' => 'ID',
+      ),
+    ),
+    'PARAMETRE_HCFK' => 
+    array (
+      'name' => 'PARAMETRE_HCFK',
+      'table' => 'PARAMETRE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'PARAMETRE_HDFK' => 
+    array (
+      'name' => 'PARAMETRE_HDFK',
+      'table' => 'PARAMETRE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'PARAMETRE_HMFK' => 
+    array (
+      'name' => 'PARAMETRE_HMFK',
+      'table' => 'PARAMETRE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'PAYS_HCFK' => 
+    array (
+      'name' => 'PAYS_HCFK',
+      'table' => 'PAYS',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'PAYS_HDFK' => 
+    array (
+      'name' => 'PAYS_HDFK',
+      'table' => 'PAYS',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'PAYS_HMFK' => 
+    array (
+      'name' => 'PAYS_HMFK',
+      'table' => 'PAYS',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'PAYS_SOURCE_FK' => 
+    array (
+      'name' => 'PAYS_SOURCE_FK',
+      'table' => 'PAYS',
+      'rtable' => 'SOURCE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'PERIODE_HCFK' => 
+    array (
+      'name' => 'PERIODE_HCFK',
+      'table' => 'PERIODE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'PERIODE_HDFK' => 
+    array (
+      'name' => 'PERIODE_HDFK',
+      'table' => 'PERIODE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'PERIODE_HMFK' => 
+    array (
+      'name' => 'PERIODE_HMFK',
+      'table' => 'PERIODE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'PIECE_JOINTE_FICHIER_FFK' => 
+    array (
+      'name' => 'PIECE_JOINTE_FICHIER_FFK',
+      'table' => 'PIECE_JOINTE_FICHIER',
+      'rtable' => 'FICHIER',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'FICHIER_ID' => 'ID',
+      ),
+    ),
+    'PIECE_JOINTE_FICHIER_PJFK' => 
+    array (
+      'name' => 'PIECE_JOINTE_FICHIER_PJFK',
+      'table' => 'PIECE_JOINTE_FICHIER',
+      'rtable' => 'PIECE_JOINTE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PIECE_JOINTE_ID' => 'ID',
+      ),
+    ),
+    'PIECE_JOINTE_HCFK' => 
+    array (
+      'name' => 'PIECE_JOINTE_HCFK',
+      'table' => 'PIECE_JOINTE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'PIECE_JOINTE_HDFK' => 
+    array (
+      'name' => 'PIECE_JOINTE_HDFK',
+      'table' => 'PIECE_JOINTE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'PIECE_JOINTE_HMFK' => 
+    array (
+      'name' => 'PIECE_JOINTE_HMFK',
+      'table' => 'PIECE_JOINTE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'PIECE_JOINTE_INTERVENANT_FK' => 
+    array (
+      'name' => 'PIECE_JOINTE_INTERVENANT_FK',
+      'table' => 'PIECE_JOINTE',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'PIECE_JOINTE_VFK' => 
+    array (
+      'name' => 'PIECE_JOINTE_VFK',
+      'table' => 'PIECE_JOINTE',
+      'rtable' => 'VALIDATION',
+      'delete_rule' => 'SET NULL',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VALIDATION_ID' => 'ID',
+      ),
+    ),
+    'PJ_TYPE_PIECE_JOINTE_FK' => 
+    array (
+      'name' => 'PJ_TYPE_PIECE_JOINTE_FK',
+      'table' => 'PIECE_JOINTE',
+      'rtable' => 'TYPE_PIECE_JOINTE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_PIECE_JOINTE_ID' => 'ID',
+      ),
+    ),
+    'PLAFONDAPP_ANNEE_DFK' => 
+    array (
+      'name' => 'PLAFONDAPP_ANNEE_DFK',
+      'table' => 'PLAFOND_APPLICATION',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_DEBUT_ID' => 'ID',
+      ),
+    ),
+    'PLAFONDAPP_ANNEE_FFK' => 
+    array (
+      'name' => 'PLAFONDAPP_ANNEE_FFK',
+      'table' => 'PLAFOND_APPLICATION',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_FIN_ID' => 'ID',
+      ),
+    ),
+    'PLAFONDAPP_PLAFOND_ETAT_FK' => 
+    array (
+      'name' => 'PLAFONDAPP_PLAFOND_ETAT_FK',
+      'table' => 'PLAFOND_APPLICATION',
+      'rtable' => 'PLAFOND_ETAT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PLAFOND_ETAT_ID' => 'ID',
+      ),
+    ),
+    'PLAFONDAPP_PLAFOND_FK' => 
+    array (
+      'name' => 'PLAFONDAPP_PLAFOND_FK',
+      'table' => 'PLAFOND_APPLICATION',
+      'rtable' => 'PLAFOND',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PLAFOND_ID' => 'ID',
+      ),
+    ),
+    'PLAFONDAPP_TVH_FK' => 
+    array (
+      'name' => 'PLAFONDAPP_TVH_FK',
+      'table' => 'PLAFOND_APPLICATION',
+      'rtable' => 'TYPE_VOLUME_HORAIRE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'PRIVILEGE_CATEGORIE_FK' => 
+    array (
+      'name' => 'PRIVILEGE_CATEGORIE_FK',
+      'table' => 'PRIVILEGE',
+      'rtable' => 'CATEGORIE_PRIVILEGE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'CATEGORIE_ID' => 'ID',
+      ),
+    ),
+    'ROLE_HCFK' => 
+    array (
+      'name' => 'ROLE_HCFK',
+      'table' => 'ROLE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'ROLE_HDFK' => 
+    array (
+      'name' => 'ROLE_HDFK',
+      'table' => 'ROLE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'ROLE_HMFK' => 
+    array (
+      'name' => 'ROLE_HMFK',
+      'table' => 'ROLE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'ROLE_PERIMETRE_FK' => 
+    array (
+      'name' => 'ROLE_PERIMETRE_FK',
+      'table' => 'ROLE',
+      'rtable' => 'PERIMETRE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PERIMETRE_ID' => 'ID',
+      ),
+    ),
+    'ROLE_PRIVILEGE_PRIVILEGE_FK' => 
+    array (
+      'name' => 'ROLE_PRIVILEGE_PRIVILEGE_FK',
+      'table' => 'ROLE_PRIVILEGE',
+      'rtable' => 'PRIVILEGE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PRIVILEGE_ID' => 'ID',
+      ),
+    ),
+    'ROLE_PRIVILEGE_ROLE_FK' => 
+    array (
+      'name' => 'ROLE_PRIVILEGE_ROLE_FK',
+      'table' => 'ROLE_PRIVILEGE',
+      'rtable' => 'ROLE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ROLE_ID' => 'ID',
+      ),
+    ),
+    'RSV_TYPE_INTERVENANT_FK' => 
+    array (
+      'name' => 'RSV_TYPE_INTERVENANT_FK',
+      'table' => 'REGLE_STRUCTURE_VALIDATION',
+      'rtable' => 'TYPE_INTERVENANT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'RSV_TYPE_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'RSV_TYPE_VOLUME_HORAIRE_FK',
+      'table' => 'REGLE_STRUCTURE_VALIDATION',
+      'rtable' => 'TYPE_VOLUME_HORAIRE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_HCFK' => 
+    array (
+      'name' => 'SCENARIO_HCFK',
+      'table' => 'SCENARIO',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_HDFK' => 
+    array (
+      'name' => 'SCENARIO_HDFK',
+      'table' => 'SCENARIO',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_HMFK' => 
+    array (
+      'name' => 'SCENARIO_HMFK',
+      'table' => 'SCENARIO',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_LIEN_HCFK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_HCFK',
+      'table' => 'SCENARIO_LIEN',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_LIEN_HDFK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_HDFK',
+      'table' => 'SCENARIO_LIEN',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_LIEN_HMFK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_HMFK',
+      'table' => 'SCENARIO_LIEN',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_LIEN_LIEN_FK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_LIEN_FK',
+      'table' => 'SCENARIO_LIEN',
+      'rtable' => 'LIEN',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'LIEN_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_LIEN_SCENARIO_FK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_SCENARIO_FK',
+      'table' => 'SCENARIO_LIEN',
+      'rtable' => 'SCENARIO',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SCENARIO_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_LIEN_SOURCE_FK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_SOURCE_FK',
+      'table' => 'SCENARIO_LIEN',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_HCFK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_HCFK',
+      'table' => 'SCENARIO_NOEUD',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_HDFK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_HDFK',
+      'table' => 'SCENARIO_NOEUD',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_HMFK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_HMFK',
+      'table' => 'SCENARIO_NOEUD',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_NOEUD_FK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_NOEUD_FK',
+      'table' => 'SCENARIO_NOEUD',
+      'rtable' => 'NOEUD',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'NOEUD_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_SCENARIO_FK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_SCENARIO_FK',
+      'table' => 'SCENARIO_NOEUD',
+      'rtable' => 'SCENARIO',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SCENARIO_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_SOURCE_FK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_SOURCE_FK',
+      'table' => 'SCENARIO_NOEUD',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'SCENARIO_STRUCTURE_FK' => 
+    array (
+      'name' => 'SCENARIO_STRUCTURE_FK',
+      'table' => 'SCENARIO',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'SERVICE_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'SERVICE_ELEMENT_PEDAGOGIQUE_FK',
+      'table' => 'SERVICE',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_ID' => 'ID',
+      ),
+    ),
+    'SERVICE_ETABLISSEMENT_FK' => 
+    array (
+      'name' => 'SERVICE_ETABLISSEMENT_FK',
+      'table' => 'SERVICE',
+      'rtable' => 'ETABLISSEMENT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ETABLISSEMENT_ID' => 'ID',
+      ),
+    ),
+    'SERVICE_HCFK' => 
+    array (
+      'name' => 'SERVICE_HCFK',
+      'table' => 'SERVICE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'SERVICE_HDFK' => 
+    array (
+      'name' => 'SERVICE_HDFK',
+      'table' => 'SERVICE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'SERVICE_HMFK' => 
+    array (
+      'name' => 'SERVICE_HMFK',
+      'table' => 'SERVICE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'SERVICE_INTERVENANT_FK' => 
+    array (
+      'name' => 'SERVICE_INTERVENANT_FK',
+      'table' => 'SERVICE',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'SERVICE_REFERENTIEL_HCFK' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL_HCFK',
+      'table' => 'SERVICE_REFERENTIEL',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'SERVICE_REFERENTIEL_HDFK' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL_HDFK',
+      'table' => 'SERVICE_REFERENTIEL',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'SERVICE_REFERENTIEL_HMFK' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL_HMFK',
+      'table' => 'SERVICE_REFERENTIEL',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'SERVICE_REFERENTIEL_SOURCE_FK' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL_SOURCE_FK',
+      'table' => 'SERVICE_REFERENTIEL',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'SERVICE_SOURCE_FK' => 
+    array (
+      'name' => 'SERVICE_SOURCE_FK',
+      'table' => 'SERVICE',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'SEUIL_CHARGE_ANNEE_FK' => 
+    array (
+      'name' => 'SEUIL_CHARGE_ANNEE_FK',
+      'table' => 'SEUIL_CHARGE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'SEUIL_CH_GT_FORMATION_FK' => 
+    array (
+      'name' => 'SEUIL_CH_GT_FORMATION_FK',
+      'table' => 'SEUIL_CHARGE',
+      'rtable' => 'GROUPE_TYPE_FORMATION',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'GROUPE_TYPE_FORMATION_ID' => 'ID',
+      ),
+    ),
+    'SEUIL_CH_SCENARIO_FK' => 
+    array (
+      'name' => 'SEUIL_CH_SCENARIO_FK',
+      'table' => 'SEUIL_CHARGE',
+      'rtable' => 'SCENARIO',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SCENARIO_ID' => 'ID',
+      ),
+    ),
+    'SEUIL_CH_STRUCTURE_FK' => 
+    array (
+      'name' => 'SEUIL_CH_STRUCTURE_FK',
+      'table' => 'SEUIL_CHARGE',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'SEUIL_CH_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'SEUIL_CH_TYPE_INTERVENTION_FK',
+      'table' => 'SEUIL_CHARGE',
+      'rtable' => 'TYPE_INTERVENTION',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENTION_ID' => 'ID',
+      ),
+    ),
+    'SEUIL_CH_UTILISATEUR_HCFK' => 
+    array (
+      'name' => 'SEUIL_CH_UTILISATEUR_HCFK',
+      'table' => 'SEUIL_CHARGE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'SEUIL_CH_UTILISATEUR_HDFK' => 
+    array (
+      'name' => 'SEUIL_CH_UTILISATEUR_HDFK',
+      'table' => 'SEUIL_CHARGE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'SEUIL_CH_UTILISATEUR_HMFK' => 
+    array (
+      'name' => 'SEUIL_CH_UTILISATEUR_HMFK',
+      'table' => 'SEUIL_CHARGE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'SNE_ETAPE_FK' => 
+    array (
+      'name' => 'SNE_ETAPE_FK',
+      'table' => 'SCENARIO_NOEUD_EFFECTIF',
+      'rtable' => 'ETAPE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ETAPE_ID' => 'ID',
+      ),
+    ),
+    'SNE_SCENARIO_NOEUD_FK' => 
+    array (
+      'name' => 'SNE_SCENARIO_NOEUD_FK',
+      'table' => 'SCENARIO_NOEUD_EFFECTIF',
+      'rtable' => 'SCENARIO_NOEUD',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SCENARIO_NOEUD_ID' => 'ID',
+      ),
+    ),
+    'SNE_TYPE_HEURES_FK' => 
+    array (
+      'name' => 'SNE_TYPE_HEURES_FK',
+      'table' => 'SCENARIO_NOEUD_EFFECTIF',
+      'rtable' => 'TYPE_HEURES',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_HEURES_ID' => 'ID',
+      ),
+    ),
+    'SNS_SCENARIO_NOEUD_FK' => 
+    array (
+      'name' => 'SNS_SCENARIO_NOEUD_FK',
+      'table' => 'SCENARIO_NOEUD_SEUIL',
+      'rtable' => 'SCENARIO_NOEUD',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SCENARIO_NOEUD_ID' => 'ID',
+      ),
+    ),
+    'SNS_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'SNS_TYPE_INTERVENTION_FK',
+      'table' => 'SCENARIO_NOEUD_SEUIL',
+      'rtable' => 'TYPE_INTERVENTION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENTION_ID' => 'ID',
+      ),
+    ),
+    'SRFR_FK' => 
+    array (
+      'name' => 'SRFR_FK',
+      'table' => 'SERVICE_REFERENTIEL',
+      'rtable' => 'FONCTION_REFERENTIEL',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'FONCTION_ID' => 'ID',
+      ),
+    ),
+    'SR_INTERVENANT_FK' => 
+    array (
+      'name' => 'SR_INTERVENANT_FK',
+      'table' => 'SERVICE_REFERENTIEL',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'SR_STRUCTURE_FK' => 
+    array (
+      'name' => 'SR_STRUCTURE_FK',
+      'table' => 'SERVICE_REFERENTIEL',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'STATUT_INTERVENANT_HCFK' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_HCFK',
+      'table' => 'STATUT_INTERVENANT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'STATUT_INTERVENANT_HDFK' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_HDFK',
+      'table' => 'STATUT_INTERVENANT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'STATUT_INTERVENANT_HMFK' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_HMFK',
+      'table' => 'STATUT_INTERVENANT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'STATUT_INTERVENANT_SOURCE_FK' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_SOURCE_FK',
+      'table' => 'STATUT_INTERVENANT',
+      'rtable' => 'SOURCE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'STATUT_INTERVENANT_TYPE_FK' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_TYPE_FK',
+      'table' => 'STATUT_INTERVENANT',
+      'rtable' => 'TYPE_INTERVENANT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'STAT_PRIV_PRIVILEGE_FK' => 
+    array (
+      'name' => 'STAT_PRIV_PRIVILEGE_FK',
+      'table' => 'STATUT_PRIVILEGE',
+      'rtable' => 'PRIVILEGE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PRIVILEGE_ID' => 'ID',
+      ),
+    ),
+    'STAT_PRIV_STATUT_FK' => 
+    array (
+      'name' => 'STAT_PRIV_STATUT_FK',
+      'table' => 'STATUT_PRIVILEGE',
+      'rtable' => 'STATUT_INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STATUT_ID' => 'ID',
+      ),
+    ),
+    'STRUCTURE_HCFK' => 
+    array (
+      'name' => 'STRUCTURE_HCFK',
+      'table' => 'STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'STRUCTURE_HDFK' => 
+    array (
+      'name' => 'STRUCTURE_HDFK',
+      'table' => 'STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'STRUCTURE_HMFK' => 
+    array (
+      'name' => 'STRUCTURE_HMFK',
+      'table' => 'STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'STRUCTURE_SOURCE_FK' => 
+    array (
+      'name' => 'STRUCTURE_SOURCE_FK',
+      'table' => 'STRUCTURE',
+      'rtable' => 'SOURCE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'TAS_STATUT_INTERVENANT_FK' => 
+    array (
+      'name' => 'TAS_STATUT_INTERVENANT_FK',
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'rtable' => 'STATUT_INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STATUT_INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TAS_TYPE_AGREMENT_FK' => 
+    array (
+      'name' => 'TAS_TYPE_AGREMENT_FK',
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'rtable' => 'TYPE_AGREMENT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_AGREMENT_ID' => 'ID',
+      ),
+    ),
+    'TAUX_HORAIRE_HETD_HCFK' => 
+    array (
+      'name' => 'TAUX_HORAIRE_HETD_HCFK',
+      'table' => 'TAUX_HORAIRE_HETD',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TAUX_HORAIRE_HETD_HDFK' => 
+    array (
+      'name' => 'TAUX_HORAIRE_HETD_HDFK',
+      'table' => 'TAUX_HORAIRE_HETD',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TAUX_HORAIRE_HETD_HMFK' => 
+    array (
+      'name' => 'TAUX_HORAIRE_HETD_HMFK',
+      'table' => 'TAUX_HORAIRE_HETD',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TBCH_ANNEE_FK' => 
+    array (
+      'name' => 'TBCH_ANNEE_FK',
+      'table' => 'TBL_CHARGENS',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBCH_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'TBCH_ELEMENT_PEDAGOGIQUE_FK',
+      'table' => 'TBL_CHARGENS',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_ID' => 'ID',
+      ),
+    ),
+    'TBCH_ETAPE_FK' => 
+    array (
+      'name' => 'TBCH_ETAPE_FK',
+      'table' => 'TBL_CHARGENS',
+      'rtable' => 'ETAPE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ETAPE_ID' => 'ID',
+      ),
+    ),
+    'TBCH_ETAPE_FKV1' => 
+    array (
+      'name' => 'TBCH_ETAPE_FKV1',
+      'table' => 'TBL_CHARGENS',
+      'rtable' => 'ETAPE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ETAPE_ENS_ID' => 'ID',
+      ),
+    ),
+    'TBCH_GROUPE_TYPE_FORMATION_FK' => 
+    array (
+      'name' => 'TBCH_GROUPE_TYPE_FORMATION_FK',
+      'table' => 'TBL_CHARGENS',
+      'rtable' => 'GROUPE_TYPE_FORMATION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'GROUPE_TYPE_FORMATION_ID' => 'ID',
+      ),
+    ),
+    'TBCH_NOEUD_FK' => 
+    array (
+      'name' => 'TBCH_NOEUD_FK',
+      'table' => 'TBL_CHARGENS',
+      'rtable' => 'NOEUD',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'NOEUD_ID' => 'ID',
+      ),
+    ),
+    'TBCH_SCENARIO_FK' => 
+    array (
+      'name' => 'TBCH_SCENARIO_FK',
+      'table' => 'TBL_CHARGENS',
+      'rtable' => 'SCENARIO',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SCENARIO_ID' => 'ID',
+      ),
+    ),
+    'TBCH_STRUCTURE_FK' => 
+    array (
+      'name' => 'TBCH_STRUCTURE_FK',
+      'table' => 'TBL_CHARGENS',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TBCH_TYPE_HEURES_FK' => 
+    array (
+      'name' => 'TBCH_TYPE_HEURES_FK',
+      'table' => 'TBL_CHARGENS',
+      'rtable' => 'TYPE_HEURES',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_HEURES_ID' => 'ID',
+      ),
+    ),
+    'TBCH_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'TBCH_TYPE_INTERVENTION_FK',
+      'table' => 'TBL_CHARGENS',
+      'rtable' => 'TYPE_INTERVENTION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENTION_ID' => 'ID',
+      ),
+    ),
+    'TBL_AGR_AGREMENT_FK' => 
+    array (
+      'name' => 'TBL_AGR_AGREMENT_FK',
+      'table' => 'TBL_AGREMENT',
+      'rtable' => 'AGREMENT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'AGREMENT_ID' => 'ID',
+      ),
+    ),
+    'TBL_AGR_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_AGR_ANNEE_FK',
+      'table' => 'TBL_AGREMENT',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_AGR_INTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_AGR_INTERVENANT_FK',
+      'table' => 'TBL_AGREMENT',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_AGR_STRUCTURE_FK' => 
+    array (
+      'name' => 'TBL_AGR_STRUCTURE_FK',
+      'table' => 'TBL_AGREMENT',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TBL_AGR_TYPE_AGREMENT_FK' => 
+    array (
+      'name' => 'TBL_AGR_TYPE_AGREMENT_FK',
+      'table' => 'TBL_AGREMENT',
+      'rtable' => 'TYPE_AGREMENT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_AGREMENT_ID' => 'ID',
+      ),
+    ),
+    'TBL_CLOTURE_REALISE_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_CLOTURE_REALISE_ANNEE_FK',
+      'table' => 'TBL_CLOTURE_REALISE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_CLO_REAL_INTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_CLO_REAL_INTERVENANT_FK',
+      'table' => 'TBL_CLOTURE_REALISE',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_CONTRAT_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_CONTRAT_ANNEE_FK',
+      'table' => 'TBL_CONTRAT',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_CONTRAT_INTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_CONTRAT_INTERVENANT_FK',
+      'table' => 'TBL_CONTRAT',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_CONTRAT_STRUCTURE_FK' => 
+    array (
+      'name' => 'TBL_CONTRAT_STRUCTURE_FK',
+      'table' => 'TBL_CONTRAT',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TBL_CSD_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_CSD_ANNEE_FK',
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_CSD_GTF_FK' => 
+    array (
+      'name' => 'TBL_CSD_GTF_FK',
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'rtable' => 'GROUPE_TYPE_FORMATION',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'GROUPE_TYPE_FORMATION_ID' => 'ID',
+      ),
+    ),
+    'TBL_CSD_SCENARIO_FK' => 
+    array (
+      'name' => 'TBL_CSD_SCENARIO_FK',
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'rtable' => 'SCENARIO',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SCENARIO_ID' => 'ID',
+      ),
+    ),
+    'TBL_CSD_STRUCTURE_FK' => 
+    array (
+      'name' => 'TBL_CSD_STRUCTURE_FK',
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TBL_CSD_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'TBL_CSD_TYPE_INTERVENTION_FK',
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'rtable' => 'TYPE_INTERVENTION',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENTION_ID' => 'ID',
+      ),
+    ),
+    'TBL_DEMS_TBL_FK' => 
+    array (
+      'name' => 'TBL_DEMS_TBL_FK',
+      'table' => 'TBL_DEMS',
+      'rtable' => 'TBL',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TBL_NAME' => 'TBL_NAME',
+      ),
+    ),
+    'TBL_DMLIQ_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_DMLIQ_ANNEE_FK',
+      'table' => 'TBL_DMEP_LIQUIDATION',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_DMLIQ_STRUCTURE_FK' => 
+    array (
+      'name' => 'TBL_DMLIQ_STRUCTURE_FK',
+      'table' => 'TBL_DMEP_LIQUIDATION',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TBL_DMLIQ_TYPE_RESSOURCE_FK' => 
+    array (
+      'name' => 'TBL_DMLIQ_TYPE_RESSOURCE_FK',
+      'table' => 'TBL_DMEP_LIQUIDATION',
+      'rtable' => 'TYPE_RESSOURCE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_RESSOURCE_ID' => 'ID',
+      ),
+    ),
+    'TBL_DOSSIER_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_DOSSIER_ANNEE_FK',
+      'table' => 'TBL_DOSSIER',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_DOSSIER_DOSSIER_FK' => 
+    array (
+      'name' => 'TBL_DOSSIER_DOSSIER_FK',
+      'table' => 'TBL_DOSSIER',
+      'rtable' => 'DOSSIER',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'DOSSIER_ID' => 'ID',
+      ),
+    ),
+    'TBL_DOSSIER_INTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_DOSSIER_INTERVENANT_FK',
+      'table' => 'TBL_DOSSIER',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_DOSSIER_VALIDATION_FK' => 
+    array (
+      'name' => 'TBL_DOSSIER_VALIDATION_FK',
+      'table' => 'TBL_DOSSIER',
+      'rtable' => 'VALIDATION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VALIDATION_ID' => 'ID',
+      ),
+    ),
+    'TBL_LIEN_LIEN_FK' => 
+    array (
+      'name' => 'TBL_LIEN_LIEN_FK',
+      'table' => 'TBL_LIEN',
+      'rtable' => 'LIEN',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'LIEN_ID' => 'ID',
+      ),
+    ),
+    'TBL_LIEN_NOEUD_INF_FK' => 
+    array (
+      'name' => 'TBL_LIEN_NOEUD_INF_FK',
+      'table' => 'TBL_LIEN',
+      'rtable' => 'NOEUD',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'NOEUD_INF_ID' => 'ID',
+      ),
+    ),
+    'TBL_LIEN_NOEUD_SUP_FK' => 
+    array (
+      'name' => 'TBL_LIEN_NOEUD_SUP_FK',
+      'table' => 'TBL_LIEN',
+      'rtable' => 'NOEUD',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'NOEUD_SUP_ID' => 'ID',
+      ),
+    ),
+    'TBL_LIEN_SCENARIO_FK' => 
+    array (
+      'name' => 'TBL_LIEN_SCENARIO_FK',
+      'table' => 'TBL_LIEN',
+      'rtable' => 'SCENARIO',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SCENARIO_ID' => 'ID',
+      ),
+    ),
+    'TBL_LIEN_SCENARIO_LIEN_FK' => 
+    array (
+      'name' => 'TBL_LIEN_SCENARIO_LIEN_FK',
+      'table' => 'TBL_LIEN',
+      'rtable' => 'SCENARIO_LIEN',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SCENARIO_LIEN_ID' => 'ID',
+      ),
+    ),
+    'TBL_LIEN_STRUCTURE_FK' => 
+    array (
+      'name' => 'TBL_LIEN_STRUCTURE_FK',
+      'table' => 'TBL_LIEN',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TBL_PAIEMENT_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_PAIEMENT_ANNEE_FK',
+      'table' => 'TBL_PAIEMENT',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_PAIEMENT_FRSR_FK' => 
+    array (
+      'name' => 'TBL_PAIEMENT_FRSR_FK',
+      'table' => 'TBL_PAIEMENT',
+      'rtable' => 'FORMULE_RESULTAT_SERVICE_REF',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'FORMULE_RES_SERVICE_REF_ID' => 'ID',
+      ),
+    ),
+    'TBL_PAIEMENT_FRS_FK' => 
+    array (
+      'name' => 'TBL_PAIEMENT_FRS_FK',
+      'table' => 'TBL_PAIEMENT',
+      'rtable' => 'FORMULE_RESULTAT_SERVICE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'FORMULE_RES_SERVICE_ID' => 'ID',
+      ),
+    ),
+    'TBL_PAIEMENT_INTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_PAIEMENT_INTERVENANT_FK',
+      'table' => 'TBL_PAIEMENT',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_PAIEMENT_MEP_FK' => 
+    array (
+      'name' => 'TBL_PAIEMENT_MEP_FK',
+      'table' => 'TBL_PAIEMENT',
+      'rtable' => 'MISE_EN_PAIEMENT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'MISE_EN_PAIEMENT_ID' => 'ID',
+      ),
+    ),
+    'TBL_PAIEMENT_PERIODE_FK' => 
+    array (
+      'name' => 'TBL_PAIEMENT_PERIODE_FK',
+      'table' => 'TBL_PAIEMENT',
+      'rtable' => 'PERIODE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PERIODE_PAIEMENT_ID' => 'ID',
+      ),
+    ),
+    'TBL_PAIEMENT_STRUCTURE_FK' => 
+    array (
+      'name' => 'TBL_PAIEMENT_STRUCTURE_FK',
+      'table' => 'TBL_PAIEMENT',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TBL_PIECE_JOINTE_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE_ANNEE_FK',
+      'table' => 'TBL_PIECE_JOINTE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_PJD_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_PJD_ANNEE_FK',
+      'table' => 'TBL_PIECE_JOINTE_DEMANDE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_PJD_INTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_PJD_INTERVENANT_FK',
+      'table' => 'TBL_PIECE_JOINTE_DEMANDE',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_PJD_TYPE_PIECE_JOINTE_FK' => 
+    array (
+      'name' => 'TBL_PJD_TYPE_PIECE_JOINTE_FK',
+      'table' => 'TBL_PIECE_JOINTE_DEMANDE',
+      'rtable' => 'TYPE_PIECE_JOINTE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_PIECE_JOINTE_ID' => 'ID',
+      ),
+    ),
+    'TBL_PJF_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_PJF_ANNEE_FK',
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_PJF_FICHIER_FK' => 
+    array (
+      'name' => 'TBL_PJF_FICHIER_FK',
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'rtable' => 'FICHIER',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'FICHIER_ID' => 'ID',
+      ),
+    ),
+    'TBL_PJF_INTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_PJF_INTERVENANT_FK',
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_PJF_PIECE_JOINTE_FK' => 
+    array (
+      'name' => 'TBL_PJF_PIECE_JOINTE_FK',
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'rtable' => 'PIECE_JOINTE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PIECE_JOINTE_ID' => 'ID',
+      ),
+    ),
+    'TBL_PJF_TYPE_PIECE_JOINTE_FK' => 
+    array (
+      'name' => 'TBL_PJF_TYPE_PIECE_JOINTE_FK',
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'rtable' => 'TYPE_PIECE_JOINTE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_PIECE_JOINTE_ID' => 'ID',
+      ),
+    ),
+    'TBL_PJF_VALIDATION_FK' => 
+    array (
+      'name' => 'TBL_PJF_VALIDATION_FK',
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'rtable' => 'VALIDATION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VALIDATION_ID' => 'ID',
+      ),
+    ),
+    'TBL_PJ_INTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_PJ_INTERVENANT_FK',
+      'table' => 'TBL_PIECE_JOINTE',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_PJ_TYPE_PIECE_JOINTE_FK' => 
+    array (
+      'name' => 'TBL_PJ_TYPE_PIECE_JOINTE_FK',
+      'table' => 'TBL_PIECE_JOINTE',
+      'rtable' => 'TYPE_PIECE_JOINTE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_PIECE_JOINTE_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_ANNEE_FK',
+      'table' => 'TBL_SERVICE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_ELEMENT_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_ELEMENT_FK',
+      'table' => 'TBL_SERVICE',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_ETAPE_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_ETAPE_FK',
+      'table' => 'TBL_SERVICE',
+      'rtable' => 'ETAPE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ETAPE_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_INTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_INTERVENANT_FK',
+      'table' => 'TBL_SERVICE',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_PERIODE_EP_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_PERIODE_EP_FK',
+      'table' => 'TBL_SERVICE',
+      'rtable' => 'PERIODE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_PERIODE_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_REF_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_REF_ANNEE_FK',
+      'table' => 'TBL_SERVICE_REFERENTIEL',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_REF_INTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_REF_INTERVENANT_FK',
+      'table' => 'TBL_SERVICE_REFERENTIEL',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_REF_STRUCTURE_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_REF_STRUCTURE_FK',
+      'table' => 'TBL_SERVICE_REFERENTIEL',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_REF_TVH_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_REF_TVH_FK',
+      'table' => 'TBL_SERVICE_REFERENTIEL',
+      'rtable' => 'TYPE_VOLUME_HORAIRE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_SAISIE_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_SAISIE_ANNEE_FK',
+      'table' => 'TBL_SERVICE_SAISIE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_SERVICE_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_SERVICE_FK',
+      'table' => 'TBL_SERVICE',
+      'rtable' => 'SERVICE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SERVICE_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_STRUCTURE_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_STRUCTURE_FK',
+      'table' => 'TBL_SERVICE',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_STRUCTURE_FKV1' => 
+    array (
+      'name' => 'TBL_SERVICE_STRUCTURE_FKV1',
+      'table' => 'TBL_SERVICE',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_TINTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_TINTERVENANT_FK',
+      'table' => 'TBL_SERVICE',
+      'rtable' => 'TYPE_INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_TVH_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_TVH_FK',
+      'table' => 'TBL_SERVICE',
+      'rtable' => 'TYPE_VOLUME_HORAIRE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'TBL_SRV_SAISIE_INTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_SRV_SAISIE_INTERVENANT_FK',
+      'table' => 'TBL_SERVICE_SAISIE',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_WORKFLOW_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_WORKFLOW_ANNEE_FK',
+      'table' => 'TBL_WORKFLOW',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TBL_WORKFLOW_EFK' => 
+    array (
+      'name' => 'TBL_WORKFLOW_EFK',
+      'table' => 'TBL_WORKFLOW',
+      'rtable' => 'WF_ETAPE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ETAPE_ID' => 'ID',
+      ),
+    ),
+    'TBL_WORKFLOW_IFK' => 
+    array (
+      'name' => 'TBL_WORKFLOW_IFK',
+      'table' => 'TBL_WORKFLOW',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_WORKFLOW_SFK' => 
+    array (
+      'name' => 'TBL_WORKFLOW_SFK',
+      'table' => 'TBL_WORKFLOW',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TBL_WORKFLOW_STATUT_FK' => 
+    array (
+      'name' => 'TBL_WORKFLOW_STATUT_FK',
+      'table' => 'TBL_WORKFLOW',
+      'rtable' => 'STATUT_INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STATUT_INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TBL_WORKFLOW_TINTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_WORKFLOW_TINTERVENANT_FK',
+      'table' => 'TBL_WORKFLOW',
+      'rtable' => 'TYPE_INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TD_TYPE_RESSOURCE_FK' => 
+    array (
+      'name' => 'TD_TYPE_RESSOURCE_FK',
+      'table' => 'TYPE_DOTATION',
+      'rtable' => 'TYPE_RESSOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_RESSOURCE_ID' => 'ID',
+      ),
+    ),
+    'TIEP_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'TIEP_ELEMENT_PEDAGOGIQUE_FK',
+      'table' => 'TYPE_INTERVENTION_EP',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_ID' => 'ID',
+      ),
+    ),
+    'TIEP_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'TIEP_TYPE_INTERVENTION_FK',
+      'table' => 'TYPE_INTERVENTION_EP',
+      'rtable' => 'TYPE_INTERVENTION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENTION_ID' => 'ID',
+      ),
+    ),
+    'TIS_ANNEE_DEBUT_FK' => 
+    array (
+      'name' => 'TIS_ANNEE_DEBUT_FK',
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_DEBUT_ID' => 'ID',
+      ),
+    ),
+    'TIS_ANNEE_FIN_FK' => 
+    array (
+      'name' => 'TIS_ANNEE_FIN_FK',
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_FIN_ID' => 'ID',
+      ),
+    ),
+    'TIS_STATUT_INTERVENANT_FK' => 
+    array (
+      'name' => 'TIS_STATUT_INTERVENANT_FK',
+      'table' => 'TYPE_INTERVENTION_STATUT',
+      'rtable' => 'STATUT_INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STATUT_INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TIS_STRUCTURE_FK' => 
+    array (
+      'name' => 'TIS_STRUCTURE_FK',
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TIS_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'TIS_TYPE_INTERVENTION_FK',
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'rtable' => 'TYPE_INTERVENTION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENTION_ID' => 'ID',
+      ),
+    ),
+    'TIS_TYPE_INTERVENTION_FKV1' => 
+    array (
+      'name' => 'TIS_TYPE_INTERVENTION_FKV1',
+      'table' => 'TYPE_INTERVENTION_STATUT',
+      'rtable' => 'TYPE_INTERVENTION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENTION_ID' => 'ID',
+      ),
+    ),
+    'TI_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'TI_TYPE_INTERVENTION_FK',
+      'table' => 'TYPE_INTERVENTION',
+      'rtable' => 'TYPE_INTERVENTION',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENTION_MAQUETTE_ID' => 'ID',
+      ),
+    ),
+    'TME_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'TME_ELEMENT_PEDAGOGIQUE_FK',
+      'table' => 'TYPE_MODULATEUR_EP',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_ID' => 'ID',
+      ),
+    ),
+    'TME_TYPE_MODULATEUR_FK' => 
+    array (
+      'name' => 'TME_TYPE_MODULATEUR_FK',
+      'table' => 'TYPE_MODULATEUR_EP',
+      'rtable' => 'TYPE_MODULATEUR',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_MODULATEUR_ID' => 'ID',
+      ),
+    ),
+    'TMS_ANNEE_DEBUT_FK' => 
+    array (
+      'name' => 'TMS_ANNEE_DEBUT_FK',
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_DEBUT_ID' => 'ID',
+      ),
+    ),
+    'TMS_ANNEE_FIN_FK' => 
+    array (
+      'name' => 'TMS_ANNEE_FIN_FK',
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_FIN_ID' => 'ID',
+      ),
+    ),
+    'TMS_STRUCTURE_FK' => 
+    array (
+      'name' => 'TMS_STRUCTURE_FK',
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TMS_TYPE_MODUL_FK' => 
+    array (
+      'name' => 'TMS_TYPE_MODUL_FK',
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'rtable' => 'TYPE_MODULATEUR',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_MODULATEUR_ID' => 'ID',
+      ),
+    ),
+    'TPJS_ANNEE_DEB_FK' => 
+    array (
+      'name' => 'TPJS_ANNEE_DEB_FK',
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_DEBUT_ID' => 'ID',
+      ),
+    ),
+    'TPJS_ANNEE_FIN_FK' => 
+    array (
+      'name' => 'TPJS_ANNEE_FIN_FK',
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_FIN_ID' => 'ID',
+      ),
+    ),
+    'TPJS_STATUT_INTERVENANT_FK' => 
+    array (
+      'name' => 'TPJS_STATUT_INTERVENANT_FK',
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'rtable' => 'STATUT_INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STATUT_INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TPJS_TYPE_PIECE_JOINTE_FK' => 
+    array (
+      'name' => 'TPJS_TYPE_PIECE_JOINTE_FK',
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'rtable' => 'TYPE_PIECE_JOINTE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_PIECE_JOINTE_ID' => 'ID',
+      ),
+    ),
+    'TVE_ANNEE_FK' => 
+    array (
+      'name' => 'TVE_ANNEE_FK',
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TVE_INTERVENANT_FK' => 
+    array (
+      'name' => 'TVE_INTERVENANT_FK',
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TVE_SERVICE_FK' => 
+    array (
+      'name' => 'TVE_SERVICE_FK',
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'rtable' => 'SERVICE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SERVICE_ID' => 'ID',
+      ),
+    ),
+    'TVE_STRUCTURE_FK' => 
+    array (
+      'name' => 'TVE_STRUCTURE_FK',
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TVE_TYPE_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'TVE_TYPE_VOLUME_HORAIRE_FK',
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'rtable' => 'TYPE_VOLUME_HORAIRE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'TVE_VALIDATION_FK' => 
+    array (
+      'name' => 'TVE_VALIDATION_FK',
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'rtable' => 'VALIDATION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VALIDATION_ID' => 'ID',
+      ),
+    ),
+    'TVE_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'TVE_VOLUME_HORAIRE_FK',
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'rtable' => 'VOLUME_HORAIRE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'TVR_ANNEE_FK' => 
+    array (
+      'name' => 'TVR_ANNEE_FK',
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'rtable' => 'ANNEE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_ID' => 'ID',
+      ),
+    ),
+    'TVR_INTERVENANT_FK' => 
+    array (
+      'name' => 'TVR_INTERVENANT_FK',
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'TVR_SERVICE_REFERENTIEL_FK' => 
+    array (
+      'name' => 'TVR_SERVICE_REFERENTIEL_FK',
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'rtable' => 'SERVICE_REFERENTIEL',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SERVICE_REFERENTIEL_ID' => 'ID',
+      ),
+    ),
+    'TVR_STRUCTURE_FK' => 
+    array (
+      'name' => 'TVR_STRUCTURE_FK',
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'TVR_TYPE_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'TVR_TYPE_VOLUME_HORAIRE_FK',
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'rtable' => 'TYPE_VOLUME_HORAIRE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'TVR_VALIDATION_FK' => 
+    array (
+      'name' => 'TVR_VALIDATION_FK',
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'rtable' => 'VALIDATION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VALIDATION_ID' => 'ID',
+      ),
+    ),
+    'TVR_VOLUME_HORAIRE_REF_FK' => 
+    array (
+      'name' => 'TVR_VOLUME_HORAIRE_REF_FK',
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'rtable' => 'VOLUME_HORAIRE_REF',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VOLUME_HORAIRE_REF_ID' => 'ID',
+      ),
+    ),
+    'TYPE_AGREMENT_HCFK' => 
+    array (
+      'name' => 'TYPE_AGREMENT_HCFK',
+      'table' => 'TYPE_AGREMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_AGREMENT_HDFK' => 
+    array (
+      'name' => 'TYPE_AGREMENT_HDFK',
+      'table' => 'TYPE_AGREMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_AGREMENT_HMFK' => 
+    array (
+      'name' => 'TYPE_AGREMENT_HMFK',
+      'table' => 'TYPE_AGREMENT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_AGREMENT_STATUT_HCFK' => 
+    array (
+      'name' => 'TYPE_AGREMENT_STATUT_HCFK',
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_AGREMENT_STATUT_HDFK' => 
+    array (
+      'name' => 'TYPE_AGREMENT_STATUT_HDFK',
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_AGREMENT_STATUT_HMFK' => 
+    array (
+      'name' => 'TYPE_AGREMENT_STATUT_HMFK',
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_CONTRAT_HCFK' => 
+    array (
+      'name' => 'TYPE_CONTRAT_HCFK',
+      'table' => 'TYPE_CONTRAT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_CONTRAT_HDFK' => 
+    array (
+      'name' => 'TYPE_CONTRAT_HDFK',
+      'table' => 'TYPE_CONTRAT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_CONTRAT_HMFK' => 
+    array (
+      'name' => 'TYPE_CONTRAT_HMFK',
+      'table' => 'TYPE_CONTRAT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_DOTATION_HCFK' => 
+    array (
+      'name' => 'TYPE_DOTATION_HCFK',
+      'table' => 'TYPE_DOTATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_DOTATION_HDFK' => 
+    array (
+      'name' => 'TYPE_DOTATION_HDFK',
+      'table' => 'TYPE_DOTATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_DOTATION_HMFK' => 
+    array (
+      'name' => 'TYPE_DOTATION_HMFK',
+      'table' => 'TYPE_DOTATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_DOTATION_SOURCE_FK' => 
+    array (
+      'name' => 'TYPE_DOTATION_SOURCE_FK',
+      'table' => 'TYPE_DOTATION',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'TYPE_FORMATION_GROUPE_FK' => 
+    array (
+      'name' => 'TYPE_FORMATION_GROUPE_FK',
+      'table' => 'TYPE_FORMATION',
+      'rtable' => 'GROUPE_TYPE_FORMATION',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'GROUPE_ID' => 'ID',
+      ),
+    ),
+    'TYPE_FORMATION_HCFK' => 
+    array (
+      'name' => 'TYPE_FORMATION_HCFK',
+      'table' => 'TYPE_FORMATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_FORMATION_HDFK' => 
+    array (
+      'name' => 'TYPE_FORMATION_HDFK',
+      'table' => 'TYPE_FORMATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_FORMATION_HMFK' => 
+    array (
+      'name' => 'TYPE_FORMATION_HMFK',
+      'table' => 'TYPE_FORMATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_FORMATION_SOURCE_FK' => 
+    array (
+      'name' => 'TYPE_FORMATION_SOURCE_FK',
+      'table' => 'TYPE_FORMATION',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'TYPE_HEURES_HCFK' => 
+    array (
+      'name' => 'TYPE_HEURES_HCFK',
+      'table' => 'TYPE_HEURES',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_HEURES_HDFK' => 
+    array (
+      'name' => 'TYPE_HEURES_HDFK',
+      'table' => 'TYPE_HEURES',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_HEURES_HMFK' => 
+    array (
+      'name' => 'TYPE_HEURES_HMFK',
+      'table' => 'TYPE_HEURES',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_HEURES_TYPE_HEURES_FK' => 
+    array (
+      'name' => 'TYPE_HEURES_TYPE_HEURES_FK',
+      'table' => 'TYPE_HEURES',
+      'rtable' => 'TYPE_HEURES',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_HEURES_ELEMENT_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENANT_HCFK' => 
+    array (
+      'name' => 'TYPE_INTERVENANT_HCFK',
+      'table' => 'TYPE_INTERVENANT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENANT_HDFK' => 
+    array (
+      'name' => 'TYPE_INTERVENANT_HDFK',
+      'table' => 'TYPE_INTERVENANT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENANT_HMFK' => 
+    array (
+      'name' => 'TYPE_INTERVENANT_HMFK',
+      'table' => 'TYPE_INTERVENANT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_ANNEE_FK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_ANNEE_FK',
+      'table' => 'TYPE_INTERVENTION',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_DEBUT_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_ANNEE_FKV1' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_ANNEE_FKV1',
+      'table' => 'TYPE_INTERVENTION',
+      'rtable' => 'ANNEE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ANNEE_FIN_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_EP_HCFK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_EP_HCFK',
+      'table' => 'TYPE_INTERVENTION_EP',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_EP_HDFK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_EP_HDFK',
+      'table' => 'TYPE_INTERVENTION_EP',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_EP_HMFK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_EP_HMFK',
+      'table' => 'TYPE_INTERVENTION_EP',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_EP_SOURCE_FK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_EP_SOURCE_FK',
+      'table' => 'TYPE_INTERVENTION_EP',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_HCFK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_HCFK',
+      'table' => 'TYPE_INTERVENTION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_HDFK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_HDFK',
+      'table' => 'TYPE_INTERVENTION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_HMFK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_HMFK',
+      'table' => 'TYPE_INTERVENTION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_STRUCTU_HCFK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STRUCTU_HCFK',
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_STRUCTU_HDFK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STRUCTU_HDFK',
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_STRUCTU_HMFK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STRUCTU_HMFK',
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP_HCFK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP_HCFK',
+      'table' => 'TYPE_MODULATEUR_EP',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP_HDFK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP_HDFK',
+      'table' => 'TYPE_MODULATEUR_EP',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP_HMFK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP_HMFK',
+      'table' => 'TYPE_MODULATEUR_EP',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP_SOURCE_FK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP_SOURCE_FK',
+      'table' => 'TYPE_MODULATEUR_EP',
+      'rtable' => 'SOURCE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_HCFK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_HCFK',
+      'table' => 'TYPE_MODULATEUR',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_HDFK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_HDFK',
+      'table' => 'TYPE_MODULATEUR',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_HMFK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_HMFK',
+      'table' => 'TYPE_MODULATEUR',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_STRUCTURE_HCFK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_STRUCTURE_HCFK',
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_STRUCTURE_HDFK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_STRUCTURE_HDFK',
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_STRUCTURE_HMFK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_STRUCTURE_HMFK',
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_HCFK' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_HCFK',
+      'table' => 'TYPE_PIECE_JOINTE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_HDFK' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_HDFK',
+      'table' => 'TYPE_PIECE_JOINTE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_HMFK' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_HMFK',
+      'table' => 'TYPE_PIECE_JOINTE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_STATUT_HCFK' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_STATUT_HCFK',
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_STATUT_HDFK' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_STATUT_HDFK',
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_STATUT_HMFK' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_STATUT_HMFK',
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_RESSOURCE_HCFK' => 
+    array (
+      'name' => 'TYPE_RESSOURCE_HCFK',
+      'table' => 'TYPE_RESSOURCE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_RESSOURCE_HDFK' => 
+    array (
+      'name' => 'TYPE_RESSOURCE_HDFK',
+      'table' => 'TYPE_RESSOURCE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'TYPE_RESSOURCE_HMFK' => 
+    array (
+      'name' => 'TYPE_RESSOURCE_HMFK',
+      'table' => 'TYPE_RESSOURCE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'VALIDATION_HCFK' => 
+    array (
+      'name' => 'VALIDATION_HCFK',
+      'table' => 'VALIDATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'VALIDATION_HDFK' => 
+    array (
+      'name' => 'VALIDATION_HDFK',
+      'table' => 'VALIDATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'VALIDATION_HMFK' => 
+    array (
+      'name' => 'VALIDATION_HMFK',
+      'table' => 'VALIDATION',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'VALIDATION_INTERVENANT_FK' => 
+    array (
+      'name' => 'VALIDATION_INTERVENANT_FK',
+      'table' => 'VALIDATION',
+      'rtable' => 'INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'VALIDATION_STRUCTURE_FK' => 
+    array (
+      'name' => 'VALIDATION_STRUCTURE_FK',
+      'table' => 'VALIDATION',
+      'rtable' => 'STRUCTURE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'STRUCTURE_ID' => 'ID',
+      ),
+    ),
+    'VALIDATION_TYPE_VALIDATION_FK' => 
+    array (
+      'name' => 'VALIDATION_TYPE_VALIDATION_FK',
+      'table' => 'VALIDATION',
+      'rtable' => 'TYPE_VALIDATION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_VALIDATION_ID' => 'ID',
+      ),
+    ),
+    'VHC_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'VHC_ELEMENT_PEDAGOGIQUE_FK',
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_ID' => 'ID',
+      ),
+    ),
+    'VHC_SCENARIO_FK' => 
+    array (
+      'name' => 'VHC_SCENARIO_FK',
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'rtable' => 'SCENARIO',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SCENARIO_ID' => 'ID',
+      ),
+    ),
+    'VHC_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'VHC_TYPE_INTERVENTION_FK',
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'rtable' => 'TYPE_INTERVENTION',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENTION_ID' => 'ID',
+      ),
+    ),
+    'VHENS_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'VHENS_ELEMENT_PEDAGOGIQUE_FK',
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'rtable' => 'ELEMENT_PEDAGOGIQUE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ELEMENT_PEDAGOGIQUE_ID' => 'ID',
+      ),
+    ),
+    'VHENS_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'VHENS_TYPE_INTERVENTION_FK',
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'rtable' => 'TYPE_INTERVENTION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENTION_ID' => 'ID',
+      ),
+    ),
+    'VHIT_FK' => 
+    array (
+      'name' => 'VHIT_FK',
+      'table' => 'VOLUME_HORAIRE',
+      'rtable' => 'TYPE_INTERVENTION',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENTION_ID' => 'ID',
+      ),
+    ),
+    'VHMNP_FK' => 
+    array (
+      'name' => 'VHMNP_FK',
+      'table' => 'VOLUME_HORAIRE',
+      'rtable' => 'MOTIF_NON_PAIEMENT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'MOTIF_NON_PAIEMENT_ID' => 'ID',
+      ),
+    ),
+    'VHR_SERVICE_REFERENTIEL_FK' => 
+    array (
+      'name' => 'VHR_SERVICE_REFERENTIEL_FK',
+      'table' => 'VOLUME_HORAIRE_REF',
+      'rtable' => 'SERVICE_REFERENTIEL',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SERVICE_REFERENTIEL_ID' => 'ID',
+      ),
+    ),
+    'VHR_TYPE_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'VHR_TYPE_VOLUME_HORAIRE_FK',
+      'table' => 'VOLUME_HORAIRE_REF',
+      'rtable' => 'TYPE_VOLUME_HORAIRE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'VH_PERIODE_FK' => 
+    array (
+      'name' => 'VH_PERIODE_FK',
+      'table' => 'VOLUME_HORAIRE',
+      'rtable' => 'PERIODE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'PERIODE_ID' => 'ID',
+      ),
+    ),
+    'VH_TYPE_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'VH_TYPE_VOLUME_HORAIRE_FK',
+      'table' => 'VOLUME_HORAIRE',
+      'rtable' => 'TYPE_VOLUME_HORAIRE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'VOLUMES_HORAIRES_SERVICES_FK' => 
+    array (
+      'name' => 'VOLUMES_HORAIRES_SERVICES_FK',
+      'table' => 'VOLUME_HORAIRE',
+      'rtable' => 'SERVICE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SERVICE_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARGE_HCFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARGE_HCFK',
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARGE_HDFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARGE_HDFK',
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARGE_HMFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARGE_HMFK',
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARG_SOURCE_FK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARG_SOURCE_FK',
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_CONTRAT_FK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CONTRAT_FK',
+      'table' => 'VOLUME_HORAIRE',
+      'rtable' => 'CONTRAT',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'CONTRAT_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_ENS_HCFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS_HCFK',
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_ENS_HDFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS_HDFK',
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_ENS_HMFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS_HMFK',
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_ENS_SOURCE_FK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS_SOURCE_FK',
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'rtable' => 'SOURCE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_HCFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_HCFK',
+      'table' => 'VOLUME_HORAIRE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_HDFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_HDFK',
+      'table' => 'VOLUME_HORAIRE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_HMFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_HMFK',
+      'table' => 'VOLUME_HORAIRE',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_REF_HCFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_HCFK',
+      'table' => 'VOLUME_HORAIRE_REF',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_CREATEUR_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_REF_HDFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_HDFK',
+      'table' => 'VOLUME_HORAIRE_REF',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_DESTRUCTEUR_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_REF_HMFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_HMFK',
+      'table' => 'VOLUME_HORAIRE_REF',
+      'rtable' => 'UTILISATEUR',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'HISTO_MODIFICATEUR_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_REF_SOURCE_FK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_SOURCE_FK',
+      'table' => 'VOLUME_HORAIRE_REF',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_SOURCE_FK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_SOURCE_FK',
+      'table' => 'VOLUME_HORAIRE',
+      'rtable' => 'SOURCE',
+      'delete_rule' => NULL,
+      'index' => NULL,
+      'columns' => 
+      array (
+        'SOURCE_ID' => 'ID',
+      ),
+    ),
+    'VVHR_VALIDATION_FK' => 
+    array (
+      'name' => 'VVHR_VALIDATION_FK',
+      'table' => 'VALIDATION_VOL_HORAIRE_REF',
+      'rtable' => 'VALIDATION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VALIDATION_ID' => 'ID',
+      ),
+    ),
+    'VVHR_VOLUME_HORAIRE_REF_FK' => 
+    array (
+      'name' => 'VVHR_VOLUME_HORAIRE_REF_FK',
+      'table' => 'VALIDATION_VOL_HORAIRE_REF',
+      'rtable' => 'VOLUME_HORAIRE_REF',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VOLUME_HORAIRE_REF_ID' => 'ID',
+      ),
+    ),
+    'VVH_VALIDATION_FK' => 
+    array (
+      'name' => 'VVH_VALIDATION_FK',
+      'table' => 'VALIDATION_VOL_HORAIRE',
+      'rtable' => 'VALIDATION',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VALIDATION_ID' => 'ID',
+      ),
+    ),
+    'VVH_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'VVH_VOLUME_HORAIRE_FK',
+      'table' => 'VALIDATION_VOL_HORAIRE',
+      'rtable' => 'VOLUME_HORAIRE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'VOLUME_HORAIRE_ID' => 'ID',
+      ),
+    ),
+    'WE_PREC_WE_FK' => 
+    array (
+      'name' => 'WE_PREC_WE_FK',
+      'table' => 'WF_ETAPE_DEP',
+      'rtable' => 'WF_ETAPE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ETAPE_PREC_ID' => 'ID',
+      ),
+    ),
+    'WE_SUIV_WE_FK' => 
+    array (
+      'name' => 'WE_SUIV_WE_FK',
+      'table' => 'WF_ETAPE_DEP',
+      'rtable' => 'WF_ETAPE',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'ETAPE_SUIV_ID' => 'ID',
+      ),
+    ),
+    'WE_TYPE_INTERVENANT_FK' => 
+    array (
+      'name' => 'WE_TYPE_INTERVENANT_FK',
+      'table' => 'WF_ETAPE_DEP',
+      'rtable' => 'TYPE_INTERVENANT',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TYPE_INTERVENANT_ID' => 'ID',
+      ),
+    ),
+    'WF_DB_ETAPE_DEP_FK' => 
+    array (
+      'name' => 'WF_DB_ETAPE_DEP_FK',
+      'table' => 'WF_DEP_BLOQUANTE',
+      'rtable' => 'WF_ETAPE_DEP',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'WF_ETAPE_DEP_ID' => 'ID',
+      ),
+    ),
+    'WF_DB_TBL_WORKFLOW_FK' => 
+    array (
+      'name' => 'WF_DB_TBL_WORKFLOW_FK',
+      'table' => 'WF_DEP_BLOQUANTE',
+      'rtable' => 'TBL_WORKFLOW',
+      'delete_rule' => 'CASCADE',
+      'index' => NULL,
+      'columns' => 
+      array (
+        'TBL_WORKFLOW_ID' => 'ID',
+      ),
+    ),
+  ),
+  'BddAdmin\\Ddl\\DdlUniqueConstraint' => 
+  array (
+    'ADRESSE_INTERVENANT_SOURCE_UN' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT_SOURCE_UN',
+      'table' => 'ADRESSE_INTERVENANT',
+      'index' => 'ADRESSE_INTERVENANT_SOURCE_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'ADRESSE_INTERVENANT__UN' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT__UN',
+      'table' => 'ADRESSE_INTERVENANT',
+      'index' => 'ADRESSE_INTERVENANT__UN',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_SOURCE_UN' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_SOURCE_UN',
+      'table' => 'ADRESSE_STRUCTURE',
+      'index' => 'ADRESSE_STRUCTURE_SOURCE_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'AFFECTATION_RECHERCH_SOURCE_UN' => 
+    array (
+      'name' => 'AFFECTATION_RECHERCH_SOURCE_UN',
+      'table' => 'AFFECTATION_RECHERCHE',
+      'index' => 'AFFECTATION_R_SRC_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'AFFECTATION_SOURCE_UN' => 
+    array (
+      'name' => 'AFFECTATION_SOURCE_UN',
+      'table' => 'AFFECTATION',
+      'index' => 'AFFECTATION_SOURCE_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'AFFECTATION__UN' => 
+    array (
+      'name' => 'AFFECTATION__UN',
+      'table' => 'AFFECTATION',
+      'index' => 'AFFECTATION__UN',
+      'columns' => 
+      array (
+        0 => 'ROLE_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'HISTO_DESTRUCTION',
+        3 => 'UTILISATEUR_ID',
+      ),
+    ),
+    'AGREMENT__UN' => 
+    array (
+      'name' => 'AGREMENT__UN',
+      'table' => 'AGREMENT',
+      'index' => 'AGREMENT__UN',
+      'columns' => 
+      array (
+        0 => 'TYPE_AGREMENT_ID',
+        1 => 'INTERVENANT_ID',
+        2 => 'STRUCTURE_ID',
+        3 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'CAMPAGNE_SAISIE__UN' => 
+    array (
+      'name' => 'CAMPAGNE_SAISIE__UN',
+      'table' => 'CAMPAGNE_SAISIE',
+      'index' => 'CAMPAGNE_SAISIE__UN_IDX',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+        1 => 'TYPE_INTERVENANT_ID',
+        2 => 'TYPE_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'CATEGORIE_PRIVILEGE__UN' => 
+    array (
+      'name' => 'CATEGORIE_PRIVILEGE__UN',
+      'table' => 'CATEGORIE_PRIVILEGE',
+      'index' => 'CATEGORIE_PRIVILEGE__UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'CCS_CC_S__UN' => 
+    array (
+      'name' => 'CCS_CC_S__UN',
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'index' => 'CCS_CC_S__UN_IDX',
+      'columns' => 
+      array (
+        0 => 'CENTRE_COUT_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'CENTRE_COUT_EP__UN' => 
+    array (
+      'name' => 'CENTRE_COUT_EP__UN',
+      'table' => 'CENTRE_COUT_EP',
+      'index' => 'CENTRE_COUT_EP__UN',
+      'columns' => 
+      array (
+        0 => 'CENTRE_COUT_ID',
+        1 => 'ELEMENT_PEDAGOGIQUE_ID',
+        2 => 'TYPE_HEURES_ID',
+        3 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'CENTRE_COUT_STRUCTUR_SOURCE_UN' => 
+    array (
+      'name' => 'CENTRE_COUT_STRUCTUR_SOURCE_UN',
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'index' => 'CCS_SOURCE_CODE_UN_IDX',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE_SOURCE_UN' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_SOURCE_UN',
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'index' => 'CHEMIN_PEDAGO_SRC_ID_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE__UN' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE__UN',
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'index' => 'CHEMIN_PEDAGOGIQUE__UN',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+        1 => 'ETAPE_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'CIVILITE_LIBELLE_COURT_UN' => 
+    array (
+      'name' => 'CIVILITE_LIBELLE_COURT_UN',
+      'table' => 'CIVILITE',
+      'index' => 'CIVILITE_LIBELLE_COURT_UN',
+      'columns' => 
+      array (
+        0 => 'LIBELLE_COURT',
+      ),
+    ),
+    'CONTRAT_NUMERO_AVENANT_UN' => 
+    array (
+      'name' => 'CONTRAT_NUMERO_AVENANT_UN',
+      'table' => 'CONTRAT',
+      'index' => 'CONTRAT_NUMERO_AVENANT_UN',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'NUMERO_AVENANT',
+        3 => 'VALIDATION_ID',
+        4 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'CORPS_SOURCE_UN' => 
+    array (
+      'name' => 'CORPS_SOURCE_UN',
+      'table' => 'CORPS',
+      'index' => 'CORPS_SOURCE_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'DISCIPLINE_SOURCE_UN' => 
+    array (
+      'name' => 'DISCIPLINE_SOURCE_UN',
+      'table' => 'DISCIPLINE',
+      'index' => 'DISCIPLINE_SOURCE_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'DOSSIER_UK1' => 
+    array (
+      'name' => 'DOSSIER_UK1',
+      'table' => 'DOSSIER',
+      'index' => 'DOSSIER_UK1',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'DOTATION__UN' => 
+    array (
+      'name' => 'DOTATION__UN',
+      'table' => 'DOTATION',
+      'index' => 'DOTATION__UN',
+      'columns' => 
+      array (
+        0 => 'TYPE_RESSOURCE_ID',
+        1 => 'ANNEE_ID',
+        2 => 'ANNEE_CIVILE',
+        3 => 'STRUCTURE_ID',
+        4 => 'LIBELLE',
+        5 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'EFFECTIFS_SOURCE_UN' => 
+    array (
+      'name' => 'EFFECTIFS_SOURCE_UN',
+      'table' => 'EFFECTIFS',
+      'index' => 'EFFECTIFS__UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'ANNEE_ID',
+      ),
+    ),
+    'ELEMENT_MODULATEUR__UN' => 
+    array (
+      'name' => 'ELEMENT_MODULATEUR__UN',
+      'table' => 'ELEMENT_MODULATEUR',
+      'index' => 'ELEMENT_MODULATEUR__UN',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_ID',
+        1 => 'MODULATEUR_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_SOURCE_UN' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_SOURCE_UN',
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'index' => 'EP_SRC_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'ANNEE_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES_SOURCE_UN' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES_SOURCE_UN',
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'index' => 'ELEMENT_TAUX_REGIMES__UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES__UNV1' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES__UNV1',
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'index' => 'ELEMENT_TAUX_REGIMES__UNV1',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'EP_CODE_UN' => 
+    array (
+      'name' => 'EP_CODE_UN',
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'index' => 'EP_CODE_UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+        1 => 'HISTO_DESTRUCTION',
+        2 => 'ANNEE_ID',
+      ),
+    ),
+    'ETABLISSEMENT_SOURCE_UN' => 
+    array (
+      'name' => 'ETABLISSEMENT_SOURCE_UN',
+      'table' => 'ETABLISSEMENT',
+      'index' => 'ETABLISSEMENT_SOURCE_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'ETAPE_CODE_UN' => 
+    array (
+      'name' => 'ETAPE_CODE_UN',
+      'table' => 'ETAPE',
+      'index' => 'ETAPE_CODE_UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+        1 => 'ANNEE_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'ETAPE_SOURCE_UN' => 
+    array (
+      'name' => 'ETAPE_SOURCE_UN',
+      'table' => 'ETAPE',
+      'index' => 'ETAPE_SRC_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+        2 => 'ANNEE_ID',
+      ),
+    ),
+    'ETAT_SORTIE_CODE_UN' => 
+    array (
+      'name' => 'ETAT_SORTIE_CODE_UN',
+      'table' => 'ETAT_SORTIE',
+      'index' => 'ETAT_SORTIE_CODE_UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'ETAT_VOLUME_HORAIRE__UN' => 
+    array (
+      'name' => 'ETAT_VOLUME_HORAIRE__UN',
+      'table' => 'ETAT_VOLUME_HORAIRE',
+      'index' => 'ETAT_VOLUME_HORAIRE__UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'FONCTION_REFERENTIEL_CODE_UN' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL_CODE_UN',
+      'table' => 'FONCTION_REFERENTIEL',
+      'index' => 'FONCTION_REFERENTIEL_CODE_UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'FORMULE_RESULTAT__UN' => 
+    array (
+      'name' => 'FORMULE_RESULTAT__UN',
+      'table' => 'FORMULE_RESULTAT',
+      'index' => 'FORMULE_RESULTAT__UN',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TYPE_VOLUME_HORAIRE_ID',
+        2 => 'ETAT_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'FORMULE_TEST_STRUCTURE__UN' => 
+    array (
+      'name' => 'FORMULE_TEST_STRUCTURE__UN',
+      'table' => 'FORMULE_TEST_STRUCTURE',
+      'index' => 'FORMULE_TEST_STRUCTURE__UN',
+      'columns' => 
+      array (
+        0 => 'LIBELLE',
+      ),
+    ),
+    'FORMULE__UN' => 
+    array (
+      'name' => 'FORMULE__UN',
+      'table' => 'FORMULE',
+      'index' => 'FORMULE__UN',
+      'columns' => 
+      array (
+        0 => 'LIBELLE',
+      ),
+    ),
+    'GROUPE_TYPE_FORMATIO_SOURCE_UN' => 
+    array (
+      'name' => 'GROUPE_TYPE_FORMATIO_SOURCE_UN',
+      'table' => 'GROUPE_TYPE_FORMATION',
+      'index' => 'GTYPE_FORMATION_SOURCE_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'GROUPE__UN' => 
+    array (
+      'name' => 'GROUPE__UN',
+      'table' => 'GROUPE',
+      'index' => 'GROUPE__UN',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+        1 => 'HISTO_DESTRUCTEUR_ID',
+        2 => 'TYPE_INTERVENTION_ID',
+      ),
+    ),
+    'HISTO_INTERVENANT_SERVICE__UN' => 
+    array (
+      'name' => 'HISTO_INTERVENANT_SERVICE__UN',
+      'table' => 'HISTO_INTERVENANT_SERVICE',
+      'index' => 'HISTO_INTERVENANT_SERVICE__UN',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TYPE_VOLUME_HORAIRE_ID',
+        2 => 'REFERENTIEL',
+      ),
+    ),
+    'INTERVENANT_CODE_UN' => 
+    array (
+      'name' => 'INTERVENANT_CODE_UN',
+      'table' => 'INTERVENANT',
+      'index' => 'INTERVENANT_CODE_UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+        1 => 'ANNEE_ID',
+      ),
+    ),
+    'INTERVENANT_SAISIE__UN' => 
+    array (
+      'name' => 'INTERVENANT_SAISIE__UN',
+      'table' => 'INTERVENANT_SAISIE',
+      'index' => 'INTERVENANT_SAISIE__UN',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'INTERVENANT_SOURCE_UN' => 
+    array (
+      'name' => 'INTERVENANT_SOURCE_UN',
+      'table' => 'INTERVENANT',
+      'index' => 'INTERVENANT_SOURCE_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'ANNEE_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'INTERVENANT_UTIL_CODE_UN' => 
+    array (
+      'name' => 'INTERVENANT_UTIL_CODE_UN',
+      'table' => 'INTERVENANT',
+      'index' => 'INTERVENANT_UTIL_CODE_UN',
+      'columns' => 
+      array (
+        0 => 'UTILISATEUR_CODE',
+        1 => 'ANNEE_ID',
+        2 => 'STATUT_ID',
+      ),
+    ),
+    'LIEN_SOURCE_UN' => 
+    array (
+      'name' => 'LIEN_SOURCE_UN',
+      'table' => 'LIEN',
+      'index' => 'LIEN_SRC_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'MODULATEUR__UN' => 
+    array (
+      'name' => 'MODULATEUR__UN',
+      'table' => 'MODULATEUR',
+      'index' => 'MODULATEUR__UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'MOTIF_MODIFICATION_SERVIC_UK1' => 
+    array (
+      'name' => 'MOTIF_MODIFICATION_SERVIC_UK1',
+      'table' => 'MOTIF_MODIFICATION_SERVICE',
+      'index' => 'MOTIF_MODIFICATION_SERVIC_UK1',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'NOEUD_SOURCE_UN' => 
+    array (
+      'name' => 'NOEUD_SOURCE_UN',
+      'table' => 'NOEUD',
+      'index' => 'NOEUD_SRC_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'NOTIFICATION_INDICATEUR__UN' => 
+    array (
+      'name' => 'NOTIFICATION_INDICATEUR__UN',
+      'table' => 'NOTIFICATION_INDICATEUR',
+      'index' => 'NOTIFICATION_INDICATEUR__UN',
+      'columns' => 
+      array (
+        0 => 'INDICATEUR_ID',
+        1 => 'AFFECTATION_ID',
+      ),
+    ),
+    'PAYS_SRC_UN' => 
+    array (
+      'name' => 'PAYS_SRC_UN',
+      'table' => 'PAYS',
+      'index' => 'PAYS_SRC_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+        1 => 'SOURCE_CODE',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'PERIMETRE_CODE_UN' => 
+    array (
+      'name' => 'PERIMETRE_CODE_UN',
+      'table' => 'PERIMETRE',
+      'index' => 'PERIMETRE_CODE_UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'PERIMETRE_LIBELLE_UN' => 
+    array (
+      'name' => 'PERIMETRE_LIBELLE_UN',
+      'table' => 'PERIMETRE',
+      'index' => 'PERIMETRE_LIBELLE_UN',
+      'columns' => 
+      array (
+        0 => 'LIBELLE',
+      ),
+    ),
+    'PERIODE__UN' => 
+    array (
+      'name' => 'PERIODE__UN',
+      'table' => 'PERIODE',
+      'index' => 'PERIODE__UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'PIECE_JOINTE__UN' => 
+    array (
+      'name' => 'PIECE_JOINTE__UN',
+      'table' => 'PIECE_JOINTE',
+      'index' => 'PIECE_JOINTE__UN',
+      'columns' => 
+      array (
+        0 => 'TYPE_PIECE_JOINTE_ID',
+        1 => 'INTERVENANT_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'PRIVILEGE__UN' => 
+    array (
+      'name' => 'PRIVILEGE__UN',
+      'table' => 'PRIVILEGE',
+      'index' => 'PRIVILEGE__UN',
+      'columns' => 
+      array (
+        0 => 'CATEGORIE_ID',
+        1 => 'CODE',
+      ),
+    ),
+    'REGLE_STRUCTURE_VALIDATION__UN' => 
+    array (
+      'name' => 'REGLE_STRUCTURE_VALIDATION__UN',
+      'table' => 'REGLE_STRUCTURE_VALIDATION',
+      'index' => 'REGLE_STRUCTURE_VALIDATION__UN',
+      'columns' => 
+      array (
+        0 => 'TYPE_VOLUME_HORAIRE_ID',
+        1 => 'TYPE_INTERVENANT_ID',
+      ),
+    ),
+    'ROLE_CODE_UN' => 
+    array (
+      'name' => 'ROLE_CODE_UN',
+      'table' => 'ROLE',
+      'index' => 'ROLE_CODE_UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'SCENARIO_LIEN_SOURCE_UN' => 
+    array (
+      'name' => 'SCENARIO_LIEN_SOURCE_UN',
+      'table' => 'SCENARIO_LIEN',
+      'index' => 'SCENARIO_LIEN_SRC_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SCENARIO_LIEN__UN' => 
+    array (
+      'name' => 'SCENARIO_LIEN__UN',
+      'table' => 'SCENARIO_LIEN',
+      'index' => 'SCENARIO_LIEN__UN',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_ID',
+        1 => 'LIEN_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SCENARIO_NOEUD_SOURCE_UN' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_SOURCE_UN',
+      'table' => 'SCENARIO_NOEUD',
+      'index' => 'SCENARIO_NOEUD_SRC_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SCENARIO_NOEUD__UN' => 
+    array (
+      'name' => 'SCENARIO_NOEUD__UN',
+      'table' => 'SCENARIO_NOEUD',
+      'index' => 'SCENARIO_NOEUD__UN',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_ID',
+        1 => 'NOEUD_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SERVICE_REFERENTIEL_SOURCE_UN' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL_SOURCE_UN',
+      'table' => 'SERVICE_REFERENTIEL',
+      'index' => 'SERVICE_REFERENTIEL_SOURCE_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SERVICE_SOURCE_UN' => 
+    array (
+      'name' => 'SERVICE_SOURCE_UN',
+      'table' => 'SERVICE',
+      'index' => 'SERVICE_SOURCE_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SERVICE__UN' => 
+    array (
+      'name' => 'SERVICE__UN',
+      'table' => 'SERVICE',
+      'index' => 'SERVICE__UN',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'ELEMENT_PEDAGOGIQUE_ID',
+        2 => 'ETABLISSEMENT_ID',
+        3 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SOURCE_CODE_UN' => 
+    array (
+      'name' => 'SOURCE_CODE_UN',
+      'table' => 'SOURCE',
+      'index' => 'SOURCE_CODE_UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'STATUT_INTERVENANT_ODRE_UN' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_ODRE_UN',
+      'table' => 'STATUT_INTERVENANT',
+      'index' => 'STATUT_INTERVENANT_ODRE_UN',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTION',
+        1 => 'ORDRE',
+      ),
+    ),
+    'STATUT_INTERVENANT_SOURCE_UN' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_SOURCE_UN',
+      'table' => 'STATUT_INTERVENANT',
+      'index' => 'STATUT_INTERVENANT__UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'STRUCTURE_CODE_UN' => 
+    array (
+      'name' => 'STRUCTURE_CODE_UN',
+      'table' => 'STRUCTURE',
+      'index' => 'STRUCTURE_CODE_UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'STRUCTURE_SOURCE_UN' => 
+    array (
+      'name' => 'STRUCTURE_SOURCE_UN',
+      'table' => 'STRUCTURE',
+      'index' => 'STRUCTURE_SOURCE_CODE_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'TBL_AGREMENT__UN' => 
+    array (
+      'name' => 'TBL_AGREMENT__UN',
+      'table' => 'TBL_AGREMENT',
+      'index' => 'TBL_AGREMENT__UN_IDX',
+      'columns' => 
+      array (
+        0 => 'TYPE_AGREMENT_ID',
+        1 => 'INTERVENANT_ID',
+        2 => 'STRUCTURE_ID',
+        3 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_CHARGENS_SEUILS_DEF__UN' => 
+    array (
+      'name' => 'TBL_CHARGENS_SEUILS_DEF__UN',
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'index' => 'TBL_CHARGENS_SEUILS_DEF__UN',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_ID',
+        1 => 'TYPE_INTERVENTION_ID',
+        2 => 'STRUCTURE_ID',
+        3 => 'GROUPE_TYPE_FORMATION_ID',
+        4 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_CHARGENS__UN' => 
+    array (
+      'name' => 'TBL_CHARGENS__UN',
+      'table' => 'TBL_CHARGENS',
+      'index' => 'TBL_CHARGENS__UN',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+        1 => 'NOEUD_ID',
+        2 => 'SCENARIO_ID',
+        3 => 'TYPE_HEURES_ID',
+        4 => 'TYPE_INTERVENTION_ID',
+        5 => 'ELEMENT_PEDAGOGIQUE_ID',
+        6 => 'ETAPE_ID',
+        7 => 'ETAPE_ENS_ID',
+        8 => 'STRUCTURE_ID',
+        9 => 'GROUPE_TYPE_FORMATION_ID',
+      ),
+    ),
+    'TBL_CLOTURE_REALISE__UN' => 
+    array (
+      'name' => 'TBL_CLOTURE_REALISE__UN',
+      'table' => 'TBL_CLOTURE_REALISE',
+      'index' => 'TBL_CLOTURE_REALISE__UN_IDX',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_CONTRAT__UN' => 
+    array (
+      'name' => 'TBL_CONTRAT__UN',
+      'table' => 'TBL_CONTRAT',
+      'index' => 'TBL_CONTRAT__UN_IDX',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_DMEP_LIQUIDATION__UN' => 
+    array (
+      'name' => 'TBL_DMEP_LIQUIDATION__UN',
+      'table' => 'TBL_DMEP_LIQUIDATION',
+      'index' => 'TBL_DMEP_LIQUIDATION__UN_IDX',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+        1 => 'TYPE_RESSOURCE_ID',
+        2 => 'STRUCTURE_ID',
+        3 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_DOSSIER__UN' => 
+    array (
+      'name' => 'TBL_DOSSIER__UN',
+      'table' => 'TBL_DOSSIER',
+      'index' => 'TBL_DOSSIER__UN_IDX',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_PAIEMENT__UN' => 
+    array (
+      'name' => 'TBL_PAIEMENT__UN',
+      'table' => 'TBL_PAIEMENT',
+      'index' => 'TBL_PAIEMENT__UN',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TO_DELETE',
+        2 => 'MISE_EN_PAIEMENT_ID',
+        3 => 'FORMULE_RES_SERVICE_ID',
+        4 => 'FORMULE_RES_SERVICE_REF_ID',
+      ),
+    ),
+    'TBL_PIECE_JOINTE_DEMANDE__UN' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE_DEMANDE__UN',
+      'table' => 'TBL_PIECE_JOINTE_DEMANDE',
+      'index' => 'TBL_PJD_UN_IDX',
+      'columns' => 
+      array (
+        0 => 'TYPE_PIECE_JOINTE_ID',
+        1 => 'INTERVENANT_ID',
+        2 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_PIECE_JOINTE_FOURNIE__UN' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE_FOURNIE__UN',
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'index' => 'TBL_PJF_UN_IDX',
+      'columns' => 
+      array (
+        0 => 'TYPE_PIECE_JOINTE_ID',
+        1 => 'INTERVENANT_ID',
+        2 => 'VALIDATION_ID',
+        3 => 'FICHIER_ID',
+      ),
+    ),
+    'TBL_PIECE_JOINTE__UN' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE__UN',
+      'table' => 'TBL_PIECE_JOINTE',
+      'index' => 'TBL_PIECE_JOINTE__UN_IDX',
+      'columns' => 
+      array (
+        0 => 'TYPE_PIECE_JOINTE_ID',
+        1 => 'INTERVENANT_ID',
+        2 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_SERVICE_REFERENTIEL__UN' => 
+    array (
+      'name' => 'TBL_SERVICE_REFERENTIEL__UN',
+      'table' => 'TBL_SERVICE_REFERENTIEL',
+      'index' => 'TBL_SERVICE_REFERENTIEL_UN_IDX',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TYPE_VOLUME_HORAIRE_ID',
+        2 => 'STRUCTURE_ID',
+        3 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_SERVICE_SAISIE__UN' => 
+    array (
+      'name' => 'TBL_SERVICE_SAISIE__UN',
+      'table' => 'TBL_SERVICE_SAISIE',
+      'index' => 'TBL_SERVICE_SAISIE_UN_IDX',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_SERVICE__UN' => 
+    array (
+      'name' => 'TBL_SERVICE__UN',
+      'table' => 'TBL_SERVICE',
+      'index' => 'TBL_SERVICE__UN',
+      'columns' => 
+      array (
+        0 => 'SERVICE_ID',
+        1 => 'TYPE_VOLUME_HORAIRE_ID',
+        2 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_VALIDATION_ENSEIGNEMENT_UN' => 
+    array (
+      'name' => 'TBL_VALIDATION_ENSEIGNEMENT_UN',
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'index' => 'TBL_VALIDATION_ENSEIGNEMENT_UN',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'TYPE_VOLUME_HORAIRE_ID',
+        3 => 'SERVICE_ID',
+        4 => 'VOLUME_HORAIRE_ID',
+        5 => 'VALIDATION_ID',
+        6 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_VALIDATION_REFERENTIEL__UN' => 
+    array (
+      'name' => 'TBL_VALIDATION_REFERENTIEL__UN',
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'index' => 'TBL_VALIDATION_REFERENTIEL__UN',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'TYPE_VOLUME_HORAIRE_ID',
+        3 => 'SERVICE_REFERENTIEL_ID',
+        4 => 'VOLUME_HORAIRE_REF_ID',
+        5 => 'VALIDATION_ID',
+        6 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_WORKFLOW__UN' => 
+    array (
+      'name' => 'TBL_WORKFLOW__UN',
+      'table' => 'TBL_WORKFLOW',
+      'index' => 'TBL_WORKFLOW__UN',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'ETAPE_ID',
+        2 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TYPE_AGREMENT_STATUT__UN' => 
+    array (
+      'name' => 'TYPE_AGREMENT_STATUT__UN',
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'index' => 'TYPE_AGREMENT_STATUT__UN',
+      'columns' => 
+      array (
+        0 => 'TYPE_AGREMENT_ID',
+        1 => 'STATUT_INTERVENANT_ID',
+        2 => 'PREMIER_RECRUTEMENT',
+      ),
+    ),
+    'TYPE_AGREMENT__UN' => 
+    array (
+      'name' => 'TYPE_AGREMENT__UN',
+      'table' => 'TYPE_AGREMENT',
+      'index' => 'TYPE_AGREMENT__UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'TYPE_FORMATION_SOURCE_UN' => 
+    array (
+      'name' => 'TYPE_FORMATION_SOURCE_UN',
+      'table' => 'TYPE_FORMATION',
+      'index' => 'TYPE_FORMATION__UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'TYPE_HEURES_UN' => 
+    array (
+      'name' => 'TYPE_HEURES_UN',
+      'table' => 'TYPE_HEURES',
+      'index' => 'TYPE_HEURES_UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'TYPE_INTERVENANT_CODE_UN' => 
+    array (
+      'name' => 'TYPE_INTERVENANT_CODE_UN',
+      'table' => 'TYPE_INTERVENANT',
+      'index' => 'TYPE_INTERVENANT_CODE_UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'TYPE_INTERVENTION_STATUT__UN' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STATUT__UN',
+      'table' => 'TYPE_INTERVENTION_STATUT',
+      'index' => 'TYPE_INTERVENTION_STATUT__UN',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENTION_ID',
+        1 => 'STATUT_INTERVENANT_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP_SOURCE_UN' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP_SOURCE_UN',
+      'table' => 'TYPE_MODULATEUR_EP',
+      'index' => 'TYPE_MODULATEUR_EP__UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP__UNV1' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP__UNV1',
+      'table' => 'TYPE_MODULATEUR_EP',
+      'index' => 'TYPE_MODULATEUR_EP__UNV1',
+      'columns' => 
+      array (
+        0 => 'TYPE_MODULATEUR_ID',
+        1 => 'ELEMENT_PEDAGOGIQUE_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_STRUCTURE_UN' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_STRUCTURE_UN',
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'index' => 'TYPE_MODULATEUR_STRUCTURE_UN',
+      'columns' => 
+      array (
+        0 => 'TYPE_MODULATEUR_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'ANNEE_DEBUT_ID',
+        3 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'TYPE_VOLUME_HORAIRE__UN' => 
+    array (
+      'name' => 'TYPE_VOLUME_HORAIRE__UN',
+      'table' => 'TYPE_VOLUME_HORAIRE',
+      'index' => 'TYPE_VOLUME_HORAIRE__UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'UTILISATEUR_USERNAME_UN' => 
+    array (
+      'name' => 'UTILISATEUR_USERNAME_UN',
+      'table' => 'UTILISATEUR',
+      'index' => 'UTILISATEUR_USERNAME_UN',
+      'columns' => 
+      array (
+        0 => 'USERNAME',
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARGE__UN' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARGE__UN',
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'index' => 'VOLUME_HORAIRE_CHARGE__UN',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+        1 => 'TYPE_INTERVENTION_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARG_SOURCE_UN' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARG_SOURCE_UN',
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'index' => 'VHC_HISTO_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'VOLUME_HORAIRE_ENS_SOURCE_UN' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS_SOURCE_UN',
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'index' => 'VOLUME_HORAIRE_ENS_UK1',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'VOLUME_HORAIRE_REF_SOURCE_UN' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_SOURCE_UN',
+      'table' => 'VOLUME_HORAIRE_REF',
+      'index' => 'VOLUME_HORAIRE_REF_SOURCE_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'VOLUME_HORAIRE_SOURCE_UN' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_SOURCE_UN',
+      'table' => 'VOLUME_HORAIRE',
+      'index' => 'VOLUME_HORAIRE_SOURCE_UN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'WF_ETAPE_CODE_UN' => 
+    array (
+      'name' => 'WF_ETAPE_CODE_UN',
+      'table' => 'WF_ETAPE',
+      'index' => 'WF_ETAPE_CODE_UN',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'WF_ETAPE_DEP__UN' => 
+    array (
+      'name' => 'WF_ETAPE_DEP__UN',
+      'table' => 'WF_ETAPE_DEP',
+      'index' => 'WF_ETAPE_DEP__UN_IDX',
+      'columns' => 
+      array (
+        0 => 'ETAPE_SUIV_ID',
+        1 => 'ETAPE_PREC_ID',
+      ),
+    ),
+    'WF_ETAPE_ORDRE_UN' => 
+    array (
+      'name' => 'WF_ETAPE_ORDRE_UN',
+      'table' => 'WF_ETAPE',
+      'index' => 'WF_ETAPE_ORDRE_UN',
+      'columns' => 
+      array (
+        0 => 'ORDRE',
+      ),
+    ),
+  ),
+  'BddAdmin\\Ddl\\DdlTrigger' => 
+  array (
+    'AFFECTATION_RECHERCHE_CK' => 
+    array (
+      'name' => 'AFFECTATION_RECHERCHE_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "AFFECTATION_RECHERCHE_CK"
+BEFORE INSERT OR UPDATE ON affectation_recherche
+FOR EACH ROW
+DECLARE
+  pragma autonomous_transaction;
+  rows_found integer;
+BEGIN
+
+  if :NEW.histo_destruction IS NOT NULL THEN RETURN; END IF; -- pas de check si c\'est pour une historicisation
+
+  select
+    count(*) into rows_found
+  from
+    affectation_recherche
+  where
+    intervenant_id = :new.intervenant_id
+    AND structure_id = :new.structure_id
+    AND histo_destruction IS NULL
+    AND id <> :NEW.id;
+
+  if rows_found > 0 THEN
+    raise_application_error(-20101, \'Un enseignant (id=\' || :NEW.intervenant_id || \') ne peut pas avoir plusieurs affectations de recherche pour une même structure\');
+  END IF;
+
+END;',
+    ),
+    'AGREMENT_CK' => 
+    array (
+      'name' => 'AGREMENT_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "AGREMENT_CK"
+BEFORE UPDATE ON agrement FOR EACH ROW
+DECLARE
+  contrat_found INTEGER;
+BEGIN
+
+  SELECT
+    COUNT(*) INTO contrat_found
+  FROM
+    contrat c
+  WHERE
+    c.INTERVENANT_ID = :NEW.intervenant_id
+    AND c.structure_id = NVL(:NEW.structure_id,c.structure_id)
+    AND c.histo_destruction IS NULL
+    AND ROWNUM = 1;
+
+  IF
+    1 = contrat_found
+    AND :NEW.histo_destruction IS NOT NULL AND :OLD.histo_destruction IS NULL
+  THEN
+
+    IF :NEW.structure_id IS NULL THEN
+      raise_application_error(-20101, \'Cet agrément ne peut pas être supprimé car un contrat a été signé.\');
+    ELSE
+      raise_application_error(-20101, \'Cet agrément ne peut pas être supprimé car un contrat a été signé dans la même composante.\');
+    END IF;
+  END IF;
+
+END;',
+    ),
+    'CALC_TAUX_HETD_ANNEES' => 
+    array (
+      'name' => 'CALC_TAUX_HETD_ANNEES',
+      'definition' => 'CREATE OR REPLACE TRIGGER "CALC_TAUX_HETD_ANNEES"
+AFTER INSERT OR UPDATE OR DELETE ON "TAUX_HORAIRE_HETD"
+BEGIN
+  OSE_FORMULE.UPDATE_ANNEE_TAUX_HETD;
+END;',
+    ),
+    'CHARGENS_MAJ_EFFECTIFS' => 
+    array (
+      'name' => 'CHARGENS_MAJ_EFFECTIFS',
+      'definition' => 'CREATE OR REPLACE TRIGGER "CHARGENS_MAJ_EFFECTIFS"
+  AFTER INSERT OR UPDATE OR DELETE ON scenario_noeud_effectif
+  REFERENCING FOR EACH ROW
+BEGIN
+RETURN;
+  return;
+  IF NOT ose_chargens.ENABLE_TRIGGER_EFFECTIFS THEN RETURN; END IF;
+  IF DELETING THEN
+    ose_chargens.DEM_CALC_SUB_EFFECTIF( :OLD.scenario_noeud_id, :OLD.type_heures_id, :OLD.etape_id, 0 );
+  ELSE
+    ose_chargens.DEM_CALC_SUB_EFFECTIF( :NEW.scenario_noeud_id, :NEW.type_heures_id, :NEW.etape_id, :NEW.effectif );
+  END IF;
+
+END;',
+    ),
+    'ELEMENT_PEDAGOGIQUE_CK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "ELEMENT_PEDAGOGIQUE_CK"
+BEFORE INSERT OR UPDATE ON element_pedagogique FOR EACH ROW
+DECLARE
+  enseignement INTEGER;
+  source_id INTEGER;
+BEGIN
+  SELECT id INTO source_id FROM source WHERE code = \'OSE\';
+
+  IF :NEW.source_id <> source_id THEN RETURN; END IF; -- impossible de checker car l\'UPD par import se fait champ par champ...
+
+  IF :NEW.fi = 0 AND :NEW.fc = 0 AND :NEW.fa = 0 THEN
+    raise_application_error(-20101, \'Un enseignement doit obligatoirement être au moins en FI, FC ou FA\');
+  END IF;
+
+  IF 1 <> ROUND(:NEW.taux_fi + :NEW.taux_fc + :NEW.taux_fa, 2) THEN
+    raise_application_error( -20101, \'Le total des taux FI, FC et FA n\'\'est pas égal à 100%\');
+  END IF;
+
+  IF :NEW.fi = 0 AND :NEW.taux_fi > 0 THEN
+    raise_application_error( -20101, \'Le taux FI doit être à 0 puisque la formation n\'\'est pas dispensée en FI\');
+  END IF;
+
+  IF :NEW.fa = 0 AND :NEW.taux_fa > 0 THEN
+    raise_application_error( -20101, \'Le taux FA doit être à 0 puisque la formation n\'\'est pas dispensée en FA\');
+  END IF;
+
+  IF :NEW.fc = 0 AND :NEW.taux_fc > 0 THEN
+    raise_application_error( -20101, \'Le taux FC doit être à 0 puisque la formation n\'\'est pas dispensée en FC\');
+  END IF;
+
+  IF :NEW.periode_id IS NOT NULL THEN
+    SELECT p.enseignement
+    INTO enseignement
+    FROM periode p
+    WHERE p.id	     = :NEW.periode_id;
+    IF enseignement <> 1 THEN
+      raise_application_error(-20101, \'Cette période n\'\'est pas appliquable à cet élément pédagogique.\');
+    END IF;
+  END IF;
+
+END;',
+    ),
+    'F_CONTRAT' => 
+    array (
+      'name' => 'F_CONTRAT',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_CONTRAT"
+  AFTER DELETE OR UPDATE OF INTERVENANT_ID, HISTO_CREATION, HISTO_DESTRUCTION, STRUCTURE_ID, DATE_RETOUR_SIGNE, VALIDATION_ID ON CONTRAT
+  REFERENCING FOR EACH ROW
+  BEGIN
+
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  FOR p IN (
+
+    SELECT DISTINCT
+      s.intervenant_id
+    FROM
+      volume_horaire vh
+      JOIN service s ON s.id = vh.service_id AND s.histo_destruction IS NULL
+    WHERE
+      vh.histo_destruction IS NULL
+      AND (vh.contrat_id = :OLD.id OR vh.contrat_id = :NEW.id)
+
+  ) LOOP
+
+    UNICAEN_TBL.DEMANDE_CALCUL(\'formule\', UNICAEN_TBL.make_params(\'INTERVENANT_ID\', p.intervenant_id) );
+
+  END LOOP;
+
+END;',
+    ),
+    'F_CONTRAT_S' => 
+    array (
+      'name' => 'F_CONTRAT_S',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_CONTRAT_S"
+AFTER UPDATE OR DELETE ON contrat
+BEGIN
+  UNICAEN_TBL.CALCULER_DEMANDES;
+END;',
+    ),
+    'F_ELEMENT_MODULATEUR' => 
+    array (
+      'name' => 'F_ELEMENT_MODULATEUR',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_ELEMENT_MODULATEUR"
+AFTER INSERT OR UPDATE OR DELETE ON element_modulateur
+FOR EACH ROW
+BEGIN
+
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  FOR p IN (
+
+    SELECT DISTINCT
+      s.intervenant_id
+    FROM
+      service s
+    WHERE
+      s.histo_destruction IS NULL
+      AND (s.element_pedagogique_id = :OLD.element_id OR s.element_pedagogique_id = :NEW.element_id)
+
+  ) LOOP
+
+    UNICAEN_TBL.DEMANDE_CALCUL(\'formule\', UNICAEN_TBL.make_params(\'INTERVENANT_ID\', p.intervenant_id) );
+
+  END LOOP;
+
+END;',
+    ),
+    'F_ELEMENT_MODULATEUR_S' => 
+    array (
+      'name' => 'F_ELEMENT_MODULATEUR_S',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_ELEMENT_MODULATEUR_S"
+AFTER INSERT OR UPDATE OR DELETE ON element_modulateur
+BEGIN
+  UNICAEN_TBL.CALCULER_DEMANDES;
+END;',
+    ),
+    'F_ELEMENT_PEDAGOGIQUE' => 
+    array (
+      'name' => 'F_ELEMENT_PEDAGOGIQUE',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_ELEMENT_PEDAGOGIQUE"
+  AFTER DELETE OR UPDATE OF ID, STRUCTURE_ID, PERIODE_ID, TAUX_FOAD, FI, FC, FA, HISTO_CREATION, HISTO_DESTRUCTION, TAUX_FA, TAUX_FC, TAUX_FI, ANNEE_ID ON "ELEMENT_PEDAGOGIQUE"
+  REFERENCING FOR EACH ROW
+  BEGIN
+
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  FOR p IN
+    ( SELECT DISTINCT s.intervenant_id
+    FROM service s
+    WHERE (s.element_pedagogique_id = :NEW.id
+    OR s.element_pedagogique_id     = :OLD.id)
+    AND s.histo_destruction IS NULL
+    ) LOOP UNICAEN_TBL.DEMANDE_CALCUL(\'formule\', UNICAEN_TBL.make_params(\'INTERVENANT_ID\', p.intervenant_id) );
+END LOOP;
+END;',
+    ),
+    'F_ELEMENT_PEDAGOGIQUE_S' => 
+    array (
+      'name' => 'F_ELEMENT_PEDAGOGIQUE_S',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_ELEMENT_PEDAGOGIQUE_S" AFTER
+UPDATE OR DELETE ON element_pedagogique BEGIN
+  UNICAEN_TBL.CALCULER_DEMANDES;
+END;',
+    ),
+    'F_INTERVENANT' => 
+    array (
+      'name' => 'F_INTERVENANT',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_INTERVENANT"
+  AFTER UPDATE OF ID, DATE_NAISSANCE, STATUT_ID, STRUCTURE_ID, HISTO_CREATION, HISTO_DESTRUCTION, PREMIER_RECRUTEMENT, ANNEE_ID ON "INTERVENANT"
+  REFERENCING FOR EACH ROW
+  BEGIN
+
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  FOR p IN (
+
+    SELECT DISTINCT
+      fr.intervenant_id
+    FROM
+      formule_resultat fr
+    WHERE
+      fr.intervenant_id = :NEW.id OR fr.intervenant_id = :OLD.id
+
+  ) LOOP
+
+    UNICAEN_TBL.DEMANDE_CALCUL(\'formule\', UNICAEN_TBL.make_params(\'INTERVENANT_ID\', p.intervenant_id) );
+
+  END LOOP;
+
+END;',
+    ),
+    'F_INTERVENANT_S' => 
+    array (
+      'name' => 'F_INTERVENANT_S',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_INTERVENANT_S"
+AFTER UPDATE ON "INTERVENANT"
+BEGIN
+  UNICAEN_TBL.CALCULER_DEMANDES;
+END;',
+    ),
+    'F_MODIF_SERVICE_DU' => 
+    array (
+      'name' => 'F_MODIF_SERVICE_DU',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_MODIF_SERVICE_DU"
+AFTER INSERT OR UPDATE OR DELETE ON modification_service_du
+FOR EACH ROW
+BEGIN
+
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  IF DELETING OR UPDATING THEN
+    UNICAEN_TBL.DEMANDE_CALCUL(\'formule\', UNICAEN_TBL.make_params(\'INTERVENANT_ID\', :OLD.intervenant_id) );
+  END IF;
+  IF INSERTING OR UPDATING THEN
+    UNICAEN_TBL.DEMANDE_CALCUL(\'formule\', UNICAEN_TBL.make_params(\'INTERVENANT_ID\', :NEW.intervenant_id) );
+  END IF;
+
+END;',
+    ),
+    'F_MODIF_SERVICE_DU_S' => 
+    array (
+      'name' => 'F_MODIF_SERVICE_DU_S',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_MODIF_SERVICE_DU_S"
+AFTER INSERT OR UPDATE OR DELETE ON modification_service_du
+BEGIN
+    UNICAEN_TBL.CALCULER_DEMANDES;
+END;',
+    ),
+    'F_MODULATEUR' => 
+    array (
+      'name' => 'F_MODULATEUR',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_MODULATEUR"
+AFTER UPDATE OR DELETE ON modulateur
+FOR EACH ROW
+BEGIN
+
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  FOR p IN (
+
+    SELECT DISTINCT
+      s.intervenant_id
+    FROM
+      service s
+      JOIN element_modulateur em ON
+        em.element_id   = s.element_pedagogique_id
+        AND em.histo_destruction IS NULL
+    WHERE
+      s.histo_destruction IS NULL
+      AND (em.modulateur_id = :OLD.id OR em.modulateur_id = :NEW.id)
+
+  ) LOOP
+
+    UNICAEN_TBL.DEMANDE_CALCUL(\'formule\', UNICAEN_TBL.make_params(\'INTERVENANT_ID\', p.intervenant_id) );
+
+  END LOOP;
+END;',
+    ),
+    'F_MODULATEUR_S' => 
+    array (
+      'name' => 'F_MODULATEUR_S',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_MODULATEUR_S"
+AFTER UPDATE OR DELETE ON modulateur
+BEGIN
+    UNICAEN_TBL.CALCULER_DEMANDES;
+END;',
+    ),
+    'F_MOTIF_MODIFICATION_SERVICE' => 
+    array (
+      'name' => 'F_MOTIF_MODIFICATION_SERVICE',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_MOTIF_MODIFICATION_SERVICE"
+AFTER UPDATE OR DELETE ON MOTIF_MODIFICATION_SERVICE
+FOR EACH ROW
+BEGIN
+
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  FOR p IN (
+
+    SELECT DISTINCT
+      intervenant_id
+    FROM
+      modification_service_du msd
+    WHERE
+      msd.histo_destruction IS NULL
+      AND (msd.motif_id = :NEW.id OR msd.motif_id = :OLD.id)
+
+  ) LOOP
+
+    UNICAEN_TBL.DEMANDE_CALCUL(\'formule\', UNICAEN_TBL.make_params(\'INTERVENANT_ID\', p.intervenant_id) );
+
+  END LOOP;
+
+END;',
+    ),
+    'F_MOTIF_MODIFICATION_SERVICE_S' => 
+    array (
+      'name' => 'F_MOTIF_MODIFICATION_SERVICE_S',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_MOTIF_MODIFICATION_SERVICE_S"
+AFTER UPDATE OR DELETE ON MOTIF_MODIFICATION_SERVICE
+BEGIN
+  UNICAEN_TBL.CALCULER_DEMANDES;
+END;',
+    ),
+    'F_STATUT_INTERVENANT' => 
+    array (
+      'name' => 'F_STATUT_INTERVENANT',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_STATUT_INTERVENANT"
+AFTER UPDATE OF
+  service_statutaire,
+  depassement,
+  type_intervenant_id,
+  non_autorise
+ON STATUT_INTERVENANT
+FOR EACH ROW
+BEGIN return; /* Désactivation du trigger... */
+
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  FOR p IN (
+
+    SELECT DISTINCT
+      fr.intervenant_id
+    FROM
+      intervenant i
+      JOIN formule_resultat fr ON fr.intervenant_id = i.id
+    WHERE
+      (i.statut_id = :NEW.id OR i.statut_id = :OLD.id)
+      AND i.histo_destruction IS NULL
+
+  ) LOOP
+
+    UNICAEN_TBL.DEMANDE_CALCUL(\'formule\', UNICAEN_TBL.make_params(\'INTERVENANT_ID\', p.intervenant_id) );
+
+  END LOOP;
+END;',
+    ),
+    'F_STATUT_INTERVENANT_S' => 
+    array (
+      'name' => 'F_STATUT_INTERVENANT_S',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_STATUT_INTERVENANT_S"
+AFTER UPDATE ON STATUT_INTERVENANT
+BEGIN
+  UNICAEN_TBL.CALCULER_DEMANDES;
+END;',
+    ),
+    'F_TYPE_INTERVENTION' => 
+    array (
+      'name' => 'F_TYPE_INTERVENTION',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_TYPE_INTERVENTION"
+AFTER UPDATE OF
+  taux_hetd_service,
+  taux_hetd_complementaire
+ON type_intervention
+FOR EACH ROW
+BEGIN
+
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  FOR p IN (
+
+    SELECT DISTINCT
+      s.intervenant_id
+    FROM
+      volume_horaire vh
+      JOIN service s ON s.id = vh.service_id AND s.histo_destruction IS NULL
+    WHERE
+      vh.histo_destruction IS NULL
+      AND (vh.type_intervention_id = :NEW.id OR vh.type_intervention_id = :OLD.id)
+
+  ) LOOP
+
+    UNICAEN_TBL.DEMANDE_CALCUL(\'formule\', UNICAEN_TBL.make_params(\'INTERVENANT_ID\', p.intervenant_id) );
+
+  END LOOP;
+END;',
+    ),
+    'F_TYPE_INTERVENTION_S' => 
+    array (
+      'name' => 'F_TYPE_INTERVENTION_S',
+      'definition' => 'CREATE OR REPLACE TRIGGER "F_TYPE_INTERVENTION_S"
+AFTER UPDATE ON type_intervention
+BEGIN
+  UNICAEN_TBL.CALCULER_DEMANDES;
+END;',
+    ),
+    'INDIC_TRG_MODIF_DOSSIER' => 
+    array (
+      'name' => 'INDIC_TRG_MODIF_DOSSIER',
+      'definition' => 'CREATE OR REPLACE TRIGGER "INDIC_TRG_MODIF_DOSSIER"
+  AFTER INSERT OR UPDATE OF NOM_USUEL, NOM_PATRONYMIQUE, PRENOM, CIVILITE_ID, ADRESSE, RIB, DATE_NAISSANCE ON "DOSSIER"
+
+  FOR EACH ROW
+/**
+ * But : mettre à jour la liste des PJ attendues.
+ */
+DECLARE
+  i integer := 1;
+  intervenantId NUMERIC;
+  found integer;
+  estCreationDossier integer;
+  type array_t is table of varchar2(1024);
+
+  attrNames     array_t := array_t();
+  attrOldVals   array_t := array_t();
+  attrNewVals   array_t := array_t();
+
+  -- valeurs importées (format texte) :
+  impSourceName source.libelle%type;
+  impNomUsuel   indic_modif_dossier.ATTR_NEW_VALUE%type;
+  impNomPatro   indic_modif_dossier.ATTR_NEW_VALUE%type;
+  impPrenom     indic_modif_dossier.ATTR_NEW_VALUE%type;
+  impCivilite   indic_modif_dossier.ATTR_NEW_VALUE%type;
+  impDateNaiss  indic_modif_dossier.ATTR_NEW_VALUE%type;
+  impAdresse    indic_modif_dossier.ATTR_NEW_VALUE%type;
+  impRib        indic_modif_dossier.ATTR_NEW_VALUE%type;
+  -- anciennes valeurs dans le dossier (format texte) :
+  oldSourceName source.libelle%type;
+  oldNomUsuel   indic_modif_dossier.ATTR_NEW_VALUE%type;
+  oldNomPatro   indic_modif_dossier.ATTR_NEW_VALUE%type;
+  oldPrenom     indic_modif_dossier.ATTR_NEW_VALUE%type;
+  oldCivilite   indic_modif_dossier.ATTR_NEW_VALUE%type;
+  oldDateNaiss  indic_modif_dossier.ATTR_NEW_VALUE%type;
+  oldAdresse    indic_modif_dossier.ATTR_NEW_VALUE%type;
+  oldRib        indic_modif_dossier.ATTR_NEW_VALUE%type;
+  -- nouvelles valeurs dans le dossier (format texte) :
+  newSourceName source.libelle%type;
+  newNomUsuel   indic_modif_dossier.ATTR_NEW_VALUE%type;
+  newNomPatro   indic_modif_dossier.ATTR_NEW_VALUE%type;
+  newPrenom     indic_modif_dossier.ATTR_NEW_VALUE%type;
+  newCivilite   indic_modif_dossier.ATTR_NEW_VALUE%type;
+  newDateNaiss  indic_modif_dossier.ATTR_NEW_VALUE%type;
+  newAdresse    indic_modif_dossier.ATTR_NEW_VALUE%type;
+  newRib        indic_modif_dossier.ATTR_NEW_VALUE%type;
+BEGIN
+  --
+  -- Témoin indiquant s\'il s\'agit d\'une création de dossier (insert).
+  --
+  estCreationDossier := case when inserting then 1 else 0 end;
+
+  --
+  -- Fetch source OSE.
+  --
+  select s.libelle into newSourceName from source s where s.code = \'OSE\';
+
+  --
+  -- Fetch et formattage texte des valeurs importées.
+  --
+  select
+      i.id,
+      s.libelle,
+      nvl(i.NOM_USUEL, \'(Aucun)\'),
+      nvl(i.NOM_PATRONYMIQUE, \'(Aucun)\'),
+      nvl(i.PRENOM, \'(Aucun)\'),
+      nvl(c.libelle_court, \'(Aucune)\'),
+      nvl(to_char(i.DATE_NAISSANCE, \'DD/MM/YYYY\'), \'(Aucune)\'),
+      nvl(ose_divers.formatted_rib(i.bic, i.iban), \'(Aucun)\'),
+      case when a.id is not null
+        then ose_divers.formatted_adresse(a.NO_VOIE, a.NOM_VOIE, a.BATIMENT, a.MENTION_COMPLEMENTAIRE, a.LOCALITE, a.CODE_POSTAL, a.VILLE, a.PAYS_LIBELLE)
+        else \'(Aucune)\'
+      end
+    into
+      intervenantId,
+      oldSourceName,
+      impNomUsuel,
+      impNomPatro,
+      impPrenom,
+      impCivilite,
+      impDateNaiss,
+      impRib,
+      impAdresse
+    from intervenant i
+    join source s on s.id = i.source_id
+    left join civilite c on c.id = i.civilite_id
+    left join adresse_intervenant a on a.intervenant_id = i.id AND a.histo_destruction IS NULL
+    where i.id = :NEW.intervenant_id;
+
+  --
+  -- Anciennes valeurs dans le cas d\'une création de dossier : ce sont les valeurs importées.
+  --
+  if (1 = estCreationDossier) then
+    --dbms_output.put_line(\'inserting\');
+    oldNomUsuel  := impNomUsuel;
+    oldNomPatro  := impNomPatro;
+    oldPrenom    := impPrenom;
+    oldCivilite  := impCivilite;
+    oldDateNaiss := impDateNaiss;
+    oldAdresse   := impAdresse;
+    oldRib       := impRib;
+  --
+  -- Anciennes valeurs dans le cas d\'une mise à jour du dossier.
+  --
+  else
+    --dbms_output.put_line(\'updating\');
+    oldNomUsuel     := trim(:OLD.NOM_USUEL);
+    oldNomPatro     := trim(:OLD.NOM_PATRONYMIQUE);
+    oldPrenom       := trim(:OLD.PRENOM);
+    oldDateNaiss    := case when :OLD.DATE_NAISSANCE is null then \'(Aucune)\' else to_char(:OLD.DATE_NAISSANCE, \'DD/MM/YYYY\') end;
+    oldAdresse      := trim(:OLD.ADRESSE);
+    oldRib          := trim(:OLD.RIB);
+    if :OLD.CIVILITE_ID is not null then
+      select c.libelle_court into oldCivilite from civilite c where c.id = :OLD.CIVILITE_ID;
+    else
+      oldCivilite := \'(Aucune)\';
+    end if;
+    select s.libelle into oldSourceName from source s where s.code = \'OSE\';
+  end if;
+
+  --
+  -- Nouvelles valeurs saisies.
+  --
+  newNomUsuel   := trim(:NEW.NOM_USUEL);
+  newNomPatro   := trim(:NEW.NOM_PATRONYMIQUE);
+  newPrenom     := trim(:NEW.PRENOM);
+  newDateNaiss  := case when :NEW.DATE_NAISSANCE is null then \'(Aucune)\' else to_char(:NEW.DATE_NAISSANCE, \'DD/MM/YYYY\') end;
+  newAdresse    := trim(:NEW.ADRESSE);
+  newRib        := trim(:NEW.RIB);
+  if :NEW.CIVILITE_ID is not null then
+    select c.libelle_court into newCivilite from civilite c where c.id = :NEW.CIVILITE_ID;
+  else
+    newCivilite := \'(Aucune)\';
+  end if;
+
+  --
+  -- Détection des différences.
+  --
+  if newNomUsuel <> oldNomUsuel then
+    --dbms_output.put_line(\'NOM_USUEL \' || sourceLib || \' = \' || oldNomUsuel || \' --> NOM_USUEL OSE = \' || :NEW.NOM_USUEL);
+    attrNames.extend(1);
+    attrOldVals.extend(1);
+    attrNewVals.extend(1);
+    attrNames(i)   := \'Nom usuel\';
+    attrOldVals(i) := oldNomUsuel;
+    attrNewVals(i) := newNomUsuel;
+    i := i + 1;
+  end if;
+  if newNomPatro <> oldNomPatro then
+    --dbms_output.put_line(\'NOM_PATRONYMIQUE \' || sourceLib || \' = \' || oldNomPatro || \' --> NOM_PATRONYMIQUE OSE = \' || :NEW.NOM_PATRONYMIQUE);
+    attrNames.extend(1);
+    attrOldVals.extend(1);
+    attrNewVals.extend(1);
+    attrNames(i)   := \'Nom de naissance\';
+    attrOldVals(i) := oldNomPatro;
+    attrNewVals(i) := newNomPatro;
+    i := i + 1;
+  end if;
+  if newPrenom <> oldPrenom then
+    --dbms_output.put_line(\'PRENOM \' || sourceLib || \' = \' || oldPrenom || \' --> PRENOM OSE = \' || :NEW.PRENOM);
+    attrNames.extend(1);
+    attrOldVals.extend(1);
+    attrNewVals.extend(1);
+    attrNames(i)   := \'Prénom\';
+    attrOldVals(i) := oldPrenom;
+    attrNewVals(i) := newPrenom;
+    i := i + 1;
+  end if;
+  if newCivilite <> oldCivilite then
+    --dbms_output.put_line(\'CIVILITE_ID \' || sourceLib || \' = \' || oldCivilite || \' --> CIVILITE_ID OSE = \' || :NEW.CIVILITE_ID);
+    attrNames.extend(1);
+    attrOldVals.extend(1);
+    attrNewVals.extend(1);
+    attrNames(i)   := \'Civilité\';
+    attrOldVals(i) := oldCivilite;
+    attrNewVals(i) := newCivilite;
+    i := i + 1;
+  end if;
+  if newDateNaiss <> oldDateNaiss then
+    --dbms_output.put_line(\'DATE_NAISSANCE \' || sourceLib || \' = \' || oldDateNaiss || \' --> DATE_NAISSANCE OSE = \' || :NEW.DATE_NAISSANCE);
+    attrNames.extend(1);
+    attrOldVals.extend(1);
+    attrNewVals.extend(1);
+    attrNames(i)   := \'Date de naissance\';
+    attrOldVals(i) := oldDateNaiss;
+    attrNewVals(i) := newDateNaiss;
+    i := i + 1;
+  end if;
+  if newAdresse <> oldAdresse then
+    --dbms_output.put_line(\'ADRESSE \' || sourceLib || \' = \' || oldAdresse || \' --> ADRESSE OSE = \' || :NEW.ADRESSE);
+    attrNames.extend(1);
+    attrOldVals.extend(1);
+    attrNewVals.extend(1);
+    attrNames(i)   := \'Adresse postale\';
+    attrOldVals(i) := oldAdresse;
+    attrNewVals(i) := newAdresse;
+    i := i + 1;
+  end if;
+  if oldRib is null or newRib <> oldRib then
+    --dbms_output.put_line(\'RIB \' || sourceLib || \' = \' || oldRib || \' --> RIB OSE = \' || :NEW.RIB);
+    attrNames.extend(1);
+    attrOldVals.extend(1);
+    attrNewVals.extend(1);
+    attrNames(i)   := \'RIB\';
+    attrOldVals(i) := oldRib;
+    attrNewVals(i) := newRib;
+    i := i + 1;
+  end if;
+
+  --
+  -- Enregistrement des différences.
+  --
+  for i in 1 .. attrNames.count loop
+    --dbms_output.put_line(attrNames(i) || \' \' || oldSourceName || \' = \' || attrOldVals(i) || \' --> \' || attrNames(i) || \' \' || newSourceName || \' = \' || attrNewVals(i));
+
+    -- vérification que la même modif n\'est pas déjà consignée
+    select count(*) into found from indic_modif_dossier
+      where INTERVENANT_ID = intervenantId
+      and ATTR_NAME = attrNames(i)
+      and ATTR_OLD_VALUE = to_char(attrOldVals(i))
+      and ATTR_NEW_VALUE = to_char(attrNewVals(i));
+    if found > 0 then
+      continue;
+    end if;
+
+    insert into INDIC_MODIF_DOSSIER(
+      id,
+      INTERVENANT_ID,
+      ATTR_NAME,
+      ATTR_OLD_SOURCE_NAME,
+      ATTR_OLD_VALUE,
+      ATTR_NEW_SOURCE_NAME,
+      ATTR_NEW_VALUE,
+      EST_CREATION_DOSSIER, -- témoin indiquant s\'il s\'agit d\'une création ou d\'une modification de dossier
+      HISTO_CREATION,       -- NB: date de modification du dossier
+      HISTO_CREATEUR_ID,    -- NB: auteur de la modification du dossier
+      HISTO_MODIFICATION,
+      HISTO_MODIFICATEUR_ID
+    )
+    values (
+      indic_modif_dossier_id_seq.nextval,
+      intervenantId,
+      attrNames(i),
+      oldSourceName,
+      to_char(attrOldVals(i)),
+      newSourceName,
+      to_char(attrNewVals(i)),
+      estCreationDossier,
+      :NEW.HISTO_MODIFICATION,
+      :NEW.HISTO_MODIFICATEUR_ID,
+      :NEW.HISTO_MODIFICATION,
+      :NEW.HISTO_MODIFICATEUR_ID
+    );
+  end loop;
+
+END;',
+    ),
+    'INTERVENANT_HORO_SERVICE' => 
+    array (
+      'name' => 'INTERVENANT_HORO_SERVICE',
+      'definition' => 'CREATE OR REPLACE TRIGGER "INTERVENANT_HORO_SERVICE"
+AFTER INSERT OR UPDATE OR DELETE ON service
+FOR EACH ROW
+BEGIN
+
+  IF DELETING THEN
+
+    ose_divers.intervenant_horodatage_service(
+      :OLD.intervenant_id,
+      null,
+      0,
+      :OLD.histo_modificateur_id,
+      :OLD.histo_modification
+    );
+
+  ELSE
+
+    ose_divers.intervenant_horodatage_service(
+      :NEW.intervenant_id,
+      null,
+      0,
+      :NEW.histo_modificateur_id,
+      :NEW.histo_modification
+    );
+
+  END IF;
+
+END;',
+    ),
+    'INTERVENANT_HORO_SERVICE_REF' => 
+    array (
+      'name' => 'INTERVENANT_HORO_SERVICE_REF',
+      'definition' => 'CREATE OR REPLACE TRIGGER "INTERVENANT_HORO_SERVICE_REF"
+AFTER INSERT OR UPDATE OR DELETE ON service_referentiel
+FOR EACH ROW
+BEGIN
+
+  IF DELETING THEN
+
+    ose_divers.intervenant_horodatage_service(
+      :OLD.intervenant_id,
+      null,
+      1,
+      :OLD.histo_modificateur_id,
+      :OLD.histo_modification
+    );
+
+  ELSE
+
+    ose_divers.intervenant_horodatage_service(
+      :NEW.intervenant_id,
+      null,
+      1,
+      :NEW.histo_modificateur_id,
+      :NEW.histo_modification
+    );
+
+  END IF;
+
+END;',
+    ),
+    'INTERVENANT_HORO_VH' => 
+    array (
+      'name' => 'INTERVENANT_HORO_VH',
+      'definition' => 'CREATE OR REPLACE TRIGGER "INTERVENANT_HORO_VH"
+AFTER INSERT OR UPDATE OR DELETE ON volume_horaire
+FOR EACH ROW
+DECLARE
+  intervenant_id NUMERIC;
+BEGIN
+
+
+
+  IF DELETING THEN
+    SELECT s.intervenant_id INTO intervenant_id FROM service s WHERE s.id = :OLD.service_id;
+
+    ose_divers.intervenant_horodatage_service(
+      intervenant_id,
+      :OLD.type_volume_horaire_id,
+      0,
+      :OLD.histo_modificateur_id,
+      :OLD.histo_modification
+    );
+
+  ELSE
+    SELECT s.intervenant_id INTO intervenant_id FROM service s WHERE s.id = :NEW.service_id;
+
+    ose_divers.intervenant_horodatage_service(
+      intervenant_id,
+      :NEW.type_volume_horaire_id,
+      0,
+      :NEW.histo_modificateur_id,
+      :NEW.histo_modification
+    );
+
+  END IF;
+
+END;',
+    ),
+    'INTERVENANT_HORO_VH_REF' => 
+    array (
+      'name' => 'INTERVENANT_HORO_VH_REF',
+      'definition' => 'CREATE OR REPLACE TRIGGER "INTERVENANT_HORO_VH_REF"
+AFTER INSERT OR UPDATE OR DELETE ON volume_horaire_ref
+FOR EACH ROW
+DECLARE
+  intervenant_id NUMERIC;
+BEGIN
+
+
+
+  IF DELETING THEN
+    SELECT s.intervenant_id INTO intervenant_id FROM service_referentiel s WHERE s.id = :OLD.service_referentiel_id;
+
+    ose_divers.intervenant_horodatage_service(
+      intervenant_id,
+      :OLD.type_volume_horaire_id,
+      1,
+      :OLD.histo_modificateur_id,
+      :OLD.histo_modification
+    );
+
+  ELSE
+    SELECT s.intervenant_id INTO intervenant_id FROM service_referentiel s WHERE s.id = :NEW.service_referentiel_id;
+
+    ose_divers.intervenant_horodatage_service(
+      intervenant_id,
+      :NEW.type_volume_horaire_id,
+      1,
+      :NEW.histo_modificateur_id,
+      :NEW.histo_modification
+    );
+
+  END IF;
+
+END;',
+    ),
+    'INTERVENANT_RECHERCHE' => 
+    array (
+      'name' => 'INTERVENANT_RECHERCHE',
+      'definition' => 'CREATE OR REPLACE TRIGGER "INTERVENANT_RECHERCHE"
+  BEFORE INSERT OR UPDATE OF NOM_USUEL, NOM_PATRONYMIQUE, PRENOM ON INTERVENANT
+  REFERENCING FOR EACH ROW
+BEGIN
+
+  :NEW.critere_recherche := ose_divers.str_reduce( :NEW.nom_usuel || \' \' || :NEW.nom_patronymique || \' \' || :NEW.prenom );
+
+END;',
+    ),
+    'MISE_EN_PAIEMENT_CK' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "MISE_EN_PAIEMENT_CK"
+  BEFORE INSERT OR UPDATE ON "MISE_EN_PAIEMENT"
+  REFERENCING FOR EACH ROW
+  DECLARE
+  has_validation NUMERIC;
+  has_mise_en_paiement NUMERIC;
+BEGIN
+
+  /* Initialisation des conditions */
+  SELECT COUNT(*) INTO has_validation FROM validation v WHERE
+    v.id = :NEW.validation_id
+    AND v.histo_destruction IS NULL;
+
+  IF :NEW.date_mise_en_paiement IS NULL THEN
+    has_mise_en_paiement := 0;
+  ELSE
+    has_mise_en_paiement := 1;
+  END IF;
+
+  /* Mise en place des contraintes */
+  IF :NEW.formule_res_service_id IS NULL AND :NEW.formule_res_service_ref_id IS NULL THEN
+    raise_application_error(-20101, \'La mise en paiement ne correspond à aucun service ou service référentiel.\');
+  END IF;
+
+  IF 1 = has_validation AND :NEW.date_validation IS NULL THEN
+    raise_application_error(-20101, \'La validation de la mise en paiement numéro \' || :NEW.id || \' est bien renseignée mais la date de validation n\'\'est pas précisée.\');
+  END IF;
+
+  IF :NEW.periode_paiement_id IS NOT NULL AND :NEW.date_mise_en_paiement IS NULL THEN
+    raise_application_error(-20101, \'La mise en paiement numéro \' || :NEW.id || \' est bien effectuée mais la date de mise en paiement n\'\'est pas précisée.\');
+  END IF;
+
+--  IF 0 = has_validation AND 1 = has_mise_en_paiement THEN
+--    raise_application_error(-20101, \'La demande de mise en paiement numéro \' || :NEW.id || \' ne peut faire l\'\'objet d\'\'une mise en paiement tant qu\'\'elle n\'\'est pas validée.\');
+--  END IF;
+
+  IF
+    :OLD.validation_id IS NOT NULL AND :OLD.histo_destruction IS NULL
+    AND 1 = has_validation AND :NEW.histo_destruction IS NOT NULL
+  THEN
+    raise_application_error(-20101, \'Il est impossible de supprimer une mise en paiement validée.\');
+  END IF;
+END;',
+    ),
+    'MISE_EN_PAIEMENT_DEL_CK' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_DEL_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "MISE_EN_PAIEMENT_DEL_CK"
+  BEFORE DELETE ON "MISE_EN_PAIEMENT"
+  REFERENCING FOR EACH ROW
+  DECLARE
+  has_validation NUMERIC;
+BEGIN
+
+  /* Initialisation des conditions */
+  SELECT COUNT(*) INTO has_validation FROM validation v WHERE
+    v.id = :NEW.validation_id
+    AND v.histo_destruction IS NULL;
+
+  /* Mise en place des contraintes */
+  IF
+    1 = has_validation AND :OLD.histo_destruction IS NOT NULL
+  THEN
+    raise_application_error(-20101, \'Il est impossible de supprimer une mise en paiement validée.\');
+  END IF;
+END;',
+    ),
+    'SERVICE_CK' => 
+    array (
+      'name' => 'SERVICE_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "SERVICE_CK"
+BEFORE INSERT OR UPDATE ON service
+FOR EACH ROW
+DECLARE
+  etablissement integer;
+  res integer;
+BEGIN
+
+  etablissement := OSE_PARAMETRE.GET_ETABLISSEMENT();
+
+  IF :NEW.etablissement_id = etablissement AND :NEW.element_pedagogique_id IS NULL THEN
+    raise_application_error(-20101, \'Un enseignement doit obligatoirement être renseigné si le service est réalisé en interne.\');
+  END IF;
+
+
+  IF :NEW.etablissement_id <> etablissement AND OSE_DIVERS.INTERVENANT_HAS_PRIVILEGE(:NEW.intervenant_id, \'saisie_service_exterieur\') = 0 THEN
+    raise_application_error(-20101, \'Les intervenants vacataires n\'\'ont pas la possibilité de renseigner des enseignements pris à l\'\'extérieur.\');
+  END IF;
+
+  IF :NEW.intervenant_id IS NOT NULL AND :NEW.element_pedagogique_id IS NOT NULL THEN
+    SELECT
+      count(*) INTO res
+    FROM
+      intervenant i,
+      element_pedagogique ep
+    WHERE
+          i.id        = :NEW.intervenant_id
+      AND ep.id       = :NEW.element_pedagogique_id
+      AND ep.annee_id = i.annee_id
+    ;
+
+    IF 0 = res THEN -- années non concomitantes
+      raise_application_error(-20101, \'L\'\'année de l\'\'intervenant ne correspond pas à l\'\'année de l\'\'élément pédagogique.\');
+    END IF;
+  END IF;
+
+END;',
+    ),
+    'SERVICE_HISTO_CK' => 
+    array (
+      'name' => 'SERVICE_HISTO_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "SERVICE_HISTO_CK"
+  BEFORE UPDATE OF intervenant_id, element_pedagogique_id, etablissement_id ON "SERVICE"
+  REFERENCING FOR EACH ROW
+  DECLARE
+  has_validation integer;
+BEGIN
+  SELECT COUNT(*) INTO has_validation
+  FROM
+    VALIDATION_VOL_HORAIRE vvh
+    JOIN validation v ON v.id = VVH.VALIDATION_ID
+    JOIN volume_horaire vh ON vh.id = VVH.VOLUME_HORAIRE_ID
+  WHERE
+    V.HISTO_DESTRUCTION IS NULL
+    AND vh.service_ID = :NEW.ID;
+
+  IF 0 <> has_validation THEN
+    raise_application_error(-20101, \'Il est impossible de modifier ou supprimer un service dont des heures ont déjà été validées.\');
+  END IF;
+
+END;',
+    ),
+    'SERVICE_HISTO_CK_S' => 
+    array (
+      'name' => 'SERVICE_HISTO_CK_S',
+      'definition' => 'CREATE OR REPLACE TRIGGER "SERVICE_HISTO_CK_S"
+AFTER UPDATE ON service
+BEGIN
+ -- En cas de restauration d\'un service, on ne restaure pas les historiques de volumes horaires pour ne pas récussiter d\'éventuels volume horaires indésirables car préalablement supprimés
+ FOR s IN (
+
+    SELECT *
+    FROM
+      service s
+    WHERE
+      s.histo_destruction IS NOT NULL AND s.histo_destruction > SYSDATE - 1
+
+  ) LOOP
+
+    UPDATE VOLUME_HORAIRE SET histo_destruction = s.histo_destruction, histo_destructeur_id = s.histo_destructeur_id WHERE service_id = s.id AND VOLUME_HORAIRE.histo_destruction IS NULL;
+
+  END LOOP;
+
+END;',
+    ),
+    'SERVICE_REFERENTIEL_HISTO_CK' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL_HISTO_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "SERVICE_REFERENTIEL_HISTO_CK"
+BEFORE UPDATE OF
+  FONCTION_ID,
+  INTERVENANT_ID,
+  STRUCTURE_ID,
+  HISTO_DESTRUCTION
+ON service_referentiel FOR EACH ROW
+DECLARE
+  has_validation integer;
+BEGIN
+  SELECT COUNT(*) INTO has_validation
+  FROM
+    VALIDATION_VOL_HORAIRE_REF vvh
+    JOIN validation v ON v.id = VVH.VALIDATION_ID
+    JOIN volume_horaire_ref vh ON vh.id = vvh.volume_horaire_ref_id
+  WHERE
+    V.HISTO_DESTRUCTION IS NULL
+    AND vh.service_referentiel_id = :OLD.ID;
+
+  IF 0 <> has_validation THEN
+    raise_application_error(-20101, \'Il est impossible de modifier ou supprimer du référentiel dont des heures ont déjà été validées.\');
+  END IF;
+
+END;',
+    ),
+    'T_CRG_ETAPE' => 
+    array (
+      'name' => 'T_CRG_ETAPE',
+      'definition' => 'CREATE OR REPLACE TRIGGER "T_CRG_ETAPE"
+  AFTER INSERT OR DELETE OR UPDATE OF HISTO_DESTRUCTION ON "ETAPE"
+  REFERENCING FOR EACH ROW
+  BEGIN
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  IF DELETING THEN
+    UNICAEN_TBL.DEMANDE_CALCUL( \'chargens\', \'etape_id = \' || :OLD.id || \' OR etape_ens_id = \' || :OLD.id );
+  ELSE
+    UNICAEN_TBL.DEMANDE_CALCUL( \'chargens\', \'etape_id = \' || :NEW.id || \' OR etape_ens_id = \' || :NEW.id );
+  END IF;
+
+END;',
+    ),
+    'T_CRG_ETAPE_S' => 
+    array (
+      'name' => 'T_CRG_ETAPE_S',
+      'definition' => 'CREATE OR REPLACE TRIGGER "T_CRG_ETAPE_S"
+  AFTER INSERT OR DELETE OR UPDATE ON "ETAPE"
+  BEGIN
+  UNICAEN_TBL.CALCULER_DEMANDES;
+END;',
+    ),
+    'T_CRG_SCENARIO_NOEUD' => 
+    array (
+      'name' => 'T_CRG_SCENARIO_NOEUD',
+      'definition' => 'CREATE OR REPLACE TRIGGER "T_CRG_SCENARIO_NOEUD"
+  AFTER INSERT OR DELETE OR UPDATE OF SCENARIO_ID, NOEUD_ID, HISTO_DESTRUCTION ON "SCENARIO_NOEUD"
+  REFERENCING FOR EACH ROW
+  BEGIN
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  IF DELETING THEN
+    UNICAEN_TBL.DEMANDE_CALCUL( \'chargens\', unicaen_tbl.make_params(\'noeud_id\', :OLD.noeud_id, \'scenario_id\', :OLD.scenario_id ) );
+  ELSE
+    UNICAEN_TBL.DEMANDE_CALCUL( \'chargens\', unicaen_tbl.make_params(\'noeud_id\', :NEW.noeud_id, \'scenario_id\', :NEW.scenario_id ) );
+  END IF;
+
+END;',
+    ),
+    'T_CRG_SCENARIO_NOEUD_EFFECTIF' => 
+    array (
+      'name' => 'T_CRG_SCENARIO_NOEUD_EFFECTIF',
+      'definition' => 'CREATE OR REPLACE TRIGGER "T_CRG_SCENARIO_NOEUD_EFFECTIF"
+  AFTER INSERT OR DELETE OR UPDATE OF SCENARIO_NOEUD_ID, TYPE_HEURES_ID, EFFECTIF, ETAPE_ID ON "SCENARIO_NOEUD_EFFECTIF"
+  REFERENCING FOR EACH ROW
+  BEGIN
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  FOR p IN (
+
+    SELECT
+      sn.noeud_id, sn.scenario_id, n.etape_id
+    FROM
+      scenario_noeud sn
+      JOIN noeud n ON n.id = sn.noeud_id
+    WHERE
+      sn.id = :OLD.scenario_noeud_id OR sn.id = :NEW.scenario_noeud_id
+
+  ) LOOP
+
+    IF p.etape_id IS NOT NULL THEN
+      UNICAEN_TBL.DEMANDE_CALCUL( \'chargens\', unicaen_tbl.make_params(\'etape_ens_id\', p.etape_id, \'scenario_id\', p.scenario_id ) );
+    END IF;
+    UNICAEN_TBL.DEMANDE_CALCUL( \'chargens\', unicaen_tbl.make_params(\'noeud_id\', p.noeud_id, \'scenario_id\', p.scenario_id ) );
+
+  END LOOP;
+
+END;',
+    ),
+    'T_CRG_SCENARIO_NOEUD_SEUIL' => 
+    array (
+      'name' => 'T_CRG_SCENARIO_NOEUD_SEUIL',
+      'definition' => 'CREATE OR REPLACE TRIGGER "T_CRG_SCENARIO_NOEUD_SEUIL"
+  AFTER INSERT OR DELETE OR UPDATE OF SCENARIO_NOEUD_ID, TYPE_INTERVENTION_ID, OUVERTURE, DEDOUBLEMENT, ASSIDUITE ON "SCENARIO_NOEUD_SEUIL"
+  REFERENCING FOR EACH ROW
+  BEGIN
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  FOR p IN (
+
+    SELECT
+      sn.noeud_id, sn.scenario_id, n.etape_id
+    FROM
+      scenario_noeud sn
+      JOIN noeud n ON n.id = sn.noeud_id
+    WHERE
+      sn.id = :OLD.scenario_noeud_id OR sn.id = :NEW.scenario_noeud_id
+
+  ) LOOP
+
+    IF p.etape_id IS NOT NULL THEN
+      UNICAEN_TBL.DEMANDE_CALCUL( \'chargens\', unicaen_tbl.make_params(\'etape_ens_id\', p.etape_id, \'scenario_id\', p.scenario_id ) );
+    END IF;
+    UNICAEN_TBL.DEMANDE_CALCUL( \'chargens\', unicaen_tbl.make_params(\'noeud_id\', p.noeud_id, \'scenario_id\', p.scenario_id ) );
+
+  END LOOP;
+
+END;',
+    ),
+    'T_CRG_TYPE_INTERVENTION' => 
+    array (
+      'name' => 'T_CRG_TYPE_INTERVENTION',
+      'definition' => 'CREATE OR REPLACE TRIGGER "T_CRG_TYPE_INTERVENTION"
+  AFTER INSERT OR DELETE OR UPDATE ON "TYPE_INTERVENTION"
+  BEGIN
+  UNICAEN_TBL.CALCULER_DEMANDES;
+END;',
+    ),
+    'T_CRG_VOLUME_HORAIRE_ENS' => 
+    array (
+      'name' => 'T_CRG_VOLUME_HORAIRE_ENS',
+      'definition' => 'CREATE OR REPLACE TRIGGER "T_CRG_VOLUME_HORAIRE_ENS"
+  AFTER INSERT OR DELETE OR UPDATE OF TYPE_INTERVENTION_ID, HEURES, HISTO_DESTRUCTION, ELEMENT_PEDAGOGIQUE_ID ON "VOLUME_HORAIRE_ENS"
+  REFERENCING FOR EACH ROW
+  BEGIN
+  IF NOT UNICAEN_TBL.ACTIV_TRIGGERS THEN RETURN; END IF;
+
+  IF DELETING THEN
+    UNICAEN_TBL.DEMANDE_CALCUL( \'chargens\', unicaen_tbl.make_params(\'element_pedagogique_id\', :OLD.element_pedagogique_id ) );
+  ELSE
+    UNICAEN_TBL.DEMANDE_CALCUL( \'chargens\', unicaen_tbl.make_params(\'element_pedagogique_id\', :NEW.element_pedagogique_id ) );
+  END IF;
+
+END;',
+    ),
+    'VALIDATION_CK' => 
+    array (
+      'name' => 'VALIDATION_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "VALIDATION_CK"
+BEFORE UPDATE OF histo_destruction, histo_destructeur_id OR DELETE ON validation
+FOR EACH ROW
+DECLARE
+  v validation%rowtype;
+  err varchar2(500) default null;
+  pragma autonomous_transaction;
+BEGIN
+
+  IF deleting THEN
+    v.id                  := :OLD.id;
+    v.type_validation_id  := :OLD.type_validation_id;
+    v.intervenant_id      := :OLD.intervenant_id;
+    v.structure_id        := :OLD.structure_id;
+
+
+  ELSIF :OLD.histo_destruction IS NULL AND :NEW.histo_destruction IS NOT NULL THEN
+
+    v.id                  := :NEW.id;
+    v.type_validation_id  := :NEW.type_validation_id;
+    v.intervenant_id      := :NEW.intervenant_id;
+    v.structure_id        := :NEW.structure_id;
+
+  END IF;
+
+  err := ose_validation.can_devalider( v );
+
+  IF err is not null THEN
+    raise_application_error(-20101, err);
+  END IF;
+
+END;',
+    ),
+    'VALIDATION_VOL_HORAIRE_CK' => 
+    array (
+      'name' => 'VALIDATION_VOL_HORAIRE_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "VALIDATION_VOL_HORAIRE_CK"
+BEFORE INSERT OR UPDATE OR DELETE ON validation_vol_horaire
+FOR EACH ROW
+DECLARE
+  contrat_blinde NUMERIC;
+  donnee_historisee NUMERIC;
+  pragma autonomous_transaction;
+BEGIN
+
+  if updating or deleting then
+
+    SELECT count(*) INTO contrat_blinde
+    FROM volume_horaire vh
+    JOIN contrat c ON c.id = vh.contrat_id AND c.histo_destruction IS NULL
+    WHERE vh.id = :OLD.volume_horaire_id;
+
+    -- Si des volumes horaires ont déjà fait l\'objet de contrats alors pas de dévalidation possible des heures
+    IF contrat_blinde = 1 THEN
+      raise_application_error(-20101, \'La dévalidation est impossible car un contrat a déjà été édité sur la base de ces heures.\');
+    END IF;
+
+  else
+
+    -- si on en trouve un service, EP, étape ou VH historisé, problème
+    select count(*) into donnee_historisee
+    from service s
+    join element_pedagogique ep on s.element_pedagogique_id = ep.id
+    --join etape e on ep.etape_id = e.id
+    join volume_horaire vh on vh.service_id = s.id
+    where
+      vh.id = :NEW.volume_horaire_id
+      AND (
+        s.histo_destructeur_id is not null
+        or ep.histo_destructeur_id is not null
+        --or e.histo_destructeur_id is not null
+        or (vh.histo_destructeur_id is not null)
+      )
+      AND vh.heures > 0;
+
+    IF donnee_historisee > 0 THEN
+      raise_application_error(-20101, :NEW.volume_horaire_id || \' La validation est impossible car elle porte sur des données historisées (supprimées).\');
+    END IF;
+
+  end if;
+
+END;',
+    ),
+    'VOLUME_HORAIRE_CK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "VOLUME_HORAIRE_CK"
+BEFORE INSERT OR UPDATE ON volume_horaire
+FOR EACH ROW
+  DECLARE
+    has_validation NUMERIC;
+    modified       BOOLEAN;
+    intervenant_id NUMERIC;
+  BEGIN
+    IF :OLD.motif_non_paiement_id IS NULL AND :NEW.motif_non_paiement_id IS NOT NULL THEN
+      SELECT s.intervenant_id INTO intervenant_id FROM service s WHERE s.id = :NEW.service_id;
+      IF 0 = ose_divers.intervenant_has_privilege( intervenant_id, \'saisie_motif_non_paiement\') THEN
+        raise_application_error(-20101, \'Il est impossible d\'\'associer un motif de non paiement à cet intervenant.\');
+      END IF;
+    END IF;
+
+    IF :NEW.motif_non_paiement_id IS NOT NULL AND :NEW.contrat_id IS NOT NULL THEN
+      raise_application_error(-20101, \'Les heures ayant un motif de non paiement ne peuvent faire l\'\'objet d\'\'une contractualisation\');
+    END IF;
+
+    modified :=
+      NVL(:NEW.id,0) <> NVL(:OLD.id,0)
+      OR NVL(:NEW.type_volume_horaire_id,0) <> NVL(:OLD.type_volume_horaire_id,0)
+      OR NVL(:NEW.service_id,0) <> NVL(:OLD.service_id,0)
+      OR NVL(:NEW.periode_id,0) <> NVL(:OLD.periode_id,0)
+      OR NVL(:NEW.type_intervention_id,0) <> NVL(:OLD.type_intervention_id,0)
+      OR NVL(:NEW.heures,0) <> NVL(:OLD.heures,0)
+      OR NVL(:NEW.motif_non_paiement_id,0) <> NVL(:OLD.motif_non_paiement_id,0)
+      OR NVL(:NEW.histo_creation,SYSDATE) <> NVL(:OLD.histo_creation,SYSDATE)
+      OR NVL(:NEW.histo_createur_id,0) <> NVL(:OLD.histo_createur_id,0)
+      OR NVL(:NEW.histo_destruction,SYSDATE) <> NVL(:OLD.histo_destruction,SYSDATE)
+      OR NVL(:NEW.histo_destructeur_id,0) <> NVL(:OLD.histo_destructeur_id,0);
+
+    SELECT
+      COUNT(*)
+    INTO
+      has_validation
+    FROM
+      VALIDATION_VOL_HORAIRE vvh
+      JOIN validation v ON v.id = VVH.VALIDATION_ID
+    WHERE
+      V.HISTO_DESTRUCTION IS NULL
+      AND vvh.VOLUME_HORAIRE_ID  = :NEW.ID;
+
+    IF modified AND 0 <> has_validation THEN
+      raise_application_error(-20101, \'Il est impossible de modifier des heures déjà validées.\');
+    END IF;
+  END;',
+    ),
+    'VOLUME_HORAIRE_DEL_CK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_DEL_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "VOLUME_HORAIRE_DEL_CK" BEFORE
+  DELETE ON volume_horaire FOR EACH ROW DECLARE has_validation INTEGER;
+  pragma autonomous_transaction;
+  BEGIN
+    SELECT COUNT(*)
+    INTO has_validation
+    FROM VALIDATION_VOL_HORAIRE vvh
+    JOIN validation v
+    ON v.id                    = VVH.VALIDATION_ID
+    WHERE V.HISTO_DESTRUCTION IS NULL
+    AND vvh.VOLUME_HORAIRE_ID  = :OLD.ID;
+    IF 0                      <> has_validation THEN
+      raise_application_error(-20101, \'Il est impossible de supprimer des heures déjà validées.\');
+    END IF;
+  END;',
+    ),
+    'VOLUME_HORAIRE_REF_CK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "VOLUME_HORAIRE_REF_CK" BEFORE UPDATE ON volume_horaire_REF FOR EACH ROW
+  DECLARE
+    has_validation NUMERIC;
+  BEGIN
+
+  SELECT
+    COUNT(*)
+  INTO
+    has_validation
+  FROM
+    VALIDATION_VOL_HORAIRE_REF vvh
+    JOIN validation v ON v.id = VVH.VALIDATION_ID
+  WHERE
+    V.HISTO_DESTRUCTION IS NULL
+    AND vvh.VOLUME_HORAIRE_REF_ID  = :NEW.ID;
+
+  IF 0 <> has_validation THEN
+    raise_application_error(-20101, \'Il est impossible de modifier des heures référentiel déjà validées.\');
+  END IF;
+END;',
+    ),
+    'VOLUME_HORAIRE_REF_DEL_CK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_DEL_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "VOLUME_HORAIRE_REF_DEL_CK" BEFORE DELETE ON volume_horaire_REF FOR EACH ROW
+  DECLARE has_validation INTEGER;
+  pragma autonomous_transaction;
+  BEGIN
+    SELECT COUNT(*)
+    INTO has_validation
+    FROM VALIDATION_VOL_HORAIRE_REF vvh
+    JOIN validation v
+    ON v.id                    = VVH.VALIDATION_ID
+    WHERE V.HISTO_DESTRUCTION IS NULL
+    AND vvh.VOLUME_HORAIRE_REF_ID  = :OLD.ID;
+    IF 0                      <> has_validation THEN
+      raise_application_error(-20101, \'Il est impossible de supprimer des heures référentiel déjà validées.\');
+    END IF;
+  END;',
+    ),
+    'WF_ETAPE_DEP_CK' => 
+    array (
+      'name' => 'WF_ETAPE_DEP_CK',
+      'definition' => 'CREATE OR REPLACE TRIGGER "WF_ETAPE_DEP_CK"
+BEFORE INSERT OR UPDATE ON wf_etape_dep
+FOR EACH ROW
+BEGIN
+
+  OSE_WORKFLOW.DEP_CHECK( :new.etape_suiv_id, :new.etape_prec_id );
+
+END;',
+    ),
+  ),
+  'BddAdmin\\Ddl\\DdlIndex' => 
+  array (
+    'ADRESSE_INTERVENANT_HCFK_IDX' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'ADRESSE_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'ADRESSE_INTERVENANT_HDFK_IDX' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'ADRESSE_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'ADRESSE_INTERVENANT_HMFK_IDX' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'ADRESSE_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'ADRESSE_INTERVENANT_PK' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT_PK',
+      'unique' => true,
+      'table' => 'ADRESSE_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ADRESSE_INTERVENANT_SOURCE_FK' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT_SOURCE_FK',
+      'unique' => false,
+      'table' => 'ADRESSE_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'ADRESSE_INTERVENANT_SOURCE_UN' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT_SOURCE_UN',
+      'unique' => true,
+      'table' => 'ADRESSE_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'ADRESSE_INTERVENANT__UN' => 
+    array (
+      'name' => 'ADRESSE_INTERVENANT__UN',
+      'unique' => true,
+      'table' => 'ADRESSE_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_HCFK_IDX' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'ADRESSE_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_HDFK_IDX' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'ADRESSE_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_HMFK_IDX' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'ADRESSE_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_PK' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_PK',
+      'unique' => true,
+      'table' => 'ADRESSE_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_SOURCE_FK' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_SOURCE_FK',
+      'unique' => false,
+      'table' => 'ADRESSE_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_SOURCE_UN' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_SOURCE_UN',
+      'unique' => true,
+      'table' => 'ADRESSE_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'ADRESSE_STRUCTURE_STRUCTURE_FK' => 
+    array (
+      'name' => 'ADRESSE_STRUCTURE_STRUCTURE_FK',
+      'unique' => false,
+      'table' => 'ADRESSE_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'AFFECTATION_HCFK_IDX' => 
+    array (
+      'name' => 'AFFECTATION_HCFK_IDX',
+      'unique' => false,
+      'table' => 'AFFECTATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'AFFECTATION_HDFK_IDX' => 
+    array (
+      'name' => 'AFFECTATION_HDFK_IDX',
+      'unique' => false,
+      'table' => 'AFFECTATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'AFFECTATION_HMFK_IDX' => 
+    array (
+      'name' => 'AFFECTATION_HMFK_IDX',
+      'unique' => false,
+      'table' => 'AFFECTATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'AFFECTATION_PK' => 
+    array (
+      'name' => 'AFFECTATION_PK',
+      'unique' => true,
+      'table' => 'AFFECTATION',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'AFFECTATION_RECHERCH_SOURCE_FK' => 
+    array (
+      'name' => 'AFFECTATION_RECHERCH_SOURCE_FK',
+      'unique' => false,
+      'table' => 'AFFECTATION_RECHERCHE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'AFFECTATION_ROLE_FK_IDX' => 
+    array (
+      'name' => 'AFFECTATION_ROLE_FK_IDX',
+      'unique' => false,
+      'table' => 'AFFECTATION',
+      'columns' => 
+      array (
+        0 => 'ROLE_ID',
+      ),
+    ),
+    'AFFECTATION_R_HCFK_IDX' => 
+    array (
+      'name' => 'AFFECTATION_R_HCFK_IDX',
+      'unique' => false,
+      'table' => 'AFFECTATION_RECHERCHE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'AFFECTATION_R_HDFK_IDX' => 
+    array (
+      'name' => 'AFFECTATION_R_HDFK_IDX',
+      'unique' => false,
+      'table' => 'AFFECTATION_RECHERCHE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'AFFECTATION_R_HMFK_IDX' => 
+    array (
+      'name' => 'AFFECTATION_R_HMFK_IDX',
+      'unique' => false,
+      'table' => 'AFFECTATION_RECHERCHE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'AFFECTATION_R_INTERVENANT_FK' => 
+    array (
+      'name' => 'AFFECTATION_R_INTERVENANT_FK',
+      'unique' => false,
+      'table' => 'AFFECTATION_RECHERCHE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'AFFECTATION_R_PK' => 
+    array (
+      'name' => 'AFFECTATION_R_PK',
+      'unique' => true,
+      'table' => 'AFFECTATION_RECHERCHE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'AFFECTATION_R_SRC_UN' => 
+    array (
+      'name' => 'AFFECTATION_R_SRC_UN',
+      'unique' => true,
+      'table' => 'AFFECTATION_RECHERCHE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'AFFECTATION_R_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'AFFECTATION_R_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'AFFECTATION_RECHERCHE',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'AFFECTATION_SOURCE_FK_IDX' => 
+    array (
+      'name' => 'AFFECTATION_SOURCE_FK_IDX',
+      'unique' => false,
+      'table' => 'AFFECTATION',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'AFFECTATION_SOURCE_UN' => 
+    array (
+      'name' => 'AFFECTATION_SOURCE_UN',
+      'unique' => true,
+      'table' => 'AFFECTATION',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'AFFECTATION_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'AFFECTATION_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'AFFECTATION',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'AFFECTATION__UN' => 
+    array (
+      'name' => 'AFFECTATION__UN',
+      'unique' => true,
+      'table' => 'AFFECTATION',
+      'columns' => 
+      array (
+        0 => 'ROLE_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'HISTO_DESTRUCTION',
+        3 => 'UTILISATEUR_ID',
+      ),
+    ),
+    'AGREMENT_HCFK_IDX' => 
+    array (
+      'name' => 'AGREMENT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'AGREMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'AGREMENT_HDFK_IDX' => 
+    array (
+      'name' => 'AGREMENT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'AGREMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'AGREMENT_HMFK_IDX' => 
+    array (
+      'name' => 'AGREMENT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'AGREMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'AGREMENT_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'AGREMENT_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'AGREMENT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'AGREMENT_PK' => 
+    array (
+      'name' => 'AGREMENT_PK',
+      'unique' => true,
+      'table' => 'AGREMENT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'AGREMENT_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'AGREMENT_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'AGREMENT',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'AGREMENT_TYPE_AGREMENT_FK_IDX' => 
+    array (
+      'name' => 'AGREMENT_TYPE_AGREMENT_FK_IDX',
+      'unique' => false,
+      'table' => 'AGREMENT',
+      'columns' => 
+      array (
+        0 => 'TYPE_AGREMENT_ID',
+      ),
+    ),
+    'AGREMENT__UN' => 
+    array (
+      'name' => 'AGREMENT__UN',
+      'unique' => true,
+      'table' => 'AGREMENT',
+      'columns' => 
+      array (
+        0 => 'TYPE_AGREMENT_ID',
+        1 => 'INTERVENANT_ID',
+        2 => 'STRUCTURE_ID',
+        3 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'AII_FK' => 
+    array (
+      'name' => 'AII_FK',
+      'unique' => false,
+      'table' => 'ADRESSE_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'ANNEE_PK' => 
+    array (
+      'name' => 'ANNEE_PK',
+      'unique' => true,
+      'table' => 'ANNEE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CAMPAGNE_PK_IDX' => 
+    array (
+      'name' => 'CAMPAGNE_PK_IDX',
+      'unique' => true,
+      'table' => 'CAMPAGNE_SAISIE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CAMPAGNE_SAISIE_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'CAMPAGNE_SAISIE_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'CAMPAGNE_SAISIE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'CAMPAGNE_SAISIE__UN_IDX' => 
+    array (
+      'name' => 'CAMPAGNE_SAISIE__UN_IDX',
+      'unique' => true,
+      'table' => 'CAMPAGNE_SAISIE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+        1 => 'TYPE_INTERVENANT_ID',
+        2 => 'TYPE_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'CATEGORIE_PRIVILEGE_PK' => 
+    array (
+      'name' => 'CATEGORIE_PRIVILEGE_PK',
+      'unique' => true,
+      'table' => 'CATEGORIE_PRIVILEGE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CATEGORIE_PRIVILEGE__UN' => 
+    array (
+      'name' => 'CATEGORIE_PRIVILEGE__UN',
+      'unique' => true,
+      'table' => 'CATEGORIE_PRIVILEGE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'CCEP_CENTRE_COUT_FK_IDX' => 
+    array (
+      'name' => 'CCEP_CENTRE_COUT_FK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT_EP',
+      'columns' => 
+      array (
+        0 => 'CENTRE_COUT_ID',
+      ),
+    ),
+    'CCEP_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'CCEP_ELEMENT_PEDAGOGIQUE_FK',
+      'unique' => false,
+      'table' => 'CENTRE_COUT_EP',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+      ),
+    ),
+    'CCEP_TYPE_HEURES_FK_IDX' => 
+    array (
+      'name' => 'CCEP_TYPE_HEURES_FK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT_EP',
+      'columns' => 
+      array (
+        0 => 'TYPE_HEURES_ID',
+      ),
+    ),
+    'CCS_CC_S__UN_IDX' => 
+    array (
+      'name' => 'CCS_CC_S__UN_IDX',
+      'unique' => true,
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'CENTRE_COUT_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'CCS_CENTRE_COUT_FK_IDX' => 
+    array (
+      'name' => 'CCS_CENTRE_COUT_FK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'CENTRE_COUT_ID',
+      ),
+    ),
+    'CCS_SOURCE_CODE_UN_IDX' => 
+    array (
+      'name' => 'CCS_SOURCE_CODE_UN_IDX',
+      'unique' => true,
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'CCS_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'CCS_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'CC_ACTIVITE_FA' => 
+    array (
+      'name' => 'CC_ACTIVITE_FA',
+      'unique' => false,
+      'table' => 'CC_ACTIVITE',
+      'columns' => 
+      array (
+        0 => 'FA',
+      ),
+    ),
+    'CC_ACTIVITE_FC' => 
+    array (
+      'name' => 'CC_ACTIVITE_FC',
+      'unique' => false,
+      'table' => 'CC_ACTIVITE',
+      'columns' => 
+      array (
+        0 => 'FC',
+      ),
+    ),
+    'CC_ACTIVITE_FI' => 
+    array (
+      'name' => 'CC_ACTIVITE_FI',
+      'unique' => false,
+      'table' => 'CC_ACTIVITE',
+      'columns' => 
+      array (
+        0 => 'FI',
+      ),
+    ),
+    'CC_ACTIVITE_HCFK_IDX' => 
+    array (
+      'name' => 'CC_ACTIVITE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'CC_ACTIVITE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'CC_ACTIVITE_HDFK_IDX' => 
+    array (
+      'name' => 'CC_ACTIVITE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'CC_ACTIVITE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'CC_ACTIVITE_HMFK_IDX' => 
+    array (
+      'name' => 'CC_ACTIVITE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'CC_ACTIVITE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'CC_ACTIVITE_PK' => 
+    array (
+      'name' => 'CC_ACTIVITE_PK',
+      'unique' => true,
+      'table' => 'CC_ACTIVITE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CC_ACTIVITE_REF' => 
+    array (
+      'name' => 'CC_ACTIVITE_REF',
+      'unique' => false,
+      'table' => 'CC_ACTIVITE',
+      'columns' => 
+      array (
+        0 => 'REFERENTIEL',
+      ),
+    ),
+    'CENTRE_COUT_ACTIVITE_FK_IDX' => 
+    array (
+      'name' => 'CENTRE_COUT_ACTIVITE_FK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT',
+      'columns' => 
+      array (
+        0 => 'ACTIVITE_ID',
+      ),
+    ),
+    'CENTRE_COUT_CENTRE_COUT_FK_IDX' => 
+    array (
+      'name' => 'CENTRE_COUT_CENTRE_COUT_FK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT',
+      'columns' => 
+      array (
+        0 => 'PARENT_ID',
+      ),
+    ),
+    'CENTRE_COUT_EP_HCFK_IDX' => 
+    array (
+      'name' => 'CENTRE_COUT_EP_HCFK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT_EP',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'CENTRE_COUT_EP_HDFK_IDX' => 
+    array (
+      'name' => 'CENTRE_COUT_EP_HDFK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT_EP',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'CENTRE_COUT_EP_HMFK_IDX' => 
+    array (
+      'name' => 'CENTRE_COUT_EP_HMFK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT_EP',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'CENTRE_COUT_EP_PK' => 
+    array (
+      'name' => 'CENTRE_COUT_EP_PK',
+      'unique' => true,
+      'table' => 'CENTRE_COUT_EP',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_EP_SOURCE_FK' => 
+    array (
+      'name' => 'CENTRE_COUT_EP_SOURCE_FK',
+      'unique' => false,
+      'table' => 'CENTRE_COUT_EP',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'CENTRE_COUT_EP__UN' => 
+    array (
+      'name' => 'CENTRE_COUT_EP__UN',
+      'unique' => true,
+      'table' => 'CENTRE_COUT_EP',
+      'columns' => 
+      array (
+        0 => 'CENTRE_COUT_ID',
+        1 => 'ELEMENT_PEDAGOGIQUE_ID',
+        2 => 'TYPE_HEURES_ID',
+        3 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'CENTRE_COUT_HCFK_IDX' => 
+    array (
+      'name' => 'CENTRE_COUT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'CENTRE_COUT_HDFK_IDX' => 
+    array (
+      'name' => 'CENTRE_COUT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'CENTRE_COUT_HMFK_IDX' => 
+    array (
+      'name' => 'CENTRE_COUT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'CENTRE_COUT_PK' => 
+    array (
+      'name' => 'CENTRE_COUT_PK',
+      'unique' => true,
+      'table' => 'CENTRE_COUT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_SOURCE_FK_IDX' => 
+    array (
+      'name' => 'CENTRE_COUT_SOURCE_FK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'CENTRE_COUT_STRUCTURE_HCFK_IDX' => 
+    array (
+      'name' => 'CENTRE_COUT_STRUCTURE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'CENTRE_COUT_STRUCTURE_HDFK_IDX' => 
+    array (
+      'name' => 'CENTRE_COUT_STRUCTURE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'CENTRE_COUT_STRUCTURE_HMFK_IDX' => 
+    array (
+      'name' => 'CENTRE_COUT_STRUCTURE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'CENTRE_COUT_STRUCTURE_PK_IDX' => 
+    array (
+      'name' => 'CENTRE_COUT_STRUCTURE_PK_IDX',
+      'unique' => true,
+      'table' => 'CENTRE_COUT_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CENTRE_COUT_TYPE_RESSOURCE_FK' => 
+    array (
+      'name' => 'CENTRE_COUT_TYPE_RESSOURCE_FK',
+      'unique' => false,
+      'table' => 'CENTRE_COUT',
+      'columns' => 
+      array (
+        0 => 'TYPE_RESSOURCE_ID',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE_ETAPE_FK' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_ETAPE_FK',
+      'unique' => false,
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'ETAPE_ID',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE_HCFK_IDX' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE_HDFK_IDX' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE_HMFK_IDX' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE_PK' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_PK',
+      'unique' => true,
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE_SOURCE_FK' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE_SOURCE_FK',
+      'unique' => false,
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'CHEMIN_PEDAGOGIQUE__UN' => 
+    array (
+      'name' => 'CHEMIN_PEDAGOGIQUE__UN',
+      'unique' => true,
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+        1 => 'ETAPE_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'CHEMIN_PEDAGO_SRC_ID_UN' => 
+    array (
+      'name' => 'CHEMIN_PEDAGO_SRC_ID_UN',
+      'unique' => true,
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'CIVILITE_LIBELLE_COURT_UN' => 
+    array (
+      'name' => 'CIVILITE_LIBELLE_COURT_UN',
+      'unique' => true,
+      'table' => 'CIVILITE',
+      'columns' => 
+      array (
+        0 => 'LIBELLE_COURT',
+      ),
+    ),
+    'CIVILITE_PK' => 
+    array (
+      'name' => 'CIVILITE_PK',
+      'unique' => true,
+      'table' => 'CIVILITE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CONTRAT_CONTRAT_FK_IDX' => 
+    array (
+      'name' => 'CONTRAT_CONTRAT_FK_IDX',
+      'unique' => false,
+      'table' => 'CONTRAT',
+      'columns' => 
+      array (
+        0 => 'CONTRAT_ID',
+      ),
+    ),
+    'CONTRAT_FICHIER_FFK_IDX' => 
+    array (
+      'name' => 'CONTRAT_FICHIER_FFK_IDX',
+      'unique' => false,
+      'table' => 'CONTRAT_FICHIER',
+      'columns' => 
+      array (
+        0 => 'FICHIER_ID',
+      ),
+    ),
+    'CONTRAT_FICHIER_FK' => 
+    array (
+      'name' => 'CONTRAT_FICHIER_FK',
+      'unique' => false,
+      'table' => 'CONTRAT_FICHIER',
+      'columns' => 
+      array (
+        0 => 'CONTRAT_ID',
+      ),
+    ),
+    'CONTRAT_FICHIER_PK' => 
+    array (
+      'name' => 'CONTRAT_FICHIER_PK',
+      'unique' => true,
+      'table' => 'CONTRAT_FICHIER',
+      'columns' => 
+      array (
+        0 => 'CONTRAT_ID',
+        1 => 'FICHIER_ID',
+      ),
+    ),
+    'CONTRAT_HCFK_IDX' => 
+    array (
+      'name' => 'CONTRAT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'CONTRAT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'CONTRAT_HDFK_IDX' => 
+    array (
+      'name' => 'CONTRAT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'CONTRAT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'CONTRAT_HMFK_IDX' => 
+    array (
+      'name' => 'CONTRAT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'CONTRAT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'CONTRAT_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'CONTRAT_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'CONTRAT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'CONTRAT_NUMERO_AVENANT_UN' => 
+    array (
+      'name' => 'CONTRAT_NUMERO_AVENANT_UN',
+      'unique' => true,
+      'table' => 'CONTRAT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'NUMERO_AVENANT',
+        3 => 'VALIDATION_ID',
+        4 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'CONTRAT_PK' => 
+    array (
+      'name' => 'CONTRAT_PK',
+      'unique' => true,
+      'table' => 'CONTRAT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CONTRAT_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'CONTRAT_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'CONTRAT',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'CONTRAT_TYPE_CONTRAT_FK_IDX' => 
+    array (
+      'name' => 'CONTRAT_TYPE_CONTRAT_FK_IDX',
+      'unique' => false,
+      'table' => 'CONTRAT',
+      'columns' => 
+      array (
+        0 => 'TYPE_CONTRAT_ID',
+      ),
+    ),
+    'CONTRAT_VALIDATION_FK_IDX' => 
+    array (
+      'name' => 'CONTRAT_VALIDATION_FK_IDX',
+      'unique' => false,
+      'table' => 'CONTRAT',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+      ),
+    ),
+    'CORPS_HCFK_IDX' => 
+    array (
+      'name' => 'CORPS_HCFK_IDX',
+      'unique' => false,
+      'table' => 'CORPS',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'CORPS_HDFK_IDX' => 
+    array (
+      'name' => 'CORPS_HDFK_IDX',
+      'unique' => false,
+      'table' => 'CORPS',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'CORPS_HMFK_IDX' => 
+    array (
+      'name' => 'CORPS_HMFK_IDX',
+      'unique' => false,
+      'table' => 'CORPS',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'CORPS_PK' => 
+    array (
+      'name' => 'CORPS_PK',
+      'unique' => true,
+      'table' => 'CORPS',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'CORPS_SOURCE_FK_IDX' => 
+    array (
+      'name' => 'CORPS_SOURCE_FK_IDX',
+      'unique' => false,
+      'table' => 'CORPS',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'CORPS_SOURCE_UN' => 
+    array (
+      'name' => 'CORPS_SOURCE_UN',
+      'unique' => true,
+      'table' => 'CORPS',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'CPEP_FK_IDX' => 
+    array (
+      'name' => 'CPEP_FK_IDX',
+      'unique' => false,
+      'table' => 'CHEMIN_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+      ),
+    ),
+    'CS_TYPE_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'CS_TYPE_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'CAMPAGNE_SAISIE',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENANT_ID',
+      ),
+    ),
+    'CS_TYPE_VOLUME_HORAIRE_FK_IDX' => 
+    array (
+      'name' => 'CS_TYPE_VOLUME_HORAIRE_FK_IDX',
+      'unique' => false,
+      'table' => 'CAMPAGNE_SAISIE',
+      'columns' => 
+      array (
+        0 => 'TYPE_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'DEPARTEMENT_HCFK_IDX' => 
+    array (
+      'name' => 'DEPARTEMENT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'DEPARTEMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'DEPARTEMENT_HDFK_IDX' => 
+    array (
+      'name' => 'DEPARTEMENT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'DEPARTEMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'DEPARTEMENT_HMFK_IDX' => 
+    array (
+      'name' => 'DEPARTEMENT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'DEPARTEMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'DEPARTEMENT_PK' => 
+    array (
+      'name' => 'DEPARTEMENT_PK',
+      'unique' => true,
+      'table' => 'DEPARTEMENT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'DEPARTEMENT_SOURCE_FK_IDX' => 
+    array (
+      'name' => 'DEPARTEMENT_SOURCE_FK_IDX',
+      'unique' => false,
+      'table' => 'DEPARTEMENT',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'DISCIPLINE_HCFK_IDX' => 
+    array (
+      'name' => 'DISCIPLINE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'DISCIPLINE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'DISCIPLINE_HDFK_IDX' => 
+    array (
+      'name' => 'DISCIPLINE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'DISCIPLINE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'DISCIPLINE_HMFK_IDX' => 
+    array (
+      'name' => 'DISCIPLINE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'DISCIPLINE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'DISCIPLINE_PK' => 
+    array (
+      'name' => 'DISCIPLINE_PK',
+      'unique' => true,
+      'table' => 'DISCIPLINE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'DISCIPLINE_SOURCE_FK_IDX' => 
+    array (
+      'name' => 'DISCIPLINE_SOURCE_FK_IDX',
+      'unique' => false,
+      'table' => 'DISCIPLINE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'DISCIPLINE_SOURCE_UN' => 
+    array (
+      'name' => 'DISCIPLINE_SOURCE_UN',
+      'unique' => true,
+      'table' => 'DISCIPLINE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'DOMAINE_FONCTIONNEL_HCFK_IDX' => 
+    array (
+      'name' => 'DOMAINE_FONCTIONNEL_HCFK_IDX',
+      'unique' => false,
+      'table' => 'DOMAINE_FONCTIONNEL',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'DOMAINE_FONCTIONNEL_HDFK_IDX' => 
+    array (
+      'name' => 'DOMAINE_FONCTIONNEL_HDFK_IDX',
+      'unique' => false,
+      'table' => 'DOMAINE_FONCTIONNEL',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'DOMAINE_FONCTIONNEL_HMFK_IDX' => 
+    array (
+      'name' => 'DOMAINE_FONCTIONNEL_HMFK_IDX',
+      'unique' => false,
+      'table' => 'DOMAINE_FONCTIONNEL',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'DOMAINE_FONCTIONNEL_PK' => 
+    array (
+      'name' => 'DOMAINE_FONCTIONNEL_PK',
+      'unique' => true,
+      'table' => 'DOMAINE_FONCTIONNEL',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'DOMAINE_FONCTIONNEL_SOURCE_FK' => 
+    array (
+      'name' => 'DOMAINE_FONCTIONNEL_SOURCE_FK',
+      'unique' => false,
+      'table' => 'DOMAINE_FONCTIONNEL',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'DOSSIER_D_FK' => 
+    array (
+      'name' => 'DOSSIER_D_FK',
+      'unique' => false,
+      'table' => 'DOSSIER',
+      'columns' => 
+      array (
+        0 => 'DEPT_NAISSANCE_ID',
+      ),
+    ),
+    'DOSSIER_HCFK_IDX' => 
+    array (
+      'name' => 'DOSSIER_HCFK_IDX',
+      'unique' => false,
+      'table' => 'DOSSIER',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'DOSSIER_HDFK_IDX' => 
+    array (
+      'name' => 'DOSSIER_HDFK_IDX',
+      'unique' => false,
+      'table' => 'DOSSIER',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'DOSSIER_HMFK_IDX' => 
+    array (
+      'name' => 'DOSSIER_HMFK_IDX',
+      'unique' => false,
+      'table' => 'DOSSIER',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'DOSSIER_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'DOSSIER_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'DOSSIER',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'DOSSIER_PK' => 
+    array (
+      'name' => 'DOSSIER_PK',
+      'unique' => true,
+      'table' => 'DOSSIER',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'DOSSIER_P_FK' => 
+    array (
+      'name' => 'DOSSIER_P_FK',
+      'unique' => false,
+      'table' => 'DOSSIER',
+      'columns' => 
+      array (
+        0 => 'PAYS_NAISSANCE_ID',
+      ),
+    ),
+    'DOSSIER_UK1' => 
+    array (
+      'name' => 'DOSSIER_UK1',
+      'unique' => true,
+      'table' => 'DOSSIER',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'DOTATION_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'DOTATION_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'DOTATION',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'DOTATION_HCFK_IDX' => 
+    array (
+      'name' => 'DOTATION_HCFK_IDX',
+      'unique' => false,
+      'table' => 'DOTATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'DOTATION_HDFK_IDX' => 
+    array (
+      'name' => 'DOTATION_HDFK_IDX',
+      'unique' => false,
+      'table' => 'DOTATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'DOTATION_HMFK_IDX' => 
+    array (
+      'name' => 'DOTATION_HMFK_IDX',
+      'unique' => false,
+      'table' => 'DOTATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'DOTATION_PK' => 
+    array (
+      'name' => 'DOTATION_PK',
+      'unique' => true,
+      'table' => 'DOTATION',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'DOTATION_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'DOTATION_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'DOTATION',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'DOTATION_TYPE_RESSOURCE_FK' => 
+    array (
+      'name' => 'DOTATION_TYPE_RESSOURCE_FK',
+      'unique' => false,
+      'table' => 'DOTATION',
+      'columns' => 
+      array (
+        0 => 'TYPE_RESSOURCE_ID',
+      ),
+    ),
+    'DOTATION__UN' => 
+    array (
+      'name' => 'DOTATION__UN',
+      'unique' => true,
+      'table' => 'DOTATION',
+      'columns' => 
+      array (
+        0 => 'TYPE_RESSOURCE_ID',
+        1 => 'ANNEE_ID',
+        2 => 'ANNEE_CIVILE',
+        3 => 'STRUCTURE_ID',
+        4 => 'LIBELLE',
+        5 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'DS_MDS_FK_IDX' => 
+    array (
+      'name' => 'DS_MDS_FK_IDX',
+      'unique' => false,
+      'table' => 'MODIFICATION_SERVICE_DU',
+      'columns' => 
+      array (
+        0 => 'MOTIF_ID',
+      ),
+    ),
+    'EFFECTIFS_ELEMENT_FK_IDX' => 
+    array (
+      'name' => 'EFFECTIFS_ELEMENT_FK_IDX',
+      'unique' => false,
+      'table' => 'EFFECTIFS',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+      ),
+    ),
+    'EFFECTIFS_FK' => 
+    array (
+      'name' => 'EFFECTIFS_FK',
+      'unique' => false,
+      'table' => 'EFFECTIFS',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'EFFECTIFS_HCFK_IDX' => 
+    array (
+      'name' => 'EFFECTIFS_HCFK_IDX',
+      'unique' => false,
+      'table' => 'EFFECTIFS',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'EFFECTIFS_HDFK_IDX' => 
+    array (
+      'name' => 'EFFECTIFS_HDFK_IDX',
+      'unique' => false,
+      'table' => 'EFFECTIFS',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'EFFECTIFS_HMFK_IDX' => 
+    array (
+      'name' => 'EFFECTIFS_HMFK_IDX',
+      'unique' => false,
+      'table' => 'EFFECTIFS',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'EFFECTIFS_PK' => 
+    array (
+      'name' => 'EFFECTIFS_PK',
+      'unique' => true,
+      'table' => 'EFFECTIFS',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'EFFECTIFS_SOURCE_FK_IDX' => 
+    array (
+      'name' => 'EFFECTIFS_SOURCE_FK_IDX',
+      'unique' => false,
+      'table' => 'EFFECTIFS',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'EFFECTIFS__UN' => 
+    array (
+      'name' => 'EFFECTIFS__UN',
+      'unique' => true,
+      'table' => 'EFFECTIFS',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'ANNEE_ID',
+      ),
+    ),
+    'ELEMENT_MODULATEUR_HCFK_IDX' => 
+    array (
+      'name' => 'ELEMENT_MODULATEUR_HCFK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'ELEMENT_MODULATEUR_HDFK_IDX' => 
+    array (
+      'name' => 'ELEMENT_MODULATEUR_HDFK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'ELEMENT_MODULATEUR_HMFK_IDX' => 
+    array (
+      'name' => 'ELEMENT_MODULATEUR_HMFK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'ELEMENT_MODULATEUR_PK' => 
+    array (
+      'name' => 'ELEMENT_MODULATEUR_PK',
+      'unique' => true,
+      'table' => 'ELEMENT_MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ELEMENT_MODULATEUR__UN' => 
+    array (
+      'name' => 'ELEMENT_MODULATEUR__UN',
+      'unique' => true,
+      'table' => 'ELEMENT_MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_ID',
+        1 => 'MODULATEUR_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_ANNEE_FK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_ANNEE_FK',
+      'unique' => false,
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_ETAPE_FK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_ETAPE_FK',
+      'unique' => false,
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'ETAPE_ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_HCFK_IDX' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_HDFK_IDX' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_HMFK_IDX' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_PERIODE_FK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_PERIODE_FK',
+      'unique' => false,
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'PERIODE_ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_PK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_PK',
+      'unique' => true,
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ELEMENT_PEDAGOGIQUE_SOURCE_FK' => 
+    array (
+      'name' => 'ELEMENT_PEDAGOGIQUE_SOURCE_FK',
+      'unique' => false,
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES_HCFK_IDX' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES_HCFK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES_HDFK_IDX' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES_HDFK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES_HMFK_IDX' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES_HMFK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES_PK' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES_PK',
+      'unique' => true,
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES_SOURCE_FK' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES_SOURCE_FK',
+      'unique' => false,
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES__UN' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES__UN',
+      'unique' => true,
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'ELEMENT_TAUX_REGIMES__UNV1' => 
+    array (
+      'name' => 'ELEMENT_TAUX_REGIMES__UNV1',
+      'unique' => true,
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'EM_ELEMENT_PEDAGOGIQUE_FK_IDX' => 
+    array (
+      'name' => 'EM_ELEMENT_PEDAGOGIQUE_FK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_ID',
+      ),
+    ),
+    'EM_MODULATEUR_FK_IDX' => 
+    array (
+      'name' => 'EM_MODULATEUR_FK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'MODULATEUR_ID',
+      ),
+    ),
+    'EPS_FK_IDX' => 
+    array (
+      'name' => 'EPS_FK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'EP_CODE_UN' => 
+    array (
+      'name' => 'EP_CODE_UN',
+      'unique' => true,
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+        1 => 'HISTO_DESTRUCTION',
+        2 => 'ANNEE_ID',
+      ),
+    ),
+    'EP_CODE__UN' => 
+    array (
+      'name' => 'EP_CODE__UN',
+      'unique' => true,
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'ANNEE_ID',
+      ),
+    ),
+    'EP_DISCIPLINE_FK_IDX' => 
+    array (
+      'name' => 'EP_DISCIPLINE_FK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'DISCIPLINE_ID',
+      ),
+    ),
+    'EP_SRC_UN' => 
+    array (
+      'name' => 'EP_SRC_UN',
+      'unique' => true,
+      'table' => 'ELEMENT_PEDAGOGIQUE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'ANNEE_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'ETABLISSEMENT_HCFK_IDX' => 
+    array (
+      'name' => 'ETABLISSEMENT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'ETABLISSEMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'ETABLISSEMENT_HDFK_IDX' => 
+    array (
+      'name' => 'ETABLISSEMENT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'ETABLISSEMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'ETABLISSEMENT_HMFK_IDX' => 
+    array (
+      'name' => 'ETABLISSEMENT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'ETABLISSEMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'ETABLISSEMENT_PK' => 
+    array (
+      'name' => 'ETABLISSEMENT_PK',
+      'unique' => true,
+      'table' => 'ETABLISSEMENT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ETABLISSEMENT_SOURCE_FK_IDX' => 
+    array (
+      'name' => 'ETABLISSEMENT_SOURCE_FK_IDX',
+      'unique' => false,
+      'table' => 'ETABLISSEMENT',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'ETABLISSEMENT_SOURCE_ID_UN' => 
+    array (
+      'name' => 'ETABLISSEMENT_SOURCE_ID_UN',
+      'unique' => true,
+      'table' => 'ETABLISSEMENT',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'ETABLISSEMENT_SOURCE_UN' => 
+    array (
+      'name' => 'ETABLISSEMENT_SOURCE_UN',
+      'unique' => true,
+      'table' => 'ETABLISSEMENT',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'ETAPE_ANNEE_FK' => 
+    array (
+      'name' => 'ETAPE_ANNEE_FK',
+      'unique' => false,
+      'table' => 'ETAPE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'ETAPE_CODE_UN' => 
+    array (
+      'name' => 'ETAPE_CODE_UN',
+      'unique' => true,
+      'table' => 'ETAPE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+        1 => 'ANNEE_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'ETAPE_DOMAINE_FONCTIONNEL_FK' => 
+    array (
+      'name' => 'ETAPE_DOMAINE_FONCTIONNEL_FK',
+      'unique' => false,
+      'table' => 'ETAPE',
+      'columns' => 
+      array (
+        0 => 'DOMAINE_FONCTIONNEL_ID',
+      ),
+    ),
+    'ETAPE_HCFK_IDX' => 
+    array (
+      'name' => 'ETAPE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'ETAPE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'ETAPE_HDFK_IDX' => 
+    array (
+      'name' => 'ETAPE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'ETAPE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'ETAPE_HMFK_IDX' => 
+    array (
+      'name' => 'ETAPE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'ETAPE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'ETAPE_PK' => 
+    array (
+      'name' => 'ETAPE_PK',
+      'unique' => true,
+      'table' => 'ETAPE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ETAPE_SOURCE_FK_IDX' => 
+    array (
+      'name' => 'ETAPE_SOURCE_FK_IDX',
+      'unique' => false,
+      'table' => 'ETAPE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'ETAPE_SRC_UN' => 
+    array (
+      'name' => 'ETAPE_SRC_UN',
+      'unique' => true,
+      'table' => 'ETAPE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+        2 => 'ANNEE_ID',
+      ),
+    ),
+    'ETAPE_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'ETAPE_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'ETAPE',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'ETAPE_TYPE_FORMATION_FK_IDX' => 
+    array (
+      'name' => 'ETAPE_TYPE_FORMATION_FK_IDX',
+      'unique' => false,
+      'table' => 'ETAPE',
+      'columns' => 
+      array (
+        0 => 'TYPE_FORMATION_ID',
+      ),
+    ),
+    'ETAT_SORTIE_CODE_UN' => 
+    array (
+      'name' => 'ETAT_SORTIE_CODE_UN',
+      'unique' => true,
+      'table' => 'ETAT_SORTIE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'ETAT_SORTIE_PK' => 
+    array (
+      'name' => 'ETAT_SORTIE_PK',
+      'unique' => true,
+      'table' => 'ETAT_SORTIE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ETAT_VOLUME_HORAIRE_PK' => 
+    array (
+      'name' => 'ETAT_VOLUME_HORAIRE_PK',
+      'unique' => true,
+      'table' => 'ETAT_VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ETAT_VOLUME_HORAIRE__UN' => 
+    array (
+      'name' => 'ETAT_VOLUME_HORAIRE__UN',
+      'unique' => true,
+      'table' => 'ETAT_VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'ETR_ELEMENT_FK_IDX' => 
+    array (
+      'name' => 'ETR_ELEMENT_FK_IDX',
+      'unique' => false,
+      'table' => 'ELEMENT_TAUX_REGIMES',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+      ),
+    ),
+    'FICHIER_HCFK_IDX' => 
+    array (
+      'name' => 'FICHIER_HCFK_IDX',
+      'unique' => false,
+      'table' => 'FICHIER',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'FICHIER_HDFK_IDX' => 
+    array (
+      'name' => 'FICHIER_HDFK_IDX',
+      'unique' => false,
+      'table' => 'FICHIER',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'FICHIER_HMFK_IDX' => 
+    array (
+      'name' => 'FICHIER_HMFK_IDX',
+      'unique' => false,
+      'table' => 'FICHIER',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'FICHIER_PK' => 
+    array (
+      'name' => 'FICHIER_PK',
+      'unique' => true,
+      'table' => 'FICHIER',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FICHIER_VALID_FK_IDX' => 
+    array (
+      'name' => 'FICHIER_VALID_FK_IDX',
+      'unique' => false,
+      'table' => 'FICHIER',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+      ),
+    ),
+    'FONCTION_REFERENTIEL_CODE_UN' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL_CODE_UN',
+      'unique' => true,
+      'table' => 'FONCTION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'FONCTION_REFERENTIEL_HCFK_IDX' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL_HCFK_IDX',
+      'unique' => false,
+      'table' => 'FONCTION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'FONCTION_REFERENTIEL_HDFK_IDX' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL_HDFK_IDX',
+      'unique' => false,
+      'table' => 'FONCTION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'FONCTION_REFERENTIEL_HMFK_IDX' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL_HMFK_IDX',
+      'unique' => false,
+      'table' => 'FONCTION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'FONCTION_REFERENTIEL_PK' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL_PK',
+      'unique' => true,
+      'table' => 'FONCTION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FONCTION_REFERENTIEL_SFK_IDX' => 
+    array (
+      'name' => 'FONCTION_REFERENTIEL_SFK_IDX',
+      'unique' => false,
+      'table' => 'FONCTION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'FONC_REF_DOMAINE_FONCT_FK_IDX' => 
+    array (
+      'name' => 'FONC_REF_DOMAINE_FONCT_FK_IDX',
+      'unique' => false,
+      'table' => 'FONCTION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'DOMAINE_FONCTIONNEL_ID',
+      ),
+    ),
+    'FORMULE_PK' => 
+    array (
+      'name' => 'FORMULE_PK',
+      'unique' => true,
+      'table' => 'FORMULE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_RESULTAT_PK' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_PK',
+      'unique' => true,
+      'table' => 'FORMULE_RESULTAT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_RESULTAT_SERVICE_PK' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_SERVICE_PK',
+      'unique' => true,
+      'table' => 'FORMULE_RESULTAT_SERVICE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_RESULTAT_TYPE_INT_IDX' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_TYPE_INT_IDX',
+      'unique' => false,
+      'table' => 'FORMULE_RESULTAT',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENANT_CODE',
+      ),
+    ),
+    'FORMULE_RESULTAT_VH_PK' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_VH_PK',
+      'unique' => true,
+      'table' => 'FORMULE_RESULTAT_VH',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_RESULTAT_VH_REF_PK' => 
+    array (
+      'name' => 'FORMULE_RESULTAT_VH_REF_PK',
+      'unique' => true,
+      'table' => 'FORMULE_RESULTAT_VH_REF',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_RESULTAT__UN' => 
+    array (
+      'name' => 'FORMULE_RESULTAT__UN',
+      'unique' => true,
+      'table' => 'FORMULE_RESULTAT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TYPE_VOLUME_HORAIRE_ID',
+        2 => 'ETAT_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'FORMULE_TEST_INTERVENANT_PK' => 
+    array (
+      'name' => 'FORMULE_TEST_INTERVENANT_PK',
+      'unique' => true,
+      'table' => 'FORMULE_TEST_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_TEST_STRUCTURE_PK' => 
+    array (
+      'name' => 'FORMULE_TEST_STRUCTURE_PK',
+      'unique' => true,
+      'table' => 'FORMULE_TEST_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE_TEST_STRUCTURE__UN' => 
+    array (
+      'name' => 'FORMULE_TEST_STRUCTURE__UN',
+      'unique' => true,
+      'table' => 'FORMULE_TEST_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'LIBELLE',
+      ),
+    ),
+    'FORMULE_TEST_VOLUME_HORAIRE_PK' => 
+    array (
+      'name' => 'FORMULE_TEST_VOLUME_HORAIRE_PK',
+      'unique' => true,
+      'table' => 'FORMULE_TEST_VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FORMULE__UN' => 
+    array (
+      'name' => 'FORMULE__UN',
+      'unique' => true,
+      'table' => 'FORMULE',
+      'columns' => 
+      array (
+        0 => 'LIBELLE',
+      ),
+    ),
+    'FRES_ETAT_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'FRES_ETAT_VOLUME_HORAIRE_FK',
+      'unique' => false,
+      'table' => 'FORMULE_RESULTAT',
+      'columns' => 
+      array (
+        0 => 'ETAT_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'FRES_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'FRES_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'FORMULE_RESULTAT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'FRES_TYPE_VOLUME_HORAIRE_FK' => 
+    array (
+      'name' => 'FRES_TYPE_VOLUME_HORAIRE_FK',
+      'unique' => false,
+      'table' => 'FORMULE_RESULTAT',
+      'columns' => 
+      array (
+        0 => 'TYPE_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'FRR_FORMULE_RESULTAT_FK_IDX' => 
+    array (
+      'name' => 'FRR_FORMULE_RESULTAT_FK_IDX',
+      'unique' => false,
+      'table' => 'FORMULE_RESULTAT_SERVICE_REF',
+      'columns' => 
+      array (
+        0 => 'FORMULE_RESULTAT_ID',
+      ),
+    ),
+    'FRSR_PK' => 
+    array (
+      'name' => 'FRSR_PK',
+      'unique' => true,
+      'table' => 'FORMULE_RESULTAT_SERVICE_REF',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'FRSR_SERVICE_REFERENTIEL_FK' => 
+    array (
+      'name' => 'FRSR_SERVICE_REFERENTIEL_FK',
+      'unique' => false,
+      'table' => 'FORMULE_RESULTAT_SERVICE_REF',
+      'columns' => 
+      array (
+        0 => 'SERVICE_REFERENTIEL_ID',
+      ),
+    ),
+    'FRS_FORMULE_RESULTAT_FK_IDX' => 
+    array (
+      'name' => 'FRS_FORMULE_RESULTAT_FK_IDX',
+      'unique' => false,
+      'table' => 'FORMULE_RESULTAT_SERVICE',
+      'columns' => 
+      array (
+        0 => 'FORMULE_RESULTAT_ID',
+      ),
+    ),
+    'FRS_SERVICE_FK_IDX' => 
+    array (
+      'name' => 'FRS_SERVICE_FK_IDX',
+      'unique' => false,
+      'table' => 'FORMULE_RESULTAT_SERVICE',
+      'columns' => 
+      array (
+        0 => 'SERVICE_ID',
+      ),
+    ),
+    'FRVHR_FORMULE_RESULTAT_FK_IDX' => 
+    array (
+      'name' => 'FRVHR_FORMULE_RESULTAT_FK_IDX',
+      'unique' => false,
+      'table' => 'FORMULE_RESULTAT_VH_REF',
+      'columns' => 
+      array (
+        0 => 'FORMULE_RESULTAT_ID',
+      ),
+    ),
+    'FRVHR_VOLUME_HORAIRE_REF_FK' => 
+    array (
+      'name' => 'FRVHR_VOLUME_HORAIRE_REF_FK',
+      'unique' => false,
+      'table' => 'FORMULE_RESULTAT_VH_REF',
+      'columns' => 
+      array (
+        0 => 'VOLUME_HORAIRE_REF_ID',
+      ),
+    ),
+    'FRVH_FORMULE_RESULTAT_FK_IDX' => 
+    array (
+      'name' => 'FRVH_FORMULE_RESULTAT_FK_IDX',
+      'unique' => false,
+      'table' => 'FORMULE_RESULTAT_VH',
+      'columns' => 
+      array (
+        0 => 'FORMULE_RESULTAT_ID',
+      ),
+    ),
+    'FRVH_VOLUME_HORAIRE_FK_IDX' => 
+    array (
+      'name' => 'FRVH_VOLUME_HORAIRE_FK_IDX',
+      'unique' => false,
+      'table' => 'FORMULE_RESULTAT_VH',
+      'columns' => 
+      array (
+        0 => 'VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'GRADE_CORPS_FK_IDX' => 
+    array (
+      'name' => 'GRADE_CORPS_FK_IDX',
+      'unique' => false,
+      'table' => 'GRADE',
+      'columns' => 
+      array (
+        0 => 'CORPS_ID',
+      ),
+    ),
+    'GRADE_HCFK_IDX' => 
+    array (
+      'name' => 'GRADE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'GRADE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'GRADE_HDFK_IDX' => 
+    array (
+      'name' => 'GRADE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'GRADE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'GRADE_HMFK_IDX' => 
+    array (
+      'name' => 'GRADE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'GRADE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'GRADE_PK' => 
+    array (
+      'name' => 'GRADE_PK',
+      'unique' => true,
+      'table' => 'GRADE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'GROUPE_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'GROUPE_ELEMENT_PEDAGOGIQUE_FK',
+      'unique' => false,
+      'table' => 'GROUPE',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+      ),
+    ),
+    'GROUPE_HCFK_IDX' => 
+    array (
+      'name' => 'GROUPE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'GROUPE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'GROUPE_HDFK_IDX' => 
+    array (
+      'name' => 'GROUPE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'GROUPE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'GROUPE_HMFK_IDX' => 
+    array (
+      'name' => 'GROUPE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'GROUPE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'GROUPE_PK' => 
+    array (
+      'name' => 'GROUPE_PK',
+      'unique' => true,
+      'table' => 'GROUPE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'GROUPE_TYPE_FORMATION_HCFK_IDX' => 
+    array (
+      'name' => 'GROUPE_TYPE_FORMATION_HCFK_IDX',
+      'unique' => false,
+      'table' => 'GROUPE_TYPE_FORMATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'GROUPE_TYPE_FORMATION_HDFK_IDX' => 
+    array (
+      'name' => 'GROUPE_TYPE_FORMATION_HDFK_IDX',
+      'unique' => false,
+      'table' => 'GROUPE_TYPE_FORMATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'GROUPE_TYPE_FORMATION_HMFK_IDX' => 
+    array (
+      'name' => 'GROUPE_TYPE_FORMATION_HMFK_IDX',
+      'unique' => false,
+      'table' => 'GROUPE_TYPE_FORMATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'GROUPE_TYPE_FORMATION_PK' => 
+    array (
+      'name' => 'GROUPE_TYPE_FORMATION_PK',
+      'unique' => true,
+      'table' => 'GROUPE_TYPE_FORMATION',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'GROUPE_TYPE_FORMATIO_SOURCE_FK' => 
+    array (
+      'name' => 'GROUPE_TYPE_FORMATIO_SOURCE_FK',
+      'unique' => false,
+      'table' => 'GROUPE_TYPE_FORMATION',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'GROUPE_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'GROUPE_TYPE_INTERVENTION_FK',
+      'unique' => false,
+      'table' => 'GROUPE',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENTION_ID',
+      ),
+    ),
+    'GROUPE__UN' => 
+    array (
+      'name' => 'GROUPE__UN',
+      'unique' => true,
+      'table' => 'GROUPE',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+        1 => 'HISTO_DESTRUCTEUR_ID',
+        2 => 'TYPE_INTERVENTION_ID',
+      ),
+    ),
+    'GTYPE_FORMATION_SOURCE_UN' => 
+    array (
+      'name' => 'GTYPE_FORMATION_SOURCE_UN',
+      'unique' => true,
+      'table' => 'GROUPE_TYPE_FORMATION',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'HISTO_INTERVENANT_SERVICE__UN' => 
+    array (
+      'name' => 'HISTO_INTERVENANT_SERVICE__UN',
+      'unique' => true,
+      'table' => 'HISTO_INTERVENANT_SERVICE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TYPE_VOLUME_HORAIRE_ID',
+        2 => 'REFERENTIEL',
+      ),
+    ),
+    'HISTO_SERVICE_MODIFICATION_PK' => 
+    array (
+      'name' => 'HISTO_SERVICE_MODIFICATION_PK',
+      'unique' => true,
+      'table' => 'HISTO_INTERVENANT_SERVICE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'HSM_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'HSM_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'HISTO_INTERVENANT_SERVICE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'HSM_TYPE_VOLUME_HORAIRE_FK_IDX' => 
+    array (
+      'name' => 'HSM_TYPE_VOLUME_HORAIRE_FK_IDX',
+      'unique' => false,
+      'table' => 'HISTO_INTERVENANT_SERVICE',
+      'columns' => 
+      array (
+        0 => 'TYPE_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'HSM_UTILISATEUR_FK_IDX' => 
+    array (
+      'name' => 'HSM_UTILISATEUR_FK_IDX',
+      'unique' => false,
+      'table' => 'HISTO_INTERVENANT_SERVICE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'IMPORT_TABLES_PK' => 
+    array (
+      'name' => 'IMPORT_TABLES_PK',
+      'unique' => true,
+      'table' => 'IMPORT_TABLES',
+      'columns' => 
+      array (
+        0 => 'TABLE_NAME',
+      ),
+    ),
+    'INDICATEUR_PK' => 
+    array (
+      'name' => 'INDICATEUR_PK',
+      'unique' => true,
+      'table' => 'INDICATEUR',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'INDIC_DIFF_DOSSIER_INT_FK' => 
+    array (
+      'name' => 'INDIC_DIFF_DOSSIER_INT_FK',
+      'unique' => false,
+      'table' => 'INDIC_MODIF_DOSSIER',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'INDIC_MODIF_DOSSIER_HCFK_IDX' => 
+    array (
+      'name' => 'INDIC_MODIF_DOSSIER_HCFK_IDX',
+      'unique' => false,
+      'table' => 'INDIC_MODIF_DOSSIER',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'INDIC_MODIF_DOSSIER_HDFK_IDX' => 
+    array (
+      'name' => 'INDIC_MODIF_DOSSIER_HDFK_IDX',
+      'unique' => false,
+      'table' => 'INDIC_MODIF_DOSSIER',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'INDIC_MODIF_DOSSIER_HMFK_IDX' => 
+    array (
+      'name' => 'INDIC_MODIF_DOSSIER_HMFK_IDX',
+      'unique' => false,
+      'table' => 'INDIC_MODIF_DOSSIER',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'INDIC_MODIF_DOSSIER_PK' => 
+    array (
+      'name' => 'INDIC_MODIF_DOSSIER_PK',
+      'unique' => true,
+      'table' => 'INDIC_MODIF_DOSSIER',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'INTERVENANTS_CIVILITES_FK_IDX' => 
+    array (
+      'name' => 'INTERVENANTS_CIVILITES_FK_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'CIVILITE_ID',
+      ),
+    ),
+    'INTERVENANT_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'INTERVENANT_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'INTERVENANT_CODE_UN' => 
+    array (
+      'name' => 'INTERVENANT_CODE_UN',
+      'unique' => true,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'CODE',
+        1 => 'ANNEE_ID',
+      ),
+    ),
+    'INTERVENANT_DEPARTEMENT_FK' => 
+    array (
+      'name' => 'INTERVENANT_DEPARTEMENT_FK',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'DEP_NAISSANCE_ID',
+      ),
+    ),
+    'INTERVENANT_DISCIPLINE_FK_IDX' => 
+    array (
+      'name' => 'INTERVENANT_DISCIPLINE_FK_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'DISCIPLINE_ID',
+      ),
+    ),
+    'INTERVENANT_GRADE_FK_IDX' => 
+    array (
+      'name' => 'INTERVENANT_GRADE_FK_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'GRADE_ID',
+      ),
+    ),
+    'INTERVENANT_HCFK_IDX' => 
+    array (
+      'name' => 'INTERVENANT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'INTERVENANT_HDFK_IDX' => 
+    array (
+      'name' => 'INTERVENANT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'INTERVENANT_HMFK_IDX' => 
+    array (
+      'name' => 'INTERVENANT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'INTERVENANT_LISTE_NOIRE_PK' => 
+    array (
+      'name' => 'INTERVENANT_LISTE_NOIRE_PK',
+      'unique' => true,
+      'table' => 'LISTE_NOIRE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'INTERVENANT_NOM_PATRO_IDX' => 
+    array (
+      'name' => 'INTERVENANT_NOM_PATRO_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'NOM_PATRONYMIQUE',
+      ),
+    ),
+    'INTERVENANT_NOM_USUEL_IDX' => 
+    array (
+      'name' => 'INTERVENANT_NOM_USUEL_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'NOM_USUEL',
+      ),
+    ),
+    'INTERVENANT_PAYS_NAISS_FK' => 
+    array (
+      'name' => 'INTERVENANT_PAYS_NAISS_FK',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'PAYS_NAISSANCE_ID',
+      ),
+    ),
+    'INTERVENANT_PAYS_NAT_FK' => 
+    array (
+      'name' => 'INTERVENANT_PAYS_NAT_FK',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'PAYS_NATIONALITE_ID',
+      ),
+    ),
+    'INTERVENANT_PK' => 
+    array (
+      'name' => 'INTERVENANT_PK',
+      'unique' => true,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'INTERVENANT_PRENOM_IDX' => 
+    array (
+      'name' => 'INTERVENANT_PRENOM_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'PRENOM',
+      ),
+    ),
+    'INTERVENANT_RECHERCHE_IDX' => 
+    array (
+      'name' => 'INTERVENANT_RECHERCHE_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'CRITERE_RECHERCHE',
+      ),
+    ),
+    'INTERVENANT_SAISIE_PK' => 
+    array (
+      'name' => 'INTERVENANT_SAISIE_PK',
+      'unique' => true,
+      'table' => 'INTERVENANT_SAISIE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'INTERVENANT_SAISIE__UN' => 
+    array (
+      'name' => 'INTERVENANT_SAISIE__UN',
+      'unique' => true,
+      'table' => 'INTERVENANT_SAISIE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'INTERVENANT_SOURCE_CODE_IDX' => 
+    array (
+      'name' => 'INTERVENANT_SOURCE_CODE_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'INTERVENANT_SOURCE_FK_IDX' => 
+    array (
+      'name' => 'INTERVENANT_SOURCE_FK_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'INTERVENANT_SOURCE_UN' => 
+    array (
+      'name' => 'INTERVENANT_SOURCE_UN',
+      'unique' => true,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'ANNEE_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'INTERVENANT_SOURCE__UN' => 
+    array (
+      'name' => 'INTERVENANT_SOURCE__UN',
+      'unique' => true,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'ANNEE_ID',
+      ),
+    ),
+    'INTERVENANT_STATUT_FK_IDX' => 
+    array (
+      'name' => 'INTERVENANT_STATUT_FK_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'STATUT_ID',
+      ),
+    ),
+    'INTERVENANT_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'INTERVENANT_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'INTERVENANT_UTIL_CODE_UN' => 
+    array (
+      'name' => 'INTERVENANT_UTIL_CODE_UN',
+      'unique' => true,
+      'table' => 'INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'UTILISATEUR_CODE',
+        1 => 'ANNEE_ID',
+        2 => 'STATUT_ID',
+      ),
+    ),
+    'IS_STATUT_INTERVENANT_FK' => 
+    array (
+      'name' => 'IS_STATUT_INTERVENANT_FK',
+      'unique' => false,
+      'table' => 'INTERVENANT_SAISIE',
+      'columns' => 
+      array (
+        0 => 'STATUT_ID',
+      ),
+    ),
+    'LIEN_HCFK' => 
+    array (
+      'name' => 'LIEN_HCFK',
+      'unique' => false,
+      'table' => 'LIEN',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'LIEN_HDFK' => 
+    array (
+      'name' => 'LIEN_HDFK',
+      'unique' => false,
+      'table' => 'LIEN',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'LIEN_HMFK' => 
+    array (
+      'name' => 'LIEN_HMFK',
+      'unique' => false,
+      'table' => 'LIEN',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'LIEN_NOEUD_INF_FK' => 
+    array (
+      'name' => 'LIEN_NOEUD_INF_FK',
+      'unique' => false,
+      'table' => 'LIEN',
+      'columns' => 
+      array (
+        0 => 'NOEUD_INF_ID',
+      ),
+    ),
+    'LIEN_NOEUD_SUP_FK' => 
+    array (
+      'name' => 'LIEN_NOEUD_SUP_FK',
+      'unique' => false,
+      'table' => 'LIEN',
+      'columns' => 
+      array (
+        0 => 'NOEUD_SUP_ID',
+      ),
+    ),
+    'LIEN_PK' => 
+    array (
+      'name' => 'LIEN_PK',
+      'unique' => true,
+      'table' => 'LIEN',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'LIEN_SOURCE_FK' => 
+    array (
+      'name' => 'LIEN_SOURCE_FK',
+      'unique' => false,
+      'table' => 'LIEN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'LIEN_SRC_UN' => 
+    array (
+      'name' => 'LIEN_SRC_UN',
+      'unique' => true,
+      'table' => 'LIEN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'LIEN_STRUCTURE_FK' => 
+    array (
+      'name' => 'LIEN_STRUCTURE_FK',
+      'unique' => false,
+      'table' => 'LIEN',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'MEP_CENTRE_COUT_FK_IDX' => 
+    array (
+      'name' => 'MEP_CENTRE_COUT_FK_IDX',
+      'unique' => false,
+      'table' => 'MISE_EN_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'CENTRE_COUT_ID',
+      ),
+    ),
+    'MEP_DOMAINE_FONCTIONNEL_FK_IDX' => 
+    array (
+      'name' => 'MEP_DOMAINE_FONCTIONNEL_FK_IDX',
+      'unique' => false,
+      'table' => 'MISE_EN_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'DOMAINE_FONCTIONNEL_ID',
+      ),
+    ),
+    'MEP_FR_SERVICE_FK_IDX' => 
+    array (
+      'name' => 'MEP_FR_SERVICE_FK_IDX',
+      'unique' => false,
+      'table' => 'MISE_EN_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'FORMULE_RES_SERVICE_ID',
+      ),
+    ),
+    'MEP_FR_SERVICE_REF_FK_IDX' => 
+    array (
+      'name' => 'MEP_FR_SERVICE_REF_FK_IDX',
+      'unique' => false,
+      'table' => 'MISE_EN_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'FORMULE_RES_SERVICE_REF_ID',
+      ),
+    ),
+    'MEP_TYPE_HEURES_FK_IDX' => 
+    array (
+      'name' => 'MEP_TYPE_HEURES_FK_IDX',
+      'unique' => false,
+      'table' => 'MISE_EN_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'TYPE_HEURES_ID',
+      ),
+    ),
+    'MISE_EN_PAIEMENT_HCFK_IDX' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'MISE_EN_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'MISE_EN_PAIEMENT_HDFK_IDX' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'MISE_EN_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'MISE_EN_PAIEMENT_HMFK_IDX' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'MISE_EN_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'MISE_EN_PAIEMENT_PERIODE_FK' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_PERIODE_FK',
+      'unique' => false,
+      'table' => 'MISE_EN_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'PERIODE_PAIEMENT_ID',
+      ),
+    ),
+    'MISE_EN_PAIEMENT_PK' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_PK',
+      'unique' => true,
+      'table' => 'MISE_EN_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'MISE_EN_PAIEMENT_VALIDATION_FK' => 
+    array (
+      'name' => 'MISE_EN_PAIEMENT_VALIDATION_FK',
+      'unique' => false,
+      'table' => 'MISE_EN_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+      ),
+    ),
+    'MODELE_CONTRAT_PK' => 
+    array (
+      'name' => 'MODELE_CONTRAT_PK',
+      'unique' => true,
+      'table' => 'MODELE_CONTRAT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'MODIFICATION_SERVICE_DU_HCFK' => 
+    array (
+      'name' => 'MODIFICATION_SERVICE_DU_HCFK',
+      'unique' => false,
+      'table' => 'MODIFICATION_SERVICE_DU',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'MODIFICATION_SERVICE_DU_HDFK' => 
+    array (
+      'name' => 'MODIFICATION_SERVICE_DU_HDFK',
+      'unique' => false,
+      'table' => 'MODIFICATION_SERVICE_DU',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'MODIFICATION_SERVICE_DU_HMFK' => 
+    array (
+      'name' => 'MODIFICATION_SERVICE_DU_HMFK',
+      'unique' => false,
+      'table' => 'MODIFICATION_SERVICE_DU',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'MODIFICATION_SERVICE_DU_PK' => 
+    array (
+      'name' => 'MODIFICATION_SERVICE_DU_PK',
+      'unique' => true,
+      'table' => 'MODIFICATION_SERVICE_DU',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'MODULATEUR_HCFK_IDX' => 
+    array (
+      'name' => 'MODULATEUR_HCFK_IDX',
+      'unique' => false,
+      'table' => 'MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'MODULATEUR_HDFK_IDX' => 
+    array (
+      'name' => 'MODULATEUR_HDFK_IDX',
+      'unique' => false,
+      'table' => 'MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'MODULATEUR_HMFK_IDX' => 
+    array (
+      'name' => 'MODULATEUR_HMFK_IDX',
+      'unique' => false,
+      'table' => 'MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'MODULATEUR_PK' => 
+    array (
+      'name' => 'MODULATEUR_PK',
+      'unique' => true,
+      'table' => 'MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'MODULATEUR_TYPE_MODULATEUR_FK' => 
+    array (
+      'name' => 'MODULATEUR_TYPE_MODULATEUR_FK',
+      'unique' => false,
+      'table' => 'MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'TYPE_MODULATEUR_ID',
+      ),
+    ),
+    'MODULATEUR__UN' => 
+    array (
+      'name' => 'MODULATEUR__UN',
+      'unique' => true,
+      'table' => 'MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'MOTIF_MODIFICATION_SERVICE_PK' => 
+    array (
+      'name' => 'MOTIF_MODIFICATION_SERVICE_PK',
+      'unique' => true,
+      'table' => 'MOTIF_MODIFICATION_SERVICE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'MOTIF_MODIFICATION_SERVIC_HCFK' => 
+    array (
+      'name' => 'MOTIF_MODIFICATION_SERVIC_HCFK',
+      'unique' => false,
+      'table' => 'MOTIF_MODIFICATION_SERVICE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'MOTIF_MODIFICATION_SERVIC_HDFK' => 
+    array (
+      'name' => 'MOTIF_MODIFICATION_SERVIC_HDFK',
+      'unique' => false,
+      'table' => 'MOTIF_MODIFICATION_SERVICE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'MOTIF_MODIFICATION_SERVIC_HMFK' => 
+    array (
+      'name' => 'MOTIF_MODIFICATION_SERVIC_HMFK',
+      'unique' => false,
+      'table' => 'MOTIF_MODIFICATION_SERVICE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'MOTIF_MODIFICATION_SERVIC_UK1' => 
+    array (
+      'name' => 'MOTIF_MODIFICATION_SERVIC_UK1',
+      'unique' => true,
+      'table' => 'MOTIF_MODIFICATION_SERVICE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'MOTIF_NON_PAIEMENT_HCFK_IDX' => 
+    array (
+      'name' => 'MOTIF_NON_PAIEMENT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'MOTIF_NON_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'MOTIF_NON_PAIEMENT_HDFK_IDX' => 
+    array (
+      'name' => 'MOTIF_NON_PAIEMENT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'MOTIF_NON_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'MOTIF_NON_PAIEMENT_HMFK_IDX' => 
+    array (
+      'name' => 'MOTIF_NON_PAIEMENT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'MOTIF_NON_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'MOTIF_NON_PAIEMENT_PK' => 
+    array (
+      'name' => 'MOTIF_NON_PAIEMENT_PK',
+      'unique' => true,
+      'table' => 'MOTIF_NON_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'MSD_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'MSD_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'MODIFICATION_SERVICE_DU',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'NOEUD_ANNEE_FK' => 
+    array (
+      'name' => 'NOEUD_ANNEE_FK',
+      'unique' => false,
+      'table' => 'NOEUD',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'NOEUD_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'NOEUD_ELEMENT_PEDAGOGIQUE_FK',
+      'unique' => false,
+      'table' => 'NOEUD',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+      ),
+    ),
+    'NOEUD_ETAPE_FK' => 
+    array (
+      'name' => 'NOEUD_ETAPE_FK',
+      'unique' => false,
+      'table' => 'NOEUD',
+      'columns' => 
+      array (
+        0 => 'ETAPE_ID',
+      ),
+    ),
+    'NOEUD_HCFK' => 
+    array (
+      'name' => 'NOEUD_HCFK',
+      'unique' => false,
+      'table' => 'NOEUD',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'NOEUD_HDFK' => 
+    array (
+      'name' => 'NOEUD_HDFK',
+      'unique' => false,
+      'table' => 'NOEUD',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'NOEUD_HMFK' => 
+    array (
+      'name' => 'NOEUD_HMFK',
+      'unique' => false,
+      'table' => 'NOEUD',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'NOEUD_PK' => 
+    array (
+      'name' => 'NOEUD_PK',
+      'unique' => true,
+      'table' => 'NOEUD',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'NOEUD_SOURCE_FK' => 
+    array (
+      'name' => 'NOEUD_SOURCE_FK',
+      'unique' => false,
+      'table' => 'NOEUD',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'NOEUD_SRC_UN' => 
+    array (
+      'name' => 'NOEUD_SRC_UN',
+      'unique' => true,
+      'table' => 'NOEUD',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'NOEUD_STRUCTURE_FK' => 
+    array (
+      'name' => 'NOEUD_STRUCTURE_FK',
+      'unique' => false,
+      'table' => 'NOEUD',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'NOTIFICATION_INDICATEUR__UN' => 
+    array (
+      'name' => 'NOTIFICATION_INDICATEUR__UN',
+      'unique' => true,
+      'table' => 'NOTIFICATION_INDICATEUR',
+      'columns' => 
+      array (
+        0 => 'INDICATEUR_ID',
+        1 => 'AFFECTATION_ID',
+      ),
+    ),
+    'NOTIF_INDICATEUR_AFK_IDX' => 
+    array (
+      'name' => 'NOTIF_INDICATEUR_AFK_IDX',
+      'unique' => false,
+      'table' => 'NOTIFICATION_INDICATEUR',
+      'columns' => 
+      array (
+        0 => 'AFFECTATION_ID',
+      ),
+    ),
+    'NOTIF_INDICATEUR_IFK_IDX' => 
+    array (
+      'name' => 'NOTIF_INDICATEUR_IFK_IDX',
+      'unique' => false,
+      'table' => 'NOTIFICATION_INDICATEUR',
+      'columns' => 
+      array (
+        0 => 'INDICATEUR_ID',
+      ),
+    ),
+    'NOTIF_INDICATEUR_PK' => 
+    array (
+      'name' => 'NOTIF_INDICATEUR_PK',
+      'unique' => true,
+      'table' => 'NOTIFICATION_INDICATEUR',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PARAMETRE_HCFK_IDX' => 
+    array (
+      'name' => 'PARAMETRE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'PARAMETRE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'PARAMETRE_HDFK_IDX' => 
+    array (
+      'name' => 'PARAMETRE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'PARAMETRE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'PARAMETRE_HMFK_IDX' => 
+    array (
+      'name' => 'PARAMETRE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'PARAMETRE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'PARAMETRE_PK' => 
+    array (
+      'name' => 'PARAMETRE_PK',
+      'unique' => true,
+      'table' => 'PARAMETRE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PAYS_HCFK_IDX' => 
+    array (
+      'name' => 'PAYS_HCFK_IDX',
+      'unique' => false,
+      'table' => 'PAYS',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'PAYS_HDFK_IDX' => 
+    array (
+      'name' => 'PAYS_HDFK_IDX',
+      'unique' => false,
+      'table' => 'PAYS',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'PAYS_HMFK_IDX' => 
+    array (
+      'name' => 'PAYS_HMFK_IDX',
+      'unique' => false,
+      'table' => 'PAYS',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'PAYS_PK' => 
+    array (
+      'name' => 'PAYS_PK',
+      'unique' => true,
+      'table' => 'PAYS',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PAYS_SOURCE_FK_IDX' => 
+    array (
+      'name' => 'PAYS_SOURCE_FK_IDX',
+      'unique' => false,
+      'table' => 'PAYS',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'PAYS_SRC_UN' => 
+    array (
+      'name' => 'PAYS_SRC_UN',
+      'unique' => true,
+      'table' => 'PAYS',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+        1 => 'SOURCE_CODE',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'PERIMETRE_CODE_UN' => 
+    array (
+      'name' => 'PERIMETRE_CODE_UN',
+      'unique' => true,
+      'table' => 'PERIMETRE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'PERIMETRE_LIBELLE_UN' => 
+    array (
+      'name' => 'PERIMETRE_LIBELLE_UN',
+      'unique' => true,
+      'table' => 'PERIMETRE',
+      'columns' => 
+      array (
+        0 => 'LIBELLE',
+      ),
+    ),
+    'PERIMETRE_PK' => 
+    array (
+      'name' => 'PERIMETRE_PK',
+      'unique' => true,
+      'table' => 'PERIMETRE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PERIODE_HCFK_IDX' => 
+    array (
+      'name' => 'PERIODE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'PERIODE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'PERIODE_HDFK_IDX' => 
+    array (
+      'name' => 'PERIODE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'PERIODE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'PERIODE_HMFK_IDX' => 
+    array (
+      'name' => 'PERIODE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'PERIODE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'PERIODE_PK' => 
+    array (
+      'name' => 'PERIODE_PK',
+      'unique' => true,
+      'table' => 'PERIODE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PERIODE__UN' => 
+    array (
+      'name' => 'PERIODE__UN',
+      'unique' => true,
+      'table' => 'PERIODE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'PIECE_JOINTE_FICHIER_FFK_IDX' => 
+    array (
+      'name' => 'PIECE_JOINTE_FICHIER_FFK_IDX',
+      'unique' => false,
+      'table' => 'PIECE_JOINTE_FICHIER',
+      'columns' => 
+      array (
+        0 => 'FICHIER_ID',
+      ),
+    ),
+    'PIECE_JOINTE_FICHIER_PJFK_IDX' => 
+    array (
+      'name' => 'PIECE_JOINTE_FICHIER_PJFK_IDX',
+      'unique' => false,
+      'table' => 'PIECE_JOINTE_FICHIER',
+      'columns' => 
+      array (
+        0 => 'PIECE_JOINTE_ID',
+      ),
+    ),
+    'PIECE_JOINTE_FICHIER_PK' => 
+    array (
+      'name' => 'PIECE_JOINTE_FICHIER_PK',
+      'unique' => true,
+      'table' => 'PIECE_JOINTE_FICHIER',
+      'columns' => 
+      array (
+        0 => 'PIECE_JOINTE_ID',
+        1 => 'FICHIER_ID',
+      ),
+    ),
+    'PIECE_JOINTE_HCFK_IDX' => 
+    array (
+      'name' => 'PIECE_JOINTE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'PIECE_JOINTE_HDFK_IDX' => 
+    array (
+      'name' => 'PIECE_JOINTE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'PIECE_JOINTE_HMFK_IDX' => 
+    array (
+      'name' => 'PIECE_JOINTE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'PIECE_JOINTE_INTERVENANT_FK' => 
+    array (
+      'name' => 'PIECE_JOINTE_INTERVENANT_FK',
+      'unique' => false,
+      'table' => 'PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'PIECE_JOINTE_PK' => 
+    array (
+      'name' => 'PIECE_JOINTE_PK',
+      'unique' => true,
+      'table' => 'PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PIECE_JOINTE_VFK_IDX' => 
+    array (
+      'name' => 'PIECE_JOINTE_VFK_IDX',
+      'unique' => false,
+      'table' => 'PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+      ),
+    ),
+    'PIECE_JOINTE__UN' => 
+    array (
+      'name' => 'PIECE_JOINTE__UN',
+      'unique' => true,
+      'table' => 'PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'TYPE_PIECE_JOINTE_ID',
+        1 => 'INTERVENANT_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'PJ_TYPE_PIECE_JOINTE_FK_IDX' => 
+    array (
+      'name' => 'PJ_TYPE_PIECE_JOINTE_FK_IDX',
+      'unique' => false,
+      'table' => 'PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'TYPE_PIECE_JOINTE_ID',
+      ),
+    ),
+    'PLAFOND_APPLICATION_PK' => 
+    array (
+      'name' => 'PLAFOND_APPLICATION_PK',
+      'unique' => true,
+      'table' => 'PLAFOND_APPLICATION',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PLAFOND_ETAT_PK' => 
+    array (
+      'name' => 'PLAFOND_ETAT_PK',
+      'unique' => true,
+      'table' => 'PLAFOND_ETAT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PLAFOND_PK' => 
+    array (
+      'name' => 'PLAFOND_PK',
+      'unique' => true,
+      'table' => 'PLAFOND',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PRIVILEGE_CATEGORIE_FK_IDX' => 
+    array (
+      'name' => 'PRIVILEGE_CATEGORIE_FK_IDX',
+      'unique' => false,
+      'table' => 'PRIVILEGE',
+      'columns' => 
+      array (
+        0 => 'CATEGORIE_ID',
+      ),
+    ),
+    'PRIVILEGE_PK' => 
+    array (
+      'name' => 'PRIVILEGE_PK',
+      'unique' => true,
+      'table' => 'PRIVILEGE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'PRIVILEGE__UN' => 
+    array (
+      'name' => 'PRIVILEGE__UN',
+      'unique' => true,
+      'table' => 'PRIVILEGE',
+      'columns' => 
+      array (
+        0 => 'CATEGORIE_ID',
+        1 => 'CODE',
+      ),
+    ),
+    'REGLE_STRUCTURE_VALIDATION_PK' => 
+    array (
+      'name' => 'REGLE_STRUCTURE_VALIDATION_PK',
+      'unique' => true,
+      'table' => 'REGLE_STRUCTURE_VALIDATION',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'REGLE_STRUCTURE_VALIDATION__UN' => 
+    array (
+      'name' => 'REGLE_STRUCTURE_VALIDATION__UN',
+      'unique' => true,
+      'table' => 'REGLE_STRUCTURE_VALIDATION',
+      'columns' => 
+      array (
+        0 => 'TYPE_VOLUME_HORAIRE_ID',
+        1 => 'TYPE_INTERVENANT_ID',
+      ),
+    ),
+    'ROLE_CODE_UN' => 
+    array (
+      'name' => 'ROLE_CODE_UN',
+      'unique' => true,
+      'table' => 'ROLE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'ROLE_HCFK_IDX' => 
+    array (
+      'name' => 'ROLE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'ROLE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'ROLE_HDFK_IDX' => 
+    array (
+      'name' => 'ROLE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'ROLE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'ROLE_HMFK_IDX' => 
+    array (
+      'name' => 'ROLE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'ROLE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'ROLE_PERIMETRE_FK_IDX' => 
+    array (
+      'name' => 'ROLE_PERIMETRE_FK_IDX',
+      'unique' => false,
+      'table' => 'ROLE',
+      'columns' => 
+      array (
+        0 => 'PERIMETRE_ID',
+      ),
+    ),
+    'ROLE_PK' => 
+    array (
+      'name' => 'ROLE_PK',
+      'unique' => true,
+      'table' => 'ROLE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'ROLE_PRIVILEGE_PK' => 
+    array (
+      'name' => 'ROLE_PRIVILEGE_PK',
+      'unique' => true,
+      'table' => 'ROLE_PRIVILEGE',
+      'columns' => 
+      array (
+        0 => 'PRIVILEGE_ID',
+        1 => 'ROLE_ID',
+      ),
+    ),
+    'ROLE_PRIVILEGE_PRIVILEGE_FK' => 
+    array (
+      'name' => 'ROLE_PRIVILEGE_PRIVILEGE_FK',
+      'unique' => false,
+      'table' => 'ROLE_PRIVILEGE',
+      'columns' => 
+      array (
+        0 => 'PRIVILEGE_ID',
+      ),
+    ),
+    'ROLE_PRIVILEGE_ROLE_FK_IDX' => 
+    array (
+      'name' => 'ROLE_PRIVILEGE_ROLE_FK_IDX',
+      'unique' => false,
+      'table' => 'ROLE_PRIVILEGE',
+      'columns' => 
+      array (
+        0 => 'ROLE_ID',
+      ),
+    ),
+    'RSV_TYPE_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'RSV_TYPE_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'REGLE_STRUCTURE_VALIDATION',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENANT_ID',
+      ),
+    ),
+    'RSV_TYPE_VOLUME_HORAIRE_FK_IDX' => 
+    array (
+      'name' => 'RSV_TYPE_VOLUME_HORAIRE_FK_IDX',
+      'unique' => false,
+      'table' => 'REGLE_STRUCTURE_VALIDATION',
+      'columns' => 
+      array (
+        0 => 'TYPE_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'SCENARIO_HCFK' => 
+    array (
+      'name' => 'SCENARIO_HCFK',
+      'unique' => false,
+      'table' => 'SCENARIO',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'SCENARIO_HDFK' => 
+    array (
+      'name' => 'SCENARIO_HDFK',
+      'unique' => false,
+      'table' => 'SCENARIO',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'SCENARIO_HMFK' => 
+    array (
+      'name' => 'SCENARIO_HMFK',
+      'unique' => false,
+      'table' => 'SCENARIO',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'SCENARIO_LIEN_HCFK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_HCFK',
+      'unique' => false,
+      'table' => 'SCENARIO_LIEN',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'SCENARIO_LIEN_HDFK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_HDFK',
+      'unique' => false,
+      'table' => 'SCENARIO_LIEN',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'SCENARIO_LIEN_HMFK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_HMFK',
+      'unique' => false,
+      'table' => 'SCENARIO_LIEN',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'SCENARIO_LIEN_LIEN_FK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_LIEN_FK',
+      'unique' => false,
+      'table' => 'SCENARIO_LIEN',
+      'columns' => 
+      array (
+        0 => 'LIEN_ID',
+      ),
+    ),
+    'SCENARIO_LIEN_PK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_PK',
+      'unique' => true,
+      'table' => 'SCENARIO_LIEN',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SCENARIO_LIEN_SCENARIO_FK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_SCENARIO_FK',
+      'unique' => false,
+      'table' => 'SCENARIO_LIEN',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_ID',
+      ),
+    ),
+    'SCENARIO_LIEN_SOURCE_FK' => 
+    array (
+      'name' => 'SCENARIO_LIEN_SOURCE_FK',
+      'unique' => false,
+      'table' => 'SCENARIO_LIEN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'SCENARIO_LIEN_SRC_UN' => 
+    array (
+      'name' => 'SCENARIO_LIEN_SRC_UN',
+      'unique' => true,
+      'table' => 'SCENARIO_LIEN',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SCENARIO_LIEN__UN' => 
+    array (
+      'name' => 'SCENARIO_LIEN__UN',
+      'unique' => true,
+      'table' => 'SCENARIO_LIEN',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_ID',
+        1 => 'LIEN_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SCENARIO_NOEUD_EFFECTIF_PK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_EFFECTIF_PK',
+      'unique' => true,
+      'table' => 'SCENARIO_NOEUD_EFFECTIF',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_HCFK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_HCFK',
+      'unique' => false,
+      'table' => 'SCENARIO_NOEUD',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_HDFK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_HDFK',
+      'unique' => false,
+      'table' => 'SCENARIO_NOEUD',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_HMFK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_HMFK',
+      'unique' => false,
+      'table' => 'SCENARIO_NOEUD',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_NOEUD_FK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_NOEUD_FK',
+      'unique' => false,
+      'table' => 'SCENARIO_NOEUD',
+      'columns' => 
+      array (
+        0 => 'NOEUD_ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_PK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_PK',
+      'unique' => true,
+      'table' => 'SCENARIO_NOEUD',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_SCENARIO_FK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_SCENARIO_FK',
+      'unique' => false,
+      'table' => 'SCENARIO_NOEUD',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_SEUIL_PK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_SEUIL_PK',
+      'unique' => true,
+      'table' => 'SCENARIO_NOEUD_SEUIL',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_SOURCE_FK' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_SOURCE_FK',
+      'unique' => false,
+      'table' => 'SCENARIO_NOEUD',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'SCENARIO_NOEUD_SRC_UN' => 
+    array (
+      'name' => 'SCENARIO_NOEUD_SRC_UN',
+      'unique' => true,
+      'table' => 'SCENARIO_NOEUD',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SCENARIO_NOEUD__UN' => 
+    array (
+      'name' => 'SCENARIO_NOEUD__UN',
+      'unique' => true,
+      'table' => 'SCENARIO_NOEUD',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_ID',
+        1 => 'NOEUD_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SCENARIO_PK' => 
+    array (
+      'name' => 'SCENARIO_PK',
+      'unique' => true,
+      'table' => 'SCENARIO',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SCENARIO_STRUCTURE_FK' => 
+    array (
+      'name' => 'SCENARIO_STRUCTURE_FK',
+      'unique' => false,
+      'table' => 'SCENARIO',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'SERVICE_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'SERVICE_ELEMENT_PEDAGOGIQUE_FK',
+      'unique' => false,
+      'table' => 'SERVICE',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+      ),
+    ),
+    'SERVICE_ETABLISSEMENT_FK_IDX' => 
+    array (
+      'name' => 'SERVICE_ETABLISSEMENT_FK_IDX',
+      'unique' => false,
+      'table' => 'SERVICE',
+      'columns' => 
+      array (
+        0 => 'ETABLISSEMENT_ID',
+      ),
+    ),
+    'SERVICE_HCFK_IDX' => 
+    array (
+      'name' => 'SERVICE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'SERVICE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'SERVICE_HDFK_IDX' => 
+    array (
+      'name' => 'SERVICE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'SERVICE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'SERVICE_HMFK_IDX' => 
+    array (
+      'name' => 'SERVICE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'SERVICE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'SERVICE_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'SERVICE_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'SERVICE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'SERVICE_PK' => 
+    array (
+      'name' => 'SERVICE_PK',
+      'unique' => true,
+      'table' => 'SERVICE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SERVICE_REFERENTIEL_HCFK_IDX' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL_HCFK_IDX',
+      'unique' => false,
+      'table' => 'SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'SERVICE_REFERENTIEL_HDFK_IDX' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL_HDFK_IDX',
+      'unique' => false,
+      'table' => 'SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'SERVICE_REFERENTIEL_HMFK_IDX' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL_HMFK_IDX',
+      'unique' => false,
+      'table' => 'SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'SERVICE_REFERENTIEL_PK' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL_PK',
+      'unique' => true,
+      'table' => 'SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SERVICE_REFERENTIEL_SOURCE_UN' => 
+    array (
+      'name' => 'SERVICE_REFERENTIEL_SOURCE_UN',
+      'unique' => true,
+      'table' => 'SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SERVICE_SOURCE_UN' => 
+    array (
+      'name' => 'SERVICE_SOURCE_UN',
+      'unique' => true,
+      'table' => 'SERVICE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SERVICE__UN' => 
+    array (
+      'name' => 'SERVICE__UN',
+      'unique' => true,
+      'table' => 'SERVICE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'ELEMENT_PEDAGOGIQUE_ID',
+        2 => 'ETABLISSEMENT_ID',
+        3 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SEUIL_CHARGE_ANNEE_FK' => 
+    array (
+      'name' => 'SEUIL_CHARGE_ANNEE_FK',
+      'unique' => false,
+      'table' => 'SEUIL_CHARGE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'SEUIL_CHARGE_PK' => 
+    array (
+      'name' => 'SEUIL_CHARGE_PK',
+      'unique' => true,
+      'table' => 'SEUIL_CHARGE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SEUIL_CH_GT_FORMATION_FK' => 
+    array (
+      'name' => 'SEUIL_CH_GT_FORMATION_FK',
+      'unique' => false,
+      'table' => 'SEUIL_CHARGE',
+      'columns' => 
+      array (
+        0 => 'GROUPE_TYPE_FORMATION_ID',
+      ),
+    ),
+    'SEUIL_CH_SCENARIO_FK' => 
+    array (
+      'name' => 'SEUIL_CH_SCENARIO_FK',
+      'unique' => false,
+      'table' => 'SEUIL_CHARGE',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_ID',
+      ),
+    ),
+    'SEUIL_CH_STRUCTURE_FK' => 
+    array (
+      'name' => 'SEUIL_CH_STRUCTURE_FK',
+      'unique' => false,
+      'table' => 'SEUIL_CHARGE',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'SEUIL_CH_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'SEUIL_CH_TYPE_INTERVENTION_FK',
+      'unique' => false,
+      'table' => 'SEUIL_CHARGE',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENTION_ID',
+      ),
+    ),
+    'SEUIL_CH_UTILISATEUR_HCFK' => 
+    array (
+      'name' => 'SEUIL_CH_UTILISATEUR_HCFK',
+      'unique' => false,
+      'table' => 'SEUIL_CHARGE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'SEUIL_CH_UTILISATEUR_HDFK' => 
+    array (
+      'name' => 'SEUIL_CH_UTILISATEUR_HDFK',
+      'unique' => false,
+      'table' => 'SEUIL_CHARGE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'SEUIL_CH_UTILISATEUR_HMFK' => 
+    array (
+      'name' => 'SEUIL_CH_UTILISATEUR_HMFK',
+      'unique' => false,
+      'table' => 'SEUIL_CHARGE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'SNE_ETAPE_FK' => 
+    array (
+      'name' => 'SNE_ETAPE_FK',
+      'unique' => false,
+      'table' => 'SCENARIO_NOEUD_EFFECTIF',
+      'columns' => 
+      array (
+        0 => 'ETAPE_ID',
+      ),
+    ),
+    'SNE_SCENARIO_NOEUD_FK' => 
+    array (
+      'name' => 'SNE_SCENARIO_NOEUD_FK',
+      'unique' => false,
+      'table' => 'SCENARIO_NOEUD_EFFECTIF',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_NOEUD_ID',
+      ),
+    ),
+    'SNE_TYPE_HEURES_FK' => 
+    array (
+      'name' => 'SNE_TYPE_HEURES_FK',
+      'unique' => false,
+      'table' => 'SCENARIO_NOEUD_EFFECTIF',
+      'columns' => 
+      array (
+        0 => 'TYPE_HEURES_ID',
+      ),
+    ),
+    'SNS_SCENARIO_NOEUD_FK' => 
+    array (
+      'name' => 'SNS_SCENARIO_NOEUD_FK',
+      'unique' => false,
+      'table' => 'SCENARIO_NOEUD_SEUIL',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_NOEUD_ID',
+      ),
+    ),
+    'SNS_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'SNS_TYPE_INTERVENTION_FK',
+      'unique' => false,
+      'table' => 'SCENARIO_NOEUD_SEUIL',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENTION_ID',
+      ),
+    ),
+    'SOURCE_CODE_UN' => 
+    array (
+      'name' => 'SOURCE_CODE_UN',
+      'unique' => true,
+      'table' => 'SOURCE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'SOURCE_PK' => 
+    array (
+      'name' => 'SOURCE_PK',
+      'unique' => true,
+      'table' => 'SOURCE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'SRFR_FK_IDX' => 
+    array (
+      'name' => 'SRFR_FK_IDX',
+      'unique' => false,
+      'table' => 'SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'FONCTION_ID',
+      ),
+    ),
+    'SR_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'SR_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'SR_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'SR_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'STATUT_INTERVENANT_HCFK_IDX' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'STATUT_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'STATUT_INTERVENANT_HDFK_IDX' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'STATUT_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'STATUT_INTERVENANT_HMFK_IDX' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'STATUT_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'STATUT_INTERVENANT_ODRE_UN' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_ODRE_UN',
+      'unique' => true,
+      'table' => 'STATUT_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTION',
+        1 => 'ORDRE',
+      ),
+    ),
+    'STATUT_INTERVENANT_PK' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_PK',
+      'unique' => true,
+      'table' => 'STATUT_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'STATUT_INTERVENANT_SOURCE_FK' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_SOURCE_FK',
+      'unique' => false,
+      'table' => 'STATUT_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'STATUT_INTERVENANT_TYPE_FK_IDX' => 
+    array (
+      'name' => 'STATUT_INTERVENANT_TYPE_FK_IDX',
+      'unique' => false,
+      'table' => 'STATUT_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENANT_ID',
+      ),
+    ),
+    'STATUT_INTERVENANT__UN' => 
+    array (
+      'name' => 'STATUT_INTERVENANT__UN',
+      'unique' => true,
+      'table' => 'STATUT_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'STATUT_PRIVILEGE_PK' => 
+    array (
+      'name' => 'STATUT_PRIVILEGE_PK',
+      'unique' => true,
+      'table' => 'STATUT_PRIVILEGE',
+      'columns' => 
+      array (
+        0 => 'STATUT_ID',
+        1 => 'PRIVILEGE_ID',
+      ),
+    ),
+    'STAT_PRIV_PRIVILEGE_FK_IDX' => 
+    array (
+      'name' => 'STAT_PRIV_PRIVILEGE_FK_IDX',
+      'unique' => false,
+      'table' => 'STATUT_PRIVILEGE',
+      'columns' => 
+      array (
+        0 => 'PRIVILEGE_ID',
+      ),
+    ),
+    'STAT_PRIV_STATUT_FK_IDX' => 
+    array (
+      'name' => 'STAT_PRIV_STATUT_FK_IDX',
+      'unique' => false,
+      'table' => 'STATUT_PRIVILEGE',
+      'columns' => 
+      array (
+        0 => 'STATUT_ID',
+      ),
+    ),
+    'STRUCTURE_CODE_UN' => 
+    array (
+      'name' => 'STRUCTURE_CODE_UN',
+      'unique' => true,
+      'table' => 'STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'STRUCTURE_HCFK_IDX' => 
+    array (
+      'name' => 'STRUCTURE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'STRUCTURE_HDFK_IDX' => 
+    array (
+      'name' => 'STRUCTURE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'STRUCTURE_HMFK_IDX' => 
+    array (
+      'name' => 'STRUCTURE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'STRUCTURE_PK' => 
+    array (
+      'name' => 'STRUCTURE_PK',
+      'unique' => true,
+      'table' => 'STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'STRUCTURE_SOURCE_CODE_UN' => 
+    array (
+      'name' => 'STRUCTURE_SOURCE_CODE_UN',
+      'unique' => true,
+      'table' => 'STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'SYNC_LOG_PK' => 
+    array (
+      'name' => 'SYNC_LOG_PK',
+      'unique' => true,
+      'table' => 'SYNC_LOG',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TAS_STATUT_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'TAS_STATUT_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'columns' => 
+      array (
+        0 => 'STATUT_INTERVENANT_ID',
+      ),
+    ),
+    'TAS_TYPE_AGREMENT_FK_IDX' => 
+    array (
+      'name' => 'TAS_TYPE_AGREMENT_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'columns' => 
+      array (
+        0 => 'TYPE_AGREMENT_ID',
+      ),
+    ),
+    'TAUX_HORAIRE_HETD_HCFK_IDX' => 
+    array (
+      'name' => 'TAUX_HORAIRE_HETD_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TAUX_HORAIRE_HETD',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TAUX_HORAIRE_HETD_HDFK_IDX' => 
+    array (
+      'name' => 'TAUX_HORAIRE_HETD_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TAUX_HORAIRE_HETD',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TAUX_HORAIRE_HETD_HMFK_IDX' => 
+    array (
+      'name' => 'TAUX_HORAIRE_HETD_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TAUX_HORAIRE_HETD',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TAUX_HORAIRE_HETD_PK' => 
+    array (
+      'name' => 'TAUX_HORAIRE_HETD_PK',
+      'unique' => true,
+      'table' => 'TAUX_HORAIRE_HETD',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_AGREMENT_PK_IDX' => 
+    array (
+      'name' => 'TBL_AGREMENT_PK_IDX',
+      'unique' => true,
+      'table' => 'TBL_AGREMENT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_AGREMENT__UN_IDX' => 
+    array (
+      'name' => 'TBL_AGREMENT__UN_IDX',
+      'unique' => true,
+      'table' => 'TBL_AGREMENT',
+      'columns' => 
+      array (
+        0 => 'TYPE_AGREMENT_ID',
+        1 => 'INTERVENANT_ID',
+        2 => 'STRUCTURE_ID',
+        3 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_AGR_AGREMENT_FK_IDX' => 
+    array (
+      'name' => 'TBL_AGR_AGREMENT_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_AGREMENT',
+      'columns' => 
+      array (
+        0 => 'AGREMENT_ID',
+      ),
+    ),
+    'TBL_AGR_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'TBL_AGR_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_AGREMENT',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_AGR_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'TBL_AGR_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_AGREMENT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'TBL_AGR_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'TBL_AGR_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_AGREMENT',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TBL_AGR_TYPE_AGREMENT_FK_IDX' => 
+    array (
+      'name' => 'TBL_AGR_TYPE_AGREMENT_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_AGREMENT',
+      'columns' => 
+      array (
+        0 => 'TYPE_AGREMENT_ID',
+      ),
+    ),
+    'TBL_CHARGENS_PK' => 
+    array (
+      'name' => 'TBL_CHARGENS_PK',
+      'unique' => true,
+      'table' => 'TBL_CHARGENS',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_CHARGENS_SEUILS_DEF_PK' => 
+    array (
+      'name' => 'TBL_CHARGENS_SEUILS_DEF_PK',
+      'unique' => true,
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_CHARGENS_SEUILS_DEF__UN' => 
+    array (
+      'name' => 'TBL_CHARGENS_SEUILS_DEF__UN',
+      'unique' => true,
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_ID',
+        1 => 'TYPE_INTERVENTION_ID',
+        2 => 'STRUCTURE_ID',
+        3 => 'GROUPE_TYPE_FORMATION_ID',
+        4 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_CHARGENS__UN' => 
+    array (
+      'name' => 'TBL_CHARGENS__UN',
+      'unique' => true,
+      'table' => 'TBL_CHARGENS',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+        1 => 'NOEUD_ID',
+        2 => 'SCENARIO_ID',
+        3 => 'TYPE_HEURES_ID',
+        4 => 'TYPE_INTERVENTION_ID',
+        5 => 'ELEMENT_PEDAGOGIQUE_ID',
+        6 => 'ETAPE_ID',
+        7 => 'ETAPE_ENS_ID',
+        8 => 'STRUCTURE_ID',
+        9 => 'GROUPE_TYPE_FORMATION_ID',
+      ),
+    ),
+    'TBL_CLOTURE_REALISE_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_CLOTURE_REALISE_ANNEE_FK',
+      'unique' => false,
+      'table' => 'TBL_CLOTURE_REALISE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_CLOTURE_REALISE_PK_IDX' => 
+    array (
+      'name' => 'TBL_CLOTURE_REALISE_PK_IDX',
+      'unique' => true,
+      'table' => 'TBL_CLOTURE_REALISE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_CLOTURE_REALISE__UN_IDX' => 
+    array (
+      'name' => 'TBL_CLOTURE_REALISE__UN_IDX',
+      'unique' => true,
+      'table' => 'TBL_CLOTURE_REALISE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_CONTRAT_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'TBL_CONTRAT_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_CONTRAT',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_CONTRAT_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'TBL_CONTRAT_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_CONTRAT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'TBL_CONTRAT_PK_IDX' => 
+    array (
+      'name' => 'TBL_CONTRAT_PK_IDX',
+      'unique' => true,
+      'table' => 'TBL_CONTRAT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_CONTRAT_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'TBL_CONTRAT_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_CONTRAT',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TBL_CONTRAT__UN_IDX' => 
+    array (
+      'name' => 'TBL_CONTRAT__UN_IDX',
+      'unique' => true,
+      'table' => 'TBL_CONTRAT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_CSD_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_CSD_ANNEE_FK',
+      'unique' => false,
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_CSD_GTF_FK' => 
+    array (
+      'name' => 'TBL_CSD_GTF_FK',
+      'unique' => false,
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'columns' => 
+      array (
+        0 => 'GROUPE_TYPE_FORMATION_ID',
+      ),
+    ),
+    'TBL_CSD_SCENARIO_FK' => 
+    array (
+      'name' => 'TBL_CSD_SCENARIO_FK',
+      'unique' => false,
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_ID',
+      ),
+    ),
+    'TBL_CSD_STRUCTURE_FK' => 
+    array (
+      'name' => 'TBL_CSD_STRUCTURE_FK',
+      'unique' => false,
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TBL_CSD_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'TBL_CSD_TYPE_INTERVENTION_FK',
+      'unique' => false,
+      'table' => 'TBL_CHARGENS_SEUILS_DEF',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENTION_ID',
+      ),
+    ),
+    'TBL_DEMS_TBL_FK' => 
+    array (
+      'name' => 'TBL_DEMS_TBL_FK',
+      'unique' => false,
+      'table' => 'TBL_DEMS',
+      'columns' => 
+      array (
+        0 => 'TBL_NAME',
+      ),
+    ),
+    'TBL_DMEP_LIQUIDATION_PK_IDX' => 
+    array (
+      'name' => 'TBL_DMEP_LIQUIDATION_PK_IDX',
+      'unique' => true,
+      'table' => 'TBL_DMEP_LIQUIDATION',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_DMEP_LIQUIDATION__UN_IDX' => 
+    array (
+      'name' => 'TBL_DMEP_LIQUIDATION__UN_IDX',
+      'unique' => true,
+      'table' => 'TBL_DMEP_LIQUIDATION',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+        1 => 'TYPE_RESSOURCE_ID',
+        2 => 'STRUCTURE_ID',
+        3 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_DMLIQ_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'TBL_DMLIQ_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_DMEP_LIQUIDATION',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_DMLIQ_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'TBL_DMLIQ_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_DMEP_LIQUIDATION',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TBL_DMLIQ_TYPE_RESSOURCE_FK' => 
+    array (
+      'name' => 'TBL_DMLIQ_TYPE_RESSOURCE_FK',
+      'unique' => false,
+      'table' => 'TBL_DMEP_LIQUIDATION',
+      'columns' => 
+      array (
+        0 => 'TYPE_RESSOURCE_ID',
+      ),
+    ),
+    'TBL_DOSSIER_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'TBL_DOSSIER_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_DOSSIER',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_DOSSIER_DOSSIER_FK_IDX' => 
+    array (
+      'name' => 'TBL_DOSSIER_DOSSIER_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_DOSSIER',
+      'columns' => 
+      array (
+        0 => 'DOSSIER_ID',
+      ),
+    ),
+    'TBL_DOSSIER_PK_IDX' => 
+    array (
+      'name' => 'TBL_DOSSIER_PK_IDX',
+      'unique' => true,
+      'table' => 'TBL_DOSSIER',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_DOSSIER_VALIDATION_FK_IDX' => 
+    array (
+      'name' => 'TBL_DOSSIER_VALIDATION_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_DOSSIER',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+      ),
+    ),
+    'TBL_DOSSIER__UN_IDX' => 
+    array (
+      'name' => 'TBL_DOSSIER__UN_IDX',
+      'unique' => true,
+      'table' => 'TBL_DOSSIER',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_LIEN_ACTIF_IDX' => 
+    array (
+      'name' => 'TBL_LIEN_ACTIF_IDX',
+      'unique' => false,
+      'table' => 'TBL_LIEN',
+      'columns' => 
+      array (
+        0 => 'ACTIF',
+      ),
+    ),
+    'TBL_LIEN_LIEN_FK' => 
+    array (
+      'name' => 'TBL_LIEN_LIEN_FK',
+      'unique' => false,
+      'table' => 'TBL_LIEN',
+      'columns' => 
+      array (
+        0 => 'LIEN_ID',
+      ),
+    ),
+    'TBL_LIEN_NOEUD_INF_FK' => 
+    array (
+      'name' => 'TBL_LIEN_NOEUD_INF_FK',
+      'unique' => false,
+      'table' => 'TBL_LIEN',
+      'columns' => 
+      array (
+        0 => 'NOEUD_INF_ID',
+      ),
+    ),
+    'TBL_LIEN_NOEUD_SUP_FK' => 
+    array (
+      'name' => 'TBL_LIEN_NOEUD_SUP_FK',
+      'unique' => false,
+      'table' => 'TBL_LIEN',
+      'columns' => 
+      array (
+        0 => 'NOEUD_SUP_ID',
+      ),
+    ),
+    'TBL_LIEN_PK' => 
+    array (
+      'name' => 'TBL_LIEN_PK',
+      'unique' => true,
+      'table' => 'TBL_LIEN',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_LIEN_SCENARIO_FK' => 
+    array (
+      'name' => 'TBL_LIEN_SCENARIO_FK',
+      'unique' => false,
+      'table' => 'TBL_LIEN',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_ID',
+      ),
+    ),
+    'TBL_LIEN_SCENARIO_LIEN_FK' => 
+    array (
+      'name' => 'TBL_LIEN_SCENARIO_LIEN_FK',
+      'unique' => false,
+      'table' => 'TBL_LIEN',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_LIEN_ID',
+      ),
+    ),
+    'TBL_LIEN_STRUCTURE_FK' => 
+    array (
+      'name' => 'TBL_LIEN_STRUCTURE_FK',
+      'unique' => false,
+      'table' => 'TBL_LIEN',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TBL_NOEUD_ANNEE_IDX' => 
+    array (
+      'name' => 'TBL_NOEUD_ANNEE_IDX',
+      'unique' => false,
+      'table' => 'TBL_NOEUD',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_NOEUD_ETAPE_IDX' => 
+    array (
+      'name' => 'TBL_NOEUD_ETAPE_IDX',
+      'unique' => false,
+      'table' => 'TBL_NOEUD',
+      'columns' => 
+      array (
+        0 => 'ETAPE_ID',
+      ),
+    ),
+    'TBL_NOEUD_GTF_IDX' => 
+    array (
+      'name' => 'TBL_NOEUD_GTF_IDX',
+      'unique' => false,
+      'table' => 'TBL_NOEUD',
+      'columns' => 
+      array (
+        0 => 'GROUPE_TYPE_FORMATION_ID',
+      ),
+    ),
+    'TBL_NOEUD_NETAPE_IDX' => 
+    array (
+      'name' => 'TBL_NOEUD_NETAPE_IDX',
+      'unique' => false,
+      'table' => 'TBL_NOEUD',
+      'columns' => 
+      array (
+        0 => 'NOEUD_ETAPE_ID',
+      ),
+    ),
+    'TBL_NOEUD_NOEUD_IDX' => 
+    array (
+      'name' => 'TBL_NOEUD_NOEUD_IDX',
+      'unique' => false,
+      'table' => 'TBL_NOEUD',
+      'columns' => 
+      array (
+        0 => 'NOEUD_ID',
+      ),
+    ),
+    'TBL_NOEUD_STRUCTURE_IDX' => 
+    array (
+      'name' => 'TBL_NOEUD_STRUCTURE_IDX',
+      'unique' => false,
+      'table' => 'TBL_NOEUD',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TBL_PAIEMENT_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'TBL_PAIEMENT_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_PAIEMENT_FRSR_FK_IDX' => 
+    array (
+      'name' => 'TBL_PAIEMENT_FRSR_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'FORMULE_RES_SERVICE_REF_ID',
+      ),
+    ),
+    'TBL_PAIEMENT_FRS_FK_IDX' => 
+    array (
+      'name' => 'TBL_PAIEMENT_FRS_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'FORMULE_RES_SERVICE_ID',
+      ),
+    ),
+    'TBL_PAIEMENT_INTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_PAIEMENT_INTERVENANT_FK',
+      'unique' => false,
+      'table' => 'TBL_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'TBL_PAIEMENT_MEP_FK_IDX' => 
+    array (
+      'name' => 'TBL_PAIEMENT_MEP_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'MISE_EN_PAIEMENT_ID',
+      ),
+    ),
+    'TBL_PAIEMENT_PERIODE_FK_IDX' => 
+    array (
+      'name' => 'TBL_PAIEMENT_PERIODE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'PERIODE_PAIEMENT_ID',
+      ),
+    ),
+    'TBL_PAIEMENT_PK_IDX' => 
+    array (
+      'name' => 'TBL_PAIEMENT_PK_IDX',
+      'unique' => true,
+      'table' => 'TBL_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_PAIEMENT_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'TBL_PAIEMENT_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TBL_PAIEMENT__UN' => 
+    array (
+      'name' => 'TBL_PAIEMENT__UN',
+      'unique' => true,
+      'table' => 'TBL_PAIEMENT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TO_DELETE',
+        2 => 'MISE_EN_PAIEMENT_ID',
+        3 => 'FORMULE_RES_SERVICE_ID',
+        4 => 'FORMULE_RES_SERVICE_REF_ID',
+      ),
+    ),
+    'TBL_PIECE_JOINTE_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_PIECE_JOINTE_PK_IDX' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE_PK_IDX',
+      'unique' => true,
+      'table' => 'TBL_PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_PIECE_JOINTE__UN_IDX' => 
+    array (
+      'name' => 'TBL_PIECE_JOINTE__UN_IDX',
+      'unique' => true,
+      'table' => 'TBL_PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'TYPE_PIECE_JOINTE_ID',
+        1 => 'INTERVENANT_ID',
+        2 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_PJD_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'TBL_PJD_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PIECE_JOINTE_DEMANDE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_PJD_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'TBL_PJD_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PIECE_JOINTE_DEMANDE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'TBL_PJD_PK_IDX' => 
+    array (
+      'name' => 'TBL_PJD_PK_IDX',
+      'unique' => true,
+      'table' => 'TBL_PIECE_JOINTE_DEMANDE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_PJD_TYPE_PIECE_JOINTE_FK' => 
+    array (
+      'name' => 'TBL_PJD_TYPE_PIECE_JOINTE_FK',
+      'unique' => false,
+      'table' => 'TBL_PIECE_JOINTE_DEMANDE',
+      'columns' => 
+      array (
+        0 => 'TYPE_PIECE_JOINTE_ID',
+      ),
+    ),
+    'TBL_PJD_UN_IDX' => 
+    array (
+      'name' => 'TBL_PJD_UN_IDX',
+      'unique' => true,
+      'table' => 'TBL_PIECE_JOINTE_DEMANDE',
+      'columns' => 
+      array (
+        0 => 'TYPE_PIECE_JOINTE_ID',
+        1 => 'INTERVENANT_ID',
+        2 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_PJF_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'TBL_PJF_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_PJF_FICHIER_FK_IDX' => 
+    array (
+      'name' => 'TBL_PJF_FICHIER_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'columns' => 
+      array (
+        0 => 'FICHIER_ID',
+      ),
+    ),
+    'TBL_PJF_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'TBL_PJF_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'TBL_PJF_PIECE_JOINTE_FK_IDX' => 
+    array (
+      'name' => 'TBL_PJF_PIECE_JOINTE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'columns' => 
+      array (
+        0 => 'PIECE_JOINTE_ID',
+      ),
+    ),
+    'TBL_PJF_PK_IDX' => 
+    array (
+      'name' => 'TBL_PJF_PK_IDX',
+      'unique' => true,
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_PJF_TYPE_PIECE_JOINTE_FK' => 
+    array (
+      'name' => 'TBL_PJF_TYPE_PIECE_JOINTE_FK',
+      'unique' => false,
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'columns' => 
+      array (
+        0 => 'TYPE_PIECE_JOINTE_ID',
+      ),
+    ),
+    'TBL_PJF_UN_IDX' => 
+    array (
+      'name' => 'TBL_PJF_UN_IDX',
+      'unique' => true,
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'columns' => 
+      array (
+        0 => 'TYPE_PIECE_JOINTE_ID',
+        1 => 'INTERVENANT_ID',
+        2 => 'VALIDATION_ID',
+        3 => 'FICHIER_ID',
+      ),
+    ),
+    'TBL_PJF_VALIDATION_FK_IDX' => 
+    array (
+      'name' => 'TBL_PJF_VALIDATION_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PIECE_JOINTE_FOURNIE',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+      ),
+    ),
+    'TBL_PJ_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'TBL_PJ_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'TBL_PJ_TYPE_PIECE_JOINTE_FK' => 
+    array (
+      'name' => 'TBL_PJ_TYPE_PIECE_JOINTE_FK',
+      'unique' => false,
+      'table' => 'TBL_PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'TYPE_PIECE_JOINTE_ID',
+      ),
+    ),
+    'TBL_PK' => 
+    array (
+      'name' => 'TBL_PK',
+      'unique' => true,
+      'table' => 'TBL',
+      'columns' => 
+      array (
+        0 => 'TBL_NAME',
+      ),
+    ),
+    'TBL_SERVICE_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_SERVICE_ELEMENT_FK_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_ELEMENT_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+      ),
+    ),
+    'TBL_SERVICE_ETAPE_FK_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_ETAPE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'ETAPE_ID',
+      ),
+    ),
+    'TBL_SERVICE_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'TBL_SERVICE_PERIODE_EP_FK_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_PERIODE_EP_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_PERIODE_ID',
+      ),
+    ),
+    'TBL_SERVICE_PK' => 
+    array (
+      'name' => 'TBL_SERVICE_PK',
+      'unique' => true,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_REFERENTIEL_PK_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_REFERENTIEL_PK_IDX',
+      'unique' => true,
+      'table' => 'TBL_SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_REFERENTIEL_UN_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_REFERENTIEL_UN_IDX',
+      'unique' => true,
+      'table' => 'TBL_SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TYPE_VOLUME_HORAIRE_ID',
+        2 => 'STRUCTURE_ID',
+        3 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_SERVICE_REF_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_REF_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_SERVICE_REF_INTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_REF_INTERVENANT_FK',
+      'unique' => false,
+      'table' => 'TBL_SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'TBL_SERVICE_REF_STRUCTURE_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_REF_STRUCTURE_FK',
+      'unique' => false,
+      'table' => 'TBL_SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TBL_SERVICE_REF_TVH_FK_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_REF_TVH_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_SERVICE_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'TYPE_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'TBL_SERVICE_SAISIE_ANNEE_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_SAISIE_ANNEE_FK',
+      'unique' => false,
+      'table' => 'TBL_SERVICE_SAISIE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_SERVICE_SAISIE_PK_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_SAISIE_PK_IDX',
+      'unique' => true,
+      'table' => 'TBL_SERVICE_SAISIE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_SERVICE_SAISIE_UN_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_SAISIE_UN_IDX',
+      'unique' => true,
+      'table' => 'TBL_SERVICE_SAISIE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_SERVICE_SERVICE_FK_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_SERVICE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'SERVICE_ID',
+      ),
+    ),
+    'TBL_SERVICE_STRUCTURE_FKV1_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_STRUCTURE_FKV1_IDX',
+      'unique' => false,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_STRUCTURE_ID',
+      ),
+    ),
+    'TBL_SERVICE_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TBL_SERVICE_TINTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_SERVICE_TINTERVENANT_FK',
+      'unique' => false,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENANT_ID',
+      ),
+    ),
+    'TBL_SERVICE_TVH_FK_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_TVH_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'TYPE_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'TBL_SERVICE_TVH_IDX_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_TVH_IDX_IDX',
+      'unique' => false,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'TYPE_VOLUME_HORAIRE_CODE',
+      ),
+    ),
+    'TBL_SERVICE_TYPE_INT_IDX' => 
+    array (
+      'name' => 'TBL_SERVICE_TYPE_INT_IDX',
+      'unique' => false,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENANT_CODE',
+      ),
+    ),
+    'TBL_SERVICE__UN' => 
+    array (
+      'name' => 'TBL_SERVICE__UN',
+      'unique' => true,
+      'table' => 'TBL_SERVICE',
+      'columns' => 
+      array (
+        0 => 'SERVICE_ID',
+        1 => 'TYPE_VOLUME_HORAIRE_ID',
+        2 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_VALIDATION_ENSEIGNEMENT_PK' => 
+    array (
+      'name' => 'TBL_VALIDATION_ENSEIGNEMENT_PK',
+      'unique' => true,
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_VALIDATION_ENSEIGNEMENT_UN' => 
+    array (
+      'name' => 'TBL_VALIDATION_ENSEIGNEMENT_UN',
+      'unique' => true,
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'TYPE_VOLUME_HORAIRE_ID',
+        3 => 'SERVICE_ID',
+        4 => 'VOLUME_HORAIRE_ID',
+        5 => 'VALIDATION_ID',
+        6 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_VALIDATION_REFERENTIEL_PK' => 
+    array (
+      'name' => 'TBL_VALIDATION_REFERENTIEL_PK',
+      'unique' => true,
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_VALIDATION_REFERENTIEL__UN' => 
+    array (
+      'name' => 'TBL_VALIDATION_REFERENTIEL__UN',
+      'unique' => true,
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'TYPE_VOLUME_HORAIRE_ID',
+        3 => 'SERVICE_REFERENTIEL_ID',
+        4 => 'VOLUME_HORAIRE_REF_ID',
+        5 => 'VALIDATION_ID',
+        6 => 'TO_DELETE',
+      ),
+    ),
+    'TBL_WORKFLOW_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'TBL_WORKFLOW_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_WORKFLOW',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TBL_WORKFLOW_EFK_IDX' => 
+    array (
+      'name' => 'TBL_WORKFLOW_EFK_IDX',
+      'unique' => false,
+      'table' => 'TBL_WORKFLOW',
+      'columns' => 
+      array (
+        0 => 'ETAPE_ID',
+      ),
+    ),
+    'TBL_WORKFLOW_ETAPE_IDX' => 
+    array (
+      'name' => 'TBL_WORKFLOW_ETAPE_IDX',
+      'unique' => false,
+      'table' => 'TBL_WORKFLOW',
+      'columns' => 
+      array (
+        0 => 'ETAPE_CODE',
+      ),
+    ),
+    'TBL_WORKFLOW_IFK_IDX' => 
+    array (
+      'name' => 'TBL_WORKFLOW_IFK_IDX',
+      'unique' => false,
+      'table' => 'TBL_WORKFLOW',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'TBL_WORKFLOW_PK_IDX' => 
+    array (
+      'name' => 'TBL_WORKFLOW_PK_IDX',
+      'unique' => true,
+      'table' => 'TBL_WORKFLOW',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TBL_WORKFLOW_SFK_IDX' => 
+    array (
+      'name' => 'TBL_WORKFLOW_SFK_IDX',
+      'unique' => false,
+      'table' => 'TBL_WORKFLOW',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TBL_WORKFLOW_TINTERVENANT_FK' => 
+    array (
+      'name' => 'TBL_WORKFLOW_TINTERVENANT_FK',
+      'unique' => false,
+      'table' => 'TBL_WORKFLOW',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENANT_ID',
+      ),
+    ),
+    'TBL_WORKFLOW_TYPE_INT_IDX' => 
+    array (
+      'name' => 'TBL_WORKFLOW_TYPE_INT_IDX',
+      'unique' => false,
+      'table' => 'TBL_WORKFLOW',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENANT_CODE',
+      ),
+    ),
+    'TBL_WORKFLOW__UN' => 
+    array (
+      'name' => 'TBL_WORKFLOW__UN',
+      'unique' => true,
+      'table' => 'TBL_WORKFLOW',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+        1 => 'ETAPE_ID',
+        2 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TD_TYPE_RESSOURCE_FK_IDX' => 
+    array (
+      'name' => 'TD_TYPE_RESSOURCE_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_DOTATION',
+      'columns' => 
+      array (
+        0 => 'TYPE_RESSOURCE_ID',
+      ),
+    ),
+    'TEST_BUFFER_PK' => 
+    array (
+      'name' => 'TEST_BUFFER_PK',
+      'unique' => true,
+      'table' => 'TEST_BUFFER',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TIEP_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'TIEP_ELEMENT_PEDAGOGIQUE_FK',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION_EP',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+      ),
+    ),
+    'TIEP_TYPE_INTERVENTION_FK_IDX' => 
+    array (
+      'name' => 'TIEP_TYPE_INTERVENTION_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION_EP',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENTION_ID',
+      ),
+    ),
+    'TIS_ANNEE_DEBUT_FK_IDX' => 
+    array (
+      'name' => 'TIS_ANNEE_DEBUT_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_DEBUT_ID',
+      ),
+    ),
+    'TIS_ANNEE_FIN_FK_IDX' => 
+    array (
+      'name' => 'TIS_ANNEE_FIN_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_FIN_ID',
+      ),
+    ),
+    'TIS_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'TIS_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TIS_TYPE_INTERVENTION_FK_IDX' => 
+    array (
+      'name' => 'TIS_TYPE_INTERVENTION_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENTION_ID',
+      ),
+    ),
+    'TME_ELEMENT_PEDAGOGIQUE_FK_IDX' => 
+    array (
+      'name' => 'TME_ELEMENT_PEDAGOGIQUE_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR_EP',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+      ),
+    ),
+    'TME_TYPE_MODULATEUR_FK_IDX' => 
+    array (
+      'name' => 'TME_TYPE_MODULATEUR_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR_EP',
+      'columns' => 
+      array (
+        0 => 'TYPE_MODULATEUR_ID',
+      ),
+    ),
+    'TMS_ANNEE_DEBUT_FK_IDX' => 
+    array (
+      'name' => 'TMS_ANNEE_DEBUT_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_DEBUT_ID',
+      ),
+    ),
+    'TMS_ANNEE_FIN_FK_IDX' => 
+    array (
+      'name' => 'TMS_ANNEE_FIN_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'ANNEE_FIN_ID',
+      ),
+    ),
+    'TMS_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'TMS_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TMS_TYPE_MODUL_FK_IDX' => 
+    array (
+      'name' => 'TMS_TYPE_MODUL_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'TYPE_MODULATEUR_ID',
+      ),
+    ),
+    'TPJS_ANNEE_DEB_FK' => 
+    array (
+      'name' => 'TPJS_ANNEE_DEB_FK',
+      'unique' => false,
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'columns' => 
+      array (
+        0 => 'ANNEE_DEBUT_ID',
+      ),
+    ),
+    'TPJS_ANNEE_FIN_FK' => 
+    array (
+      'name' => 'TPJS_ANNEE_FIN_FK',
+      'unique' => false,
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'columns' => 
+      array (
+        0 => 'ANNEE_FIN_ID',
+      ),
+    ),
+    'TPJS_STATUT_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'TPJS_STATUT_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'columns' => 
+      array (
+        0 => 'STATUT_INTERVENANT_ID',
+      ),
+    ),
+    'TPJS_TYPE_PIECE_JOINTE_FK_IDX' => 
+    array (
+      'name' => 'TPJS_TYPE_PIECE_JOINTE_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'columns' => 
+      array (
+        0 => 'TYPE_PIECE_JOINTE_ID',
+      ),
+    ),
+    'TVE_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'TVE_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TVE_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'TVE_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'TVE_SERVICE_FK_IDX' => 
+    array (
+      'name' => 'TVE_SERVICE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'columns' => 
+      array (
+        0 => 'SERVICE_ID',
+      ),
+    ),
+    'TVE_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'TVE_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TVE_TYPE_VOLUME_HORAIRE_FK_IDX' => 
+    array (
+      'name' => 'TVE_TYPE_VOLUME_HORAIRE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'columns' => 
+      array (
+        0 => 'TYPE_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'TVE_VALIDATION_FK_IDX' => 
+    array (
+      'name' => 'TVE_VALIDATION_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+      ),
+    ),
+    'TVE_VOLUME_HORAIRE_FK_IDX' => 
+    array (
+      'name' => 'TVE_VOLUME_HORAIRE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_ENSEIGNEMENT',
+      'columns' => 
+      array (
+        0 => 'VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'TVR_ANNEE_FK_IDX' => 
+    array (
+      'name' => 'TVR_ANNEE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'ANNEE_ID',
+      ),
+    ),
+    'TVR_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'TVR_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'TVR_SERVICE_REFERENTIEL_FK_IDX' => 
+    array (
+      'name' => 'TVR_SERVICE_REFERENTIEL_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'SERVICE_REFERENTIEL_ID',
+      ),
+    ),
+    'TVR_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'TVR_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'TVR_TYPE_VOLUME_HORAIRE_FK_IDX' => 
+    array (
+      'name' => 'TVR_TYPE_VOLUME_HORAIRE_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'TYPE_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'TVR_VALIDATION_FK_IDX' => 
+    array (
+      'name' => 'TVR_VALIDATION_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+      ),
+    ),
+    'TVR_VOLUME_HORAIRE_REF_FK_IDX' => 
+    array (
+      'name' => 'TVR_VOLUME_HORAIRE_REF_FK_IDX',
+      'unique' => false,
+      'table' => 'TBL_VALIDATION_REFERENTIEL',
+      'columns' => 
+      array (
+        0 => 'VOLUME_HORAIRE_REF_ID',
+      ),
+    ),
+    'TYPE_AGREMENT_HCFK_IDX' => 
+    array (
+      'name' => 'TYPE_AGREMENT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_AGREMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_AGREMENT_HDFK_IDX' => 
+    array (
+      'name' => 'TYPE_AGREMENT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_AGREMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_AGREMENT_HMFK_IDX' => 
+    array (
+      'name' => 'TYPE_AGREMENT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_AGREMENT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_AGREMENT_PK' => 
+    array (
+      'name' => 'TYPE_AGREMENT_PK',
+      'unique' => true,
+      'table' => 'TYPE_AGREMENT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_AGREMENT_STATUT_HCFK_IDX' => 
+    array (
+      'name' => 'TYPE_AGREMENT_STATUT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_AGREMENT_STATUT_HDFK_IDX' => 
+    array (
+      'name' => 'TYPE_AGREMENT_STATUT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_AGREMENT_STATUT_HMFK_IDX' => 
+    array (
+      'name' => 'TYPE_AGREMENT_STATUT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_AGREMENT_STATUT_PK' => 
+    array (
+      'name' => 'TYPE_AGREMENT_STATUT_PK',
+      'unique' => true,
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_AGREMENT_STATUT__UN' => 
+    array (
+      'name' => 'TYPE_AGREMENT_STATUT__UN',
+      'unique' => true,
+      'table' => 'TYPE_AGREMENT_STATUT',
+      'columns' => 
+      array (
+        0 => 'TYPE_AGREMENT_ID',
+        1 => 'STATUT_INTERVENANT_ID',
+        2 => 'PREMIER_RECRUTEMENT',
+      ),
+    ),
+    'TYPE_AGREMENT__UN' => 
+    array (
+      'name' => 'TYPE_AGREMENT__UN',
+      'unique' => true,
+      'table' => 'TYPE_AGREMENT',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'TYPE_CONTRAT_HCFK_IDX' => 
+    array (
+      'name' => 'TYPE_CONTRAT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_CONTRAT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_CONTRAT_HDFK_IDX' => 
+    array (
+      'name' => 'TYPE_CONTRAT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_CONTRAT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_CONTRAT_HMFK_IDX' => 
+    array (
+      'name' => 'TYPE_CONTRAT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_CONTRAT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_CONTRAT_PK' => 
+    array (
+      'name' => 'TYPE_CONTRAT_PK',
+      'unique' => true,
+      'table' => 'TYPE_CONTRAT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_DOTATION_HCFK_IDX' => 
+    array (
+      'name' => 'TYPE_DOTATION_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_DOTATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_DOTATION_HDFK_IDX' => 
+    array (
+      'name' => 'TYPE_DOTATION_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_DOTATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_DOTATION_HMFK_IDX' => 
+    array (
+      'name' => 'TYPE_DOTATION_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_DOTATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_DOTATION_PK' => 
+    array (
+      'name' => 'TYPE_DOTATION_PK',
+      'unique' => true,
+      'table' => 'TYPE_DOTATION',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_DOTATION_SOURCE_FK_IDX' => 
+    array (
+      'name' => 'TYPE_DOTATION_SOURCE_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_DOTATION',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'TYPE_FORMATION_GROUPE_FK_IDX' => 
+    array (
+      'name' => 'TYPE_FORMATION_GROUPE_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_FORMATION',
+      'columns' => 
+      array (
+        0 => 'GROUPE_ID',
+      ),
+    ),
+    'TYPE_FORMATION_HCFK_IDX' => 
+    array (
+      'name' => 'TYPE_FORMATION_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_FORMATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_FORMATION_HDFK_IDX' => 
+    array (
+      'name' => 'TYPE_FORMATION_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_FORMATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_FORMATION_HMFK_IDX' => 
+    array (
+      'name' => 'TYPE_FORMATION_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_FORMATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_FORMATION_PK' => 
+    array (
+      'name' => 'TYPE_FORMATION_PK',
+      'unique' => true,
+      'table' => 'TYPE_FORMATION',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_FORMATION_SOURCE_FK_IDX' => 
+    array (
+      'name' => 'TYPE_FORMATION_SOURCE_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_FORMATION',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'TYPE_FORMATION__UN' => 
+    array (
+      'name' => 'TYPE_FORMATION__UN',
+      'unique' => true,
+      'table' => 'TYPE_FORMATION',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'TYPE_HEURES_HCFK_IDX' => 
+    array (
+      'name' => 'TYPE_HEURES_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_HEURES',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_HEURES_HDFK_IDX' => 
+    array (
+      'name' => 'TYPE_HEURES_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_HEURES',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_HEURES_HMFK_IDX' => 
+    array (
+      'name' => 'TYPE_HEURES_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_HEURES',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_HEURES_PK' => 
+    array (
+      'name' => 'TYPE_HEURES_PK',
+      'unique' => true,
+      'table' => 'TYPE_HEURES',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_HEURES_TYPE_HEURES_FK_IDX' => 
+    array (
+      'name' => 'TYPE_HEURES_TYPE_HEURES_FK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_HEURES',
+      'columns' => 
+      array (
+        0 => 'TYPE_HEURES_ELEMENT_ID',
+      ),
+    ),
+    'TYPE_HEURES_UN' => 
+    array (
+      'name' => 'TYPE_HEURES_UN',
+      'unique' => true,
+      'table' => 'TYPE_HEURES',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'TYPE_INTERVENANT_CODE_UN' => 
+    array (
+      'name' => 'TYPE_INTERVENANT_CODE_UN',
+      'unique' => true,
+      'table' => 'TYPE_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'TYPE_INTERVENANT_HCFK_IDX' => 
+    array (
+      'name' => 'TYPE_INTERVENANT_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_INTERVENANT_HDFK_IDX' => 
+    array (
+      'name' => 'TYPE_INTERVENANT_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_INTERVENANT_HMFK_IDX' => 
+    array (
+      'name' => 'TYPE_INTERVENANT_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_INTERVENANT_PK' => 
+    array (
+      'name' => 'TYPE_INTERVENANT_PK',
+      'unique' => true,
+      'table' => 'TYPE_INTERVENANT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_ANNEE_FK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_ANNEE_FK',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION',
+      'columns' => 
+      array (
+        0 => 'ANNEE_DEBUT_ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_ANNEE_FKV1' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_ANNEE_FKV1',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION',
+      'columns' => 
+      array (
+        0 => 'ANNEE_FIN_ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_EP_HCFK_IDX' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_EP_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION_EP',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_EP_HDFK_IDX' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_EP_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION_EP',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_EP_HMFK_IDX' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_EP_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION_EP',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_EP_PK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_EP_PK',
+      'unique' => true,
+      'table' => 'TYPE_INTERVENTION_EP',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_EP_SOURCE_FK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_EP_SOURCE_FK',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION_EP',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_HCFK_IDX' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_HDFK_IDX' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_HMFK_IDX' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_PK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_PK',
+      'unique' => true,
+      'table' => 'TYPE_INTERVENTION',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_STATUT_PK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STATUT_PK',
+      'unique' => true,
+      'table' => 'TYPE_INTERVENTION_STATUT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_STATUT__UN' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STATUT__UN',
+      'unique' => true,
+      'table' => 'TYPE_INTERVENTION_STATUT',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENTION_ID',
+        1 => 'STATUT_INTERVENANT_ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_STRUCTURE_PK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STRUCTURE_PK',
+      'unique' => true,
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_STRUCTU_HCFK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STRUCTU_HCFK',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_STRUCTU_HDFK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STRUCTU_HDFK',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_INTERVENTION_STRUCTU_HMFK' => 
+    array (
+      'name' => 'TYPE_INTERVENTION_STRUCTU_HMFK',
+      'unique' => false,
+      'table' => 'TYPE_INTERVENTION_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP_HCFK_IDX' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR_EP',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP_HDFK_IDX' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR_EP',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP_HMFK_IDX' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR_EP',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP_PK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP_PK',
+      'unique' => true,
+      'table' => 'TYPE_MODULATEUR_EP',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP_SOURCE_FK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP_SOURCE_FK',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR_EP',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP__UN' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP__UN',
+      'unique' => true,
+      'table' => 'TYPE_MODULATEUR_EP',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+      ),
+    ),
+    'TYPE_MODULATEUR_EP__UNV1' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_EP__UNV1',
+      'unique' => true,
+      'table' => 'TYPE_MODULATEUR_EP',
+      'columns' => 
+      array (
+        0 => 'TYPE_MODULATEUR_ID',
+        1 => 'ELEMENT_PEDAGOGIQUE_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_HCFK_IDX' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_HDFK_IDX' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_HMFK_IDX' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_PK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_PK',
+      'unique' => true,
+      'table' => 'TYPE_MODULATEUR',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_STRUCTURE_HCFK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_STRUCTURE_HCFK',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_STRUCTURE_HDFK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_STRUCTURE_HDFK',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_STRUCTURE_HMFK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_STRUCTURE_HMFK',
+      'unique' => false,
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_STRUCTURE_PK' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_STRUCTURE_PK',
+      'unique' => true,
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_MODULATEUR_STRUCTURE_UN' => 
+    array (
+      'name' => 'TYPE_MODULATEUR_STRUCTURE_UN',
+      'unique' => true,
+      'table' => 'TYPE_MODULATEUR_STRUCTURE',
+      'columns' => 
+      array (
+        0 => 'TYPE_MODULATEUR_ID',
+        1 => 'STRUCTURE_ID',
+        2 => 'ANNEE_DEBUT_ID',
+        3 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_HCFK_IDX' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_HDFK_IDX' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_HMFK_IDX' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_PK' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_PK',
+      'unique' => true,
+      'table' => 'TYPE_PIECE_JOINTE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_STATUT_HCFK' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_STATUT_HCFK',
+      'unique' => false,
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_STATUT_HDFK' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_STATUT_HDFK',
+      'unique' => false,
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_STATUT_HMFK' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_STATUT_HMFK',
+      'unique' => false,
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_PIECE_JOINTE_STATUT_PK' => 
+    array (
+      'name' => 'TYPE_PIECE_JOINTE_STATUT_PK',
+      'unique' => true,
+      'table' => 'TYPE_PIECE_JOINTE_STATUT',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_RESSOURCE_FA' => 
+    array (
+      'name' => 'TYPE_RESSOURCE_FA',
+      'unique' => false,
+      'table' => 'TYPE_RESSOURCE',
+      'columns' => 
+      array (
+        0 => 'FA',
+      ),
+    ),
+    'TYPE_RESSOURCE_FC' => 
+    array (
+      'name' => 'TYPE_RESSOURCE_FC',
+      'unique' => false,
+      'table' => 'TYPE_RESSOURCE',
+      'columns' => 
+      array (
+        0 => 'FC',
+      ),
+    ),
+    'TYPE_RESSOURCE_FI' => 
+    array (
+      'name' => 'TYPE_RESSOURCE_FI',
+      'unique' => false,
+      'table' => 'TYPE_RESSOURCE',
+      'columns' => 
+      array (
+        0 => 'FI',
+      ),
+    ),
+    'TYPE_RESSOURCE_HCFK_IDX' => 
+    array (
+      'name' => 'TYPE_RESSOURCE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_RESSOURCE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'TYPE_RESSOURCE_HDFK_IDX' => 
+    array (
+      'name' => 'TYPE_RESSOURCE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_RESSOURCE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'TYPE_RESSOURCE_HMFK_IDX' => 
+    array (
+      'name' => 'TYPE_RESSOURCE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'TYPE_RESSOURCE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'TYPE_RESSOURCE_PK' => 
+    array (
+      'name' => 'TYPE_RESSOURCE_PK',
+      'unique' => true,
+      'table' => 'TYPE_RESSOURCE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_RESSOURCE_REF' => 
+    array (
+      'name' => 'TYPE_RESSOURCE_REF',
+      'unique' => false,
+      'table' => 'TYPE_RESSOURCE',
+      'columns' => 
+      array (
+        0 => 'REFERENTIEL',
+      ),
+    ),
+    'TYPE_VALIDATION_PK' => 
+    array (
+      'name' => 'TYPE_VALIDATION_PK',
+      'unique' => true,
+      'table' => 'TYPE_VALIDATION',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_VOLUME_HORAIRE_PK' => 
+    array (
+      'name' => 'TYPE_VOLUME_HORAIRE_PK',
+      'unique' => true,
+      'table' => 'TYPE_VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'TYPE_VOLUME_HORAIRE__UN' => 
+    array (
+      'name' => 'TYPE_VOLUME_HORAIRE__UN',
+      'unique' => true,
+      'table' => 'TYPE_VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'USER_PASSWORD_RESET_TOKEN_UN' => 
+    array (
+      'name' => 'USER_PASSWORD_RESET_TOKEN_UN',
+      'unique' => true,
+      'table' => 'UTILISATEUR',
+      'columns' => 
+      array (
+        0 => 'PASSWORD_RESET_TOKEN',
+      ),
+    ),
+    'UTILISATEUR_PK' => 
+    array (
+      'name' => 'UTILISATEUR_PK',
+      'unique' => true,
+      'table' => 'UTILISATEUR',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'UTILISATEUR_USERNAME_UN' => 
+    array (
+      'name' => 'UTILISATEUR_USERNAME_UN',
+      'unique' => true,
+      'table' => 'UTILISATEUR',
+      'columns' => 
+      array (
+        0 => 'USERNAME',
+      ),
+    ),
+    'VALIDATION_HCFK_IDX' => 
+    array (
+      'name' => 'VALIDATION_HCFK_IDX',
+      'unique' => false,
+      'table' => 'VALIDATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'VALIDATION_HDFK_IDX' => 
+    array (
+      'name' => 'VALIDATION_HDFK_IDX',
+      'unique' => false,
+      'table' => 'VALIDATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'VALIDATION_HMFK_IDX' => 
+    array (
+      'name' => 'VALIDATION_HMFK_IDX',
+      'unique' => false,
+      'table' => 'VALIDATION',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'VALIDATION_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'VALIDATION_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'VALIDATION',
+      'columns' => 
+      array (
+        0 => 'INTERVENANT_ID',
+      ),
+    ),
+    'VALIDATION_PK' => 
+    array (
+      'name' => 'VALIDATION_PK',
+      'unique' => true,
+      'table' => 'VALIDATION',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'VALIDATION_STRUCTURE_FK_IDX' => 
+    array (
+      'name' => 'VALIDATION_STRUCTURE_FK_IDX',
+      'unique' => false,
+      'table' => 'VALIDATION',
+      'columns' => 
+      array (
+        0 => 'STRUCTURE_ID',
+      ),
+    ),
+    'VALIDATION_TYPE_VALIDATION_FK' => 
+    array (
+      'name' => 'VALIDATION_TYPE_VALIDATION_FK',
+      'unique' => false,
+      'table' => 'VALIDATION',
+      'columns' => 
+      array (
+        0 => 'TYPE_VALIDATION_ID',
+      ),
+    ),
+    'VALIDATION_VOL_HORAIRE_PK' => 
+    array (
+      'name' => 'VALIDATION_VOL_HORAIRE_PK',
+      'unique' => true,
+      'table' => 'VALIDATION_VOL_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+        1 => 'VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'VALIDATION_VOL_HORAIRE_REF_PK' => 
+    array (
+      'name' => 'VALIDATION_VOL_HORAIRE_REF_PK',
+      'unique' => true,
+      'table' => 'VALIDATION_VOL_HORAIRE_REF',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+        1 => 'VOLUME_HORAIRE_REF_ID',
+      ),
+    ),
+    'VERSION_PK' => 
+    array (
+      'name' => 'VERSION_PK',
+      'unique' => true,
+      'table' => 'VERSION',
+      'columns' => 
+      array (
+        0 => 'NUMERO',
+      ),
+    ),
+    'VHC_HISTO_UN' => 
+    array (
+      'name' => 'VHC_HISTO_UN',
+      'unique' => true,
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'VHC_SCENARIO_FK' => 
+    array (
+      'name' => 'VHC_SCENARIO_FK',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'columns' => 
+      array (
+        0 => 'SCENARIO_ID',
+      ),
+    ),
+    'VHC_TYPE_INTERVENTION_FK' => 
+    array (
+      'name' => 'VHC_TYPE_INTERVENTION_FK',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENTION_ID',
+      ),
+    ),
+    'VHENS_ELEMENT_PEDAGOGIQUE_FK' => 
+    array (
+      'name' => 'VHENS_ELEMENT_PEDAGOGIQUE_FK',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+      ),
+    ),
+    'VHENS_TYPE_INTERVENTION_FK_IDX' => 
+    array (
+      'name' => 'VHENS_TYPE_INTERVENTION_FK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENTION_ID',
+      ),
+    ),
+    'VHIT_FK_IDX' => 
+    array (
+      'name' => 'VHIT_FK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENTION_ID',
+      ),
+    ),
+    'VHMNP_FK_IDX' => 
+    array (
+      'name' => 'VHMNP_FK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'MOTIF_NON_PAIEMENT_ID',
+      ),
+    ),
+    'VHR_SERVICE_REFERENTIEL_FK_IDX' => 
+    array (
+      'name' => 'VHR_SERVICE_REFERENTIEL_FK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_REF',
+      'columns' => 
+      array (
+        0 => 'SERVICE_REFERENTIEL_ID',
+      ),
+    ),
+    'VHR_TYPE_VOLUME_HORAIRE_FK_IDX' => 
+    array (
+      'name' => 'VHR_TYPE_VOLUME_HORAIRE_FK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_REF',
+      'columns' => 
+      array (
+        0 => 'TYPE_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'VH_PERIODE_FK_IDX' => 
+    array (
+      'name' => 'VH_PERIODE_FK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'PERIODE_ID',
+      ),
+    ),
+    'VH_TYPE_VOLUME_HORAIRE_FK_IDX' => 
+    array (
+      'name' => 'VH_TYPE_VOLUME_HORAIRE_FK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'TYPE_VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'VOLUMES_HORAIRES_SERVICES_FK' => 
+    array (
+      'name' => 'VOLUMES_HORAIRES_SERVICES_FK',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'SERVICE_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARGE_HCFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARGE_HCFK',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARGE_HDFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARGE_HDFK',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARGE_HMFK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARGE_HMFK',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARGE_PK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARGE_PK',
+      'unique' => true,
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARGE__UN' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARGE__UN',
+      'unique' => true,
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'columns' => 
+      array (
+        0 => 'ELEMENT_PEDAGOGIQUE_ID',
+        1 => 'TYPE_INTERVENTION_ID',
+        2 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'VOLUME_HORAIRE_CHARG_SOURCE_FK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CHARG_SOURCE_FK',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_CHARGE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_CONTRAT_FK_IDX' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_CONTRAT_FK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'CONTRAT_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_ENS_HCFK_IDX' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS_HCFK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_ENS_HDFK_IDX' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS_HDFK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_ENS_HMFK_IDX' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS_HMFK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_ENS_PK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS_PK',
+      'unique' => true,
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_ENS_SOURCE_FK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS_SOURCE_FK',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'columns' => 
+      array (
+        0 => 'SOURCE_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_ENS_UK1' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_ENS_UK1',
+      'unique' => true,
+      'table' => 'VOLUME_HORAIRE_ENS',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'VOLUME_HORAIRE_HCFK_IDX' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_HCFK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_HDFK_IDX' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_HDFK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_HEURES_IDX' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_HEURES_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'HEURES',
+      ),
+    ),
+    'VOLUME_HORAIRE_HMFK_IDX' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_HMFK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_PK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_PK',
+      'unique' => true,
+      'table' => 'VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_REF_HCFK_IDX' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_HCFK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_REF',
+      'columns' => 
+      array (
+        0 => 'HISTO_CREATEUR_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_REF_HDFK_IDX' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_HDFK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_REF',
+      'columns' => 
+      array (
+        0 => 'HISTO_DESTRUCTEUR_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_REF_HMFK_IDX' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_HMFK_IDX',
+      'unique' => false,
+      'table' => 'VOLUME_HORAIRE_REF',
+      'columns' => 
+      array (
+        0 => 'HISTO_MODIFICATEUR_ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_REF_PK' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_PK',
+      'unique' => true,
+      'table' => 'VOLUME_HORAIRE_REF',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'VOLUME_HORAIRE_REF_SOURCE_UN' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_REF_SOURCE_UN',
+      'unique' => true,
+      'table' => 'VOLUME_HORAIRE_REF',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'VOLUME_HORAIRE_SOURCE_UN' => 
+    array (
+      'name' => 'VOLUME_HORAIRE_SOURCE_UN',
+      'unique' => true,
+      'table' => 'VOLUME_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'SOURCE_CODE',
+        1 => 'HISTO_DESTRUCTION',
+      ),
+    ),
+    'VVHR_VALIDATION_FK_IDX' => 
+    array (
+      'name' => 'VVHR_VALIDATION_FK_IDX',
+      'unique' => false,
+      'table' => 'VALIDATION_VOL_HORAIRE_REF',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+      ),
+    ),
+    'VVHR_VOLUME_HORAIRE_REF_FK_IDX' => 
+    array (
+      'name' => 'VVHR_VOLUME_HORAIRE_REF_FK_IDX',
+      'unique' => false,
+      'table' => 'VALIDATION_VOL_HORAIRE_REF',
+      'columns' => 
+      array (
+        0 => 'VOLUME_HORAIRE_REF_ID',
+      ),
+    ),
+    'VVH_VALIDATION_FK_IDX' => 
+    array (
+      'name' => 'VVH_VALIDATION_FK_IDX',
+      'unique' => false,
+      'table' => 'VALIDATION_VOL_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'VALIDATION_ID',
+      ),
+    ),
+    'VVH_VOLUME_HORAIRE_FK_IDX' => 
+    array (
+      'name' => 'VVH_VOLUME_HORAIRE_FK_IDX',
+      'unique' => false,
+      'table' => 'VALIDATION_VOL_HORAIRE',
+      'columns' => 
+      array (
+        0 => 'VOLUME_HORAIRE_ID',
+      ),
+    ),
+    'WE_PREC_WE_FK_IDX' => 
+    array (
+      'name' => 'WE_PREC_WE_FK_IDX',
+      'unique' => false,
+      'table' => 'WF_ETAPE_DEP',
+      'columns' => 
+      array (
+        0 => 'ETAPE_PREC_ID',
+      ),
+    ),
+    'WE_SUIV_WE_FK_IDX' => 
+    array (
+      'name' => 'WE_SUIV_WE_FK_IDX',
+      'unique' => false,
+      'table' => 'WF_ETAPE_DEP',
+      'columns' => 
+      array (
+        0 => 'ETAPE_SUIV_ID',
+      ),
+    ),
+    'WE_TYPE_INTERVENANT_FK_IDX' => 
+    array (
+      'name' => 'WE_TYPE_INTERVENANT_FK_IDX',
+      'unique' => false,
+      'table' => 'WF_ETAPE_DEP',
+      'columns' => 
+      array (
+        0 => 'TYPE_INTERVENANT_ID',
+      ),
+    ),
+    'WF_DB_ETAPE_DEP_FK_IDX' => 
+    array (
+      'name' => 'WF_DB_ETAPE_DEP_FK_IDX',
+      'unique' => false,
+      'table' => 'WF_DEP_BLOQUANTE',
+      'columns' => 
+      array (
+        0 => 'WF_ETAPE_DEP_ID',
+      ),
+    ),
+    'WF_DB_TBL_WORKFLOW_FK_IDX' => 
+    array (
+      'name' => 'WF_DB_TBL_WORKFLOW_FK_IDX',
+      'unique' => false,
+      'table' => 'WF_DEP_BLOQUANTE',
+      'columns' => 
+      array (
+        0 => 'TBL_WORKFLOW_ID',
+      ),
+    ),
+    'WF_DEPS_BLOQUANTES_PK_IDX' => 
+    array (
+      'name' => 'WF_DEPS_BLOQUANTES_PK_IDX',
+      'unique' => true,
+      'table' => 'WF_DEP_BLOQUANTE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'WF_ETAPE_CODE_UN' => 
+    array (
+      'name' => 'WF_ETAPE_CODE_UN',
+      'unique' => true,
+      'table' => 'WF_ETAPE',
+      'columns' => 
+      array (
+        0 => 'CODE',
+      ),
+    ),
+    'WF_ETAPE_DEP_PK' => 
+    array (
+      'name' => 'WF_ETAPE_DEP_PK',
+      'unique' => true,
+      'table' => 'WF_ETAPE_DEP',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+    'WF_ETAPE_DEP_PK_IDX' => 
+    array (
+      'name' => 'WF_ETAPE_DEP_PK_IDX',
+      'unique' => true,
+      'table' => 'WF_ETAPE_DEP',
+      'columns' => 
+      array (
+        0 => 'ETAPE_PREC_ID',
+        1 => 'ETAPE_SUIV_ID',
+      ),
+    ),
+    'WF_ETAPE_DEP__UN_IDX' => 
+    array (
+      'name' => 'WF_ETAPE_DEP__UN_IDX',
+      'unique' => true,
+      'table' => 'WF_ETAPE_DEP',
+      'columns' => 
+      array (
+        0 => 'ETAPE_SUIV_ID',
+        1 => 'ETAPE_PREC_ID',
+      ),
+    ),
+    'WF_ETAPE_ORDRE_UN' => 
+    array (
+      'name' => 'WF_ETAPE_ORDRE_UN',
+      'unique' => true,
+      'table' => 'WF_ETAPE',
+      'columns' => 
+      array (
+        0 => 'ORDRE',
+      ),
+    ),
+    'WF_ETAPE_PK' => 
+    array (
+      'name' => 'WF_ETAPE_PK',
+      'unique' => true,
+      'table' => 'WF_ETAPE',
+      'columns' => 
+      array (
+        0 => 'ID',
+      ),
+    ),
+  ),
+);
\ No newline at end of file