Loading CHANGELOG.md +4 −0 Original line number Diff line number Diff line Journal des modifications ========================= 2.1.0 ----- - Correction mineure de vues (Oracle ou Physalis). 2.0.0 ----- - Ajout d'une V2 à l'API pour permettre l'import avec unicaen/db-import par ESUP-SyGAL ; la V1 demeure. Loading dist/SQL/apogee/01-vues-apogee-communes.sql +5 −5 Original line number Diff line number Diff line Loading @@ -337,7 +337,7 @@ select 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- etb.lib_etb as libelle, -- Libelle nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb Loading Loading @@ -367,7 +367,7 @@ select 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- etb.lib_etb as libelle, -- Libelle nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb Loading @@ -382,7 +382,7 @@ select 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- etb.lib_etb as libelle, -- Libelle nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb Loading @@ -397,7 +397,7 @@ select 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- etb.lib_etb as libelle, -- Libelle nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb Loading @@ -415,7 +415,7 @@ select 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- etb.lib_etb as libelle, -- Libelle nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb Loading dist/SQL/physalis/01-vues-physalis-communes.sql +7 −7 Original line number Diff line number Diff line Loading @@ -381,8 +381,8 @@ where extract (YEAR from a.AVT_DATE_DEB_EXEC) >= 2016 CREATE VIEW "API_SCOLARITE"."V_SYGAL_INDIVIDU_V2" ("ID", "SOURCE_CODE", "TYPE", "SOURCE_ID", "CIV", "LIB_NOM_PAT_IND", "LIB_NOM_USU_IND", "LIB_PR1_IND", "LIB_PR2_IND", "LIB_PR3_IND", "EMAIL", "DATE_NAI_IND", "LIB_NAT", "COD_PAY_NAT", "SUPANN_ID") AS SELECT distinct( i.pers_id) AS ID, distinct( i.pers_id) AS SOURCE_CODE, distinct( i.pers_id) as ID, i.pers_id as SOURCE_CODE, 'doctorant' as TYPE, 'physalis' as SOURCE_ID, Loading Loading @@ -414,8 +414,8 @@ FROM RECHERCHE.DOCTORANT D union --membre d'un jury SELECT distinct( i.pers_id) AS ID, distinct( i.pers_id) AS SOURCE_CODE, distinct( i.pers_id) as ID, i.pers_id as SOURCE_CODE, 'acteur' as TYPE, 'physalis' as SOURCE_ID, Loading Loading @@ -469,8 +469,8 @@ union --directeur de these SELECT distinct( i.pers_id) AS ID, distinct( i.pers_id) AS SOURCE_CODE, distinct( i.pers_id) as ID, i.pers_id as SOURCE_CODE, 'acteur' as TYPE, 'physalis' as SOURCE_ID, Loading Loading @@ -523,7 +523,7 @@ WHERE-- T.ID_THESE = 13 -- a modifier --extract(year from d.DATE_INSC_DOCTORAT_ETAB) >= 2016 and ASS_ID_PERE = (select ass_id from GRHUM.ASSOCIATION where ass_code = 'D_DIR') AND ASS_CODE != 'D_JR_INV' / ; Loading doc/release-notes/v2.1.0.md 0 → 100644 +294 −0 Original line number Diff line number Diff line Version 2.1.0 ============= Base de données --------------- ### Apogée ```sql create or replace view V_SYGAL_STRUCTURE_V2 as select edo.cod_nat_edo as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'ecole-doctorale' as TYPE_STRUCTURE_ID, -- Type de structure edo.cod_nat_edo as id, -- Id unique : Identifiant national edo.lic_edo as sigle, -- Libellé court edo.lib_edo as libelle, -- Denomination null as code_pays, -- null as libelle_pays -- from ecole_doctorale edo union -- UR select eqr.cod_eqr as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'unite-recherche' as TYPE_STRUCTURE_ID, -- Type de structure eqr.cod_eqr as id, -- Id unique eqr.lic_eqr as sigle, -- Libellé court eqr.lib_eqr as libelle, -- Denomination null as code_pays, -- null as libelle_pays -- from equipe_rch eqr union -- Etablissements de cotutelle select etb.cod_etb as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb join these_hdr_sout ths on ths.cod_etb = etb.cod_etb and -- établissements de cotutelle ths.cod_ths_trv = '1' -- travaux exclus left join pays pay on pay.cod_pay = etb.cod_pay_adr_etb union -- Etablissements des directeurs de theses select etb.cod_etb as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- etb.lib_etb as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb join these_hdr_sout ths on ths.cod_etb_dir = etb.cod_etb and -- établissements des directeurs de theses ths.cod_ths_trv = '1' -- travaux exclus left join pays pay on pay.cod_pay = etb.cod_pay_adr_etb union -- Etablissements des co-directeurs de theses select etb.cod_etb as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb join these_hdr_sout ths on ths.cod_etb_cdr = etb.cod_etb and -- établissements des co-directeurs de theses ths.cod_ths_trv = '1' -- travaux exclus left join pays pay on pay.cod_pay = etb.cod_pay_adr_etb union -- Etablissements des seconds co-directeurs de theses select etb.cod_etb as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb join these_hdr_sout ths on ths.cod_etb_cdr2 = etb.cod_etb and -- établissements des seconds co-directeurs de theses ths.cod_ths_trv = '1' -- travaux exclus left join pays pay on pay.cod_pay = etb.cod_pay_adr_etb union -- Etablissements des rapporteurs select etb.cod_etb as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb join personnel per on per.cod_etb = etb.cod_etb -- établissements des rapporteurs join ths_rap_sou trs on trs.cod_per = per.cod_per join these_hdr_sout ths on ths.cod_ths = trs.cod_ths and ths.cod_ths_trv = '1' -- travaux exclus left join pays pay on pay.cod_pay = etb.cod_pay_adr_etb where per.tem_ext_int_per = 'X' -- personnels exterieurs uniquement union -- Etablissements des membres du jury select etb.cod_etb as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb join personnel per on per.cod_etb = etb.cod_etb -- établissements des membres du jury join ths_jur_per tjp on tjp.cod_per = per.cod_per join these_hdr_sout ths on ths.cod_ths = tjp.cod_ths and ths.cod_ths_trv = '1' -- travaux exclus left join pays pay on pay.cod_pay = etb.cod_pay_adr_etb where per.tem_ext_int_per = 'X' / ``` ### Physalis ```sql CREATE or replace VIEW "API_SCOLARITE"."V_SYGAL_INDIVIDU_V2" ("ID", "SOURCE_CODE", "TYPE", "SOURCE_ID", "CIV", "LIB_NOM_PAT_IND", "LIB_NOM_USU_IND", "LIB_PR1_IND", "LIB_PR2_IND", "LIB_PR3_IND", "EMAIL", "DATE_NAI_IND", "LIB_NAT", "COD_PAY_NAT", "SUPANN_ID") AS SELECT distinct( i.pers_id) as ID, i.pers_id as SOURCE_CODE, 'doctorant' as TYPE, 'physalis' as SOURCE_ID, case I.c_civilite WHEN 'MLLE' THEN 'MME.' ELSE I.c_civilite end as CIV, upper(I.NOM_PATRONYMIQUE) AS LIB_NOM_PAT_IND, upper(I.NOM_USUEL) as LIB_NOM_USU_IND, upper( initcap(nvl(I.PRENOM_AFFICHAGE, I.PRENOM))) as LIB_PR1_IND, upper(garnuche.decouper_chaine_multi_seps(I.PRENOM2, ' ', 1)) as LIB_PR2_IND, upper(garnuche.decouper_chaine_multi_seps(I.PRENOM2, ' ', 2)) as LIB_PR3_IND, CASE WHEN cpt.CPT_EMAIL is null THEN ' ' ELSE cpt.CPT_EMAIL ||'@' || cpt.CPT_DOMAINE end as EMAIL, I.D_NAISSANCE AS DATE_NAI_IND, p.L_NATIONALITE AS LIB_NAT, I.C_PAYS_NATIONALITE AS COD_PAY_NAT, i.pers_id as SUPANN_ID FROM RECHERCHE.DOCTORANT D LEFT OUTER JOIN RECHERCHE.DOCTORANT_THESE T ON D.ID_DOCTORANT = T.ID_DOCTORANT INNER JOIN GRHUM.INDIVIDU_ULR I ON I.NO_INDIVIDU = D.NO_INDIVIDU left outer JOIN GRHUM.COMPTE CPT on I.PERS_ID = CPT.PERS_ID and cpt.cpt_email is not null and cpt_ordre <> 60891 and cpt_ordre <> 58888 left outer join grhum.pays p on I.C_PAYS_NATIONALITE =p.C_PAYS --where extract(year from d.DATE_INSC_DOCTORAT_ETAB) >= 2016 union --membre d'un jury SELECT distinct( i.pers_id) as ID, i.pers_id as SOURCE_CODE, 'acteur' as TYPE, 'physalis' as SOURCE_ID, case I.c_civilite WHEN 'MLLE' THEN 'MME.' ELSE I.c_civilite end as CIV, case when I.NOM_PATRONYMIQUE is null THEN I.NOM_USUEL ELSE upper(I.NOM_PATRONYMIQUE) end as LIB_NOM_PAT_IND, upper(I.NOM_USUEL) as LIB_NOM_USU_IND, upper( initcap(nvl(I.PRENOM_AFFICHAGE, I.PRENOM))) as PRENOM1, upper(garnuche.decouper_chaine_multi_seps(I.PRENOM2, ' ', 1)) as PRENOM2, upper(garnuche.decouper_chaine_multi_seps(I.PRENOM2, ' ', 2)) as PRENOM3, CASE WHEN cpt.CPT_EMAIL is null THEN ' ' ELSE cpt.CPT_EMAIL ||'@' || cpt.CPT_DOMAINE end as EMAIL, I.D_NAISSANCE AS DATE_NAI_IND, p.L_NATIONALITE AS LIB_NAT, I.C_PAYS_NATIONALITE AS COD_PAY_NAT, i.pers_id as SUPANN_ID --lower(nvl(CORPS.LIBELLE_EDITION, CORPS.LL_CORPS)) as LIBELLE_CORPS, --case -- when CORPS.LL_CORPS is null THEN upper( MJT.TITRE_SPECIAL) -- when MJT.TITRE_SPECIAL is null then upper(corps.LL_CORPS) --end as titre, --ASS_CODE FROM RECHERCHE.DOCTORANT D LEFT OUTER JOIN RECHERCHE.DOCTORANT_THESE T ON D.ID_DOCTORANT = T.ID_DOCTORANT INNER JOIN RECHERCHE.MEMBRE_JURY_THESE MJT ON MJT.ID_THESE = T.ID_THESE LEFT OUTER JOIN grhum.CORPS ON CORPS.C_CORPS = MJT.C_CORPS LEFT OUTER JOIN grhum.RNE ON RNE.C_RNE = MJT.C_RNE INNER JOIN ACCORDS.CONTRAT_PARTENAIRE CP ON CP.CP_ORDRE = MJT.CP_ORDRE INNER JOIN ACCORDS.CONTRAT C ON CP.CON_ORDRE = C.CON_ORDRE INNER JOIN GRHUM.INDIVIDU_ULR I ON I.PERS_ID = CP.PERS_ID left outer JOIN GRHUM.COMPTE CPT on I.PERS_ID = CPT.PERS_ID and cpt.cpt_email is not null INNER JOIN GRHUM.REPART_ASSOCIATION RA ON RA.PERS_ID = CP.PERS_ID AND RA.C_STRUCTURE = C.CON_GROUPE_PARTENAIRE INNER JOIN GRHUM.ASSOCIATION A ON A.ASS_ID = RA.ASS_ID INNER JOIN GRHUM.ASSOCIATION_RESEAU AR ON A.ASS_ID = AR.ASS_ID_FILS left outer join grhum.pays p on I.C_PAYS_NATIONALITE =p.C_PAYS WHERE-- T.ID_THESE = 13 -- a modifier -- membre du jury sauf invité -- extract(year from d.DATE_INSC_DOCTORAT_ETAB) >= 2016 and ASS_ID_PERE = (select ass_id from GRHUM.ASSOCIATION where ass_code = 'D_TYPE_JURY') AND ASS_CODE != 'D_JR_INV' --AND to_char(T.DATE_SOUTENANCE ,'YYYY')='2016' union --directeur de these SELECT distinct( i.pers_id) as ID, i.pers_id as SOURCE_CODE, 'acteur' as TYPE, 'physalis' as SOURCE_ID, case I.c_civilite WHEN 'MLLE' THEN 'MME.' ELSE I.c_civilite end as CIV, case when I.NOM_PATRONYMIQUE is null THEN I.NOM_USUEL ELSE upper(I.NOM_PATRONYMIQUE) end as LIB_NOM_PAT_IND, upper(I.NOM_USUEL) as LIB_NOM_USU_IND, upper( initcap(nvl(I.PRENOM_AFFICHAGE, I.PRENOM))) as PRENOM1, upper(garnuche.decouper_chaine_multi_seps(I.PRENOM2, ' ', 1)) as PRENOM2, upper(garnuche.decouper_chaine_multi_seps(I.PRENOM2, ' ', 2)) as PRENOM3, CASE WHEN cpt.CPT_EMAIL is null THEN ' ' ELSE cpt.CPT_EMAIL ||'@' || cpt.CPT_DOMAINE end as EMAIL, I.D_NAISSANCE AS DATE_NAI_IND, p.L_NATIONALITE AS LIB_NAT, I.C_PAYS_NATIONALITE AS COD_PAY_NAT, i.pers_id as SUPANN_ID --lower(nvl(CORPS.LIBELLE_EDITION, CORPS.LL_CORPS)) as LIBELLE_CORPS, --case -- when CORPS.LL_CORPS is null THEN upper( MJT.TITRE_SPECIAL) -- when MJT.TITRE_SPECIAL is null then upper(corps.LL_CORPS) --end as titre, --ASS_CODE FROM RECHERCHE.DOCTORANT D LEFT OUTER JOIN RECHERCHE.DOCTORANT_THESE T ON D.ID_DOCTORANT = T.ID_DOCTORANT INNER JOIN RECHERCHE.DIRECTEUR_THESE MJT ON MJT.ID_THESE = T.ID_THESE LEFT OUTER JOIN grhum.RNE ON RNE.C_RNE = MJT.C_RNE INNER JOIN ACCORDS.CONTRAT_PARTENAIRE CP ON CP.CP_ORDRE = MJT.CP_ORDRE INNER JOIN ACCORDS.CONTRAT C ON CP.CON_ORDRE = C.CON_ORDRE INNER JOIN GRHUM.INDIVIDU_ULR I ON I.PERS_ID = CP.PERS_ID left outer JOIN GRHUM.COMPTE CPT on I.PERS_ID = CPT.PERS_ID INNER JOIN GRHUM.REPART_ASSOCIATION RA ON RA.PERS_ID = CP.PERS_ID AND RA.C_STRUCTURE = C.CON_GROUPE_PARTENAIRE INNER JOIN GRHUM.ASSOCIATION A ON A.ASS_ID = RA.ASS_ID INNER JOIN GRHUM.ASSOCIATION_RESEAU AR ON A.ASS_ID = AR.ASS_ID_FILS left outer join grhum.pays p on I.C_PAYS_NATIONALITE =p.C_PAYS left outer join API_SCOLARITE.SYGAL_ROLE_TMP ro on ro.ID = a.ass_id left outer join recherche.membre_jury_these mem on MJT.cp_ordre = mem.cp_ordre LEFT OUTER JOIN grhum.CORPS ON CORPS.C_CORPS = mem.C_CORPS --left outer join WHERE-- T.ID_THESE = 13 -- a modifier -- membre du jury sauf invité --extract(year from d.DATE_INSC_DOCTORAT_ETAB) >= 2016 and ASS_ID_PERE = (select ass_id from GRHUM.ASSOCIATION where ass_code = 'D_DIR') AND ASS_CODE != 'D_JR_INV' ; ``` Sources PHP ----------- Sur le serveur, placez-vous dans le répertoire du web service (sans doute `/var/www/sygal-import-ws`) puis lancez les commandes suivantes pour installer la nouvelle version : ```bash git fetch && git fetch --tags && git checkout --force 2.1.0 && bash install.sh ``` Selon le moteur PHP que vous avez installé, rechargez le service, exemple : - php7.0-fpm : `service php7.0-fpm reload` - apache2-mod-php7.0 : `service apache2 reload` Loading
CHANGELOG.md +4 −0 Original line number Diff line number Diff line Journal des modifications ========================= 2.1.0 ----- - Correction mineure de vues (Oracle ou Physalis). 2.0.0 ----- - Ajout d'une V2 à l'API pour permettre l'import avec unicaen/db-import par ESUP-SyGAL ; la V1 demeure. Loading
dist/SQL/apogee/01-vues-apogee-communes.sql +5 −5 Original line number Diff line number Diff line Loading @@ -337,7 +337,7 @@ select 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- etb.lib_etb as libelle, -- Libelle nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb Loading Loading @@ -367,7 +367,7 @@ select 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- etb.lib_etb as libelle, -- Libelle nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb Loading @@ -382,7 +382,7 @@ select 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- etb.lib_etb as libelle, -- Libelle nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb Loading @@ -397,7 +397,7 @@ select 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- etb.lib_etb as libelle, -- Libelle nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb Loading @@ -415,7 +415,7 @@ select 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- etb.lib_etb as libelle, -- Libelle nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb Loading
dist/SQL/physalis/01-vues-physalis-communes.sql +7 −7 Original line number Diff line number Diff line Loading @@ -381,8 +381,8 @@ where extract (YEAR from a.AVT_DATE_DEB_EXEC) >= 2016 CREATE VIEW "API_SCOLARITE"."V_SYGAL_INDIVIDU_V2" ("ID", "SOURCE_CODE", "TYPE", "SOURCE_ID", "CIV", "LIB_NOM_PAT_IND", "LIB_NOM_USU_IND", "LIB_PR1_IND", "LIB_PR2_IND", "LIB_PR3_IND", "EMAIL", "DATE_NAI_IND", "LIB_NAT", "COD_PAY_NAT", "SUPANN_ID") AS SELECT distinct( i.pers_id) AS ID, distinct( i.pers_id) AS SOURCE_CODE, distinct( i.pers_id) as ID, i.pers_id as SOURCE_CODE, 'doctorant' as TYPE, 'physalis' as SOURCE_ID, Loading Loading @@ -414,8 +414,8 @@ FROM RECHERCHE.DOCTORANT D union --membre d'un jury SELECT distinct( i.pers_id) AS ID, distinct( i.pers_id) AS SOURCE_CODE, distinct( i.pers_id) as ID, i.pers_id as SOURCE_CODE, 'acteur' as TYPE, 'physalis' as SOURCE_ID, Loading Loading @@ -469,8 +469,8 @@ union --directeur de these SELECT distinct( i.pers_id) AS ID, distinct( i.pers_id) AS SOURCE_CODE, distinct( i.pers_id) as ID, i.pers_id as SOURCE_CODE, 'acteur' as TYPE, 'physalis' as SOURCE_ID, Loading Loading @@ -523,7 +523,7 @@ WHERE-- T.ID_THESE = 13 -- a modifier --extract(year from d.DATE_INSC_DOCTORAT_ETAB) >= 2016 and ASS_ID_PERE = (select ass_id from GRHUM.ASSOCIATION where ass_code = 'D_DIR') AND ASS_CODE != 'D_JR_INV' / ; Loading
doc/release-notes/v2.1.0.md 0 → 100644 +294 −0 Original line number Diff line number Diff line Version 2.1.0 ============= Base de données --------------- ### Apogée ```sql create or replace view V_SYGAL_STRUCTURE_V2 as select edo.cod_nat_edo as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'ecole-doctorale' as TYPE_STRUCTURE_ID, -- Type de structure edo.cod_nat_edo as id, -- Id unique : Identifiant national edo.lic_edo as sigle, -- Libellé court edo.lib_edo as libelle, -- Denomination null as code_pays, -- null as libelle_pays -- from ecole_doctorale edo union -- UR select eqr.cod_eqr as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'unite-recherche' as TYPE_STRUCTURE_ID, -- Type de structure eqr.cod_eqr as id, -- Id unique eqr.lic_eqr as sigle, -- Libellé court eqr.lib_eqr as libelle, -- Denomination null as code_pays, -- null as libelle_pays -- from equipe_rch eqr union -- Etablissements de cotutelle select etb.cod_etb as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb join these_hdr_sout ths on ths.cod_etb = etb.cod_etb and -- établissements de cotutelle ths.cod_ths_trv = '1' -- travaux exclus left join pays pay on pay.cod_pay = etb.cod_pay_adr_etb union -- Etablissements des directeurs de theses select etb.cod_etb as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- etb.lib_etb as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb join these_hdr_sout ths on ths.cod_etb_dir = etb.cod_etb and -- établissements des directeurs de theses ths.cod_ths_trv = '1' -- travaux exclus left join pays pay on pay.cod_pay = etb.cod_pay_adr_etb union -- Etablissements des co-directeurs de theses select etb.cod_etb as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb join these_hdr_sout ths on ths.cod_etb_cdr = etb.cod_etb and -- établissements des co-directeurs de theses ths.cod_ths_trv = '1' -- travaux exclus left join pays pay on pay.cod_pay = etb.cod_pay_adr_etb union -- Etablissements des seconds co-directeurs de theses select etb.cod_etb as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb join these_hdr_sout ths on ths.cod_etb_cdr2 = etb.cod_etb and -- établissements des seconds co-directeurs de theses ths.cod_ths_trv = '1' -- travaux exclus left join pays pay on pay.cod_pay = etb.cod_pay_adr_etb union -- Etablissements des rapporteurs select etb.cod_etb as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb join personnel per on per.cod_etb = etb.cod_etb -- établissements des rapporteurs join ths_rap_sou trs on trs.cod_per = per.cod_per join these_hdr_sout ths on ths.cod_ths = trs.cod_ths and ths.cod_ths_trv = '1' -- travaux exclus left join pays pay on pay.cod_pay = etb.cod_pay_adr_etb where per.tem_ext_int_per = 'X' -- personnels exterieurs uniquement union -- Etablissements des membres du jury select etb.cod_etb as source_code, --id unique 'apogee' as source_id, -- identifiant unique de la source 'etablissement' as TYPE_STRUCTURE_ID, -- Type de structure etb.cod_etb as id, -- Id unique null as sigle, -- nvl(etb.lib_web_etb, etb.lib_etb) as libelle, -- Libelle pay.cod_pay as code_pays, -- Code pays pay.lib_pay as libelle_pays -- Libelle pays from etablissement etb join personnel per on per.cod_etb = etb.cod_etb -- établissements des membres du jury join ths_jur_per tjp on tjp.cod_per = per.cod_per join these_hdr_sout ths on ths.cod_ths = tjp.cod_ths and ths.cod_ths_trv = '1' -- travaux exclus left join pays pay on pay.cod_pay = etb.cod_pay_adr_etb where per.tem_ext_int_per = 'X' / ``` ### Physalis ```sql CREATE or replace VIEW "API_SCOLARITE"."V_SYGAL_INDIVIDU_V2" ("ID", "SOURCE_CODE", "TYPE", "SOURCE_ID", "CIV", "LIB_NOM_PAT_IND", "LIB_NOM_USU_IND", "LIB_PR1_IND", "LIB_PR2_IND", "LIB_PR3_IND", "EMAIL", "DATE_NAI_IND", "LIB_NAT", "COD_PAY_NAT", "SUPANN_ID") AS SELECT distinct( i.pers_id) as ID, i.pers_id as SOURCE_CODE, 'doctorant' as TYPE, 'physalis' as SOURCE_ID, case I.c_civilite WHEN 'MLLE' THEN 'MME.' ELSE I.c_civilite end as CIV, upper(I.NOM_PATRONYMIQUE) AS LIB_NOM_PAT_IND, upper(I.NOM_USUEL) as LIB_NOM_USU_IND, upper( initcap(nvl(I.PRENOM_AFFICHAGE, I.PRENOM))) as LIB_PR1_IND, upper(garnuche.decouper_chaine_multi_seps(I.PRENOM2, ' ', 1)) as LIB_PR2_IND, upper(garnuche.decouper_chaine_multi_seps(I.PRENOM2, ' ', 2)) as LIB_PR3_IND, CASE WHEN cpt.CPT_EMAIL is null THEN ' ' ELSE cpt.CPT_EMAIL ||'@' || cpt.CPT_DOMAINE end as EMAIL, I.D_NAISSANCE AS DATE_NAI_IND, p.L_NATIONALITE AS LIB_NAT, I.C_PAYS_NATIONALITE AS COD_PAY_NAT, i.pers_id as SUPANN_ID FROM RECHERCHE.DOCTORANT D LEFT OUTER JOIN RECHERCHE.DOCTORANT_THESE T ON D.ID_DOCTORANT = T.ID_DOCTORANT INNER JOIN GRHUM.INDIVIDU_ULR I ON I.NO_INDIVIDU = D.NO_INDIVIDU left outer JOIN GRHUM.COMPTE CPT on I.PERS_ID = CPT.PERS_ID and cpt.cpt_email is not null and cpt_ordre <> 60891 and cpt_ordre <> 58888 left outer join grhum.pays p on I.C_PAYS_NATIONALITE =p.C_PAYS --where extract(year from d.DATE_INSC_DOCTORAT_ETAB) >= 2016 union --membre d'un jury SELECT distinct( i.pers_id) as ID, i.pers_id as SOURCE_CODE, 'acteur' as TYPE, 'physalis' as SOURCE_ID, case I.c_civilite WHEN 'MLLE' THEN 'MME.' ELSE I.c_civilite end as CIV, case when I.NOM_PATRONYMIQUE is null THEN I.NOM_USUEL ELSE upper(I.NOM_PATRONYMIQUE) end as LIB_NOM_PAT_IND, upper(I.NOM_USUEL) as LIB_NOM_USU_IND, upper( initcap(nvl(I.PRENOM_AFFICHAGE, I.PRENOM))) as PRENOM1, upper(garnuche.decouper_chaine_multi_seps(I.PRENOM2, ' ', 1)) as PRENOM2, upper(garnuche.decouper_chaine_multi_seps(I.PRENOM2, ' ', 2)) as PRENOM3, CASE WHEN cpt.CPT_EMAIL is null THEN ' ' ELSE cpt.CPT_EMAIL ||'@' || cpt.CPT_DOMAINE end as EMAIL, I.D_NAISSANCE AS DATE_NAI_IND, p.L_NATIONALITE AS LIB_NAT, I.C_PAYS_NATIONALITE AS COD_PAY_NAT, i.pers_id as SUPANN_ID --lower(nvl(CORPS.LIBELLE_EDITION, CORPS.LL_CORPS)) as LIBELLE_CORPS, --case -- when CORPS.LL_CORPS is null THEN upper( MJT.TITRE_SPECIAL) -- when MJT.TITRE_SPECIAL is null then upper(corps.LL_CORPS) --end as titre, --ASS_CODE FROM RECHERCHE.DOCTORANT D LEFT OUTER JOIN RECHERCHE.DOCTORANT_THESE T ON D.ID_DOCTORANT = T.ID_DOCTORANT INNER JOIN RECHERCHE.MEMBRE_JURY_THESE MJT ON MJT.ID_THESE = T.ID_THESE LEFT OUTER JOIN grhum.CORPS ON CORPS.C_CORPS = MJT.C_CORPS LEFT OUTER JOIN grhum.RNE ON RNE.C_RNE = MJT.C_RNE INNER JOIN ACCORDS.CONTRAT_PARTENAIRE CP ON CP.CP_ORDRE = MJT.CP_ORDRE INNER JOIN ACCORDS.CONTRAT C ON CP.CON_ORDRE = C.CON_ORDRE INNER JOIN GRHUM.INDIVIDU_ULR I ON I.PERS_ID = CP.PERS_ID left outer JOIN GRHUM.COMPTE CPT on I.PERS_ID = CPT.PERS_ID and cpt.cpt_email is not null INNER JOIN GRHUM.REPART_ASSOCIATION RA ON RA.PERS_ID = CP.PERS_ID AND RA.C_STRUCTURE = C.CON_GROUPE_PARTENAIRE INNER JOIN GRHUM.ASSOCIATION A ON A.ASS_ID = RA.ASS_ID INNER JOIN GRHUM.ASSOCIATION_RESEAU AR ON A.ASS_ID = AR.ASS_ID_FILS left outer join grhum.pays p on I.C_PAYS_NATIONALITE =p.C_PAYS WHERE-- T.ID_THESE = 13 -- a modifier -- membre du jury sauf invité -- extract(year from d.DATE_INSC_DOCTORAT_ETAB) >= 2016 and ASS_ID_PERE = (select ass_id from GRHUM.ASSOCIATION where ass_code = 'D_TYPE_JURY') AND ASS_CODE != 'D_JR_INV' --AND to_char(T.DATE_SOUTENANCE ,'YYYY')='2016' union --directeur de these SELECT distinct( i.pers_id) as ID, i.pers_id as SOURCE_CODE, 'acteur' as TYPE, 'physalis' as SOURCE_ID, case I.c_civilite WHEN 'MLLE' THEN 'MME.' ELSE I.c_civilite end as CIV, case when I.NOM_PATRONYMIQUE is null THEN I.NOM_USUEL ELSE upper(I.NOM_PATRONYMIQUE) end as LIB_NOM_PAT_IND, upper(I.NOM_USUEL) as LIB_NOM_USU_IND, upper( initcap(nvl(I.PRENOM_AFFICHAGE, I.PRENOM))) as PRENOM1, upper(garnuche.decouper_chaine_multi_seps(I.PRENOM2, ' ', 1)) as PRENOM2, upper(garnuche.decouper_chaine_multi_seps(I.PRENOM2, ' ', 2)) as PRENOM3, CASE WHEN cpt.CPT_EMAIL is null THEN ' ' ELSE cpt.CPT_EMAIL ||'@' || cpt.CPT_DOMAINE end as EMAIL, I.D_NAISSANCE AS DATE_NAI_IND, p.L_NATIONALITE AS LIB_NAT, I.C_PAYS_NATIONALITE AS COD_PAY_NAT, i.pers_id as SUPANN_ID --lower(nvl(CORPS.LIBELLE_EDITION, CORPS.LL_CORPS)) as LIBELLE_CORPS, --case -- when CORPS.LL_CORPS is null THEN upper( MJT.TITRE_SPECIAL) -- when MJT.TITRE_SPECIAL is null then upper(corps.LL_CORPS) --end as titre, --ASS_CODE FROM RECHERCHE.DOCTORANT D LEFT OUTER JOIN RECHERCHE.DOCTORANT_THESE T ON D.ID_DOCTORANT = T.ID_DOCTORANT INNER JOIN RECHERCHE.DIRECTEUR_THESE MJT ON MJT.ID_THESE = T.ID_THESE LEFT OUTER JOIN grhum.RNE ON RNE.C_RNE = MJT.C_RNE INNER JOIN ACCORDS.CONTRAT_PARTENAIRE CP ON CP.CP_ORDRE = MJT.CP_ORDRE INNER JOIN ACCORDS.CONTRAT C ON CP.CON_ORDRE = C.CON_ORDRE INNER JOIN GRHUM.INDIVIDU_ULR I ON I.PERS_ID = CP.PERS_ID left outer JOIN GRHUM.COMPTE CPT on I.PERS_ID = CPT.PERS_ID INNER JOIN GRHUM.REPART_ASSOCIATION RA ON RA.PERS_ID = CP.PERS_ID AND RA.C_STRUCTURE = C.CON_GROUPE_PARTENAIRE INNER JOIN GRHUM.ASSOCIATION A ON A.ASS_ID = RA.ASS_ID INNER JOIN GRHUM.ASSOCIATION_RESEAU AR ON A.ASS_ID = AR.ASS_ID_FILS left outer join grhum.pays p on I.C_PAYS_NATIONALITE =p.C_PAYS left outer join API_SCOLARITE.SYGAL_ROLE_TMP ro on ro.ID = a.ass_id left outer join recherche.membre_jury_these mem on MJT.cp_ordre = mem.cp_ordre LEFT OUTER JOIN grhum.CORPS ON CORPS.C_CORPS = mem.C_CORPS --left outer join WHERE-- T.ID_THESE = 13 -- a modifier -- membre du jury sauf invité --extract(year from d.DATE_INSC_DOCTORAT_ETAB) >= 2016 and ASS_ID_PERE = (select ass_id from GRHUM.ASSOCIATION where ass_code = 'D_DIR') AND ASS_CODE != 'D_JR_INV' ; ``` Sources PHP ----------- Sur le serveur, placez-vous dans le répertoire du web service (sans doute `/var/www/sygal-import-ws`) puis lancez les commandes suivantes pour installer la nouvelle version : ```bash git fetch && git fetch --tags && git checkout --force 2.1.0 && bash install.sh ``` Selon le moteur PHP que vous avez installé, rechargez le service, exemple : - php7.0-fpm : `service php7.0-fpm reload` - apache2-mod-php7.0 : `service apache2 reload`