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 |