Projet

Général

Profil

Demande #28336

Econnect et GAR: aaf2gar.sh : doublons dans les responsables d'affectation

Ajouté par arnaud grossir il y a presque 5 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
Début:
17/05/2019
Echéance:
% réalisé:

100%


Description

Bonjour,

Nous avons remarqué que l'envoi des données vers le GAR peut échouer s'il y a des doublons dans les responsables d'affectations dans le fichier RespAff.xml

On peut reproduire cette erreur en allant, dans l'interface econnect/administrer/etablissements/bouton 'gérer les responsables d'affectation'
et en cochant une personne ayant une fonction 'DIR' dans les XML issus de l'AAF

la génération des xml RespAff prend en compte
1) les 'DIR' présents dans les xml AAF => Source_RespAffs_DIR.xml
2) mais aussi les personnes désignés dans l'interface econnect, via un curl => Source_RespAffs_nonDIR.xml
(cf curl https://****/econnect/api/gar/prod/respAff?anonymat=non -F token=***)

aaf2gar.sh concatene les deux fichiers sans vérifier s'il y a des doublons

Des doublons sont donc possibles
Le fichier de validation des RespAff (Validation_RespAff.txt) contient alors une ou des ligne(s) du type:

/Source_RespAffs.xml:35.7: Element '{http://data.education.fr/ns/gar}GARRespAff': Duplicate key-sequence ['142e5776-256f-e8a2-1d35-000000011887'] in key identity-constraint '{http://data.education.fr/ns/gar}GAR-ENT-Cle-Fonctionnelle-GARRespAff'.

Il serait sans doute sage de dédoublonner les RespAff

J'ai donc créé, pour tester, un xsl qui dédoublonne ces RespAff (cf PJ) et j'ai du modifier à peine le code de aaf2gar.sh pour qu'il soit pris en compte. Le dédoublonnage se fait sur l'attribut "men:GARPersonIdentifiant" puisque c'est celui qui est cité dans le rapport d'erreur.

J'ai placé cette modification de code dans aaf2gar.sh juste après le merge des RespAff DIR et nonDIR
et avant les split des xml
J'ai placé le fichier xsl dans le dossier xsl de aaf2gar

Modification faites dans aaf2gar.sh:


 # Fusion des Source_RespAff_*.xml
    # Regroupement des RespAff DIR et Non DIR :
    java net.sf.saxon.Transform -o:${TMPPATH}Source_RespAffs_doublons.xml -s:${XSLPATH}GAR-ENT-RespAff_merge.xsl -xsl:${XSLPATH}GAR-ENT-RespAff_merge.xsl \
        && STATUTRESPAFF='OK' \
        || STATUTRESPAFF='KO' STATUTGLOBAL="KO" 
    TIMERESPAFF=`date '+%k:%M:%S'`

    if [ "${STATUTRESPAFF}"=="OK" ]
    then
        #dédoublonnage des DIR (ramenés via parsing des xml + ceux cochés dans econnect)
        java net.sf.saxon.Transform -o:${TMPPATH}Source_RespAffs.xml -s:${XSLPATH}Source_RespAffs_doublons.xml -xsl:${XSLPATH}/GAR-ENT-RespAff_deduplicate.xsl \
             && STATUTRESPAFF='OK' \
            || STATUTRESPAFF='KO' STATUTGLOBAL="KO" 
        TIMERESPAFF=`date '+%k:%M:%S'`
    fi

C'est certainement perfectible, mais ça pourrait donner une piste si vous jugez que ce problème de doublons est à prendre en compte

Merci d'avance

GAR-ENT-RespAff_deduplicate.xsl (675 octets) arnaud grossir, 17/05/2019 10:10

Révisions associées

Révision 60f2785a (diff)
Ajouté par Pierre CADEOT il y a presque 5 ans

fixes #28336 aaf2gar : dedoublonnage des resp. d'affectation

Révision b95e3301 (diff)
Ajouté par Pierre CADEOT il y a presque 5 ans

ref #28336 aaf2gar : fix chemin d'acces TMP

Historique

#1 Mis à jour par arnaud grossir il y a presque 5 ans

Je précise que ces doublons apparaissent même avec le fixes #27814 de Christophe dans le fichier src/econnect-1.2/api/routes/gar.php

https://dev-eole.ac-dijon.fr/issues/27814

// Les dir sont ajouté d'office par le script aaf2Gar
            // Pas la peine de les ajouter ici
            if ($user->isDir())   {continue;}

#2 Mis à jour par Christophe LEON il y a presque 5 ans

Bonjour,

Merci pour ce signalement,
Cependant si cest un DIR

($user->isDir())

Devrait retourner true,
Si cela n'est pas le cas cela serait peut-être lié aussi à un défaut de maj du profil

Le cas a été vu à Poitiers, si le user est déjà créé , avec un mauvais profil ( filtre sso erroné) suite à la correction du filtre sso le nouveau profil n'est pas mis à jour pour l'utilisateur
Si vous êtes dans ce cas de figure , merci de nous le signaler , on traitera aussi le pb à la source ( maj du profil) lors de la connexion

Cdlt,

#3 Mis à jour par arnaud grossir il y a presque 5 ans

Bonjour Christophe,

oui, c'est exactement ce cas de figure:

l'utilisateur avait été déjà créé avec un profil erroné suite à une modification d'un filtre sso

j'ai corrigé le filtre sso, j'ai supprimé l'utilisateur de la base et me suis reconnecté, le profil a été recréé avec le bon profil.

La réponse du curl pour les Resp. Aff est désormais OK chez nous (plus de doublons dans le xml final). Notre problème est donc réglé.

La maj du profil lors de la connexion user serait toutefois la bienvenue.

Merci pour la réponse !

Bonne Journée

#4 Mis à jour par Christophe LEON il y a presque 5 ans

  • Projet changé de Envole à envole-connecteur
  • Assigné à mis à Pierre CADEOT

Suite a discussion avec mon collègue Pierre qui s'est occupé de la partie xsl
Il serait également judicieux comme tu le proposes de gérer le doublons Resp. Aff au niveau de AAF2GAR

Car si l'utilisateur ne se connecte pas , son profil ne sera jamais mis a jour et du coup l'export GAR sera bloqué

On va voir comment intégrer ta proposition

#5 Mis à jour par Pierre CADEOT il y a presque 5 ans

  • Statut changé de Nouveau à Résolu
  • % réalisé changé de 0 à 100

#6 Mis à jour par Pierre CADEOT il y a presque 5 ans

Merci Arnaud pour la correction, je l'ai intégrée telle que proposée :)
Pierre

#7 Mis à jour par arnaud grossir il y a presque 5 ans

Bonjour, merci beaucoup pour avoir pris en compte ma demande

Je m'excuse,je vous ai fourni un code pour aaf2gar.sh avec une coquille: j'ai mis un mauvais path pour la source du xml à dédoublonner (j'avais mis ${XSLPATH} au lieu de ${TMPPATH})

j'avais mis:

java net.sf.saxon.Transform -o:${TMPPATH}Source_RespAffs.xml -s:${XSLPATH}Source_RespAffs_doublons.xml -xsl:${XSLPATH}GAR-ENT-RespAff_deduplicate.xsl \

il faudrait:

java net.sf.saxon.Transform -o:${TMPPATH}Source_RespAffs.xml -s:${TMPPATH}Source_RespAffs_doublons.xml -xsl:${XSLPATH}GAR-ENT-RespAff_deduplicate.xsl \

encore désolé pour la coquille

Cdt

#8 Mis à jour par Pierre CADEOT il y a presque 5 ans

oui j'avais vu Arnaud, aucun souci cela a été corrigé dans la foulée :

diff entre les révision 60f2785a et b95e3301 :
https://dev-eole.ac-dijon.fr/projects/envole-connecteur/repository/diff?utf8=%E2%9C%93&rev=b95e33015750d66b5ee713cfed59f164c3735885&rev_to=60f2785a7fecc264d52c1a25da8d1934a8f7cc27

Pierre
PS: et dans le config.xml les PATH doivent se terminer en / car ils ne sont pas précisés dans aag2gar.sh ex. -o:${TMPPATH}Source_RespAffs.xml

#9 Mis à jour par arnaud grossir il y a presque 5 ans

Merci Pierre, Bonne journée !

#10 Mis à jour par Arnaud FORNEROT il y a plus de 4 ans

  • Version cible mis à Envole 5.15

#11 Mis à jour par Arnaud FORNEROT il y a plus de 4 ans

  • Statut changé de Résolu à Fermé

Formats disponibles : Atom PDF