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, 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 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.

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 l'export du job pour le consulter, l'adapter …

  • wiki/divers/sigb.txt
  • Dernière modification: 2018/06/25 10:55
  • (modification externe)