wiki:divers:sigb

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
wiki:divers:sigb [2018/03/07 17:52] – [Evolutions] bquillerwiki:divers:sigb [2018/04/03 12:24] bquiller
Ligne 1: Ligne 1:
 +====== 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]]
 +<code sql>
 +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 )
 +;
 +</code>
 +===== 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
 +<code sql>
 +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;
 +</code>
 +===== Vue des mèls =====
 +
 +V_SGBMP_MAIL (CODE_BARRE, TYPE, MAIL, PREF)
 +
 +Exemple  pour l’université de Nîmes :
 +
 +UN17678workbrice.quillerie@unimes.frtrue
 +<code sql>
 +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';
 +</code>
 +
 +===== 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
 +<code sql>
 +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;
 +</code>
 +
 +
 +===== Vue des éléments statistiques =====
 +
 +V_SGBMP_STATISTIQUES (CODE_BARRE, TYPE, CATEGORIE) 
 +
 +UN1AutreCENTRE DE RESSOURCES EN INFORMATIQUE
 +<code sql>
 +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 
 +</code>
 +====== 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 :
 +<code>
 +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
 +</code>
 +===== Exécution =====
 +
 +Pour l’exécution, il va falloir passer en paramètre le chemin complet du fichier de configuration :
 +<code>
 +sh sgbm_export/sgbm_export_run.sh --context_param sigb_param_file=/data/sigb/default.properties
 +</code>
 +====== 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 ... 
 +
 +
  
  • wiki/divers/sigb.txt
  • Dernière modification : 2018/06/25 10:55
  • de 127.0.0.1