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.

Versions

v1.07 : 19/01/26
modification de l’appel des APIs suite à un changement interne à Pégase
prise en compte du codeBCN pour le cursus

v1.06 : 02/12/25
changement dans la récupération de la liste des apprenants

v1.05 : 17/10/25
prise en compte du code BCN pour la CSP

v1.04 : 16/10/25
prise en compte du code BCN pour la série du bac et de la profession du parent 1

v1.03 : 10/10/25
ajout d’un paramètre pour le transcodage de l »établissement

v1.02 : 08/10/25
précision sur le BAC et situationfamiliale
correction de l’utilisation d’une API pour prendre en compte l’intégralité des données

v1.01 : 07/10/25
utilisation de nouvelles routes API suite au changement du swagger Pegase
refonte des appels APIs
définition de la période dans le fichier yml
prise en compte des structures CMP, de la situation familiale

v1.0 : 23/09/25
intilisation du projet

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.

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