Beta : export Pegase vers CSV

Le travail de cette page est à titre expérimental et a pour vocation d’aider les établissements passés sous Pégase (L’Université de Lorraine n’y est pas encore passée pour information). L’application, que ce soit d’aspect fonctionnel ou technique, est susceptible d’être différente dans sa phase finale.

Appels API

L’objectif de l’application proposée ci dessous est d’interroger les APIs mise à disposition à partir du Swagger suivant : https://pegase-swagger-ui.test-partenaires.pc-scol.fr/ afin de remplir le fichier CSV nécessaire à l’importation dans Calcium.

Cette application est développée sous Java/Vaadin et est à déployer sous un Tomcat. Elle peut être téléchargée sur notre serveur FTP usuel dans le répertoire PegaseBeta : http://download-sig.univ-lorraine.fr/prive/calcium/

On retrouve le paramétrage de l’application dans le fichier application.yml disponible (une fois l’application déployée) sous WEB-INF/classes.
Les paramètres suivants sont à modifier selon votre propre environnement :
username : nom d’utilisateur de votre compte Pegase
password : mot de passe associé
auth-domain, idt-domain, chc-domain, ref-domain : bases URLs de vos accès API Pegases

Une fois configurée, l’application permet d’accéder à cette page :

Le bouton permet d’effectuer lancer la recherche au travers des APIs Pegase et d’exporter un CSV compatible Calcium.

Etablissement et Composante

A notre connaissance du projet Pegase, il ne semble pas y avoir de relation hiérarchique entre établissement et composante comme sur Apogée. Nous sommes partis sur le fait que l’établissement (ETP) serait celui référencé dans Pégase à la racine, et que la composante (CMP) référence la formation effectuée par l’apprenant. Ces éléments sont encore soumis à discussion.

Requête SQL sur base Pegase répliquée (DRE)

Une autre possibilité, si on a accès à une base déportée (normalement les données sont à jour à J+1), c’est d’effectuer une requête SQL comme par exemple (requête réalisée et partagée par Rennes) :

select per.annee_universitaire as COD_ANU, app.ine_maitre as COD_NNE, '************* **' as COD_NNI
    , app.code_apprenant as COD_ETU, app.nom_naissance as NOM
    , (select value from schema_keycloak.user_attribute where name = 'nomUsage' and user_id = cast(app.id as varchar)) as NOMUSAGE
    , app.prenom as PRENOM1
    , (select value from schema_keycloak.user_attribute where name = 'prenom2' and user_id = cast(app.id as varchar)) as PRENOM2
    , (select value from schema_keycloak.user_attribute where name = 'prenom3' and user_id = cast(app.id as varchar)) as PRENOM3
    , (select value from schema_keycloak.user_attribute where name = 'sexe' and user_id = cast(app.id as varchar)) as SEXE
    , app.date_naissance as DATENAI
    , (select value from schema_keycloak.user_attribute where name = 'codeNationalite' and user_id = cast(app.id as varchar))  as CODE_NATIO
    , '' as SITUAFAM
    , (select libelle_court from schema_ref.valeurs_nomenclature where code_metier = ins.codes_bourses[1]) as CODEBRS
    , '' as CODEFINANC, '' as TEM_AFFL_SSO, '' as CENTREPAYEUR, '' as CODEMUT
    , (select value from schema_keycloak.user_attribute where name = 'adressePeriodeULigne3Voie' and user_id = cast(app.id as varchar)) as ADR1
    , (select value from schema_keycloak.user_attribute where name = 'adressePeriodeULigne4Complement' and user_id = cast(app.id as varchar)) as ADR2
    , (select value from schema_keycloak.user_attribute where name = 'adressePeriodeULigne5Etranger' and user_id = cast(app.id as varchar)) as ADR3
    , (select value from schema_keycloak.user_attribute where name = 'adressePeriodeUCodePostal' and user_id = cast(app.id as varchar)) as COD_BDI
    , (select value from schema_keycloak.user_attribute where name = 'adressePeriodeUCodeCommune' and user_id = cast(app.id as varchar)) as COMMUNE
    , (select value from schema_keycloak.user_attribute where name = 'adressePeriodeUCodePays' and user_id = cast(app.id as varchar)) as PAYS
    , (select value from schema_keycloak.user_attribute where name = 'telephonePortablePersonnel' and user_id = cast(app.id as varchar)) as TELEPH
    , ldap.mel as MAIL, '' as PCS
    , (select value from schema_keycloak.user_attribute where name = 'adresseFixeLigne3Voie' and user_id = cast(app.id as varchar)) as ADR1FIX
    , (select value from schema_keycloak.user_attribute where name = 'adresseFixeLigne4Complement' and user_id = cast(app.id as varchar)) as ADR2FIX
    , (select value from schema_keycloak.user_attribute where name = 'adresseFixeLigne5Etranger' and user_id = cast(app.id as varchar)) as ADR3FIX
    , (select value from schema_keycloak.user_attribute where name = 'adresseFixeCodePostal' and user_id = cast(app.id as varchar)) as BDIFIX
    , (select value from schema_keycloak.user_attribute where name = 'adresseFixeCodeCommune' and user_id = cast(app.id as varchar)) as COMMUNEFIX
    , (select value from schema_keycloak.user_attribute where name = 'adresseFixeCodePays' and user_id = cast(app.id as varchar)) as PAYSFIX
    , (select value from schema_keycloak.user_attribute where name = 'telephonePortablePersonnel' and user_id = cast(app.id as varchar)) as TELEPHFIX
    , ldap.etb as ETB
    , '' as CMP
    , '' as CURSUS
    , '' as ANNEE
    , '' as ETABLISSEMENT
    , cib.libelle as DIPLOME
    , (select bac.code_bcn from schema_keycloak.user_attribute k
    inner join schema_ref.serie_bac bac on bac.code = k.value
    where k.name = 'codeTypeSerieBac' and k.user_id = cast(app.id as varchar)) as BAC
    , (select value from schema_keycloak.user_attribute where name = 'anneeObtentionBac' and user_id = cast(app.id as varchar)) as DATEBAC
    , '' as ETB_BAC
    , (select value from schema_keycloak.user_attribute where name = 'anneeEntreeEtablissement' and user_id = cast(app.id as varchar)) as DAA_ETB
    , (select value from schema_keycloak.user_attribute where name = 'anneeEntreeEnseignementSuperieur' and user_id = cast(app.id as varchar)) as DAA_ENS_SUP
    , ldap.uid as IDENTIFIANT
    from schema_ins.inscription ins
    inner join schema_ins.apprenant app on app.id = ins.id_apprenant
    inner join schema_ins.chemin cib on cib.id_odf = ins.id_odf_chemin
    inner join schema_ins.periode per on per.id_odf = ins.id_odf_periode
    left join schema_odf.contexte cte on cte.id = cib.id_odf 
    left join schema_odf.objet_maquette obj on obj.id = cte.id_objet_maquette
    left join schema_ref.commune_naissance com_nai on com_nai.code = (select value from schema_keycloak.user_attribute where name = 'codeCommuneNaissance' and user_id = cast(app.id as varchar))
    left join schema_ref.pays_nationalite pay_nai on pay_nai.code = (select value from schema_keycloak.user_attribute where name = 'codePaysNaissance' and user_id = cast(app.id as varchar))
    left join schema_etb.ldap ldap on cast(ldap.no_etu as varchar) = app.code_apprenant
    where per.annee_universitaire = CASE WHEN date_part('month',current_date) > 6 THEN date_part('year',current_date)
     								ELSE date_part('year',current_date)-1
								    END
    and statut_inscription = 'VALIDEE'
    order by per.code, app.nom_naissance, app.prenom