Contexte
La synchronisation LDAP génère le fichier XML d'import des fiches annuaires.
Elle permet par paramétrage d'importer le fiche à l'état brouillon selon la documentation : https://docs.ksup.org/version-6-7/developper/connecteurs-si/connecteur-ldap/synchronisation-des-utilisateurs-depuis-le-ldap-127183.kjsp?RH=13807430434103513.
Il faut mettre le paramètre
ldap.[type].etat_objet
Cette valeur est bien prise en compte et le fichier XML comporte qqch comme ça
<ENTETE> <OBJET>ANNUAIREKSUP</OBJET> <ACTION>IMPORTER</ACTION> <CODE>10833</CODE> <LANGUE>0</LANGUE> <ETAT_OBJET>0001</ETAT_OBJET> </ENTETE>
Anomalie
La valeur attendue par l'import XML pour changer l'état est
<ETAT>0001</ETAT>
Aussi, ETAT_OBJET est ignoré et la fiche n'est pas créée à l'état brouillon.
Le code fautif :
com.kosmos.ldap.batch.XMLManagerAnnuaire#setEnteteFiche @Override public void setEnteteFiche(final AnnuaireModele annuaire, final Node ficheEntete) throws Exception { //on ajoute l'entete avec le même code que l'utilisateur. final String code = annuaire.getCode(); String langue = paramLdapSynchroUser.getObjAnnuaire().getSLangue(); if (langue == null || langue.length() == 0 || langue.length() > 1) { langue = "0"; } ajouterNodeFiche(ficheEntete, "objet", ReferentielObjets.getNomObjet(annuaire).toUpperCase(), true); ajouterNodeFiche(ficheEntete, "action", "IMPORTER", true); ajouterNodeFiche(ficheEntete, "code", code, true); ajouterNodeFiche(ficheEntete, "langue", langue, true); ajouterNodeFiche(ficheEntete, "etat_objet", paramLdapSynchroUser.getObjAnnuaire().getSEtatObjet(), true); }
Pour patcher rapidement, il suffit de remplacer etat_objet par etat
1.
|
Report 6.7 - LDAP-50 | Fini | Automate |