2008-10-08 8 views
1

J'ai une application Web qui synchronise les contacts Outlook à une base de données (et retour) via CDO. La base de données contient tous les contacts une seule fois (du moins théoriquement, bien sûr, les doublets), fournissant un seul point de changement pour un contact, quel que soit le nombre d'utilisateurs dans Outlook (comme Interaction ou produits similaires).Synchronisation des contacts Outlook - Comment identifier l'objet correct à synchroniser?

Le processus de synchronisation est pas automatique, mais initialisé par l'utilisateur. Un intervalle de temps arbitraire peut passer avant que les utilisateurs décident de synchroniser leurs contacts. Un sous-ensemble de ces contacts a peut-être été mis à jour par d'autres utilisateurs entre-temps.

En général, cela fonctionne très bien, mais je n'ai jamais été en mesure de résoudre ce problème fondamental:

Comment identifier un objet sans doute contact dans une boîte aux lettres?

  1. Je ne peux pas compter sur PR_ENTRYID, ce changements de propriété sur le mouvement de contact ou déplacer la boîte aux lettres.
  2. Je ne peux pas compter sur mes propres identifiants (par exemple ID de table DB ), car ceux-ci sont copiés avec le contact.
  3. Je ne peux absolument pas compter sur les champs comme le nom ou l'adresse e-mail, ils sont sujets à des modifications et mises à jour.

Actuellement j'utilise une combinaison de 1 (préféré) et 2 (de repli). Mais inévitablement, les utilisateurs rencontrent parfois le problème de la synchronisation avec le mauvais contact car il n'y en a aucun avec un PR_ENTRYID donné, mais deux avec le même ID de BD, dont le mauvais est choisi.

Il y a un tas de produits Outlook synchronisent là-bas, donc je suppose que le problème doit être solvable.

Répondre

2

J'ai eu un problème similaire à surmonter avec un plug-in Outlook interne qui fait la synchronisation de contacts. J'ai fini par coller un identifiant de base de données dans l'objet Outlook et je me suis référé à cela lors des synchronisations.

La différence ici est que notre système a un tas de doublons qui seront résolus plus tard par les utilisateurs. Quand ils seront fusionnés, je vais supprimer les anciens enregistrements et mettre à jour Outlook avec toutes les nouvelles informations avec un nouvel identifiant.

Vous pouvez faire de la correspondance floue pour identifier les doublons, mais en double résolution est un problème drôle qui est la plupart du temps tâtonnement. Nous avons réussi à mettre en œuvre une logique d'appariement "floue" en utilisant l'algorithme de distance levenshtein pour les noms et adresses nettoyés à un code de hachage.

Bonne chance, mes expériences de synchronisation ont été quelque peu douloureuses.

+0

Oh mon vieux, l'âge de la question me dit que ce n'est pas un problème trivial. Je colle aussi l'ID de base de données dans le contact, mais cela n'aide pas lorsque le contact est réutilisé (même position, type différent), ou quand il est copié pour faire un modèle pour un nouveau contact dans la même entreprise. – Tomalak

+0

Up voté quand même. Au moins j'ai votre sympathie. :-RÉ – Tomalak