Je souhaite créer un plugin qui créé des carnets d’adresses synchronisés sur un LDAP et il va donc falloir que je mette à jour dynamiquement le carnet d’adresse en fonction des données du LDAP.
D’un point de vue optimisation (temps de calcul), vaut-il mieux dans votre implémentation :
Supprimer tous les contacts du “Folder” et les re-créer à chaque update
Pour chaque contact trouvé dans le ldap, rechercher son entrée avec un core.getAddressBook().searchContact() et mettre à jour ses infos, ou en créer un autre s’il n’existe pas
L’idée est de faire le moins d’opérations possibles.
Vous pouvez vous inspirer de ce qui est fait par le connecteur LDAP pour gérer les utilisateurs. Mais en gros l’idée est de trouver un identifiant invariable dans la source (attribut entryuuid dan sLDAP par exemple) et de le stocker en externalId côté Blue Mind.
Vous pouvez ensuite vous servir de cette valeur pour mettre à jour, supprimer ceux qui ne sont plus dans le LDAP et importer les nouveaux.
Avec la source LDAP vous pouvez aussi avoir un mode incrémental, qui ne traite que les modifications faites depuis le dernier import, en vous basant sur l’attribut modifyTimestamp.
[quote=Toony]L’idée est de faire le moins d’opérations possibles.
Vous pouvez vous inspirer de ce qui est fait par le connecteur LDAP pour gérer les utilisateurs. Mais en gros l’idée est de trouver un identifiant invariable dans la source (attribut entryuuid dan sLDAP par exemple) et de le stocker en externalId côté Blue Mind.
Vous pouvez ensuite vous servir de cette valeur pour mettre à jour, supprimer ceux qui ne sont plus dans le LDAP et importer les nouveaux.
Avec la source LDAP vous pouvez aussi avoir un mode incrémental, qui ne traite que les modifications faites depuis le dernier import, en vous basant sur l’attribut modifyTimestamp.[/quote]
Je vais regarder de ce coté alors, merci!