1

Outlook の連絡先を CDO 経由でデータベースに同期する (および戻す) Web アプリケーションがあります。DB には、すべての連絡先が 1 回だけ含まれ (少なくとも理論的には、もちろんダブレットが発生します)、Outlook で特定の連絡先を持っているユーザーの数に関係なく (Interaction や類似の製品など)、連絡先の単一の変更点が提供されます。

同期プロセスは自動ではなく、ユーザーが初期化します。ユーザーが連絡先の同期を決定する前に、任意のタイムスパンが経過する可能性があります。これらの連絡先のサブセットは、その間に他のユーザーによって更新された可能性があります。

通常、これは問題なく実行されますが、この根本的な問題を解決できたことはありません。

メールボックス内の連絡先オブジェクトを間違いなく特定するにはどうすればよいですか?

  1. に頼ることはできませんPR_ENTRYID。このプロパティは、連絡先の移動またはメールボックスの移動で変更されます。
  2. 自分の ID (DB テーブル ID など) は連絡先と共にコピーされるため、信頼できません。
  3. 名前や電子メール アドレスなどのフィールドは絶対に信頼できません。変更や更新の対象となります。

現在、1 (優先) と 2 (フォールバック) の組み合わせを使用しています。しかし、必然的に、ユーザーは間違った連絡先に同期するという問題に遭遇することがあります。これは、指定された には 1 つも存在せずPR_ENTRYID、同じ DB ID を持つ 2 つの連絡先があり、そのうち間違った連絡先が選択されているためです。

多くの Outlook 同期製品が出回っているので、問題は解決できるはずです。

4

1 に答える 1

2

連絡先の同期を行う内部の Outlook プラグインで克服すべき同様の問題がありました。最終的に、Outlook オブジェクトにデータベース ID を貼り付け、同期を行うときにそれを参照することになりました。

ここでの違いは、システムには多数の重複があり、後でユーザーによって解決されることです。それらがマージされたら、古いレコードを削除し、すべての新しい情報と新しい ID で Outlook を更新します。

ファジー マッチングを実行して重複を特定することもできますが、重複の解決はおかしな問題であり、ほとんどが試行錯誤です。名前とアドレスのレーベンシュタイン距離アルゴリズムを使用して、ハッシュ コードにクリーンダウンされた「ファジー」マッチング ロジックの実装に成功しました。

頑張ってください、私の同期の経験は少し苦痛でした.

于 2008-10-13T15:13:39.543 に答える