====== SGBM ====== SGBM - Exports de dossiers personnels ====== Vues créées ====== L’export se base sur plusieurs vues afin de gérer les relations multiples (mails et téléphones). Le préfixe est V_SGBMP_ afin de bien les identifier. La solution retenue dans cette première version est de gérer les relations uniques dans une vue unique. Nous avons donc rassemblé Information générale, Rôles et Identifiants. La jointure entre les vues est assurée par le code barre. ===== Vue principale ===== V_SGBMP_INFO_GENE (CODE_BARRE, NOM, PRENOM, GROUPE, CAMPUS, LANGUE, STATUT, DATE_NAISSANCE, DATE_MODIF, DATE_EXPIRATION, DATE_ELIMINATION, EPPN) Exemple pour l’université de Nîmes : UN17678, QUILLERIE, Brice, Personnel, UN, fr, actif, d_modification, 31/12/2018, 31/12/2021, Lecteur, Actif, perimetre, 31/12/2018, [[mailto:bquiller@unimes.fr|bquiller@unimes.fr]] CREATE OR REPLACE FORCE VIEW "GRHUM"."V_SGBMP_INFOGENE" ("CODE_BARRE", "NOM", "PRENOM", "GROUPE", "CAMPUS", "LANGUE", "STATUT", "DATE_NAISSANCE", "DATE_MODIF", "DATE_EXPIRATION", "DATE_ELIMINATION", "EPPN") AS SELECT 'UN' || pers.NO_DOSSIER_PERS, INITCAP(nom_usuel) nom_usuel, INITCAP(prenom) prenom1, decode(ind.categorie_princ,3,'Personnel',1,'Enseignant'), 'UN','Français','Actif', ind.d_naissance, ind.d_modification, to_date('31/12/'||to_char(sysdate + interval '1' year, 'yyyy'),'dd/mm/yyyy'), to_date('31/12/'||to_char(sysdate + interval '4' year, 'yyyy'),'dd/mm/yyyy'), c.cpt_login || '@unimes.fr' eppn FROM grhum.INDIVIDU_ULR ind, grhum.PERSONNEL_ULR pers, grhum.CORPS c , mangue.element_carriere ec, mangue.carriere car, grhum.INDICE INDICE, grhum.PASSAGE_ECHELON ech, COMPTE c, REPART_COMPTE rc WHERE ind.NO_INDIVIDU = pers.NO_DOSSIER_PERS AND rc.cpt_ordre = c.cpt_ordre AND ind.pers_id = rc.pers_id AND c.cpt_vlan NOT IN ('E') AND pers.NO_DOSSIER_PERS = ec.NO_DOSSIER_PERS AND car.NO_DOSSIER_PERS = ec.NO_DOSSIER_PERS AND ec.c_corps = c.C_CORPS AND car.tem_valide = 'O' AND (( car.D_FIN_CARRIERE IS NULL OR car.d_fin_carriere>= TO_DATE(TO_CHAR(SYSDATE,'dd/mm/YYYY'),'dd/mm/YYYY') ) AND (ec.D_FIN_ELEMENT IS NULL OR ec.d_fin_element >= TO_DATE(TO_CHAR(SYSDATE,'dd/mm/YYYY'),'dd/mm/YYYY')) AND (ec.tem_valide = 'O') ) AND ( ec.D_EFFET_ELEMENT <=TO_DATE(TO_CHAR(SYSDATE,'dd/mm/YYYY'),'dd/mm/YYYY')) AND (ec.c_grade = ech.C_GRADE AND ec.C_ECHELON = ech.C_ECHELON ) AND ech.D_FERMETURE IS NULL AND INDICE.D_FERMETURE IS NULL AND (ech.C_INDICE_BRUT = INDICE.C_INDICE_BRUT ) ; ===== Vue des adresses ===== V_SGBMP_ADRESSE (CODE_BARRE, TYPE, ADR1, ADR2, ADR3, ADR4, ADR5, VILLE, CP, PAYS, DEBUT) Exemple  pour l’université de Nîmes : UN17678workUniversite de Nimes - Site de VaubanRue du Docteur Georges SalanNIMES3002110031/08/09 CREATE OR REPLACE FORCE VIEW "GRHUM"."V_SGBMP_ADRESSE" ("CODE_BARRE", "TYPE", "ADR1", "ADR2", "ADR3", "ADR4", "ADR5", "VILLE", "CP", "PAYS", "DEBUT") AS select 'UN'||ind.NO_INDIVIDU, case RPA.TADR_CODE when 'PRO' then 'work' else 'home' end, A.adr_adresse1,A.adr_adresse2, A.HABITANT_CHEZ , '', A.lieu_dit, A.ville,A.code_postal,A.C_PAYS, A.D_CREATION from INDIVIDU_ULR ind ,REPART_PERSONNE_ADRESSE RPA, ADRESSE A where 'UN'||ind.NO_INDIVIDU in (select code_barre from V_SGBMP_INFOGENE) AND RPA.pers_id = ind.pers_id AND RPA.RPA_PRINCIPAL='O' AND RPA.rpa_valide = 'O' and RPA.adr_ordre = A.adr_ordre; ===== Vue des mèls ===== V_SGBMP_MAIL (CODE_BARRE, TYPE, MAIL, PREF) Exemple  pour l’université de Nîmes : UN17678workbrice.quillerie@unimes.frtrue CREATE OR REPLACE FORCE VIEW "GRHUM"."V_SGBMP_MAIL" ("CODE_BARRE", "TYPE", "MAIL", "PREF") AS select 'UN'||ind.NO_INDIVIDU, case RPA.TADR_CODE when 'PRO' then 'work' when 'PERSO' then 'personal' else 'alternative' end, RPA.E_MAIL, case RPA.RPA_PRINCIPAL when 'O' then 'true' else 'false' end from INDIVIDU_ULR ind ,REPART_PERSONNE_ADRESSE RPA where 'UN'||ind.NO_INDIVIDU in (select code_barre from V_SGBMP_INFOGENE) AND RPA.pers_id = ind.pers_id and RPA.E_MAIL is not null AND RPA.RPA_PRINCIPAL='O' AND RPA.rpa_valide = 'O'; ===== Vue des numéros de téléphone ===== V_SGBMP_TELEPHONE (CODE_BARRE, TYPE, NUMERO, PREF, SMS_PREF) Exemple  pour l’université de Nîmes : UN17678office0466364532truefalse CREATE OR REPLACE FORCE VIEW "GRHUM"."V_SGBMP_TELEPHONE" ("CODE_BARRE", "TYPE", "NUMERO", "PREF", "SMS_PREF") AS SELECT 'UN'||ind.NO_INDIVIDU, case PT.type_no when 'MOB' then 'mobile' when 'FAX' then 'officeFax' else case PT.type_tel when 'PRF' then 'office' else 'home' end end,PT.no_telephone, case PT.TEL_PRINCIPAL when 'O' then 'true' else 'false' end as principal, case when PT.TYPE_NO = 'MOB' and PT.TEL_PRINCIPAL = 'O' then 'true' ELSE 'false' end FROM INDIVIDU_ULR ind , PERSONNE_TELEPHONE PT where 'UN'||ind.NO_INDIVIDU in (select code_barre from V_SGBMP_INFOGENE) AND pt.pers_id = ind.pers_id; ===== Vue des éléments statistiques ===== V_SGBMP_STATISTIQUES (CODE_BARRE, TYPE, CATEGORIE) UN1AutreCENTRE DE RESSOURCES EN INFORMATIQUE CREATE OR REPLACE FORCE VIEW "GRHUM"."V_SGBMP_STATISTIQUES" ("CODE_BARRE", "TYPE", "CATEGORIE") AS SELECT 'UN'||ind.NO_INDIVIDU, TS.L_TYPE_STRUCTURE, S.LL_STRUCTURE FROM INDIVIDU_ULR ind , REPART_ASSOCIATION RA, STRUCTURE_ULR S, TYPE_STRUCTURE TS where 'UN'||ind.NO_INDIVIDU in (select code_barre from V_SGBMP_INFOGENE) AND RA.pers_id = ind.pers_id AND RA.C_STRUCTURE = S.C_STRUCTURE AND ( RA.RAS_D_FERMETURE is null or RA.RAS_D_FERMETURE > sysdate) AND RA.RAS_D_OUVERTURE < sysdate AND TS.C_TYPE_STRUCTURE = S.C_TYPE_STRUCTURE ====== Tâche talend ====== Le livrable {{ :wiki:divers:sigb:sgbm_export_1.6.zip |sgbm_export_1.6.zip}} peut être décompressé sur une machine linux ou windows. La machine doit avoir accès à la base de données et au serveur de la biu en ssh. {{ :wiki:divers:sgbm_export_0.8.png?direct&400 |}} ===== Fichier de configuration ===== Une fois décompressé et avant de l’exécuter, il nous faut créer le fichier properties de paramétrage. Pour l’université de Nîmes, le fichier contient les lignes suivantes : oracle_server=casimir.unimes.fr oracle_port=1521 oracle_schema=grhum oracle_login=sap_bo oracle_password=xxx oracle_sid=gest sigb_user_group=31 sigb_user_group_desc=Personnel UNÎMES sigb_files_dir=C:/Talend/Fichiers/ sigb_file_name=UnimesImport sigb_biu_dir=/home/unimes/Import/ sigb_biu_host=tabim.biu-montpellier.fr sigb_biu_port=22 sigb_biu_username=unimes sigb_biu_password=xxx sigb_biu_cle_publique=C:/Talend/Fichiers/id_rsa_gromit ===== Exécution ===== Pour l’exécution, il va falloir passer en paramètre le chemin complet du fichier de configuration : sh sgbm_export/sgbm_export_run.sh --context_param sigb_param_file=/data/sigb/default.properties ====== Evolutions ====== Talend pour faire du XML, ce n'est pas le top : il ne gère pas les boucles multiples et encore moins les boucles imbriquées ... la tâche résultante est donc peu lisible, contenant du java et largement optimisable. Les catégories de statistiques doivent être listées (cf https://developers.exlibrisgroup.com/alma/apis/xsd/rest_user.xsd?tags=GET#user_statistic) ; sans catégorie, "OFC" s'applique (choix arbitraire). Les logs ne sont pas parlant et la doc est un peu légère… Vous pouvez télécharger {{ :wiki:divers:sgbm_export.zip |l'export du job}} pour le consulter, l'adapter ...