Outlook の連絡先を CDO 経由でデータベースに同期する (および戻す) Web アプリケーションがあります。DB には、すべての連絡先が 1 回だけ含まれ (少なくとも理論的には、もちろんダブレットが発生します)、Outlook で特定の連絡先を持っているユーザーの数に関係なく (Interaction や類似の製品など)、連絡先の単一の変更点が提供されます。
同期プロセスは自動ではなく、ユーザーが初期化します。ユーザーが連絡先の同期を決定する前に、任意のタイムスパンが経過する可能性があります。これらの連絡先のサブセットは、その間に他のユーザーによって更新された可能性があります。
通常、これは問題なく実行されますが、この根本的な問題を解決できたことはありません。
メールボックス内の連絡先オブジェクトを間違いなく特定するにはどうすればよいですか?
- に頼ることはできません
PR_ENTRYID
。このプロパティは、連絡先の移動またはメールボックスの移動で変更されます。 - 自分の ID (DB テーブル ID など) は連絡先と共にコピーされるため、信頼できません。
- 名前や電子メール アドレスなどのフィールドは絶対に信頼できません。変更や更新の対象となります。
現在、1 (優先) と 2 (フォールバック) の組み合わせを使用しています。しかし、必然的に、ユーザーは間違った連絡先に同期するという問題に遭遇することがあります。これは、指定された には 1 つも存在せずPR_ENTRYID
、同じ DB ID を持つ 2 つの連絡先があり、そのうち間違った連絡先が選択されているためです。
多くの Outlook 同期製品が出回っているので、問題は解決できるはずです。