Commit 56ac3e6e authored by Laurent Lécluse's avatar Laurent Lécluse
Browse files

MAJ Doc : Corrections sur le CRON

Nouveau bug corrigé (export services sans libellé d'étape)
UnicaenImport mis à jour
parent 727216a6
......@@ -11,16 +11,19 @@ author: Laurent Lécluse - DSI - Unicaen
* Ajout de la dépendance à BCMath (extension PHP à installer).
* Correction de bug portant sur la validation du numéro INSEE dans les données personnelles.
* Ajout de la dépendance à GD (extension PHP à installer).
* Correction de bug portant sur la recherche d'intervenants (se produisant uniquement avec PHP 7.1).
* La validation du numéro INSEE dans les données personnelles était incorrecte dans certains cas.
* Recherche d'intervenants inopérante (se produisant uniquement avec PHP 7.1).
* Connecteurs : les disciplines remontent aussi pour les intervenants ayant une fin d'affectation en cours d'année.
* Correction de bug empêchant l'affichage de l'interface d'administration des années.
* L'affichage de l'interface d'administration des années ne fonctionnait plus.
* à l'installation : toutes les tables étaient considérées par défaut comme synchronisées, ce qui n'était pas le cas.
* Correction de bug à l'installation : toutes les tables étaient considérées par défaut comme
synchronisées, ce qui n'était pas le cas.
* Dans l'export CSV des services, le libellé de formation n'apparaissait plus.
## Nouveautés
......
......@@ -156,9 +156,9 @@ Dans tous les cas, c'est le script de OSE qui sera appelé.
Le script est situé dans le répertoire de OSE, `bin/ose`.
Il est suivi de l'action à exécuter, puis éventuellement de paramètres à préciser.
Exemple d'utilisation pour lancer une tâche de synchronisation appelée `principal`:
Exemple d'utilisation pour lancer une tâche de synchronisation appelée `synchro`:
```bash
/usr/bin/php /var/www/ose/bin/ose synchronisation principal
/usr/bin/php /var/www/ose/bin/ose synchronisation synchro
```
| Usage | Fréquence | Action de script |
......@@ -169,18 +169,18 @@ Exemple d'utilisation pour lancer une tâche de synchronisation appelée `princi
| Calcul des tableaux de bord | Deux fois par jour sauf le dimanche (Calcul LONG) | calcul-tableaux-bord |
| Calcul des heures complémentaires à l'aide de la formule (calcul LONG) | Les lundi et jeudi à 3h | formule-calcul |
Après la commande, on ajoute `1> /tmp/oselog 2>&1` pour loguer le résultat dans le fichier`/tmp/oselog`.
Après la commande, on ajoute `> /tmp/oselog 2>&1` pour loguer le résultat dans le fichier`/tmp/oselog`.
A adapter le cas échéant.
Voici un exemple de crontab :
```cron
# m h dom mon dow command
0 5-17 * * 1-5 /usr/bin/php /var/www/ose/bin/ose notifier-indicateurs 1> /tmp/oselog 2>&1
*/15 7-21 * * 1-6 /usr/bin/php /var/www/ose/bin/ose synchronisation job1 1> /tmp/oselog 2>&1
0 20 * * 1-6 /usr/bin/php /var/www/ose/bin/ose chargens-calcul-effectifs 1> /tmp/oselog 2>&1
0 6,14 * * 1-6 /usr/bin/php /var/www/ose/bin/ose calcul-tableaux-bord 1> /tmp/oselog 2>&1
0 3 * * 1,4 /usr/bin/php /var/www/ose/bin/ose formule-calcul 1> /tmp/oselog 2>&1
0 5-17 * * 1-5 /usr/bin/php /var/www/ose/bin/ose notifier-indicateurs > /tmp/oselog 2>&1
*/15 7-21 * * 1-6 /usr/bin/php /var/www/ose/bin/ose synchronisation synchro > /tmp/oselog 2>&1
0 20 * * 1-6 /usr/bin/php /var/www/ose/bin/ose chargens-calcul-effectifs > /tmp/oselog 2>&1
0 6,14 * * 1-6 /usr/bin/php /var/www/ose/bin/ose calcul-tableaux-bord > /tmp/oselog 2>&1
0 3 * * 1,4 /usr/bin/php /var/www/ose/bin/ose formule-calcul > /tmp/oselog 2>&1
```
OSE est maintenant installé.
......
......@@ -18886,46 +18886,54 @@ INSERT INTO ETAT_VOLUME_HORAIRE(ID, CODE, LIBELLE, ORDRE) VALUES (ETAT_VOLUME_HO
 
 
-- Table IMPORT_TABLES
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[INTERVENANT]', q'[WHERE (IMPORT_ACTION IN ('delete','update','undelete') OR STATUT_ID IN (SELECT si.id FROM statut_intervenant si JOIN type_intervenant ti ON ti.id = si.type_intervenant_id WHERE ti.code = 'P'))]', 0, NULL, q'[UNICAEN_IMPORT.REFRESH_MV('MV_UNICAEN_STRUCTURE_CODES');
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[INTERVENANT]', q'[WHERE (
IMPORT_ACTION IN ('delete','update','undelete')
OR STATUT_ID IN (
SELECT si.id
FROM statut_intervenant si
JOIN type_intervenant ti ON ti.id = si.type_intervenant_id
WHERE ti.code = 'P'
)
)]', 0, q'[synchro]', q'[UNICAEN_IMPORT.REFRESH_MV('MV_UNICAEN_STRUCTURE_CODES');
UNICAEN_IMPORT.REFRESH_MV('MV_INTERVENANT');]', NULL, 12);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[AFFECTATION_RECHERCHE]', q'[WHERE INTERVENANT_ID IS NOT NULL]', 0, NULL, NULL, NULL, 13);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[ADRESSE_INTERVENANT]', q'[WHERE INTERVENANT_ID IS NOT NULL]', 0, q'[test1]', NULL, NULL, 14);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[AFFECTATION_RECHERCHE]', q'[WHERE INTERVENANT_ID IS NOT NULL]', 0, q'[synchro]', NULL, NULL, 13);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[ADRESSE_INTERVENANT]', q'[WHERE INTERVENANT_ID IS NOT NULL]', 0, q'[synchro]', NULL, NULL, 14);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[ELEMENT_TAUX_REGIMES]', q'[WHERE IMPORT_ACTION IN ('delete','insert','undelete')]', 0, NULL, NULL, NULL, 20);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[VOLUME_HORAIRE_ENS]', NULL, 0, q'[test1]', NULL, NULL, 22);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[TYPE_MODULATEUR_EP]', NULL, 0, q'[test1]', NULL, NULL, 27);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[TYPE_INTERVENTION_EP]', NULL, 0, q'[test1]', NULL, NULL, 26);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[TYPE_FORMATION]', NULL, 0, q'[test1]', NULL, NULL, 16);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[STRUCTURE]', NULL, 0, q'[test1]', NULL, NULL, 4);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[SCENARIO_LIEN]', NULL, 0, q'[test1]', NULL, NULL, 25);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[PAYS]', NULL, 0, q'[test1]', NULL, NULL, 1);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[NOEUD]', NULL, 0, q'[test1]', NULL, q'[UNICAEN_IMPORT.REFRESH_MV('TBL_NOEUD');
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[VOLUME_HORAIRE_ENS]', NULL, 0, q'[synchro]', NULL, NULL, 22);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[TYPE_MODULATEUR_EP]', NULL, 0, q'[synchro]', NULL, NULL, 27);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[TYPE_INTERVENTION_EP]', NULL, 0, q'[synchro]', NULL, NULL, 26);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[TYPE_FORMATION]', NULL, 0, q'[synchro]', NULL, NULL, 16);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[STRUCTURE]', NULL, 0, q'[synchro]', NULL, NULL, 4);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[SCENARIO_LIEN]', NULL, 0, q'[synchro]', NULL, NULL, 25);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[PAYS]', NULL, 0, q'[synchro]', NULL, NULL, 1);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[NOEUD]', NULL, 0, q'[synchro]', NULL, q'[UNICAEN_IMPORT.REFRESH_MV('TBL_NOEUD');
UNICAEN_TBL.CALCULER('chargens');]', 23);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[LIEN]', NULL, 0, q'[test1]', NULL, NULL, 24);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[GROUPE_TYPE_FORMATION]', NULL, 0, q'[test1]', NULL, NULL, 15);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[GRADE]', NULL, 0, q'[test1]', NULL, NULL, 11);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[ETAPE]', NULL, 0, q'[test1]', NULL, NULL, 17);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[ETABLISSEMENT]', NULL, 0, q'[test1]', NULL, NULL, 3);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[ELEMENT_PEDAGOGIQUE]', NULL, 0, q'[test1]', NULL, NULL, 18);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[EFFECTIFS]', NULL, 0, q'[test1]', NULL, NULL, 19);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[DOMAINE_FONCTIONNEL]', NULL, 0, q'[test1]', NULL, NULL, 6);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[DEPARTEMENT]', NULL, 0, q'[test1]', NULL, NULL, 2);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[CORPS]', NULL, 0, q'[test1]', NULL, NULL, 10);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[CHEMIN_PEDAGOGIQUE]', NULL, 0, NULL, NULL, NULL, 21);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[CENTRE_COUT_STRUCTURE]', NULL, 0, q'[test1]', NULL, NULL, 8);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[CENTRE_COUT]', NULL, 0, q'[test1]', NULL, NULL, 7);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[AFFECTATION]', NULL, 0, q'[test1]', q'[UNICAEN_IMPORT.REFRESH_MV('MV_AFFECTATION');
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[LIEN]', NULL, 0, q'[synchro]', NULL, NULL, 24);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[GROUPE_TYPE_FORMATION]', NULL, 0, q'[synchro]', NULL, NULL, 15);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[GRADE]', NULL, 0, q'[synchro]', NULL, NULL, 11);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[ETAPE]', NULL, 0, q'[synchro]', NULL, NULL, 17);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[ETABLISSEMENT]', NULL, 0, q'[synchro]', NULL, NULL, 3);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[ELEMENT_PEDAGOGIQUE]', NULL, 0, q'[synchro]', NULL, NULL, 18);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[EFFECTIFS]', NULL, 0, q'[synchro]', NULL, NULL, 19);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[DOMAINE_FONCTIONNEL]', NULL, 0, q'[synchro]', NULL, NULL, 6);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[DEPARTEMENT]', NULL, 0, q'[synchro]', NULL, NULL, 2);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[CORPS]', NULL, 0, q'[synchro]', NULL, NULL, 10);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[CHEMIN_PEDAGOGIQUE]', NULL, 0, q'[synchro]', NULL, NULL, 21);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[CENTRE_COUT_STRUCTURE]', NULL, 0, q'[synchro]', NULL, NULL, 8);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[CENTRE_COUT]', NULL, 0, q'[synchro]', NULL, NULL, 7);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[AFFECTATION]', NULL, 0, q'[synchro]', q'[UNICAEN_IMPORT.REFRESH_MV('MV_AFFECTATION');
/* Import automatique des users des nouveaux directeurs */
INSERT INTO utilisateur (
id, display_name, email, password, state, username
)
SELECT
utilisateur_id_seq.nextval id,
utilisateur_id_seq.nextval id,
aff.*
FROM
FROM
(SELECT DISTINCT display_name, email, password, state, username FROM mv_affectation) aff
WHERE
WHERE
username not in (select username from utilisateur);]', NULL, 9);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[ADRESSE_STRUCTURE]', NULL, 0, q'[test1]', NULL, NULL, 5);
INSERT INTO IMPORT_TABLES(TABLE_NAME, SYNC_FILTRE, SYNC_ENABLED, SYNC_JOB, SYNC_HOOK_BEFORE, SYNC_HOOK_AFTER, ORDRE) VALUES (q'[ADRESSE_STRUCTURE]', NULL, 0, q'[synchro]', NULL, NULL, 5);
 
 
-- Table INDICATEUR
......@@ -19,6 +19,72 @@ ALTER TABLE import_tables ADD (
sync_hook_after VARCHAR2(4000 CHAR)
);
UPDATE import_tables SET ordre = 1 WHERE table_name = 'PAYS';
UPDATE import_tables SET ordre = 2 WHERE table_name = 'DEPARTEMENT';
UPDATE import_tables SET ordre = 3 WHERE table_name = 'ETABLISSEMENT';
UPDATE import_tables SET ordre = 4 WHERE table_name = 'STRUCTURE';
UPDATE import_tables SET ordre = 5 WHERE table_name = 'ADRESSE_STRUCTURE';
UPDATE import_tables SET ordre = 6 WHERE table_name = 'DOMAINE_FONCTIONNEL';
UPDATE import_tables SET ordre = 7 WHERE table_name = 'CENTRE_COUT';
UPDATE import_tables SET ordre = 8 WHERE table_name = 'CENTRE_COUT_STRUCTURE';
UPDATE import_tables SET ordre = 9 WHERE table_name = 'AFFECTATION';
UPDATE import_tables SET ordre = 10 WHERE table_name = 'CORPS';
UPDATE import_tables SET ordre = 11 WHERE table_name = 'GRADE';
UPDATE import_tables SET ordre = 12 WHERE table_name = 'INTERVENANT';
UPDATE import_tables SET ordre = 13 WHERE table_name = 'AFFECTATION_RECHERCHE';
UPDATE import_tables SET ordre = 14 WHERE table_name = 'ADRESSE_INTERVENANT';
UPDATE import_tables SET ordre = 15 WHERE table_name = 'GROUPE_TYPE_FORMATION';
UPDATE import_tables SET ordre = 16 WHERE table_name = 'TYPE_FORMATION';
UPDATE import_tables SET ordre = 17 WHERE table_name = 'ETAPE';
UPDATE import_tables SET ordre = 18 WHERE table_name = 'ELEMENT_PEDAGOGIQUE';
UPDATE import_tables SET ordre = 19 WHERE table_name = 'EFFECTIFS';
UPDATE import_tables SET ordre = 20 WHERE table_name = 'ELEMENT_TAUX_REGIMES';
UPDATE import_tables SET ordre = 21 WHERE table_name = 'CHEMIN_PEDAGOGIQUE';
UPDATE import_tables SET ordre = 22 WHERE table_name = 'VOLUME_HORAIRE_ENS';
UPDATE import_tables SET ordre = 23 WHERE table_name = 'NOEUD';
UPDATE import_tables SET ordre = 24 WHERE table_name = 'LIEN';
UPDATE import_tables SET ordre = 25 WHERE table_name = 'SCENARIO_LIEN';
UPDATE import_tables SET ordre = 26 WHERE table_name = 'TYPE_INTERVENTION_EP';
UPDATE import_tables SET ordre = 27 WHERE table_name = 'TYPE_MODULATEUR_EP';
UPDATE import_tables SET sync_job = 'synchro' WHERE table_name IN (
'PAYS','DEPARTEMENT','ETABLISSEMENT','STRUCTURE','ADRESSE_STRUCTURE','DOMAINE_FONCTIONNEL','CENTRE_COUT',
'CENTRE_COUT_STRUCTURE','AFFECTATION','CORPS','GRADE','INTERVENANT','AFFECTATION_RECHERCHE',
'ADRESSE_INTERVENANT','GROUPE_TYPE_FORMATION','TYPE_FORMATION','ETAPE','ELEMENT_PEDAGOGIQUE','EFFECTIFS',
'CHEMIN_PEDAGOGIQUE','VOLUME_HORAIRE_ENS','NOEUD','LIEN','SCENARIO_LIEN','TYPE_INTERVENTION_EP',
'TYPE_MODULATEUR_EP');
UPDATE IMPORT_TABLES SET SYNC_HOOK_BEFORE = 'UNICAEN_IMPORT.REFRESH_MV(''MV_AFFECTATION'');
/* Import automatique des users des nouveaux directeurs */
INSERT INTO utilisateur (
id, display_name, email, password, state, username
)
SELECT
utilisateur_id_seq.nextval id,
aff.*
FROM
(SELECT DISTINCT display_name, email, password, state, username FROM mv_affectation) aff
WHERE
username not in (select username from utilisateur);' WHERE table_name = 'AFFECTATION';
UPDATE IMPORT_TABLES SET SYNC_FILTRE = 'WHERE (
IMPORT_ACTION IN (''delete'',''update'',''undelete'')
OR STATUT_ID IN (
SELECT si.id
FROM statut_intervenant si
JOIN type_intervenant ti ON ti.id = si.type_intervenant_id
WHERE ti.code = ''P''
)
)', SYNC_HOOK_BEFORE = 'UNICAEN_IMPORT.REFRESH_MV(''MV_UNICAEN_STRUCTURE_CODES'');
UNICAEN_IMPORT.REFRESH_MV(''MV_INTERVENANT'');' WHERE table_name = 'INTERVENANT';
UPDATE IMPORT_TABLES SET SYNC_FILTRE = 'WHERE INTERVENANT_ID IS NOT NULL' WHERE table_name IN ('AFFECTATION_RECHERCHE','ADRESSE_INTERVENANT');
UPDATE IMPORT_TABLES SET SYNC_FILTRE = 'WHERE IMPORT_ACTION IN (''delete'',''insert'',''undelete'')' WHERE table_name = 'ELEMENT_TAUX_REGIMES';
UPDATE IMPORT_TABLES SET SYNC_HOOK_AFTER = 'UNICAEN_IMPORT.REFRESH_MV(''TBL_NOEUD'');
UNICAEN_TBL.CALCULER(''chargens'');' WHERE table_name = 'NOEUD';
CREATE OR REPLACE FORCE VIEW "V_IMPORT_TAB_COLS" ("TABLE_NAME", "COLUMN_NAME", "DATA_TYPE", "LENGTH", "NULLABLE", "HAS_DEFAULT", "C_TABLE_NAME", "C_COLUMN_NAME", "IMPORT_ACTIF") AS
WITH importable_tables (table_name )AS (
......@@ -150,4 +216,104 @@ INSERT INTO role_privilege (
SELECT p.id FROM privilege p JOIN categorie_privilege cp ON cp.id = p.categorie_id WHERE cp.code || '/' || p.code
= 'import/tables-edition'
)
);
\ No newline at end of file
);
/
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 '' );
END UNICAEN_IMPORT;
/
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 '' ) IS
ok NUMERIC(1);
BEGIN
SELECT COUNT(*) INTO ok FROM import_tables it WHERE it.table_name = SYNCHRONISATION.table_name AND it.sync_enabled = 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;
\ No newline at end of file
......@@ -880,7 +880,7 @@ class ServiceService extends AbstractEntityService
'type-formation-libelle' => $d['TYPE_FORMATION_LIBELLE'],
'etape-niveau' => empty($d['ETAPE_NIVEAU']) ? null : (int)$d['ETAPE_NIVEAU'],
'etape-code' => $d['ETAPE_CODE'],
'etape-etablissement-libelle' => $d['ETAPE_LIBELLE'] ? $d['ETAPE_LIBELLE'] : $d['SERVICE_REF_FORMATION'] ? $d['SERVICE_REF_FORMATION'] : $d['ETABLISSEMENT_LIBELLE'],
'etape-etablissement-libelle' => $d['ETAPE_LIBELLE'] ? $d['ETAPE_LIBELLE'] : ($d['SERVICE_REF_FORMATION'] ? $d['SERVICE_REF_FORMATION'] : $d['ETABLISSEMENT_LIBELLE']),
'element-code' => $d['ELEMENT_CODE'],
'element-fonction-libelle' => $d['ELEMENT_LIBELLE'] ? $d['ELEMENT_LIBELLE'] : $d['FONCTION_REFERENTIEL_LIBELLE'],
'element-discipline-code' => $d['ELEMENT_DISCIPLINE_CODE'],
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment