(57)【要約】【課題】基本アプリケーションと、その基本アプリケーションと対話するアドインソフトウェアとを含むエンタープライズアプリケーションのためのスマートクライアントソリューションを提供すること。【解決手段】アドインソフトウェアは、基本アプリケーションを使用し、エンタープライズアプリケーションのデータおよび機能にアクセスすることを可能にする。アドインソフトウェアは、基本アプリケーション用のデータストア内の項目にアクセスするためのインタフェースマネージャと、エンタープライズアプリケーションと通信する通信エージェントと、インタフェースマネージャおよび通信エージェントと通信し、基本アプリケーション用のデータストアとエンタープライズアプリケーションとの間でデータを同期する同期マネージャとを含む。【選択図】図１０
2006134294.tif 000002
【特許請求の範囲】
【請求項１】
同期するための方法であって、
スマートクライアントを使用して第１のデータ項目を編集するステップであって、前記スマートクライアントは電子メールメッセージング機能を含み、前記第１のデータ項目は、前記スマートクライアントの外部の、かつ前記スマートクライアントから離れたアプリケーションに関連付けられるステップと、
前記スマートクライアントを使用して、前記第１のデータ項目を前記アプリケーションに同期するステップとを備えることを特徴とする方法。
【請求項２】
前記スマートクライアントを使用して、前記第１のデータ項目を同期する前記ステップは、
同期プロセスをスリープモードからウェークアップするステップと、
遠隔通信が使用可能であるかどうか判定するステップと、
ドメインデータを前記アプリケーションに同期するステップと、
アカウントデータを前記アプリケーションに同期するステップと、
トランザクションデータを前記アプリケーションに同期するステップとを含むことを特徴とする請求項１に記載の方法。
【請求項３】
遠隔通信が使用可能であるかどうか判定する前記ステップは、前記スマートクライアントがオンラインであるかどうか判定するステップを含むことを特徴とする請求項２に記載の方法。
【請求項４】
遠隔通信が使用可能であるかどうか判定する前記ステップは、前記スマートクライアントにとってウェブサービスが使用可能であるかどうか判定するステップを含むことを特徴とする請求項２に記載の方法。
【請求項５】
ドメインデータを同期する前記ステップは、
同期のためにドメインデータファイルをマークするステップと、
同期のためにマークされた前記ドメインデータファイルについて、前記アプリケーションからデータを取り出すステップと、
同期のためにマークされた前記ドメインデータファイルを、前記アプリケーションからの前記取り出されたデータで上書きするステップとを含むことを特徴とする請求項２に記載の方法。
【請求項６】
アカウントデータを同期する前記ステップは、
第１の情報を前記アプリケーションから取り出すステップと、
追加の情報を追加のアプリケーションから取り出すステップと、
前記アカウントデータの少なくとも一部分を前記第１の情報および前記追加の情報で上書きするステップとを含むことを特徴とする請求項２に記載の方法。
【請求項７】
アカウントデータを同期する前記ステップは、
ユーザに、１組のアカウントを選ぶ機会を提供するステップと、
前記１組のアカウントについて、前記アプリケーションから情報を取り出すステップと、
前記１組のアカウントについて、前記アプリケーションからの前記情報でアカウントデータを上書きするステップと、
前記１組のアカウントにないアカウント用のフォルダを除去するステップとを含むことを特徴とする請求項２に記載の方法。
【請求項８】
前記スマートクライアントを使用して、前記第１のデータ項目を同期する前記ステップは、前記アプリケーションと通信するために、前記スマートクライアントの外部のウェブサービスを使用するステップを含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記スマートクライアントは、基本アプリケーションおよびアドインソフトウェアを含み、
前記基本アプリケーションは、前記電子メールメッセージング機能を含み、
前記スマートクライアントを使用して、前記第１のデータ項目を同期する前記ステップは、前記アドインソフトウェアによって実行され、
前記第１のデータ項目は、前記基本アプリケーション用のデータストア内に格納されたオブジェクトであることを特徴とする請求項１に記載の方法。
【請求項１０】
前記オブジェクトは、その作成時間および同期状況を格納することを特徴とする請求項９に記載の方法。
【請求項１１】
前記スマートクライアント部で前記第１のデータ項目を作成するステップをさらに備え、前記スマートクライアントを使用して、前記第１のデータ項目を同期する前記ステップは、前記第１のデータ項目用の識別を前記アプリケーションから得るステップと、前記識別を前記スマートクライアント部で使用して、前記第１のデータ項目を参照するステップとを含むことを特徴とする請求項１に記載の方法。
【請求項１２】
前記スマートクライアントを使用して、前記第１のデータ項目を同期する前記ステップは、
前記アプリケーション部で、前記第１のデータ項目用の第１のタイムスタンプを、対応するデータ項目用の第２のタイムスタンプと比較するステップと、
前記第１のタイムスタンプが前記第２のタイムスタンプに合致する場合、前記第１のデータ項目に基づいて、前記対応するデータ項目を更新するステップと、
前記第１のタイムスタンプが前記第２のタイムスタンプに合致しない場合、前記第１のデータ項目から前記第２のデータ項目に対する更新を拒絶するステップとを含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記スマートクライアントを使用して、追加のデータ項目を、前記スマートクライアントの外部の、かつ前記スマートクライアントから離れた追加のアプリケーションに同期するステップをさらに備え、前記第１のデータ項目および前記追加のデータ項目は、共通のアカウントに関係し、前記アプリケーションは、ＣＲＭシステムを含むことを特徴とする請求項１に記載の方法。
【請求項１４】
前記スマートクライアントは、メッセージング・スケジューリング基本アプリケーションを含み、
前記スマートクライアントは、前記スマートクライアントを使用して、前記第１のデータ項目を同期する前記ステップを実行するアドインソフトウェアを含み、
前記アプリケーションは、ＣＲＭシステムを含むことを特徴とする請求項１に記載の方法。
【請求項１５】
１つまたは複数のプロセッサ可読記憶デバイスであって、前記プロセッサ可読記憶デバイス上で具現されるプロセッサ可読コードを有し、前記プロセッサ可読コードは、
第１のデータ項目をローカルで作成するステップと、
ローカル識別を前記第１のデータ項目に割り当てるステップと、
前記第１のデータ項目をローカルデータストアに格納するステップと、
前記ローカル識別を使用して、前記第１のデータ項目を参照するステップと、
前記第１のデータ項目を、遠隔エンティティに対して同期するステップと、
前記第１のデータ項目について、前記遠隔エンティティから第１の遠隔識別を受信するステップと、
前記第１の遠隔識別を、前記ローカルデータストア内の前記第１のデータ項目に追加するステップと、
前記第１の遠隔識別を使用し、前記第１のデータ項目を参照するステップとを含む方法を実行するように１つまたは複数のプロセッサをプログラミングするためのものであることを特徴とするプロセッサ可読記憶デバイス。
【請求項１６】
前記方法は、
第２のデータ項目のコピーを前記遠隔エンティティから受信するステップであって、前記第２のデータ項目の前記コピーは、前記第２のデータ項目用の第２の遠隔識別を含むステップと、
前記第２のデータ項目の前記コピーをローカルで更新するステップと、
前記第２のデータ項目の前記コピーを、前記第２の遠隔識別を使用して前記遠隔エンティティに同期するステップとをさらに備えることを特徴とする請求項１５に記載の１つまたは複数のプロセッサ可読記憶デバイス。
【請求項１７】
作成する前記ステップ、割り当てる前記ステップ、格納する前記ステップ、前記ローカル識別を使用する前記ステップ、受信する前記ステップ、追加する前記ステップ、および前記第１の遠隔識別を使用する前記ステップは、スマートクライアントによって実行され、前記スマートクライアントは、メッセージング・スケジューリング機能を含み、前記遠隔エンティティはＣＲＭシステムであることを特徴とする請求項１５に記載の１つまたは複数のプロセッサ可読記憶デバイス。
【請求項１８】
同期する前記ステップは、ウェブサービスを使用して、前記遠隔エンティティと通信するステップを含むことを特徴とする請求項１５に記載の１つまたは複数のプロセッサ可読記憶デバイス。
【請求項１９】
作成する前記ステップ、割り当てる前記ステップ、格納する前記ステップ、前記ローカル識別を使用する前記ステップ、受信する前記ステップ、追加する前記ステップ、および前記第１の遠隔識別を使用する前記ステップは、スマートクライアントによって実行され、
前記スマートクライアントは、メッセージング・スケジューリングアプリケーションを含み、
前記スマートクライアントは、前記メッセージング・スケジューリングアプリケーションに対するアドインソフトウェアを含み、
同期する前記ステップが、前記アドインソフトウェアによって実行され、
前記第１のデータ項目は、前記メッセージング・スケジューリングアプリケーション用のデータストア内に格納されたオブジェクトであることを特徴とする請求項１５に記載の１つまたは複数のプロセッサ可読記憶デバイス。
【請求項２０】
同期するための方法において、
スマートクライアントを使用して第１のデータ項目を編集するステップであって、前記スマートクライアントは電子メールメッセージング機能を含み、前記第１のデータ項目は、前記スマートクライアントの外部の、かつ前記スマートクライアントから離れたアプリケーションに関連付けられ、前記第１のデータ項目が、前記アプリケーションによって提供される識別と、前記アプリケーションによって提供される第１のタイムスタンプとを含み、前記編集によって前記第１のタイムスタンプが変更されないステップと、
前記アプリケーションによって提供された前記識別を使用して、前記アプリケーション部で、前記第１のデータ項目を、対応するデータ項目に同期するステップであって、
前記第１のタイムスタンプを、前記対応するデータ項目用の第２のタイムスタンプと比較するステップと、
前記第１のタイムスタンプが前記第２のタイムスタンプに合致する場合、前記第１のデータ項目に基づいて、前記対応するデータ項目を更新するステップと、
前記第１のタイムスタンプが前記第２のタイムスタンプに合致しない場合、前記第１のデータ項目から前記第２のデータ項目に対する更新を拒絶するステップとを含むステップとを含むことを特徴とする方法。
【請求項２１】
前記第２のタイムスタンプが前記第１のタイムスタンプより後である場合、前記対応するデータ項目に基づいて前記第１のデータ項目を更新するステップをさらに備えることを特徴とする請求項２０に記載の方法。
【請求項２２】
前記第１のタイムスタンプが前記第２のタイムスタンプに合致しない場合、前記第１のデータ項目をエラーフォルダに移動するステップをさらに備えることを特徴とする請求項２０に記載の方法。
【請求項２３】
同期する前記ステップは、前記アプリケーションと通信するために、前記スマートクライアントの外部のウェブサービスを使用するステップを含むことを特徴とする請求項２０に記載の方法。
【請求項２４】
前記スマートクライアントは、基本アプリケーションおよびアドインソフトウェアを含み、
前記基本アプリケーションは、前記電子メールメッセージング機能を含み、
同期する前記ステップが、前記アドインソフトウェアによって実行され、
前記第１のデータ項目は、前記基本アプリケーション用のデータストア内に格納されたオブジェクトであることを特徴とする請求項２０に記載の方法。
【請求項２５】
追加のアプリケーションからのデータに基づいて、追加のデータ項目を同期するステップをさらに備えることを特徴とする請求項２０に記載の方法。
【請求項２６】
前記スマートクライアントは、メッセージング・スケジューリングシステムを含み、
前記スマートクライアントは、同期を実行するアドインソフトウェアを含み、
前記アプリケーションは、ＣＲＭシステムを含むことを特徴とする請求項２０に記載の方法。
【請求項２７】
１つまたは複数のプロセッサ可読記憶デバイスであって、前記プロセッサ可読記憶デバイス上で具現されるプロセッサ可読コードを有し、前記プロセッサ可読コードは、
アプリケーションの外部のスマートクライアントを使用して、前記アプリケーション用の第１の項目を作成するステップと、
前記スマートクライアントを使用して、前記アプリケーション用の第２の項目を作成するステップと、
前記第１の項目を前記第２の項目に関連付けるステップと、
前記第１の項目および前記第２の項目を、前記スマートクライアント部で記憶するステップと、
前記第２の項目の、前記アプリケーションとの同期を開始する前に、前記第１の項目の、前記アプリケーションとの同期プロセスを開始するステップと、
前記第１の項目の同期を開始する前記ステップに応答して、かつ前記第１の項目の実際の同期の前に、前記第２の項目を前記アプリケーションに同期するステップと、
前記第２の項目の識別を前記アプリケーションから受信するステップと、
前記第２の項目を前記第１の項目から参照するために、前記第２の項目の前記識別を、前記第１の項目を用いて記憶するステップと、
前記第２の項目の前記識別を使用して、前記第１の項目の、前記アプリケーションとの同期を完了するステップとを含む方法を実行するように１つまたは複数のプロセッサをプログラミングするためのものであることを特徴とする１つまたは複数のプロセッサ可読記憶デバイス。
【請求項２８】
前記アプリケーションは、ＣＲＭシステムを含み、
前記第１の項目は、活動項目であり、
前記第２の項目は、機会項目であることを特徴とする請求項２７に記載の１つまたは複数のプロセッサ可読記憶デバイス。
【請求項２９】
前記アプリケーションは、ＣＲＭシステムを含み、
前記第１の項目は、活動項目であり、
前記第２の項目は、連絡先項目であることを特徴とする請求項２７に記載の１つまたは複数のプロセッサ可読記憶デバイス。
【請求項３０】
前記方法は、
前記第２の項目を前記アプリケーションに同期する前記ステップの前に、前記第２の項目を前記第１の項目から参照するために、前記第２の項目の一時的な識別を使用するステップをさらに備えることを特徴とする請求項２９に記載の１つまたは複数のプロセッサ可読記憶デバイス。
【請求項３１】
前記スマートクライアントは、メッセージング・スケジューリングシステムおよびアドインソフトウェアを含み、
同期する前記ステップが、前記アドインソフトウェアによって実行され、
前記第１のデータ項目は、前記メッセージング・スケジューリングシステム用のデータストア内に格納されたオブジェクトであることを特徴とする請求項２９に記載の１つまたは複数のプロセッサ可読記憶デバイス。
【請求項３２】
前記アプリケーションは、ＣＲＭシステムを含むことを特徴とする請求項３１に記載の１つまたは複数のプロセッサ可読記憶デバイス。
【請求項３３】
データを同期することが可能な装置であって、
記憶装置と、
通信インタフェースと、
前記記憶装置および前記通信インタフェースと通信する１つまたは複数のプロセッサであって、スマートクライアントデータストア内の複数のデータ項目にアクセスするステップと、前記データ項目を、前記スマートクライアントの外部の、かつ前記スマートクライアントから離れた複数のアプリケーションに同期するステップとを含む方法を実行するスマートクライアントを実装するプロセッサとを備えることを特徴とする装置。
【請求項３４】
前記複数のアプリケーションのうち１つが、ＣＲＭシステムを含み、
前記スマートクライアントは、メッセージング・スケジューリングシステムおよびアドインソフトウェアを含み、
同期する前記ステップが、前記通信インタフェースを介して前記ＣＲＭシステムと通信する前記アドインソフトウェアを使用して実行されることを特徴とする請求項３３に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、スマートクライアントを使用し、別のアプリケーションとインタフェースすることに関する。
【背景技術】
【０００２】
顧客関係管理（ＣＲＭ）は、顧客を識別し、獲得し、保持するための一体化された手法である。ＣＲＭは、複数のチャネル、部門、営業科目、地理を跨いで組織が顧客の相互関係を管理および調整することを可能にすることによって、組織が顧客の相互関係の価値を最大化し、企業パフォーマンスを優れたものにする助けとなる。
【０００３】
今日の組織は、ウェブ、コールセンタ、現地販売、ディーラ、パートナーネットワークを含む複数のコミュニケーションチャネルを跨いで顧客対話を管理しなければならない。また、多くの組織は、多数の顧客が重なり合う複数の営業科目を有する。挑戦課題は、顧客が、顧客の望む任意の方法、すなわち、いつでも、任意のチャネルを介して、任意の言語または通貨で組織とビジネスを行うことを容易にすることであり、顧客に、あらゆる接触点（ｔｏｕｃｈ  ｐｏｉｎｔ）で顧客を認識する単一の、統一された組織と取引していると感じさせることである。
【０００４】
ＣＲＭは、プロセスを合理化し、販売要員、マーケティング要員、サービス要員に、より良好な、より完全な顧客情報を提供することによって、組織が、より利益になる顧客関係と、削減された営業費とを確立することを可能にする。販売組織は、販売サイクルを短縮し、営業部員当たり収入、平均発注規模、顧客当たり収入など、鍵となる営業業績指標を高めることができる。マーケティング組織は、キャンペーン応答率、および市場主導の収入を増し、同時に、リードジェネレーションコストおよび顧客獲得コストを削減することができる。顧客サービス組織は、サービスエージェントの生産性および顧客保持力を高め、一方、サービスコスト、応答時間、要求解決時間を削減することができる。満足した忠実な顧客を生み出す会社は、リピートビジネスを有し、顧客獲得コストがより低くなり、より強いブランド価値を構築する可能性が高くなり、それらすべてが、よりよいパフォーマンスに変換される。
【０００５】
ＣＲＭ手法を実施するために、組織は、ＣＲＭソフトウェアを使用している。たとえば、組織は、関係を十分詳しく説明するその顧客に関するデータベース（または他のデータ構造）を構築することができ、その結果、管理者、販売要員、サービス要員、およびパートナーが、情報に直接アクセスし、顧客ニーズと製品計画および提供物とを合わせ、顧客にサービス要件について想起させ、顧客が他のどの製品を購入したかを知り、様々な顧客についてサービス履歴を理解し、販売努力とマーケティング努力を調整することができる。したがって、ＣＲＭソフトウェアは、（それだけには限らないが）顧客についての連絡情報、販売履歴、サービス履歴、セールスリード情報、顧客に代わって行われる様々な活動、販売機会、および／または他のデータを格納するデータ構造を含むことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＣＲＭソフトウェアは、組織のために、十分な投資利益率を提供することができるが、ＣＲＭシステムを導入している組織すべてがＣＲＭシステムを適切に利用してはいない。たとえば、多くの従業員は、通常、ＣＲＭシステムにログインしていない。特定のセールスリードが創出されたとき、あるいは他の活動が計画または実行されたとき、データを記録するためにＣＲＭシステムへのアクセスを求めることは必ずしも好都合でない。場合によっては、組織の従業員が、ＣＲＭソフトウェアシステムを使用するように適切に訓練されていない。一部の従業員はＣＲＭシステムにアクセスするための方法を全く知らない場合がある。多くのＣＲＭシステムは、個人の大量の訓練を必要とする特注ソリューションである。したがって、多くのＣＲＭシステムは、投資利益率を最大化するように十分利用されていない。
【０００７】
さらに、ＣＲＭデータおよびプロセスは、組み合わせられていない複数のデータストアまたはシステム内にある可能性がある。これは、ＣＲＭユーザがこのトランザクション情報、契約（ｅｎｇａｇｅｍｅｎｔ）情報、プロファイル情報を組み合せて、顧客の完全な関係（ｒｅｌａｔｉｏｎｓｈｉｐ）を完全に理解するのに、障壁を生み出す。
【課題を解決するための手段】
【０００８】
ＣＲＭシステムの上述の問題に対する、提案されている解決策は、周知の、いつも使用されているソフトウェアアプリケーションをＣＲＭシステムに対するスマートクライアントとして使用することである。アプリケーションが周知であるため、組織は、従業員を訓練する負担が少なくなることになる。アプリケーションが、しばしば使用されるアプリケーション、たとえばスケジューリングやメッセージングを実行する、通常動作しているデスクトップアプリケーションである場合には、従業員が（たとえば、スマートクライアントを介して）ＣＲＭシステムにアクセスすることがより使い易いものとなり、したがって、従業員は、スマートクライアントを使用することによって、システムをより多く利用することになる。
【０００９】
一例では、Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＯｕｔｌｏｏｋ（登録商標）を、アドインソフトウェアとともに、ＣＲＭシステムのスマートクライアントとして使用することができる。しかし、本明細書で述べられている技術は、より一般的に使用することもできる。すなわち、本明細書で述べられている技術は、ＣＲＭシステムに加えて、様々なタイプのエンタープライズアプリケーションのためのスマートクライアントソリューションとして使用することもできる。同様に、本明細書で述べられている技術は、Ｏｕｔｌｏｏｋ（登録商標）以外のアプリケーションに基づくスマートクライアントにも当てはまる。
【００１０】
一実施形態では、エンタープライズアプリケーション（たとえば、ＣＲＭシステム）のためのスマートクライアントソリューションは、基本アプリケーション（たとえば、Ｍｉｃｒｏｓｏｆｔ  Ｏｕｔｌｏｏｋ）と、その基本アプリケーションとインタフェースするアドインソフトウェアとを含む。アドインソフトウェアは、基本アプリケーションを使用し、エンタープライズアプリケーションのデータおよび機能にアクセスすることを可能にする。アドインソフトウェアは、基本アプリケーション用のデータストア内の（エンタープライズアプリケーション内のデータに対応する）項目にアクセスするためのインタフェースマネージャと、エンタープライズアプリケーションと（ウェブサービスを介して）通信する通信エージェントと、インタフェースマネージャおよび通信エージェントと通信し、基本アプリケーション用のデータストアとエンタープライズアプリケーションとの間でデータを同期する同期マネージャとを含む。同期に加えて、スマートクライアントデータをも、基本アプリケーション用のデータに、また基本アプリケーション用のデータから、変換することができる。
【発明を実施するための最良の形態】
【００１１】
Ｉ．ユーザインタフェース
ＣＲＭシステムのより多くの受入れと使用を可能にするために、ＣＲＭシステムと対話するためにスマートクライアントを使用することが提案される。スマートクライアントの一例は、ユーザがすでに快適に使え、熟知している既存のアプリケーションと、そのアプリケーションに対するアドインとの組合せから作成することができる。ユーザが快適に使え、熟知している既存のアプリケーションの一例は、コラボレーション、メッセージング、および／またはスケジューリングアプリケーションである。コラボレーション、メッセージング、および／またはスケジューリングアプリケーションの一例は、Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＯｕｔｌｏｏｋ（登録商標）である。しかし、本明細書で述べられている様々な態様は、他のコラボレーション、メッセージング、および／またはスケジューリングアプリケーション、ならびに他のアプリケーションを使用して実施することができる。
【００１２】
Ｏｕｔｌｏｏｋ（登録商標）は、スマートクライアントアドインと組み合せ、ＣＲＭシステム内のデータにアクセスすることができるスマートクライアントを作成することができる。スマートクライアントアドインは、様々な手段を介して、Ｏｕｔｌｏｏｋ（登録商標）など基本アプリケーションとインタフェースすることができるソフトウェアを含む。たとえば、アドインは、ライブラリ、アプリケーションプログラムインタフェース、ソフトウェア開発キット、または他のインタフェースを利用することができる。
【００１３】
一実施形態では、スマートクライアントは、ユーザのワークフロー内でリッチなアプリケーションデータを操作する助けとなり、ローカルマシン上にあり、シッククライアントの豊かなユーザインタフェース体験を有し、ウェブベースのコンピューティングに関連するシンクライアントの柔軟性を有するアプリケーション（またはアプリケーションの集合）である。いくつかの実施形態では、スマートクライアントは、異種のコンピュータシステム、プログラミング言語、ソフトウェアアプリケーション間でデータの交換を可能にする、広く受け入れられたコンピュータ業界標準である拡張マークアップ言語（ＸＭＬ）に基づくウェブサービスを「コンシュームする（ｃｏｎｓｕｍｅ）」、またはそれと対話することができる。スマートクライアントは、クライアントデバイスのローカルな処理能力を利用して、特定のネットワークの帯域幅の性能にきわめて依存する、純粋なウェブベースのコンピューティング（たとえば、ウェブブラウザなどシンクライアント）において多くの場合見つからない特別な性能を提供することができる。（本明細書で述べられているスマートクライアントを含む）多くのスマートクライアントは、オンラインでもオフラインでも使用することができ、接続されていないときですら、確実に生産性が損なわれないようにする。スマートクライアントはまた、インターネット、ローカルクライアント、または任意の移動デバイスを介して、広範なアクセシビリティおよび可用性を提供する。
【００１４】
本明細書で述べられている技術は、多くの異なるスマートクライアント、および多くの異なるターゲットアプリケーションと共に使用することができる。例示のために、下記の考察では、アドインソフトウェアと共にＯｕｔｌｏｏｋ（登録商標）を含むスマートクライアントの実装が利用されることになる。この例のターゲットアプリケーションは、Ｓｉｅｂｅｌ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．のＣＲＭシステムである。スマートクライアントアドインにより、ユーザがＯｕｔｌｏｏｋ（登録商標）を使用してＳｉｅｂｅｌ  ＣＲＭシステム内のＣＲＭデータにアクセスすることが可能になる。Ｓｉｅｂｅｌデータおよび機能は、スマートクライアントアドインによって提供される機能の大部分によりラップ（ｗｒａｐ）されることになる。ＣＲＭシステムのあらゆる機能がスマートクライアントアドインによって実装されることになるわけではない。逆に、スマートクライアントは、日常的に専門家によって実行される最も一般的な機能を使用可能にしようと試み、一方、より深いＣＲＭ機能は、シンオンラインクライアント（ｔｈｉｎ  ｏｎｌｉｎｅ  ｃｌｉａｎｔ）を介して使用可能とすることができる。ＣＲＭデータはまた、オフラインモードでＯｕｔｌｏｏｋ（登録商標）内で使用可能となる。
【００１５】
図１は、Ｏｕｔｌｏｏｋ（登録商標）内のスマートクライアントアドインによって提供されるグラフィカルユーザインタフェース（ＧＵＩ）の一例を提供する。ＧＵＩは、トップレベルメニュー１０、ツールバー１２、ナビゲーションペイン１４、リストペイン１６、詳細ペイン１８を含む。トップレベルメニュー１０は、Ｆｉｌｅ（ファイル）、Ｅｄｉｔ（編集）、Ｖｉｅｗ（表示）、Ｇｏ（移動）、Ｔｏｏｌｓ（ツール）、Ａｃｔｉｏｎｓ（アクション）、ＭｙＣＲＭ、Ｈｅｌｐ（ヘルプ）など諸見出しを含む。メニュー項目Ｆｉｌｅ、Ｅｄｉｔ、Ｖｉｅｗ、Ｇｏ、Ｔｏｏｌｓ、Ａｃｔｉｏｎｓ、Ｈｅｌｐは、Ｏｕｔｌｏｏｋメニュー項目である。メニューＭｙＣＲＭは、スマートクライアントアドインによってＯｕｔｌｏｏｋ（登録商標）に追加された新しいメニューである。他の実施形態では、「ＭｙＣＲＭ」と異なる他のラベルが、トップレベルメニュー用に使用されることになる（たとえば、「Ｃｕｓｔｏｍｅｒ  Ｅｘｐｌｏｒｅｒ（顧客エクスプローラ）」）。メニュー項目ＭｙＣＲＭ上でクリックすると、ＣｒｅａｔｅＮｅｗＯｐｐｏｒｔｕｎｉｔｙ、ＣｒｅａｔｅＮｅｗＡｃｔｉｖｉｔｙ、ＣｒｅａｔｅＮｅｗＣｏｎｔａｃｔ、ＳｙｎｃＭａｎａｇｅｒ、Ａｂｏｕｔ、Ｈｅｌｐのオプション群が表示される。
【００１６】
ツールバー１２は、スマートクライアント内の様々な機能に対するショートカットを提供する。ナビゲーションペイン１４は、スマートクライアントを介して使用可能なデータ項目の様々なフォルダを示す。Ｃａｌｅｎｄａｒ（カレンダ）、Ｃｏｎｔａｃｔｓ（連絡先）、Ｄｅｌｅｔｅｄ  Ｉｔｅｍｓ（削除済み項目）、Ｄｒａｆｔｓ（草稿）、Ｉｎｂｏｘ（受信箱）、Ｊｏｕｒｎａｌ（日誌）、Ｊｕｎｋ（ジャンク）、Ｅ−ｍａｉｌ（電子メール）、Ｎｏｔｅｓ（覚書き）を含むいくつかのフォルダは、Ｏｕｔｌｏｏｋ（登録商標）コア機能の一部である。ＭｙＣＲＭなど他のフォルダは、スマートクライアントアドインによって提供されるスマートクライアント機能の一部である。ユーザがフォルダ上でシングルクリックしたとき、リストペイン１６は、そのフォルダに関連付けられた項目のリストで占有（ｐｏｐｕｌａｔｅ）されることになる。さらなる詳細は、下記で提供される。ユーザが、リストペイン１６内にリストされた項目をシングルクリックした場合、その特定のデータ項目に関する、より多くの詳細が、詳細ペイン１８内で提供される。ユーザが、リストペイン１６内の項目上でダブルクリックした場合、その項目に関する詳細情報を含む新しいウィンドウがポップアップする。図２は、リストペイン１６内の項目上でダブルクリックしたことに応答してポップアップした新しいウィンドウの一例を提供する。ポップアップするウィンドウ内の情報は、詳細ペイン１８内で示される情報と同様である。しかし、図２のポップアップウィンドウでは、ユーザが情報を編集することが可能になる。
【００１７】
スマートクライアントアドインは、ナビゲーションペイン１４のフォルダ構造内のＣＲＭデータを表す、それ自体のフォルダ階層を有する。ユーザが、ＣＲＭデータの階層の頂部のフォルダ（ＭｙＣＲＭとラベルされたフォルダ）上でダブルクリックしたか、それともユーザがそのフォルダの隣の「＋」符号上でクリックしたとき、そのフォルダの子フォルダが表示されることになる。一実施形態では、子フォルダには、Ｌｉｎｋｓ、ＭｙＡｃｃｏｕｎｔｓ、ＭｙＡｃｔｉｖｉｔｉｅｓ、ＭｙＯｐｐｏｒｔｕｎｉｔｉｅｓ、ＭｙＣｏｎｔａｃｔｓ、Ｓｉｅｂｅｌ、Ｓｙｓｔｅｍが含まれる。フォルダＭｙＡｃｃｏｕｎｔｓは、ＣＲＭデータがこの特定のユーザにとって使用可能である各アカウントについて１つのサブフォルダを含む。アカウントフォルダのそれぞれ（たとえば、Ｂｅｃｈｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ、Ｂｅｃｈｔｅｌ  Ｎｅｖａｄａ  Ｃｏｒｐ．、Ｂｅｃｈｔｅｌ  Ｐｌａｎｔ  Ｍａｃｈｉｎｅｒｙ、Ｌｅｖｉ  Ｓｔｒａｕｓｓ  ＆  Ｃｏ．）は、Ａｃｔｉｖｉｔｉｅｓ、Ｃｏｎｔａｃｔｓ、Ｏｐｐｏｒｔｕｎｉｔｉｅｓ用のサブフォルダを有する。
【００１８】
ＣＲＭアプリケーションは、多くの異なるタイプのデータ項目を含む。ＣＲＭアプリケーション内の使用可能なデータ項目のうち３つには、活動（ａｃｔｉｖｉｔｉｅｓ）、連絡先（ｃｏｎｔａｃｔｓ）、機会（ｏｐｐｏｔｕｎｉｔｉｅｓ）が含まれる。活動は、ある顧客に関して行われる何らかの進行中の活動についての情報を格納するデータレコードである。これは、販売活動、マーケティング活動、サービス活動などでありうる。連絡先項目は、名前、住所など連絡先データを含む。機会項目は、ある顧客に関連する様々な機会についてのデータを含む。これには、マーケティング機会、販売機会などが含まれうる。本明細書で述べられている技術のために、これらのデータ項目用の特定のフォーマットは必要とされない。様々な機会データ項目、活動データ項目、連絡先データ項目がＣＲＭアプリケーション内に存在する。さらに、他のタイプのデータ項目もまた、ＣＲＭアプリケーション内に存在する。上記で論じたように、一実施形態では、スマートクライアントは、あらゆるタイプのデータ項目にアクセスするように設計されるものでない。したがって、一実施形態では、これらの３つのデータ項目が、アクセスを受けるように選ばれている。
【００１９】
各アカウントの下のＡｃｔｉｖｉｔｙフォルダは、そのアカウントに関連付けられた活動データ項目を格納する。各アカウントについてのＣｏｎｔａｃｔｓフォルダは、そのアカウントに関連付けられた連絡先データ項目すべてを格納する。各アカウントについてのＯｐｐｏｒｔｕｎｉｔｉｅｓフォルダは、そのアカウントに関連付けられた機会データ項目すべてを格納する。フォルダＭｙＡｃｔｉｖｉｔｉｅｓは、そのユーザに関連付けられた活動データ項目すべてを格納する。フォルダＭｙＯｐｐｏｒｔｕｎｉｔｉｅｓは、そのユーザに関連付けられた機会データ項目すべてを格納する。ＭｙＣｏｎｔａｃｔｓフォルダ（またはＭｙ  Ｓｅｉｂｅｌ  Ｃｏｎｔａｃｔｓ）は、その特定のユーザに関連付けられた連絡先データ項目すべてを格納する。多くの場合、特定のデータ項目は、アカウントの下方のフォルダ内と、Ｍｙ［Ａｃｔｉｖｉｔｉｅｓ／Ｃｏｎｔａｃｔｓ／Ｏｐｐｏｒｔｕｎｉｔｉｅｓ］フォルダ内とに表示されうる。
【００２０】
マウスのシングルクリックによってＭｙＯｐｐｏｒｔｕｎｉｔｉｅｓフォルダを選択すると、そのユーザがその活動チームの一部である機会レコードが、リストペイン内でリストされる。任意の機会項目上でダブルクリックすると、カスタムな機会フォームがポップアップする。このフォームは、ユーザが、機会詳細情報間で切り替えることができるタブを含む。
【００２１】
ＭｙＡｃｔｉｖｉｔｉｅｓフォルダを選択すると、活動のリストがリストペイン内で表示される。これらの活動はそのユーザによって所有されるか、またはそのユーザがこれらの活動のための従業員グループの一部である。ユーザは、リストペイン内の任意の活動上でダブルクリックすることによって、顧客活動編集フォームを開始することが可能になる。
【００２２】
ＭｙＳｉｅｂｅｌＣｏｎｔａｃｔｓフォルダは、ＣＲＭシステム内における場合と同じ可視化規則（ｖｉｓｉｂｉｌｉｔｙ  ｒｕｌｅｓ）を有する連絡先を含む。これらの連絡先は、そのユーザがそのチームの一員である、あるいはそのユーザが連絡先チームの一部であるアカウントに関連付けられる。連絡先項目上でダブルクリックすると、より多くの詳細を伴うウィンドウがポップアップする。
【００２３】
図１内のＳｉｅｂｅｌ  ４．０フォルダ上でクリックすることにより、Ｏｕｔｌｏｏｋ（登録商標）のコンテキスト内でＳｉｅｂｅｌ  ＣＲＭシステムのインスタンスが開き、機会管理ビューに進む。Ｌｉｎｋｓフォルダ上でダブルクリック（または、Ｌｉｎｋｓフォルダの隣の「＋」記号上でシングルクリック）すると、予め定義されたカスタマイズ可能なリンクが表示される。任意のこれらのリンク上でクリックすると、Ｏｕｔｌｏｏｋ（登録商標）のコンテキスト内でブラウザインスタンスが開き、そのリンクによって定義された関連ウェブサイトに進む。
【００２４】
Ｓｙｓｔｅｍフォルダは、システム管理機能用に用意される。このフォルダは、ＳｙｎｃＥｒｒｏｒｓという名称のサブフォルダを含む。ＳｙｎｃＥｒｒｏｒｓサブフォルダは、ＯｐｐｏｒｔｕｎｉｔｙＳｙｎｃＥｒｒｏｒｓ、ＡｃｔｉｖｉｔｙＳｙｎｃＥｒｒｏｒｓ、ＣｏｎｔａｃｔＳｙｎｃＥｒｒｏｒｓのサブフォルダ群を含む。これらのフォルダは、同期プロセス中に衝突に巻き込まれたレコードを含むことになる。ユーザは、これらのフォルダのそれぞれの中でレコードを読み取ることが可能になる。これらのレコードは、読取り専用である。しかし、ユーザは、ＳｙｎｃＥｒｒｏｒｓ諸フォルダ内でこれらのレコードを削除することが許される。
【００２５】
Ｏｕｔｌｏｏｋ（登録商標）内のリストペインは、ＣＲＭフォルダに合わせてカスタマイズすることができる。Ｏｕｔｌｏｏｋ（登録商標）は、リストペインのために、ＸＭＬをベースとするビュー定義を関連付けるための方法を提供する。この定義は、表示される列（ｃｏｌｕｍｓ）の指定と、リスト内の行（ｒｏｗｓ）のフォーマット化とを可能にする。以下は、ＸＭＬ定義例である。
【００２６】
【数１】
2006134294.tif 000003
【００２７】
【数２】
2006134294.tif 000004
【００２８】
ＩＩ．ワークフロー
図３は、スマートクライアントを使用してアカウントを閲覧、編集、作成するための一実施形態について説明する流れ図である。ステップ１０２では、ユーザは、ナビゲーションペイン１４から「ＭｙＡｃｃｏｕｎｔｓ」フォルダをダブルクリックすることになる。これにより、ステップ１０４で、個々のアカウントすべてについて子フォルダが表示されることになる。たとえば、図１のＧＵＩは、４つの別々のアカウント（Ｂｅｃｈｔｅｌ  Ｃｏｒｐｏｒａｔｉｏｎ、Ｂｅｃｈｔｅｌ  Ｎｅｖａｄａ  Ｃｏｒｐ．、Ｂｅｃｈｔｅｌ  Ｐｌａｎｔ  Ｍａｃｈｉｎｅｒｙ、Ｌｅｖｉ  Ｓｔｒａｕｓｓ  ＆  Ｃｏ．）について個々のフォルダを示す。他の実施形態では、ユーザは、フォルダの隣の「＋」上でシングルクリックすることができる。ステップ１０６では、サブフォルダの１つが選択される。すなわち、ユーザは、特定のアカウントを選ぶ。ユーザがそのフォルダ上でダブルクリック（またはそのフォルダの隣の「＋」上でシングルクリック）した場合、ステップ１０８で、そのアカウントフォルダについて子フォルダが表示される。一実施形態では、１組の子フォルダが、そのアカウントについて活動、連絡先、機会のためのフォルダを含むことができる。たとえば、図１は、Ｌｅｖｉ  Ｓｔｒａｕｓｓ  ＆  Ｃｏ．用の子フォルダを示す。他の実施形態では、他の子フォルダもまた使用することができる。ステップ１１０では、リストペイン１６がその特定のアカウントについて表示される。たとえば、図１は、３つの項目、すなわちアカウントプロファイル、ＰＳＳ事項（ｉｎｃｉｄｅｎｔｓ）、ＭＳ販売履歴を有するリストペインを示す。ステップ１０６において、フォルダ上でシングルクリックすることによってフォルダが選択された場合には、システムは、必ずしも子フォルダを表示することなしにリストペインを表示する（ステップ１１０）ことになることに留意されたい。リストペイン内で表示されたアカウントプロファイル項目は、アカウント情報を格納する。リストペイン内のＰＳＳ事項項目は、そのアカウントに関連付けられた顧客についてのサービス事項（ｓｅｒｖｉｃｅ  ｉｎｃｉｄｅｎｔｓ）に関係する情報を格納する。販売履歴項目は、その特定のアカウントについて販売履歴に関する情報を提供する。他の実施形態では、リストペイン内に追加の異なる項目が存在しうる。
【００２９】
ステップ１１２では、リストペイン内の項目のうち１つが選ばれる。項目がシングルクリックで選ばれた場合（ステップ１１４）には、リストペイン内の項目に関連付けられた情報が、詳細ペイン１８内で開示される（一例として、図１参照）。典型的には、詳細ペイン１８内で表示された情報は、読取り専用である。その情報を編集することを可能とすることができるが、その情報は、詳細ペイン１８内で編集可能ではない。ユーザが情報を編集したいと望む場合、ユーザは、リストペイン内の項目をダブルクリックすることになり（ステップ１１２）、これによりシステムは、ポップアップフォーム（１１６）を提供することになる。図２は、ポップアップの一例である。一部またはすべての情報をポップアップフォーム内で編集することができる。ステップ１１８では、システムは、ポップアップフォーム内で、一部またはすべての情報を編集するユーザからデータを受け取ることができる。その情報は、ステップ１２０で記憶される。典型的には、ユーザが、保存ボタン上でクリックすることによって情報を記憶することができる。図２内のウィンドウは、クローズボタンと、「Ｖｉｅｗ  ｉｎ  Ｓｉｅｂｅｌ（Ｓｉｅｂｅｌ内で表示）」ボタンとを含むことに留意されたい。ユーザが「ｃｌｏｓｅ（クローズ）」ボタン上でクリックした場合、図２のウィンドウは、情報を保存せずに閉じられることになる。ユーザが「Ｖｉｅｗ  ｉｎ  Ｓｉｅｂｅｌ」ボタン上でクリックした場合には、ポップアップブラウザウィンドウが表示されることになり、Ｓｉｅｂｅｌ  ＣＲＭシステムから直接情報を表示するために、（そのブラウザウィンドウ内で）Ｓｉｅｂｅｌ  ＣＲＭシステムに接続されることになる。
【００３０】
図１のＧＵＩと対話している間、いつでもユーザは、「ＭｙＣＲＭ」メニューを選ぶことができる。そのメニューから、選択肢の１つは「ｃｒｅａｔｅ  ａｎ  ａｃｃｏｕｎｔ（アカウントを作成）」である。ユーザが「ｃｒｅａｔｅ  ａｎ  ａｃｃｏｕｎｔ」オプションを選んだ場合（ステップ１４０）には、ユーザには、ステップ１１６のポップアップフォームが提供されることになる。データをそのポップアップフォームに挿入し（ステップ１１８）、保存する（ステップ１２０）ことができる。わかるように、ユーザがリストペイン内の「ａｃｃｏｕｎｔ  ｐｒｏｆｉｌｅ（アカウントプロファイル）」上でダブルクリックしたことに応答して表示される、図２に表示されているポップアップフォームは、ｓｉｔｅ（所在地）、ａｄｄｒｅｓｓ  １（住所１）、ａｄｄｒｅｓｓ  ２（住所２）、ａｄｄｒｅｓｓ  ３（住所３）、ｃｉｔｙ（市）、ｓｔａｔｅ（州）、ＺＩＰ  ｃｏｄｅ（郵便番号）、ｃｏｕｎｔｒｙ（国）、ｍａｉｎ  ｐｈｏｎｅ  ｎｕｍｂｅｒ（代表電話番号）、ｍａｉｎ  ｆａｘ  ｎｕｍｂｅｒ（代表ファックス番号）、ｗｅｂｓｉｔｅ（ウェブサイト）、ｐａｒｅｎｔ  ｏｒｇａｎｉｚａｔｉｏｎ（親会社）、ｍａｒｋｅｔ  ｓｕｂ−ｓｅｇｍｅｎｔ（市場下位区分）、ｐａｒｅｎｔｉｎｇ  ｌｅｖｅｌ（ペアレンティングレベル）、ｉｎｄｕｓｔｒｙ（業界）、ｓｕｂｓｉｄｉａｒｙ（子会社）、ｓａｌｅｓ  ｒｅｇｉｏｎ（販売広域区）、ｓａｌｅｓ  ｄｉｓｔｒｉｃｔ（販売地区）、ｓｕｂ  ｄｉｓｔｒｉｃｔ（小区域）、ＩＤ、ｐａｒｅｎｔ  ｓｉｔｅ（親所在地）、ｖｅｒｔｉｃａｌ  ｐｏｓｉｔｉｏｎ（バーチカルポジション）、ｃａｔｅｇｏｒｙ（カテゴリ）、ａｃｃｏｕｎｔ  ｏｗｎｅｒ（アカウント所有者）、ａｎｎｕａｌ  ｒｅｖｅｎｕｅ（年間収入）、ＩＴ  ｂｕｄｇｅｔ（ＩＴ予算）のフィールド群を含む。図２のフォームは、複数のタブを有する。上述のフィールドは、すべてアカウントプロファイルタブ内にある。このタブは、他のタブすべての要約を提供することができる。「ａｄｄｒｅｓｓ（住所）」タブは、特定の住所が１次住所であるかどうかの指示（ｉｎｄｉｃａｔｉｏｎ）、ならびにｓｉｔｅ、ａｄｄｒｅｓｓ  １、ａｄｄｒｅｓｓ  ２、ａｄｄｒｅｓｓ  ３、ｃｉｔｙ、ｓｔａｔｅ、ＺＩＰ  ｃｏｄｅ、およびｃｏｕｎｔｒｙのフィールド群を格納する。「ｔｅａｍ（チーム）」タブは、そのアカウントについて特定のチームの一員である人すべてをリストする。このタブは、各人について、名、姓、別名（ａｌｉａｓ）をリストする。
【００３１】
ユーザは、「ｈｉｅｒａｒｃｈｙ（階層）」タブをクリックしたとき、そのアカウントに関係する他のアカウントと共に、選択されたアカウントの階層表示を見ることになる。そのユーザに属するこれらのアカウントには、そのアカウント名上でダブルクリックすることによってアクセスすることができる。ユーザが、階層ウィンドウ内のアクセス可能なアカウント上でマウスのシングルクリックを行ったとき、ナビゲーションペイン内の「ＭｙＡｃｃｏｕｎｔｓ」フォルダ内のアクティブフォーカスは、そのアカウントにシフトするはずであり、ポップアップ画面は、リフレッシュして、（ユーザがシングルクリックで選択した）アカウント用のデータを表示することになり、規定値の情報タブになる。「ＩＴ  ｂｕｄｇｅｔ」タブをクリックすることにより、システムは、予算の総額、ＣＲＭシステムの所有者に関連していくら費やすべきか、および通貨を含めて、営業年度ごとにＩＴ予算情報を表示することになる。
【００３２】
アカウントプロファイル以外のリストペイン内の項目の１つを選択することにより、システムが、リストペイン内のその特定の項目に関係するデータを得るために、外部システムにアクセスすることになる。この外部システムは、遠隔マシン上にある可能性が高い。したがって、サービス事項についての情報を記憶するために別個のシステムが存在する可能性がある。リストペイン内で「ＰＳＳ  ｉｎｃｉｄｅｎｔｓ」を選択することにより、システムは、この外部システムにアクセスし、ポップアップメニュー内で、または詳細ペイン１８内でデータを提供することになる。いくつかの実施形態では、情報が常に読取り専用として提供される。他の実施形態では、ポップアップフォームは、読取りおよび書込みアクセス可能とすることができるであろう。同様に、外部システムは、リストペイン１６内で販売履歴項目を選択することによってアクセスされる販売履歴情報を記憶することができよう。
【００３３】
図４は、機会、連絡先、活動、および／または他の項目を閲覧、編集、作成するためのプロセスの一実施形態について説明する流れ図である。ステップ１６０では、ＭｙＡｃｃｏｕｎｔｓフォルダが選択され、ステップ１６２で、個々のアカウントについて子フォルダを表示させる。ステップ１６４では、その特定のフォルダ上でダブルクリックするか、それともそのフォルダの隣の「＋」上でシングルクリックすることによって、特定のアカウントのうち１つが選ばれる。ステップ１６６では、機会、活動、連絡先用のサブフォルダを含む、そのアカウントの特徴（ｆｅａｔｕｒｅｓ）のそれぞれについてサブフォルダが表示される。他の実施形態では、ＣＲＭシステムの他の特徴のためのサブフォルダが存在しうる。ステップ１６８では、ある特徴のためのサブフォルダのうち１つが選択される。サブフォルダを選択したことに応答して、適切な情報がリストペイン１６内に表示される（ステップ１７０）。たとえば、Ｏｐｐｏｒｔｕｎｉｔｙフォルダが選択された場合、リストペインは、機会項目のリストを表示することになる。Ｃｏｎｔａｃｔｓサブフォルダが選択された場合、リストペインは、連絡先項目のリストを表示することになる。Ａｃｔｉｖｉｔｉｅｓサブフォルダが選択された場合、リストペインは、活動のリストを表示することになる。
【００３４】
ステップ１６０から１７０について、アカウントを選択し、次いでそのアカウント用のサブフォルダを選択するプロセスを参照しながら上記で述べた。別法として、ステップ１９２で、ユーザは、ＭｙＡｃｔｉｖｉｔｉｅｓフォルダ、ＭｙＯｐｐｏｒｔｕｎｉｔｉｅｓフォルダ、ＭｙＣｏｎｔａｃｔｓフォルダを選択することができる。その選択に応答して、システムは、リストペイン内に、システムを現在使用しているユーザの別名に関連付けられた適切な活動、連絡先、または機会すべてを表示することになる。ステップ１７２では、リストペイン内の項目のうち１つが選択される。選択が、リストペイン内の項目上でシングルクリックすることによって行われた場合には、ステップ１７４で、詳細ペイン１８が、その特定の項目の詳細を表示することになる。ステップ１７２で、その項目上でダブルクリックすることによってその項目が選択された場合には、ステップ１７６でポップアップフォームが表示されることになる。ユーザは、ステップ１７８で、一部またはすべてのデータを編集する機会をもつことになる。次いでステップ１８０では、ステップ１７８で受け取られたデータが記憶されることになる。
【００３５】
さらに、図１のＧＵＩを動作させている間に、ユーザは、「ＭｙＣＲＭ」メニューを選び、新しい項目（活動、連絡先、機会など）を作成することを要求することができる。ステップ１９０におけるその選択に応答して、システムは、ステップ１７６でポップアップフォームを提供することになる。次いで、ユーザはデータを提供することが可能になり、そのデータは、ステップ１７８で受け取られ、ステップ１８０で記憶されることになる。新しい項目が作成されたとき、システムは、その新しい項目にローカル識別（ＬｏｃａｌＩＤ）を割り当てることになる。このＬｏｃａｌＩＤは、その項目がＣＲＭシステムに同期され、ＣＲＭシステムがＣＲＭ識別（ＳｅｒｖｅｒＩＤ）を送るまで、その項目を識別するためにシステムによって使用されることになる。ＳｅｒｖｅｒＩＤを受け取った後、その項目は、ＳｅｒｖｅｒＩＤによって識別されることになる。
【００３６】
一実施形態では、Ｏｐｐｏｒｔｕｎｉｔｉｅｓ用のポップアップフォームは、「Ｓａｖｅ（保存）」ボタン、「Ｃｌｏｓｅ（クローズ）」ボタン、「Ｖｉｅｗ  ｉｎ  Ｓｉｅｂｅｌ」ボタン、および様々なタブを含むことになる。一実施例において、タブ群には、Ｏｐｐｏｒｔｕｎｉｔｙ  Ｉｎｆｏｒｍａｔｉｏｎ（機会情報）、Ｔｅａｍ（チーム）、Ａｃｔｉｖｉｔｉｅｓ（活動）、Ｃｏｎｔａｃｔｓ、Ｎｏｔｅｓ、Ｐｒｏｄｕｃｔｓ（製品）、Ｓｅｒｖｉｃｅｓ（サービス）、Ｐａｒｔｎｅｒｓ（パートナー）が含まれる。「Ｏｐｐｏｒｔｕｎｉｔｙ  Ｉｎｆｏｒｍａｔｉｏｎ」タブは、機会名、会社名、作成日、販売ステージ（ｓａｌｅｓ  ｓｔａｇｅ）、期日、機会タイプ（ｏｐｐｏｒｔｕｎｉｔｙ  ｔｙｐｅ）、機会所有者（ｏｐｐｏｒｔｕｎｉｔｙ  ｏｗｎｅｒ）、状況、通貨コード、ライセンシングプログラム（ｌｉｃｅｎｓｉｎｇ  ｐｒｏｇｒａｍ）、ライセンシングサブタイプ（ｌｉｃｅｎｓｉｎｇ  ｓｕｂｔｙｐｅ）、このクライアントについて予測（ｆｏｒｅｃａｓｔｓ）があるかどうかを示すフラグ、これがクリティカルな取引であるかどうかを示すフラグ、締め日、説明のフィールド群を含む。「Ｔｅａｍ」タブは、その機会に関連付けられたアカウントについて、チームの一員である人を含むことになる。「Ａｃｔｉｖｉｔｉｅｓ」タブは、その機会に関連付けられた活動すべてのリストを有することになる。「Ｃｏｎｔａｃｔｓ」タブは、その機会に関連付けられた連絡先すべてのリストを有することになる。「Ｎｏｔｅｓ」は、その機会に関連付けられたユーザの誰かによって書かれた覚書きを含むことができる。「Ｓｅｒｖｉｃｅｓ」は、その機会に関連付けられたサービスを示す。「Ｐａｒｔｎｅｒｓ」は、その特定の機会に関係するＣＲＭの所有者に関連付けられた任意のビジネスパートナーを示す。
【００３７】
リストペイン内の「Ａｃｔｉｖｉｔｙ」上でダブルクリックしたとき（図４のステップ１７２）、表示されるポップアップフォームは、（「Ｓａｖｅ」ボタン、「Ｃｌｏｓｅ」ボタン、「Ｖｉｅｗ  ｉｎ  Ｓｉｅｂｅｌ」ボタンに加えて）説明、所有者、タイプ、カテゴリ、目的、会社名、連絡先名、機会、期日、状況、コメントのフィールド群を含むことになる。いくつかの実施形態では、ＡｃｔｉｖｉｔｉｅｓをＣｏｎｔａｃｔｓまたはＯｐｐｏｒｔｕｎｉｔｉｅｓに関連付けることができる。その場合には、関連付けられたＣｏｎｔａｃｔｓまたはＯｐｐｏｒｔｕｎｉｔｉｅｓについてＳｅｒｖｅｒＩＤを示すＡｃｔｉｖｉｔｉｅｓフォーム内のフィールド群がある。
【００３８】
リストペイン内の「Ｃｏｎｔａｃｔ」項目上でダブルクリックしたとき（ステップ１７２）、ステップ１７６で表示されるポップアップフォームは、５つのタブ、すなわちＧｅｎｅｒａｌ（一般）、Ｄｅｔａｉｌｓ（詳細）、Ａｃｔｉｖｉｔｉｅｓ（活動）、Ｃｅｒｔｉｆｉｃａｔｅｓ（証明書）、Ａｌｌ  Ｆｉｅｌｄｓ（全フィールド）を含むことになる。Ｇｅｎｅｒａｌタブは、名、姓、職位（ｔｉｔｌｅ）、会社、Ｆｉｌｅ  Ａｓ、電話番号、住所、電子メールアドレス、Ｄｉｓｐｌａｙ  Ａｓ、ウェブページアドレス、インスタントメッセージングアドレス、説明のフィールド群を含むことになる。「Ｄｅｔａｉｌｓ」タブは、部門、オフィス、職業、管理職者名、アシスタント名、ニックネーム、職位、添字、配偶者名、誕生日、記念日、ディレクトリサーバ、電子メール別名、およびアドレス用のフィールド群を含むことになる。「Ａｃｔｉｖｉｔｉｅｓ」タブは、その連絡先に関連付けられた活動すべてのリストを含むことになる。「Ｃｅｒｔｉｆｉｃａｔｅｓ」タブは、その連絡先に関連付けられた証明書すべてのリストを含むことになる。「Ａｌｌ  Ｆｉｅｌｄｓ」タブは、ユーザ定義フィールドのリストを含むことになる。一実施形態では、これは、部門、ＣＲＭシステム内でこの特定の人に関するデータにアクセスするためのＵＲＬ、および様々な属性を示す様々なフラグを含む、ＣＲＭシステム内のデータに関連付けられたユーザ定義フィールドを含むことができる。いくつかのこれらのフラグの一例には、その人が主要な連絡先（ｋｅｙ  ｃｏｎｔａｃｔ）であるかどうか、その人が満足度調査に記入したかどうか、電子メールをその人に送ることが許されるかどうか、郵便物（ｒｅｇｕｌａｒ  ｍａｉｌ）をその人に送ることが許されるかどうか、電話をかけることが許されるかどうか、ファックスが許されるかどうかの諸指示、および他の適切なデータを含む。
【００３９】
図１はまた、「Ｌｉｎｋｓ」という名称のフォルダを示す。このフォルダは、１組のサブフォルダを含む。サブフォルダのそれぞれは、別々のリンクに関連付けられる。（埋込みＵＲＬを有する）任意のこれらのサブフォルダ上でのマウスのシングルクリックにより、別個のブラウザウィンドウが開かれ、埋込みＵＲＬ内で指定されたサイトに進むことになる。一実施形態では、これらのリンクは、初期セットアップ手順の間に確立することができる。これらのリンクが確立された後で、ユーザは、埋込みＵＲＬに変更を加えることができる。また、ユーザは、ＵＲＬのリストに追加をすることができる。ユーザによって作成された追加リンクは、同期中に更新されないことになる。一実施形態では、予め構成されたリンクだけが同期プロセス中にリフレッシュされることになる。
【００４０】
図５は、リンクを使用するためのプロセスについて説明する流れ図である。ステップ２００では、ユーザは、フォルダ上でダブルクリックするか、それともフォルダの隣の「＋」上でクリックすることによって、「Ｌｉｎｋｓ」フォルダを選択する。ステップ２０２では、ステップ２００で「Ｌｉｎｋｓ」フォルダが選択されたことに応答して、子フォルダが表示される。ステップ２０４では、子フォルダのうち１つが、そのフォルダ上でシングルクリックすることによって選択される。ステップ２０６では、ブラウザウィンドウが開かれる。ステップ２０８では、選ばれたフォルダに関連して記憶されたＵＲＬを使用して、ＵＲＬのターゲットにアクセスする。ステップ２１０では、ターゲットサイトにあるアプリケーションが、動作し、または別の方法で対話を受ける。たとえば、ターゲットサイトは、ユーザ、活動、機会、連絡先、アカウント、ＣＲＭシステム（たとえば、Ｈｅｌｐ）、および顧客関係管理に関する他のデータについて様々な情報を含むことができる。
【００４１】
図６は、スマートクライアント内のリンクを使用し、ＣＲＭシステムに直接アクセスするためのプロセスの一実施形態について説明する流れ図である。たとえば、図１は、「Ｓｉｅｂｅｌ  ４．０」という名称のフォルダを示す。他の実施例では、このフォルダ用の他の名称を使用することができる。図６のステップ２６０では、その特定のＣＲＭアプリケーションフォルダ（たとえば、「Ｓｉｅｂｅｌ  ４．０」）が選択される。ステップ２６２では、ブラウザウィンドウが開かれる。ステップ２６４では、その特定のフォルダに関連付けられたＵＲＬを使用して、ＣＲＭシステムに直接アクセスする。ユーザには、通常、ログインするためにログインページが提供され、ユーザは、ＣＲＭシステムのいずれの使用可能な機能にもアクセスすることができる。いくつかの実施形態では、ログイン情報は、スマートクライアント内で記憶することができ、それによって、ユーザは、ログインページを迂回して、ＣＲＭシステムに自動的にログインすることが可能になる。
【００４２】
ＩＩＩ．構成要素
図７は、本明細書で述べられているシステムを実施するためのアーキテクチャの一実施形態について説明するブロック図である。図７は、図１および図２のＧＵＩと、図３〜６によって述べられているプロセスとを実装するスマートクライアント３００を示す。スマートクライアント３００を使用して、ＣＲＭシステム用の活動オブジェクト、機会オブジェクト、連絡先オブジェクトを作成、編集、削除することができる。これらのオブジェクトは、スマートクライアント部で記憶され、ＣＲＭシステムに同期される。スマートクライアント３００に関するさらなる情報は、下記で提供されることになる。スマートクライアント３００は、ウェブサービス３０２と通信する。
【００４３】
ウェブサービスは、それぞれが、異なる１組のタスクを処理するコードの別々の一群である。（常にではないが）典型的には、ウェブサービスはＸＭＬに基づくものであり、使用されているプログラミング言語の如何にかかわらず、プラットフォームやオペレーティングシステムを跨いで呼び出すことができる。ウェブサービスは、それらのアプリケーションがどのように構築されたか、どのオペレーティングシステムまたはプラットフォーム上で動作するか、ウェブサービスにアクセスするためにどのデバイスが使用されるかにかかわらず、アプリケーション同士にデータを共有させ、他のアプリケーションから機能を呼び出す。ウェブサービスは、互いに独立したままとすることができるが、特定のタスクを実行する協調グループの形に緩くリンクさせることができる。また、ウェブサービスは、開発者が、そのアプリケーションのピース（ｐｉｅｃｅ）すべてを構築することと、他者によって作成されたウェブサービスをコンシュームすること（使用すること）のどちらかを選ぶことを可能にする。これは、個々の会社が、完全な解決策のためにあらゆるピースを供給する必要がないことを意味する。ウェブサービスをエクスポーズする（発表する、提供する）能力は、特定の事業体（ｅｎｔｉｔｙ）に対して新しい収入源を生み出す。いくつかの実施形態では、ウェブサービスは、ＳＯＡＰ、ＸＭＬ、ＵＤＤＩ（Ｕｎｉｖｅｒｓａｌ  Ｄｅｓｃｒｉｐｔｉｏｎ，Ｄｉｓｃｏｖｅｒｙ，ａｎｄＩｎｔｅｇｒａｔｉｏｎ）を含む業界標準のプロトコルを用いて、インターネットを介して呼び出される。これらは通常、ワールドワイドウェブコンソーシアム（Ｗ３Ｃ）など公共の標準機関を介して定義されうる。ＳＯＡＰは、Ｗ３Ｃによって標準化された、ＸＭＬをベースとするメッセージング技術であり、ウェブサービスを突き止め、それらをアプリケーション内に一体化し、それらの間で通信するための必要な規則を規定する。ＵＤＤＩは、無料で提供されるパブリックレジストリであり、そこでウェブサービスについて公表および照会することができる。
【００４４】
一実施形態では、ウェブサービス３０２は、スケーラブルウェブサービスを構築および管理するためのＡＣＰ（Ａｌｃｈｅｍｙ  Ｃｏｍｍｏｎ  Ｐｌａｔｆｏｒｍ）である。スマートクライアント３００のコンテキスト内では、ＡＣＰは、バックエンドＣＲＭシステムからＣＲＭデータオペレーションをエクスポーズする様々なＣＲＭウェブサービスを提供する。一実施形態では、ＣＲＭシステムがＳｉｅｂｅｌシステムであるとき、Ｓｉｅｂｅｌデータおよび操作は、２組のサービスを介してエクスポーズされる。一方の組は、Ｓｉｅｂｅｌオブジェクトを取り出すためのものであり、他方の組は、Ｓｉｅｂｅｌオブジェクトを作成および修正するためのものである。これらは、読取りサービス３１０および書込みサービス３１２である。Ｓｉｅｂｅｌウェブサービスは、性能上の理由により、２つの別個のサービスとして設計（ａｒｃｈｉｔｅｃｔ）される。読取りウェブサービス３１０は、データを取り出すための最良の性能を確保するために、Ｓｉｅｂｅｌ  ＯＬＴＰデータベース３２０（または他のデータストア）と（インターネットを介して）直接通信する。書込みサービス３１２は、Ｓｉｅｂｅｌオブジェクトの作成および修正中に呼び出されるビジネス規則すべてを利用するために、Ｓｉｅｂｅｌアプリケーションサーバ３２２と通信する。Ｓｉｅｂｅｌアプリケーションサーバ３２２は、データストア３２０と通信する。さらに、実施形態に応じて、他のサービス３１４を使用し、様々なデータベース（または他のタイプのデータストア）との間で読取りまたは書込みをするために他のバックエンドミドルウェア３２４と通信することができる。たとえば、他のサードパーティのシステムにアクセスするために使用することができる上述の様々なリンクがある。
【００４５】
一実施形態では、スマートクライアント３００は、インターネットまたは他のタイプのネットワークを介してウェブサービス３０２と通信する。ウェブサービス３０２は、インターネットまたは他のネットワーキングソリューションを介して、データストア３２０、アプリケーションサーバ３２２、ミドルウェア３２４と通信する。通信は、陸線（ｌａｎｄ  ｌｉｎｅｓ）、ワイヤレス、または他の好適な技術を介したものとすることができる。さらに、通信は、ＴＣＰ／ＩＰ、またはその特定のアプリケーションに適した他のプロトコルを使用して実施することができる。
【００４６】
一実施形態では、データストア３２０およびアプリケーションサーバ３２２を含むＣＲＭシステムは、既存のソフトウェアシステムである。本明細書で述べられている技術は、既存のウェブサービス３０２および既存のＣＲＭシステムと対話するためにスマートクライアント３００を実装するためのものである。スマートクライアント３００は、他のバックエンドミドルウェア３２４およびデータベース３２６と通信する他のサービス３１４を介して、ＣＲＭシステムおよび他のシステムからデータを集める能力をさらに含む。ＣＲＭシステムは、スマートクライアントと共に使用することができる一連のビジネスアプリケーションの一例にすぎない。本明細書で述べられているスマートクライアントは、ＣＲＭシステム以外のアプリケーションと共に使用することができる。
【００４７】
一実施形態では、スマートクライアント３００は、ローカルマシン上で動作するが、一方、（アプリケーションサーバ３２２およびデータストア３２０を含む）ＣＲＭシステムは、ローカルマシンから離れている１つまたは複数の異なるマシン上にある。ウェブサービス３０２は、スマートクライアントおよびＣＲＭシステムと異なる１つまたは複数のマシン上で動作することができる。他の実施形態では、一部またはすべてのウェブサービス３０２が、スマートクライアントまたはＣＲＭシステムと同じマシン上で動作することができる。いくつかの実施形態は、ウェブサービスを使用せず、逆にエージェント３７２がＣＲＭシステム（または他のアプリケーション）に直接接触することになる。
【００４８】
図８は、スマートクライアント３００のためのアーキテクチャの一実施形態について説明するブロック図である。図８は、アプリケーションインタフェース３６２、ウェブサービス３０２、構成データストア３８４と通信するスマートクライアントアドイン３６０を示す。アプリケーションインタフェース３６２は、アプリケーションストレージ３６６を含むアプリケーション３６４（基本アプリケーション）と通信する。スマートクライアントは、多くの異なるタイプの基本アプリケーションと共に実施することができる。一実施形態では、図８のスマートクライアントは、コラボレーション、メッセージング、およびスケジューリングアプリケーションと共に実施される。そのようなコラボレーション、メッセージング、およびスケジューリングアプリケーションの一例は、Ｍｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＯｕｔｌｏｏｋ（登録商標）である。その例では、ストレージ３６６がＯｕｔｌｏｏｋ（登録商標）オブジェクトストアである。また、スマートクライアントは、他のコラボレーション、メッセージング、およびスケジューリングシステム、あるいは他のタイプのシステムと共に実施することもできる。さらに、コラボレーションだけ、メッセージングだけ、スケジューリングだけ、またはその３つの何らかの他の組合せを実行するアプリケーションもまた、スマートクライアントと共に使用することができる。スマートクライアントプラグインは、ソフトウェアのラストマイルとして働き、ユーザがＣＲＭシステムをより効率的に利用できるようにする。スマートクライアントアドインは、Ｏｕｔｌｏｏｋ（登録商標）をＣＲＭシステムに対するポータルとして使用することを可能にする。
【００４９】
アプリケーションインタフェース３６２は、アプリケーション３６４に対するインタフェースを提供する。たとえば、アプリケーションインタフェースは、ソフトウェア開発キット、ライブラリ、アプリケーションプログラムインタフェース（ＡＰＩ）、または他のインタフェースとすることができる。アプリケーションインタフェース３６２は、アプリケーション３６４によって使用されるオブジェクトに対して、またアプリケーション３６４内で発生するイベントに対してアクセスを提供するべきである。したがって、アプリケーション３６４内のイベントに応答して、アプリケーションインタフェース３６２を使用するエンティティは、そのイベントについて通知を受け、データオブジェクトやユーザインタフェースオブジェクトなどのオブジェクトを得る、または設定することが可能であるべきである。
【００５０】
一実施形態では、アプリケーションインタフェース３６２は、Ｏｕｔｌｏｏｋ（登録商標）オブジェクトモデルのトップにある．ＮＥＴラッパ（．ＮＥＴ  ｗｒａｐｐｅｒ）であるソフトウェア開発キットである。アプリケーションインタフェース３６２は、オブジェクトおよびイベントをアドイン３６０にエクスポーズする。スマートクライアントアドイン３６０は、アプリケーションインタフェース３６２を使用し、Ｏｕｔｌｏｏｋ（登録商標）と通信／インタフェースする。アプリケーションインタフェース３６２は、フォームを作成し、データと関連付ける能力を提供する。アプリケーションインタフェース３６２を使用するエンティティは、Ｏｕｔｌｏｏｋ内の標準プロパティおよびカスタムプロパティを設定しかつ取り出し、オブジェクトを作成／削除／編集し、Ｏｕｔｌｏｏｋ内のイベントの通知を受け（またはイベントをトラップし）、ユーザインタフェース（たとえば、サイズ、色、フォント、見出し、ボタン、フィールドなど）を作成／変更／管理し、メニューを作成および変更し、ツールバーを作成および変更し、フォルダを作成および管理し、Ｏｕｔｌｏｏｋ内の他の活動を実行することができる。さらに、スレッド安全性を提供するために、イベントは、メインＵＩスレッドから呼び出され、コレクションクラスがｓｙｎｃｒｏｏｔをエクスポーズする。
【００５１】
スマートクライアントアドイン３６０は、３つの主な構成要素、すなわち同期マネージャ３７０、サービスエージェント３７２、ユーザインタフェース（ＵＩ）マネージャ３７４を含む。サービスエージェント３７２は、ウェブサービス３０２と共に働き、データを設定および取得するために、サーバ側にあるエンタープライズアプリケーション（たとえば、ＣＲＭシステム）と通信する。アプリケーションインタフェース３６２と通信するＵＩマネージャ３７４は、Ｗｉｎｄｏｗｓ（登録商標）プログラミングモデルの標準を利用し、必要なユーザインタフェースオブジェクトをカスタマイズする。また、ＵＩマネージャ３７４は、アドインビジネス論理（ＡｄｄＩｎ  Ｂｕｓｉｎｅｓｓ  ｌｏｇｉｃ）との関連で必要に応じてＯｕｔｌｏｏｋ（登録商標）オブジェクトと共に働くように、アプリケーションインタフェース３６２を介してエクスポーズされる必要なイベントすべてをトラップするために導管（ｃｏｎｄｕｉｔ）として働く。
【００５２】
同期マネージャ３７０は、Ｏｕｔｌｏｏｋによって記憶されたＣＲＭデータをＣＲＭシステム部のデータに同期するための方法のロジックを提供する。同期マネージャ３７０は、優先順位（たとえば、バックグラウンド／フォアグラウンド）およびタイミングについて構成することができる。同期マネージャ３７０は、サービスエージェント３７２、データクラス３８０、構成クラス３８２と通信する。また、サービスエージェント３７２とＵＩマネージャ３７４は共に、構成クラス３８２と通信する。同期マネージャ３７０は、サービスエージェント３７２を使用し、ＣＲＭシステム（データストア３２０）部の活動レコード、機会レコード、連絡先レコードにアクセスする。同期マネージャ３７０は、（データクラス３８０を介して）インタフェースマネージャ３７４を使用し、データストア３６６内に格納されている、ＣＲＭシステム部のデータ（たとえば、活動レコード、機会レコード、連絡先レコード）に対応する活動オブジェクト、機会オブジェクト、連絡先オブジェクトにアクセスする。
【００５３】
構成クラス３８２は、構成データストア３８４と通信し、スマートクライアントアドイン３６０用の構成データを管理するために使用される１組のオブジェクト指向ソフトウェアクラスである。同期マネージャ３７０、サービスエージェント３７２、ＵＩマネージャ３７４は、本明細書で述べられている様々な機能を実行するために、構成クラス３８２を介して構成データストア３８４を読み取ることになる。
【００５４】
データクラス３８０は、ＵＩマネージャ３７４、同期マネージャ３７０、アプリケーションインタフェース３６２と通信する。一実施形態では、データクラス３８０は、本明細書で論じられている様々なデータ項目と共に働くために使用される。
【００５５】
一実施形態では、同期マネージャ３７０、サービスエージェント３７２、ＵＩマネージャ３７４、データクラス３８０、構成クラス３８２はすべて、１つまたは複数のコンピューティングデバイス上で動作するソフトウェアコンポーネントである。
【００５６】
図８Ａは、アプリケーションインタフェース３６２の例示的な一実施形態のアーキテクチャについて説明するブロック図である。図８Ａは、Ｏｕｔｌｏｏｋアプリケーション３８６、コマンドバーモジュール３８７、名前モジュール３８８、アドレス帳モジュール３８９、フォームモジュール３９０を含むアプリケーション３６４を示す。Ｏｕｔｌｏｏｋアプリケーション３８６は、コアのコラボレーション、メッセージング、およびスケジューリングソフトウェアアプリケーションである。コマンドバーモジュール３８７は、ツールバーおよびメニューを実装するためのコードである。名前モジュール３８８は、Ｏｕｔｌｏｏｋアプリケーション３８６内のコードにアクセスするための名前のリストを提供する。グローバルアドレス帳３８９は、グローバルアドレス帳にアクセスするためのＡＰＩを提供する。フォームモジュール３９０は、Ｏｕｔｌｏｏｋアプリケーション３８６と共に使用される様々なフォームのための定義を含む。
【００５７】
アプリケーションインタフェース３６２は、ＣＯＭＡｄｄＩｎＳｈｉｍモジュール３９２、ローダモジュール３９３、コアモジュール３９４、診断モジュール３９５を含む。ＣＯＭＡｄｄＩｎＳｈｉｍモジュール３９２は、Ｏｕｔｌｏｏｋアプリケーション３８６およびローダモジュール３９３と通信する。一実施形態では、通信は双方向である。他の実施形態では、ＣＯＭＡｄｄＩｎＳｈｉｍモジュール３９２は、Ｏｕｔｌｏｏｋアプリケーション３８６から情報を受け取り、Ｏｕｔｌｏｏｋアプリケーションのインスタンスをローダモジュール３９３に与える。ＣＯＭＡｄｄＩｎＳｈｉｍモジュール３９２は、Ｏｕｔｌｏｏｋアプリケーション３８６用のＡＰＩを介して、スマートクライアントアドイン３６０をメモリにロードする。
【００５８】
ローダモジュール３９３は、スマートクライアントアドイン３６０を初期化し、スマートクライアントアドイン３６０のためのメインエントリポイントで実行を開始し、Ｏｕｔｌｏｏｋアプリケーションのインスタンスをスマートクライアントアドイン３６０に与える。また、ローダモジュール３９３は、コアモジュール３９４（に対して、または双方向で）と通信も行なう。
【００５９】
コアモジュールは、Ｏｕｔｌｏｏｋと対話するための機能を提供する。コア３９４は、メソッドオーバーロード、標準イベント、および診断処理を有するＯｕｔｌｏｏｋオブジェクトのラッピングクラスを提供し、共通インタフェースを有するオブジェクト（Ｍａｉｌ、Ｃｏｎｔａｃｔ、Ｔａｓｋなど）について継承チェーンを実装し、Ｏｕｔｌｏｏｋコレクションについてデータバインド可能なコレクションを実装し、グローバルアドレス帳に対するアクセスを提供し、任意の項目についてカスタムな．ＮＥＴフォームを作成すること、またはＯｕｔｌｏｏｋフォームのカスタマイズを可能にする。コアモジュール３９４は、コマンドバーモジュール３８７、名前モジュール３８８、アドレス帳モジュール３８９、フォームモジュール３９０（に対して、または双方向で）と通信する。
【００６０】
アプリケーションインタフェースオブジェクトは、ネイティブオブジェクトに対するあらゆる変更を通し、したがって、（いくつかの実施形態では）同期の必要がなくなる。カスタムなエニュメレータ（ｅｎｕｍｅｒａｔｏｒ）は、ＭＡＰＩＦｏｌｄｅｒ項目などネイティブコレクションのパススルー列挙（ｐａｓｓ−ｔｈｒｏｕｇｈ  ｅｎｕｍｅｒａｔｉｏｎ）を可能にする。システムは、ネイティブオブジェクトがもはやアプリケーションインタフェースオブジェクトによって使用されないとき、それらを解放するように設計される。ネイティブオブジェクトは、参照するアプリケーションインタフェースオブジェクトすべての参照カウントを保つためにハッシュキーとして使用される。アプリケーションインタフェースオブジェクトは、カウントをデクリメントすることを終わらせた（または、処理した）ことをキャッシュに通知し、グローバルレジストリは、それ以上参照がなくなった後でネイティブオブジェクトを解放するためのオブジェクトを呼び出す。ネイティブオブジェクトを即座に解放することにより、メモリリソースが解放され、性能が改善される。アプリケーションインタフェースラッパは、任意選択のパラメータを有するＯｕｔｌｏｏｋオブジェクトメソッドのためにメソッドオーバーロードを実装し、Ｏｕｔｌｏｏｋによって引き起こされたイベントを標準的なスタイルのイベントでラップする。
【００６１】
コアモジュール３９４に対して通信する診断モジュール３９５は、エラーレポートおよび例外処理を含む診断サービスを提供する。
【００６２】
一実施形態では、（スマートクライアントアドイン３６０、アプリケーションインタフェース３６２、アプリケーション３６４を含む）スマートクライアントは、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せを使用して実施することができる。たとえば、スマートクライアントは、デスクトップコンピュータ、ラップトップ、モバイルコンピューティングデバイス、または他のコンピューティングデバイスにおいて実装することができる。スマートクライアント技術は、どの特定のタイプのコンピューティングデバイスにも限定されない。スマートクライアントアドイン３６０、アプリケーションインタフェース３６２、アプリケーション３６４を実施するために使用されるデータおよびソフトウェアは、ハードディスクドライブ、ＣＤ−ＲＯＭ、ＤＶＤ、光ディスク、フロッピー（登録商標）ディスク、テープドライブ、ＲＡＭ、ＲＯＭ、フラッシュメモリ、または他の好適な記憶デバイスを含む１つまたは複数のプロセッサ可読記憶デバイスに記憶される。代替の実施形態では、一部またはすべてのソフトウェアを、カスタム集積回路、ゲートアレイ、ＦＰＧＡ、ＰＬＤ、専用プロセッサを含む専用ハードウェアによって置き換えることができる。一実施形態では、上述の構成要素を実施するソフトウェアを使用し、本明細書で述べられている機能／プロセスを実装するために１つまたは複数のプロセッサをプログラムする。１つまたは複数のプロセッサは、１つまたは複数の記憶デバイス（ハードディスクドライブ、ＣＤ−ＲＯＭ、ＤＶＤ、光ディスク、フロッピー（登録商標）ディスク、テープドライブ、ＲＡＭ、ＲＯＭ、フラッシュメモリ、または他の好適な記憶デバイス）、周辺機器（プリンタ、モニタ、キーボード、ポインティングデバイス）、および／または通信インタフェース（たとえば、ネットワークカード、ワイヤレス送信器／受信器など）と通信することができる。スマートクライアントは、通信インタフェースを介してＣＲＭシステムと通信することになる。
【００６３】
図９は、スマートクライアントのために使用される様々なデータクラス３８０のクラス階層を示す。ＢａｓｅＣＲＭＯｂｊｅｃｔ４００は、共通機能をトランザクションオブジェクト（ｔｒａｎｓａｃｔｉｏｎａｌ  ｏｂｊｅｃｔ）すべてにわたってカプセル化する基本クラスである。その共通機能は、ＣｕｒｒｅｎｔＳｔａｔｅ、ＩｓＤｉｒｔｙ、ＩｓＳｈａｄｏｗｅｄ、ＬｏｃａｌＩＤ、ＳｅｒｖｅｒＩＤ、ＳｅｒｖｅｒＴｉｍｅＳｔａｍｐのフィールド群／プロパティ群を使用して実装される。フィールドＣｕｒｒｅｎｔＳｔａｔｅは、オブジェクトの現在の状態を格納する。このフィールド／プロパティは、オブジェクトをサーバに同期させることが必要かどうか判定するために、同期マネージャ３７０によって使用されることになる。このプロパティは、４つの可能な値、すなわちＮｅｗ、ＩｎＳｙｎｃ、Ｕｐｄａｔｅｄ、ＩｎＥｄｉｔを有することができる。ＣｕｒｒｅｎｔＳｔａｔｅの値がＮｅｗである場合には、レコードが作成されたばかりであり、サーバに同期させることを必要とする。その後でそのレコードを編集しても、そのレコードの状態は変更されない。レコードは、クライアント上で作成された後で、サーバに同期されるまでＮｅｗ状態のままとなる。レコードのＣｕｒｒｅｎｔＳｔａｔｅがＩｎＳｙｎｃである場合には、現行レコードは、現在、サーバに同期されつつある。この状態にあるとき、レコードは、読取り専用とするべきである。現在の状態がＵｐｄａｔｅｄである場合には、レコードは新版であり、同期を実行することは必要とされない。現在の状態が「ＩｎＥｄｉｔ」である場合には、レコードは、現在、編集されつつあり、この時点では同期させるべきでない。
【００６４】
フィールド／プロパティＩｓＤｉｒｔｙは、最後の同期以来、レコードがクライアント上で修正されたかどうか判定するブール値である。同期マネージャ３７０は、このフィールド／プロパティを使用し、レコードをサーバに同期させることが必要かどうか判定することになる。フィールド／プロパティＩｓＤｉｒｔｙが設定されている場合には、ＣｕｒｒｅｎｔＳｔａｔｅフィールドは無視され、レコードは、次の同期サイクル中に同期されることになる。
【００６５】
フィールド／プロパティＩｓＳｈａｄｏｗｅｄは、レコードがシャドーコピーを有するかどうか判定する。スマートクライアント内の多数の項目は、Ｏｕｔｌｏｏｋ（登録商標）内で複製のストレージを有することになる。たとえば、ある活動は、その活動の所有権に応じて、あるアカウント下のＡｃｔｉｖｉｔｙフォルダ内、ならびに「ＭｙＡｃｔｉｖｉｔｉｅｓ」フォルダ内の両方に現れることがありうる。これらの項目は、同期およびユーザ編集中に特別な方法で扱うことを必要とする複数のコピーを有することになる。このフラグは、システムに、データの両方のコピーを更新するように警告する。別法として、システムは、データの１つのコピーを維持し、そのデータに対する複数のポインタを記憶することができる。したがって、ＩｓＳｈａｄｏｗｅｄフィールドが設定されている、操作される（たとえば、同期される、または編集される）データ項目は、両コピーが確実に更新されるようにすることを必要とすることになる。
【００６６】
ＬｏｃａｌＩＤフィールド／プロパティは、クライアント上で作成された新しいレコードについて、クライアントによって生成された一時的なローカル識別を保持する。ＳｅｒｖｅｒＩＤは、ＣＲＭシステムによって使用されるレコード用の識別を保持する文字列である。ＳｅｒｖｅｒＩＤは、ＣＲＭシステムによって作成され、各オブジェクト日付を一意に識別するために使用される。ＳｅｒｖｅｒＴｉｍｅＳｔａｍｐフィールド／プロパティは、レコードについてサーバタイムスタンプを保持する。ＳｅｒｖｅｒＴｉｍｅＳｔａｍｐは、レコードがサーバ上で更新された最後の日付／時間を示す。
【００６７】
ＢａｓｅＣＲＭＯｂｊｅｃｔクラス４００は、Ｅｄｉｔ、Ｕｐｄａｔｅ、Ｓａｖｅ、Ｒｅｓｅｔのメソッド群を使用する共通機能をカプセル化する。Ｅｄｉｔメソッドは、クライアント上で編集するためにオブジェクトをセットアップする。レコードをこの時点で編集することができない場合、このメソッドは、偽を返す。これは、レコードの同期が同期マネージャ３７０によって進行中である場合となる。Ｕｐｄａｔｅメソッドは、レコードが同期用にマークされる（マーク付けされる）ように、適切にレコード状態を更新する（たとえば、ＩｓＤｉｒｔｙフィールドが設定される）。Ｓａｖｅメソッドは、クライアント上で作成された新しいレコードについてレコード状態を修正する。Ｒｅｓｅｔメソッドは、レコードの状態を先の日付にリセットするために使用される。これは、ユーザが新しいレコードの更新または作成を取り消したとき使用される。
【００６８】
ＢａｓｅＣＲＭＰｏｓｔＩｔｅｍクラス４１０、ＢａｓｅＣＲＭＴａｓｋＩｔｅｍクラス４１２、ＢａｓｅＣＲＭＣｏｎｔａｃｔＩｔｅｍクラス４１４は、ＢａｓｅＣＲＭＯｂｊｅｃｔクラス４００から継承し、基本クラスを適切に上書きすることによって、オブジェクト特有の必要な機能を実装する。これらの３つのクラスの第１目的は、それらから導出される実際のデータクラスに、必要なフレームワークを提供することである。たとえば、Ｏｕｔｌｏｏｋ（登録商標）タスク項目として実装される活動クラス４２４は、ＢａｓｅＣＲＭＴａｓｋＩｔｅｍクラス４１２から継承することになる。Ａｃｃｏｕｎｔｓクラス４２０およびＯｐｐｏｒｔｕｎｉｔｙクラス４２２は、ＢａｓｅＣＲＭＰｏｓｔＩｔｅｍクラス４１０から継承する。というのは、Ｏｐｐｏｒｔｕｎｉｔｉｅｓ（機会）とＡｃｃｏｕｎｔｓ（アカウント）が共にＯｕｔｌｏｏｋ（登録商標）ポスト項目にマップされるからである。最後に、Ｃｏｎｔａｃｔクラス４２６は、ＢａｓｅＣＲＭＣｏｎｔａｃｔＩｔｅｍクラス４１４から導出される。このレイヤをクラス階層内に導入することにより、将来、必要なフレームワークを定位置に有する追加のトランザクションクラスを作成することが可能になる。これらのクラスは、対応するＯｕｔｌｏｏｋ（登録商標）項目を内部で集約し、実行時に、データクラスオブジェクトに対してＯｕｔｌｏｏｋ（登録商標）項目を着脱するためのメソッドを提供する。ＢａｓｅＣＲＭＯｂｊｅｃｔクラス４００、ＢａｓｅＣＲＭＰｏｓｔＩｔｅｍクラス４１０、ＢａｓｅＣＲＭＴａｓｋＩｔｅｍクラス４１２、ＢａｓｅＣＲＭＣｏｎｔａｃｔＩｔｅｍクラス４１４、Ａｃｃｏｕｎｔクラス４２０、Ｏｐｐｏｒｔｕｎｉｔｙクラス４２２、Ａｃｔｉｖｉｔｙクラス４２４、Ｃｏｎｔａｃｔクラス４２６はすべて、スマートクライアントアドイン名前空間４５０内にある。
【００６９】
Ａｃｃｏｕｎｔクラス４２０およびＯｐｐｏｒｔｕｎｉｔｙクラス４２２は、Ｐｏｓｔクラス４３０を集約する。Ａｃｔｉｖｉｔｙクラス４２４は、Ｔａｓｋクラス４３２を集約する。Ｃｏｎｔａｃｔクラス４２６は、Ｃｏｎｔａｃｔクラス４３４を集約する。Ｐｏｓｔクラス４３０、Ｔａｓｋクラス４３２、Ｃｏｎｔａｃｔクラス４３４は、Ｏｕｔｌｏｏｋ（登録商標）名前空間４５２内にある。Ｐｏｓｔクラス４３０は、ＡｃｃｏｕｎｔレコードおよびＯｐｐｏｒｔｕｎｉｔｙレコードをＯｕｔｌｏｏｋ（登録商標）オブジェクトデータストア３６６内に格納するオブジェクトを作成するために使用される。Ｔａｓｋクラス４３２は、ＡｃｔｉｖｉｔｙレコードをＯｕｔｌｏｏｋ（登録商標）データストア３６６内に格納するオブジェクトを作成するために使用される。Ｃｏｎｔａｃｔクラス４３４は、連絡先情報をＯｕｔｌｏｏｋ（登録商標）オブジェクトデータストア内に格納するオブジェクトを作成するために使用される。これらのオブジェクトのための１次データフィールドは、Ｏｕｔｌｏｏｋ（登録商標）データオブジェクトのカスタムプロパティを使用して実装される。すなわち、ＣＲＭシステムオブジェクト（たとえば、Ａｃｃｏｕｎｔ、Ｏｐｐｏｒｔｕｎｉｔｙ、Ａｃｔｉｖｉｔｙ、Ｃｏｎｔａｃｔ）内の各フィールドについて、カスタムプロパティがＯｕｔｌｏｏｋ（登録商標）オブジェクト（たとえば、ポスト４３０、タスク４３２、連絡先４３４）内で作成される。諸項目に関連付けられたデータセットもまたカスタムプロパティとして格納されるが、この場合には、データすべてがＸＭＬ文字列にシリアル化（ｓｅｒｉａｌｉｚｅｄ）され、次いでカスタムプロパティ内に格納される。たとえば、ＩＴ予算情報は、ＸＭＬ文字列の形にシリアル化される。
【００７０】
一実施形態では、アカウントオブジェクト用に使用することができる１組のフィールド（たとえば、ポストオブジェクト４３０内のカスタムフィールド）は、住所１、住所２、住所３、市、州、郵便番号、国、所在地、名前、下位地区、下位区分、パレントレベル（ｐａｒｅｎｔ  ｌｅｖｅｌ）、親会社、親所在地、子会社、販売広域区、販売地区、垂直産業（ｖｅｒｔｉｃａｌ  ｉｎｄｕｓｔｒｙ）、カテゴリ、電話、ファックス、ウェブサイト、アカウントチーム、販売ＩＤ、年間収入、ＩＴ予算を含む。ユーザインタフェース、およびアカウント用のデータを作成／編集／閲覧することに関連して上記で論じた任意のフィールドを含めて、他のフィールドを含むこともできる。
【００７１】
一実施形態では、機会オブジェクト用のフィールド（たとえば、ポストオブジェクト４３０内のカスタムフィールド）は、機会名、会社名、説明、販売ステージ、期日、機会タイプ、機会所有者、状況、通貨コード、ライセンシングプログラム、ライセンシングサブタイプ、チームリーダ、予測フラグ、クリティカル取引フラグ、締め日および作成日を含む。ユーザインタフェース、および機会用のデータを作成／編集／閲覧することに関連して上記で論じた任意のフィールドを含む他のフィールドを含むこともできる。
【００７２】
一実施形態では、Ａｃｔｉｖｉｔｙオブジェクト用のフィールド（たとえば、タスク４３２内のカスタムフィールド）は、説明、所有者、タイプ、カテゴリ、目的、期日、連絡先名、会社名、関連する機会、状況、コメントを含む。ユーザインタフェース、および活動用のデータを作成／編集／閲覧することに関連して上記で論じた任意のフィールドを含む他のフィールドを含むこともできる。
【００７３】
一実施形態では、Ｃｏｎｔａｃｔオブジェクト用のフィールド（たとえば、連絡先オブジェクト４３４内のカスタムフィールド）は、プレフィクス（ｐｒｅｆｉｘ）、名、姓、職位、仕事の役割（ｊｏｂ  ｒｏｌｅ）、部門、電子メール、電話番号、移動電話番号、ファックス、主要な連絡先、会社名、顧客満足度調査フラグ、職場住所、および、郵便物、電子メール、ファックス、電話が可能かどうかの諸指示を含むことができる。ユーザインタフェース、および連絡先用のデータを作成／編集／閲覧することに関連して上記で論じた任意のフィールドを含む他のフィールドを含むこともできる。
【００７４】
本考察は、フィールドのどの特定の組にも限定されない。様々な実施形態で、特定の実装に適したフィールドの様々な組を使用することができる。
【００７５】
また、ドメインクラス４４２もあり、これはスマートクライアントアドイン名前空間４５０内にある。このドメインクラスは、ドメイン情報を格納するために使用される。一実施形態では、ドメイン情報は、ユーザが変更することができない構成情報およびシステム情報を含むことができる。システム情報の諸例には、リンクに関する情報、変更することができないアカウントに関する情報、ユーザインタフェースに関する情報、様々なメニューに関する情報などを含めることができる。ドメインクラス４４２は、．ＮＥＴフレームワーク内の名前空間４５４内にあるオブジェクトクラス４４４を拡張する。
【００７６】
ＩＶ．データの変換
生産性を高めるための１つの機能は、ＣＲＭ（または他のアプリケーション）プラットフォームとスマートクライアントプラットフォーム（たとえば、コラボレーション、メッセージング、およびスケジューリングアプリケーションプラットフォーム−Ｏｕｔｌｏｏｋ（登録商標）プラットフォーム）との間で変換を可能にすることである。たとえば、ＣＲＭデータ項目をＯｕｔｌｏｏｋ（登録商標）データ項目に、かつ／またはＯｕｔｌｏｏｋ（登録商標）データ項目をＣＲＭデータ項目に変換することが可能であることは、有用でありうる。
【００７７】
図１０は、データ項目をＯｕｔｌｏｏｋ（登録商標）からＣＲＭシステム（たとえば、Ｓｉｅｂｅｌ  ＣＲＭシステム）に変換するためのプロセスの一実施形態について説明する流れ図である。ステップ５０２では、ユーザは、特定のデータ項目をＯｕｔｌｏｏｋ（登録商標）データ項目からＣＲＭデータ項目に変換させることを要求する。一実施形態では、ユーザは、トップレベルメニュー１０から「ＭｙＣＲＭ」ドロップダウンメニュー内の「ｃｏｎｖｅｒｔ  ｔｏ  ＣＲＭ（ＣＲＭに変換）」を選択することになる。この要求は、リストペイン内で選択されている現行データオブジェクトについてのものである。別法として、ユーザが（たとえば、リストペイン１６内で、オブジェクト上でダブルクリックすることによって）オブジェクトを開いたとき、その特定のＯｕｔｌｏｏｋ（登録商標）オブジェクトを特定のＣＲＭアプリケーションオブジェクトに変換することを選択するために、ドロップダウンメニュー項目、ボタン、音声認識ツール、または他のユーザインタフェース項目が存在しうる。ユーザインタフェース項目により、システムによって許された可能性から、作成すべきＣＲＭオブジェクトのタイプを選択することができるようになる。そのＯｕｔｌｏｏｋ項目をＣＲＭデータ項目に変換するべきであることを選択した後で、その項目をアカウントに関連付けるために、ピックリストメニューが提供される。可能なアカウントのリストが提供されることになる。ユーザは、その新しいＣＲＭデータ項目に関連付けるために、アカウントを選択することができる。
【００７８】
ステップ５０４では、Ｏｕｔｌｏｏｋ（登録商標）名前空間４５２内のＣＲＭオブジェクトが作成される。したがって、そのＣＲＭオブジェクトを連絡先とするべきである場合には、連絡先オブジェクト４３４が作成される。作成されるＣＲＭオブジェクトが活動オブジェクトである場合には、タスクオブジェクト４３２が作成される。そのＣＲＭオブジェクトをアカウントオブジェクトまたは機会オブジェクトとするべきである場合には、ポストオブジェクト４３０が作成される。ステップ５０６では、Ｏｕｔｌｏｏｋ（登録商標）オブジェクト内の関連データが、Ｏｕｔｌｏｏｋ（登録商標）オブジェクトからアクセスされる。いくつかの実施形態では、データすべてがＣＲＭオブジェクトに変換されることにはならない。下記で論じるように、１組の規則により、どのデータを変換するべきであり、どのデータを変換するべきでないか定義されることになる。ステップ５０８では、ステップ５０６でアクセスされたデータが、ステップ５０４で作成された新しいＣＲＭオブジェクト内の様々なフィールド内に自動的に充填される。ステップ５１０では、追加のデフォルトデータが新しいＣＲＭオブジェクトに自動的に追加される。いくつかの実施形態では、ステップ５１０は、ステップ５０８の前に、かつ／またはステップ５０６の前に実行することができることに留意されたい。デフォルトデータは、ユーザ別名に基づいて選ぶことができる。すなわち、ユーザが信任状（ユーザ名／別名およびパスワード）を提供することによってコンピュータにログインしたとき、システムは、ユーザが誰であるかわかる。システムは、ユーザの識別に基づいて、ある種のデフォルトデータを決定することができる。
【００７９】
ステップ５１２では、（活動、機会、連絡先用の、上記で論じたポップアップフォームと同様の）ポップアップフォームが、新たに作成されたＣＲＭオブジェクトからのデータと共に提示されることになる。ステップ５１４では、ユーザは、そのデータを編集する機会を有することになる。ステップ５１６では、そのデータを保存することをユーザが要求したことに応答して、ステップ５１６で新しいオブジェクトがＯｕｔｌｏｏｋ（登録商標）データストア内に保存される。ステップ５１８では、（Ｏｕｔｌｏｏｋ（登録商標）オブジェクトからの変換に基づいて）新たに作成されたオブジェクトがＣＲＭシステム内に格納されるように、Ｏｕｔｌｏｏｋ（登録商標）データストアがＣＲＭデータストアに同期される。同期は、即座に起こることも、後で（たとえば、予定された同期時間に）起こることもありうることに留意されたい。
【００８０】
図１１は、ＣＲＭオブジェクトをＯｕｔｌｏｏｋ（登録商標）オブジェクトに変換するためのプロセスの一実施形態について説明する流れ図である。たとえば、ユーザは、ＣＲＭシステム内の連絡先を、ユーザのＯｕｔｌｏｏｋ（登録商標）連絡先に追加したいと望む場合がある。そうするために、図１１のプロセスが実行されることになる。
【００８１】
図１１のステップ５４２では、ユーザは、現行ＣＲＭオブジェクトがＯｕｔｌｏｏｋ（登録商標）項目に変換されることを要求する。たとえば、ユーザは、リストペイン１６内でＣＲＭオブジェクトを選択することができる。ユーザは、「ＭｙＣＲＭ」トップレベルメニュー１０内のドロップダウンメニューからＯｕｔｌｏｏｋ（登録商標）に変換するためのオプションを選ぶことができる。さらに、ユーザがポップアップフォームにアクセス中である場合、そのポップアップフォームは、Ｏｕｔｌｏｏｋ（登録商標）に変換するためのドロップダウンメニュー、ボタン、または他のユーザインタフェース項目を含むことができる。そのユーザインタフェース項目は、許されている可能性から、どのタイプのＯｕｔｌｏｏｋ（登録商標）項目を変換するかについて選択肢を提供することになる。
【００８２】
ステップ５４４では、ステップ５４２での要求に応答して、新しいＯｕｔｌｏｏｋ（登録商標）オブジェクトが作成されることになる。作成されたＯｕｔｌｏｏｋ（登録商標）オブジェクトは、Ｏｕｔｌｏｏｋ（登録商標）ソフトウェアアプリケーション用に使用される標準的なＯｕｔｌｏｏｋ（登録商標）オブジェクトとなり、Ｏｕｔｌｏｏｋ（登録商標）データストア３６６内に格納されることになる。ステップ５４６では、変換される関連データがアクセスされることになる。ＣＲＭシステムオブジェクトからのデータすべてがＯｕｔｌｏｏｋ（登録商標）に変換されることにはならないことに留意されたい。どの特定のフィールドが変換されることになるかは、下記で述べるように、前もって予め定義されることになる。それらの予め定義されたフィールドは、ステップ５４６でアクセスされる。ステップ５４８では、ステップ５４６でアクセスされたフィールドが、Ｏｕｔｌｏｏｋ（登録商標）オブジェクト内の適切なフィールド内に自動的に充填される。ステップ５５０では、デフォルトデータがＯｕｔｌｏｏｋ（登録商標）オブジェクトに自動的に追加される。いくつかの実施形態では、一部またはすべてのデフォルトデータは、ユーザ別名、ＣＲＭ内のオブジェクトが関係するアカウント、または他の基準に基づくものとすることができる。ステップ５５２では、新たに作成されたＯｕｔｌｏｏｋ（登録商標）項目用のデータが、編集可能な形態で表示される。ステップ５５４では、ユーザは、新たに作成されたＯｕｔｌｏｏｋ（登録商標）オブジェクト内のデータを編集することができるようになる。ステップ５５６では、ユーザは新しいＯｕｔｌｏｏｋ（登録商標）項目を保存することができ、これによりＧＵＩが更新されることになる。
【００８３】
一実施形態では、ＣＲＭ機会をＯｕｔｌｏｏｋ（登録商標）カレンダアポイントメントに変換することができる。Ｏｕｔｌｏｏｋ（登録商標）電子メールおよびＯｕｔｌｏｏｋ（登録商標）カレンダアポイントメントは、共にＣＲＭ機会に変換することができる。ＣＲＭ活動は、Ｏｕｔｌｏｏｋ（登録商標）カレンダアポイントメントまたはＯｕｔｌｏｏｋ（登録商標）タスクに変換することができる。Ｏｕｔｌｏｏｋ（登録商標）カレンダアポイントメントおよびＯｕｔｌｏｏｋ（登録商標）タスクは共に、ＣＲＭ活動に変換することができる。ＣＲＭ連絡先は、Ｏｕｔｌｏｏｋ（登録商標）連絡先に変換することができる。Ｏｕｔｌｏｏｋ（登録商標）連絡先、Ｏｕｔｌｏｏｋ（登録商標）電子メールメッセージ、Ｏｕｔｌｏｏｋ（登録商標）カレンダアポイントメントは、ＣＲＭ連絡先に変換することができる。これらの変換のそれぞれについて、下記でより詳しく述べる。上記でリストされている変換を行うとは言えないシステム、または追加の／異なる変換を行うシステムもまた、本考察の範囲内にあることに留意されたい。
【００８４】
Ｏｕｔｌｏｏｋ（登録商標）カレンダアポイントメントをＣＲＭ機会に変換するとき、Ｏｕｔｌｏｏｋ（登録商標）オブジェクトからの読取り（ステップ５０６）に基づいて、以下のフィールドが新しいＣＲＭ機会オブジェクト内に自動的に充填される（ステップ５０８）。第１に、アポイントメントの件名行（ｓｕｂｊｅｃｔ  ｌｉｎｅ）が、機会オブジェクトの機会名フィールドに格納される。第２に、Ｏｕｔｌｏｏｋ（登録商標）アポイントメントのテキストまたは説明フィールドが、機会オブジェクトの機会説明フィールド内に格納される。第３に、Ｏｕｔｌｏｏｋ（登録商標）システムを動作させるユーザのためのユーザ別名が、ＣＲＭ機会オブジェクトの機会所有者フィールドに追加される。さらに、タイプ、状況、販売ステージ、通貨コード、機会チーム１次レコード、機会チーム「活動中（ａｃｔｉｖｅ）」フラグ、のフィールド群がデフォルトデータを受け取る（ステップ５１０）。タイプフィールドには、文字列「ｓｔａｎｄａｒｄ（標準）」がロードされる。状況フィールドは、活動中としてロードされる。販売ステージは、「ｐｒｏｓｐｅｃｔ  ０％（見込み０％）」として選ばれる。通貨コードは、米国ドルとして設定される。機会チーム１次レコードは、ユーザ別名を含む。機会チーム活動中フラグは、真に設定される。さらに、いくつかの実施形態では、新たに作成された機会をそのユーザについての既存のアカウントに関連付けるためのダイアログボックスがユーザに提供される。
【００８５】
Ｏｕｔｌｏｏｋ（登録商標）内の電子メール項目がＣＲＭシステム内の機会オブジェクトに変換されるとき、電子メール件名行は機会名になり、電子メールテキストは機会説明になり、Ｏｕｔｌｏｏｋ（登録商標）別名は機会所有者になる。さらに、タイプ、状況、販売ステージ、通貨コード、機会チーム１次レコード、機会チーム「活動中」フラグは、カレンダアポイントメントに関連して上述したように、デフォルトデータに設定される。
【００８６】
ＣＲＭ機会項目がＯｕｔｌｏｏｋ（登録商標）カレンダアポイントメントに変換されるとき、機会名は、アポイントメントの件名フィールド内にロードされ、機会説明は、アポイントメントの説明またはテキストフィールド内にロードされ、機会期日は、カレンダアポイントメントの開始時日付および終了時日付内にロードされる。さらに、Ｏｕｔｌｏｏｋ（登録商標）オブジェクト内の終日イベントフラグは、終日イベントを示すように設定される。
【００８７】
ＣＲＭ活動をＯｕｔｌｏｏｋ（登録商標）カレンダアポイントメントに変換するとき、活動説明フィールドは、Ｏｕｔｌｏｏｋ（登録商標）件名フィールドにマップされ、活動期日は、カレンダアポイントメント日付にマップされ、活動コメントは、カレンダアポイントメントテキストにマップされる。ＣＲＭ活動をＯｕｔｌｏｏｋ（登録商標）タスクに変換するとき、活動説明は、Ｏｕｔｌｏｏｋ（登録商標）タスク件名フィールドにマップされ、活動期日は、タスク期日にマップされ、活動コメントフィールドは、タスクテキストにマップされる。
【００８８】
Ｏｕｔｌｏｏｋ（登録商標）カレンダアポイントメントを新しいＣＲＭ活動に変換するとき、カレンダアポイントメントの件名行は、活動説明にマップされ、カレンダアポイントメント日付は、活動期日にマップされ、カレンダアポイントメントテキストは、活動コメントフィールドにマップされ、Ｏｕｔｌｏｏｋ（登録商標）を動作させるユーザの別名は、活動所有者フィールドにマップされる。さらに、活動タイプフィールドは、デフォルトの「ｍｅｅｔｉｎｇ（ミーティング）」になる。
【００８９】
Ｏｕｔｌｏｏｋ（登録商標）電子メール項目がＣＲＭ活動に変換されつつあるとき、電子メール件名行は、活動説明フィールドにマップされ、電子メールテキストは活動コメントフィールドにマップされ、電子メールユーザのためのＯｕｔｌｏｏｋ（登録商標）別名は、活動所有者にマップされる。
【００９０】
Ｏｕｔｌｏｏｋ（登録商標）タスクをＣＲＭ活動に変換するとき、タスク件名フィールドは、活動説明フィールドにマップされ、タスク期日フィールドは、活動期日フィールドにマップされ、テキストは、活動コメントにマップされ、Ｏｕｔｌｏｏｋ（登録商標）別名は、活動所有者にマップされる。
【００９１】
Ｏｕｔｌｏｏｋ（登録商標）カレンダアポイントメントからＣＲＭ連絡先に変換するとき、カレンダアポイントメントのタイトルは、ＣＲＭ連絡先の接頭辞にマップされ、Ｏｕｔｌｏｏｋ（登録商標）アポイントメントのｆｒｏｍ（発信元）（姓）フィールドは、ＣＲＭ連絡先の姓にマップされ、Ｏｕｔｌｏｏｋ（登録商標）アポイントメントのｆｒｏｍ（名）フィールドは、ＣＲＭ連絡先の名にマップされ、送信者の電子メールアドレスは、ＣＲＭ連絡先用の１次電子メールアドレスにマップされ、Ｏｕｔｌｏｏｋ（登録商標）別名は、ＣＲＭ連絡先オブジェクト用の連絡先チーム１次フィールドにマップされる。さらにＣＲＭ連絡先の主要連絡先フィールドは、デフォルトの「Ｙｅｓ（はい）」になる。
【００９２】
Ｏｕｔｌｏｏｋ（登録商標）電子メールからＣＲＭ連絡先に変換するとき、電子メールのタイトルは、連絡先の接頭辞にマップされ、ｆｒｏｍフィールド（姓）は、連絡先の姓にマップされ、ｆｒｏｍフィールド（名）は、連絡先の名にマップされ、送信者の電子メールアドレスは、連絡先用の１次電子メールアドレスにマップされ、Ｏｕｔｌｏｏｋ（登録商標）別名は、連絡先チーム１次名にマップされる。さらに主要連絡先フィールドは、値「Ｙｅｓ」に設定される。
【００９３】
Ｏｕｔｌｏｏｋ（登録商標）連絡先とＣＲＭ連絡先の間で変換するとき、以下のマッピングが適用される。すなわち、Ｏｕｔｌｏｏｋ（登録商標）連絡先のタイトルは、ＣＲＭ連絡先内の接頭辞にマップされ、Ｏｕｔｌｏｏｋ（登録商標）連絡先の姓は、ＣＲＭ連絡先の姓にマップされ、Ｏｕｔｌｏｏｋ（登録商標）連絡先の名は、ＣＲＭ連絡先オブジェクトの名にマップされ、Ｏｕｔｌｏｏｋ（登録商標）連絡先の電子メールアドレスは、ＣＲＭ連絡先用の１次電子メールアドレスにマップされ、Ｏｕｔｌｏｏｋ（登録商標）連絡先用のビジネス電話は、ＣＲＭ連絡先用の電話番号フィールドにマップされ、Ｏｕｔｌｏｏｋ（登録商標）ユーザ用のユーザ別名は、ＣＲＭ連絡先用の連絡先チーム１次フィールドにマップされ、Ｏｕｔｌｏｏｋ（登録商標）連絡先用の移動電話フィールドは、ＣＲＭ連絡先用の移動電話フィールドにマップされ、Ｏｕｔｌｏｏｋ（登録商標）連絡先用のファックスフィールドは、ＣＲＭ連絡先用のファックスフィールドにマップされる。ＣＲＭ連絡先を作成するとき、主要連絡先フィールドは、デフォルトの「Ｙｅｓ」になる。さらに、（ユーザのアカウントの選択に基づいて）子会社が明らかである場合には、そのデータをデフォルトによって自動的に充填することができる。
【００９４】
一実施形態では、ＣＲＭオブジェクトに変換されたＯｕｔｌｏｏｋオブジェクトすべてがスマートタグ付けされることに留意されたい。すなわち、スマートクライアントアドインは、Ｏｕｔｌｏｏｋ（登録商標）電子メール、カレンダアポイントメント、連絡先、タスクに対して、それらがＳｉｅｂｅｌレコードに変換された後で、「このＯｕｔｌｏｏｋ（登録商標）項目は、以下の日付で、以下の別名によってＳｉｅｂｅｌレコードに変換されている」と示すメッセージと共に、スマートタグ（たとえば、説明フィールド内のカスタムフィールドまたはテキスト）を追加する。一実施形態では、スマートタグは、ＳｉｅｂｅｌレコードのｓｅｒｖｅｒＩＤを識別することになる。
【００９５】
同様に、スマートタグは、Ｓｉｅｂｅｌレコードから作成されたＯｕｔｌｏｏｋ（登録商標）項目に追加することができる。このスマートタグは、ＳｉｅｂｅｌレコードのｓｅｒｖｅｒＩＤを含むことができる。
【００９６】
Ｖ．同期
スマートクライアントは、様々なシステムからのデータを集め、更新するために、複数のシステムに同期させることができる。同期マネージャ３７０は、（ウェブサービス３０２を介して通信する）エージェント３７２を使用して、Ｏｕｔｌｏｏｋ（登録商標）ストレージ３６６とＣＲＭシステム（または他のシステム）間のこの同期プロセスに責任を担う。同期マネージャ３７０は、定義されたスケジュールで別々のワーカスレッド（ｗｏｒｋｅｒ  ｔｈｒｅａｄ）として動作することになる。スケジュールは、スマートクライアントアドイン３６０が起動する時点で、（構成データストア３８４内に格納された）構成ファイルから取り出されることになる。異なるタイプのデータについて異なるスケジュールが存在する可能性がある。たとえば、トランザクションＣＲＭデータ用のスケジュールは、ドメインデータ用のスケジュールより頻繁に同期を必要とする場合がある。また、同期マネージャ３７０は、ユーザがユーザインタフェースを介して同期サイクルを即座に実行するように要求することができることを意味するオンデマンド同期もサポートすることになる。たとえば、ユーザは、ドロップダウンメニュー１０から「ＭｙＣＲＭ」を選択し、同期プロセスが即座に実行されることを選択することができる。また、ユーザは、このドロップダウンメニューを使用して、構成データを変更し、新しい構成データに異なる同期スケジュールをロードさせることができる。
【００９７】
一実施形態では、同期構成情報は、少なくとも３つのデータ項目、すなわちｄｏｍａｉｎｆｒｅｑｕｅｎｃｙ、ｔｒａｎｓａｃｔｉｏｎｆｒｅｑｕｅｎｃｙ、ｓｙｎｃｏｆｆｌｉｎｅｆｒｅｑｕｅｎｃｙを含む。ｄｏｍａｉｎｆｒｅｑｕｅｎｃｙは、最後の同期の後で、その後ドメインデータを同期させることを必要とする分単位の時間である。ｔｒａｎｓａｃｔｉｏｎｆｒｅｑｕｅｎｃｙは、最後の同期の後で、その後トランザクションデータを同期させることを必要とする分単位の時間である。ｓｙｎｃｏｆｆｌｉｎｅｆｒｅｑｕｅｎｃｙは、その後同期スレッドが、Ｏｕｔｌｏｏｋ（登録商標）のオンライン／オフライン状況を決定するためにウェークアップする分単位の時間である。一実施形態では、スマートクライアントアドイン用の構成は、ＸＭＬファイルを使用して移植されることになる。以下は、構成ファイル例である。
【００９８】
【数３】
2006134294.tif 000005
【００９９】
上記のＸＭＬコードでは、<Agent>セクションが、エージェントコンポーネントによって必要とされる構成項目を含むことになる。これは、Ｓｉｅｂｅｌウェブサービス用のサーバ名と、様々なＳｉｅｂｅｌウェブサービスに対する相対ＵＲＬエンドポイント（ｒｅｌａｔｉｖｅ  ＵＲＬ  ｅｎｄｐｏｉｎｔ）とを含む。<Sync Frequency>セクションは、同期スケジュール関連構成情報を含むことになる。<local data>セクションは、パススルードメインファイルなど、クライアントマシン内のローカルストレージに関係する構成項目すべてにコンタクトすることになる。いくつかの実施形態では、アカウントデータの同期は予め設定される（たとえば、３０日）。他の実施形態では、構成ファイルは、アカウントデータについて同期期間を設定するためのエントリを含むことになる。
【０１００】
同期マネージャは、上記のファイルをチェックし、同期を実行するために様々な時間を決定することになる。同期マネージャ３７０は、その構成情報に照らして、同期サイクルを実行することになる。一実施形態では、同期サイクルは、アップ同期（ｕｐ  ｓｙｎｃ）動作と、それに続くダウン同期（ｄｏｗｎ  ｓｙｎｃ）動作を実行することとして定義される。アップ同期動作は、スマートクライアント上のＣＲＭデータオブジェクトに加えられた変更および／または追加をサーバに同期するプロセスである。ダウン同期動作は、更新された新しいレコードをサーバから取り出し、これらのレコードのスマートクライアントコピーを更新するプロセスである。
【０１０１】
図１２は、同期サイクルを実行するためのプロセスの一実施形態について説明する流れ図である。ステップ５８０では、同期スレッドが起動／ウェークアップする。ステップ５８２では、同期スレッドが、Ｏｕｔｌｏｏｋ（登録商標）がオンラインであるかどうか判定する。Ｏｕｔｌｏｏｋ（登録商標）がオンラインでない場合には、ステップ５８４で同期スレッドがスリープに戻る。Ｏｕｔｌｏｏｋ（登録商標）がオンラインである場合には、同期スレッドは、ウェブサービス３０２が使用可能であるかどうか判定する。これはエージェント３７２を使用して行われる。ウェブサービスが使用可能でない場合には、ステップ５８４で同期スレッドがスリープに戻る。ウェブサービスが使用可能である場合には、ステップ５８８で、ドメインデータを同期させることを必要とするかどうか判定される。ドメインデータは、通常ユーザによって変更されないシステムデータである。一実施形態では、ドメインデータは、３０日ごとに同期される。他の実施形態では、他の時間を使用することができる。ドメインデータを同期させるべきである場合には、ステップ５９０でそのドメインデータが同期される。ステップ５９２では、アカウントデータが同期される。アカウントデータは、様々なアカウントのそれぞれに関する情報であり、通常ユーザによって変更されない。ステップ５８８でドメインデータを同期させることを必要としないことが判定された場合には、ドメインデータを同期することなしに、ステップ５９２で、プロセスは、（アカウントデータを同期する時間である場合）同期させることを必要とするアカウントデータを同期することに進む。アカウントデータを同期した後で、ステップ５９４で、（トランザクションデータを同期する時間である場合）同期させることを必要とするトランザクションデータが同期される。トランザクションデータは、Ｃｏｎｔａｃｔｓ、Ｏｐｐｏｒｔｕｎｉｔｉｅｓ、Ａｃｔｉｖｉｔｉｅｓに関する可変データであり、これらは通常、ユーザが変更することができる。ステップ５９６では、どれだけの時間、同期スレッドがスリープするべきか判定される。これは、上述の構成情報に基づくものである。ステップ５９８では、システムは、トランザクションデータ、アカウントデータ、および／またはドメインデータについて最後の同期が行われた時間を記憶する。次いで、ステップ５８４で、同期スレッドがスリープに進む。おそらくは読取り専用である可能性があるいくつかのアカウントデータがある。
【０１０２】
図１３および図１４は、ドメインデータを同期する（図１２のステップ５９０）ためのより詳細について説明する流れ図である。図１３および図１４のプロセスは、独立したスレッドであり、逐次または同時に動作することができる。図１３のステップ６２０では、それ以上の処理すべきドメインデータがあるかどうか判定される。このステップが初めて稼動されたとき、ドメインデータがある可能性が高い。ドメインデータすべてが処理されたとき、図１３の方法は完了する。それ以上の処理すべきドメインデータがある場合には、ステップ６２２で、次のドメインデータファイルがアクセスされる。一実施形態では、ドメインデータは、ドメインデータファイル内に格納される。典型的には、システムは、探すためにドメインデータファイルのリストを有することになる。ステップ６２４では、システムが探している特定のファイルが存在する場合には、そのドメインデータを同期させることを必要とするかどうか判定される。ドメインデータを同期させるべきでない場合には、プロセスは、ステップ６２０にループして戻る。ドメインデータを同期させることを必要とする場合には、ステップ６２８で、その特定のファイルが同期のためにマークされ、次いで、プロセスは、ステップ６２０にループして戻る。ステップ６２４でファイルが存在しないことが判定された場合には、ファイルは同期のためにマークされる。典型的には、ドメインデータ同期の場合、ＣＲＭサーバに記憶されたドメインデータは、スマートクライアントに書き込まれる。スマートクライアントからサーバへのアップ同期はない。したがって、ファイルが存在しない場合には、そのファイルをサーバから取り出さなければならない。ファイルが非常に古く、同期させることを必要とする場合には、依然としてサーバ上にある現行ファイルによってそのファイルが上書きされる。
【０１０３】
図１４のプロセスは、データをサーバから取り出すためのステップを含む。システムは、同期させることを必要とするドメインデータファイルすべてをループする。ステップ６５０で１つのデータファイルがアクセスされる。そのデータファイル用の新しいドメインデータが、ステップ６５２でサーバから取り出される。その取り出されたドメインデータは、ステップ６５４で、アクセスされたファイルに格納される。それ以上の考慮すべきファイルがない場合、図１４のプロセスは終了する。それ以上の、考慮すべきファイルがある場合には、追加のデータを取り出すことができるように、プロセスは、６５０へループして戻る。
【０１０４】
図１５、１６、１７は、アカウントデータを同期するためのプロセス（図１２のステップ５９２）のより詳細を提供する。図１５は、アカウントデータを同期するための全体的なプロセスを提供する。図１６は、古いアカウントフォルダを削除するためのプロセスについて説明する。図１７は、他のアプリケーションからデータにアクセスするためのプロセスに関する詳細を提供する。一実施形態では、図１５、１６、１７のプロセスのそれぞれは、同時または逐次に動作する別々のスレッドである。いくつかの実施形態では、スレッドは、互いに依存するものとすることができる。
【０１０５】
図１５のステップ６７０では、サービスマネージャ３７０は、ＣＲＭアプリケーションからアカウントデータを得るために、エージェント３７２に要求を行う。同期マネージャ３７０は、アカウントのリストを有することになる。これは、アカウントリストと呼ばれる。アカウントリスト上の各アカウントについて、そのアカウント用のアカウントデータを得るために、ウェブサービス３０２に要求が行われる。ステップ６７２では、アカウントデータがウェブサービス３０２から受信される。さらに、最後の同期以来サーバ上で作成された任意の新しいアカウントが、同期マネージャ３７０に返送される。ステップ６７４では、データが存在するアカウントすべてのリストと共に、（ピックリストとも呼ばれる）ダイアログボックスが提示されることになる。これは、ユーザによって先に選ばれたアカウント、新規であるアカウント、および過去にユーザによって選択されていないアカウントを含むことになる。次いで、ユーザは、スマートクライアントがレコードを追跡することになるアカウントのリストにアカウントを追加し、そこからアカウントを取り去ることを選ぶことができる。ユーザが、進むためにアカウントを選んだ後で、それに応じてアカウントリストが更新される。後続のステップで、これらのアカウントのそれぞれについてデータが更新されることになり、図１のＧＵＩ上のフォルダが更新されることになる。ステップ６７６では、処理することを必要とするそれ以上のアカウントがあるかどうか判定される。これが、ステップ６７６が初めて処理されるときである場合には、処理すべきアカウントがあることになる。それ以上の処理すべきアカウントがない場合には、図１５の方法は完了する。それ以上の処理すべきアカウントがある場合には、ステップ６７８で次のアカウントがアクセスされる。
【０１０６】
ステップ６８０では、システムは、「ＭｙＡｃｃｏｕｎｔｓ」サブフォルダの下のサブフォルダが存在するかどうか判定する。存在する場合、ステップ６８４で、新しいアカウントデータが適切なフォルダに格納される。存在しない場合、ステップ６８２で適切なフォルダが作成され、ステップ６８４でアカウントデータが格納される。一実施形態では、ステップ６８２で作成される適切なフォルダには、アカウントフォルダと、活動、機会、連絡先用のサブフォルダとが含まれる。ステップ６８４の後で、プロセスは、ステップ６７６にループして戻り、ステップ６７４でユーザが選択した、まだ処理されていないそれ以上のアカウントがあるかどうか判定する。ある場合には、プロセスは、ステップ６７８に進む。そうでない場合、図１５の方法は完了する。
【０１０７】
図１６のプロセスを考察すると、ステップ６９０で、スレッドは、この方法のために処理することを必要とするそれ以上のアカウントフォルダがあるかどうか判定する。すなわち、スレッドは、「ＭｙＡｃｃｏｕｎｔｓ」フォルダの下の各アカウントフォルダを調べる。アカウントフォルダすべてが処理された場合には、図１６の方法は完了する。それ以上の処理すべきアカウントフォルダがある場合には、ステップ６９２で、処理すべき次のアカウントフォルダがアクセスされる。スレッドは、そのアカウントフォルダが、アカウントリスト内に存在するアカウントに対応するかどうか判定する。ユーザは、ステップ６７４でアカウントリストを調整することが可能であったことを思い出されたい。アカウントフォルダがアカウントリスト内に存在する場合には、システムは、ステップ６９０にループして戻る。アカウントがアカウントリスト内に存在しない場合には、ステップ６９６で、アカウントフォルダ（たとえば、アカウントフォルダ、およびＣｏｎｔａｃｔｓ、Ｏｐｐｏｒｔｕｎｉｔｉｅｓ、Ａｃｔｉｖｉｔｉｅｓ用のサブフォルダ）が削除される。ステップ６９６の後で、方法は、ステップ６９０にループして戻る。
【０１０８】
図１７は、ＣＲＭソフトウェアシステム以外のアプリケーションからデータを獲得するためのプロセスについて説明する流れ図について説明する。たとえば、一実施形態では、ユーザがＡｃｃｏｕｎｔ  Ｐｒｏｆｉｌｅ以外のアカウントリストペイン内の項目を選択した場合、システムは、ＣＲＭシステム以外の、別の外部システムから情報を表示することになる。図１７のプロセスは、そのデータを同期するための方法について説明する。一実施形態では、外部アプリケーションから最も新版のデータを得て、そのデータを使用し、クライアント側に記憶されているものは何でも上書きすることによって、データが同期される。ステップ７０６では、同期マネージャ３７０は、各アカウントについて、特定のアプリケーションからデータを獲得するためにウェブサービス３０２に要求を送ることになる。ステップ７０８では、ウェブサービス３０２からデータが受信されることになる。ステップ７１０では、そのデータが、スマートクライアントに記憶される。他のアプリケーションの諸例には、ある会社についてのサービス事項を記憶および追跡するサービス事項アプリケーションや、販売履歴を追跡するアプリケーションが含まれる。一実施形態では、ウェブサービスを使用するのではなく、同期マネージャは、（エージェント３７２を介して）外部アプリケーションに直接コンタクトすることができる。
【０１０９】
図１８〜２１は、トランザクションデータを同期するためのプロセス（図１２のステップ５９４）のより詳細を提供する。図１８は、アップ同期プロセスについて説明する。図１９は、ダウン同期プロセスについて説明する。図２０は、ＣＲＭアプリケーション用のサーバ上で実行されるプロセスについて説明する。図２１は、活動について実行される特別なステップのさらなる詳細を提供する。
【０１１０】
図１８のステップ７５０では、システムは、それ以上の処理すべきデータ項目があるかどうか判定する。データ項目は、どのアカウントのためのどのトランザクション項目とすることもできる。たとえば、データ項目は、活動、機会、または連絡先とすることができる。それ以上の処理すべき項目がない（同期すべき項目すべてが同期されている）ときには、図１８のプロセスが完了する。それ以上の処理すべき項目がある場合には、ステップ７５２で、システムは、次のデータ項目にアクセスする。ステップ７５４では、システムは、アクセスされたオブジェクトのＩｓＤｉｒｔｙフィールドを調べ、データが「汚い（ｄｉｒｔｙ）」かどうか判定することになる。データが汚くなく、新しくない場合には、同期させることを必要とせず、プロセスは７５０にループする。データが汚い、または新しい場合（CurrentState = New）には、データ項目を同期させることを必要とする。ステップ７５６では、データ項目が編集からロックされる。ステップ７５８では、データ項目がサーバに対して更新される。すなわち、データ項目が、エージェント３７２およびウェブサービス３０２を介してサーバに送られる。ステップ７６０では、スレッドは、衝突があったかどうか、（ウェブサービス３０２を介して）エージェントから戻る指示（ｉｎｄｉｃａｔｉｏｎ）を受け取る。衝突があるかどうかの判定は、サーバ（ＣＲＭソフトウェアシステム）によって行われ、サーバからウェブサービス３０２に返送される。衝突がない場合には、スマートクライアントは、サーバに同期のためのタイムスタンプを要求することになる。ステップ７６２で、サーバは、タイムスタンプを送ることになり、タイムスタンプは、スマートクライアントによって受信されることになる。同期されるデータ項目が新しいデータ項目である場合には、ステップ７６４で、ＳｅｒｖｅｒＩＤがサーバに要求され、受信されることになる。そのＳｅｒｖｅｒＩＤは、オブジェクトに格納されることになる。ＳｅｒｖｅｒＩＤを受信する前には、スマートクライアントは、ＬｏｃａｌＩＤによってオブジェクトを参照することになる。ＳｅｒｖｅｒＩＤを受信した後には、スマートクライアントは、ＳｅｒｖｅｒＩＤによってオブジェクトを参照することになる。ステップ７６６では、データ項目がロック解除され、プロセスはステップ７５０にループして戻り、その結果、次のデータ項目を処理することができる。
【０１１１】
ステップ７６０で、衝突があったことが判定された場合には、ステップ７７０で、そのデータ項目がエラーフォルダに移動される。遡って図１を見ると、ナビゲーションペイン内に「Ｓｙｓｔｅｍ」とマークされたフォルダがある。そのシステムフォルダの下には、１組のエラーフォルダがある。ユーザが閲覧するために、データ項目のコピーがエラーフォルダの１つに格納されることになる。ステップ７７２では、スレッドは、そのデータ項目をサーバに要求し、受信することになる。そのデータ項目は、データ項目内のＳｅｒｖｅｒＩＤおよびタイムスタンプと共に到来することになる。ステップ７７４では、サーバから受信されたデータ項目が、クライアント上でデータ項目を置き換えることによって更新される。ステップ７７６では、データ項目がロック解除される。ステップ７７８では、データが変更されたこと、および衝突があったことがユーザに通知される。一例では、ユーザに電子メールが送られる。ステップ７７８の後で、プロセスは、ステップ７５０にループして戻り、その結果、次のデータ項目にアクセスすることができる。
【０１１２】
図１９は、ダウン同期プロセスのより詳細を提供する。図１９のステップ８００では、同期マネージャは、最後の同期以来、サーバ上で更新または作成されたトランザクション項目のリストを要求および受信することになる。それ以上の、考慮すべき項目がリスト上にある場合には、ステップ８０４で、次のデータ項目がアクセスされることになる。ステップ８０６では、スマートクライアント上のデータ項目がロックされることになる。ステップ８０８では、同期マネージャは、その項目についてサーバ上のデータを取り出し、スマートクライアント上の項目を新しいデータで更新することになる。新しいデータ項目である場合には、ステップ８０８で、その項目がスマートクライアント上で作成されることになる。ステップ８１０では、データ項目がロック解除され、プロセスは、ステップ８０２にループして戻り、それ以上の処理すべきデータ項目があるかどうか判定する。データ項目すべてが処理されたとき、図１９の方法は完了する。
【０１１３】
一実施形態では、１番目にアップ同期プロセスが実行され、２番目にダウン同期プロセスが実行される。一実施形態では、その２つのプロセスはオーバーラップすることができ、または他のタイミングで実行することができる。
【０１１４】
図２０は、サーバ側で実行されるプロセスの一実施形態について説明する流れ図である。ステップ８３０では、更新されるレコードがＣＲＭアプリケーションサーバによって受信される。ステップ８３２では、レコードが新しいレコードであるか、それとも既存のレコードであるか判定される。新しいレコードである場合、サーバは、ステップ８３４で新しいＳｅｒｖｅｒＩＤを、またステップ８３６でタイムスタンプを生成することになる。タイムスタンプとＳｅｒｖｅｒＩＤを有する新しいレコードは、ステップ８３８で記憶される。（点線によって示されているように）少し後で、ステップ８４０において、サーバは、ステップ７６２および７６４に応答して、新しいＳｅｒｖｅｒＩＤおよびタイムスタンプを送ることになる。
【０１１５】
ステップ８３０で受信されたレコードが既存のレコードである場合には、ステップ８５２で、受信されたレコードと既存のレコードについてタイムスタンプが比較される。タイムスタンプが合致する（たとえば、それらが同じである）場合には、ステップ８５４で、スマートクライアントから受信されたデータに基づいて、サーバ上のレコードが更新される。ステップ８５６では、そのレコードのタイムスタンプがサーバ上で更新される。（点線によって示されているように）少し後で、サーバは、ステップ７６２に応答して、ステップ８５８で、更新されたタイムスタンプをスマートクライアントに送ることになる。
【０１１６】
タイムスタンプが合致しない場合（ステップ８５２）には、ステップ８６０で更新が拒絶され、スマートクライアントから受信されたレコードは、サーバ上で対応するレコードを更新するために使用されないことになる。（点線によって示されているように）後で、ステップ８６２において、サーバは、クライアントからの要求に応答して、そのレコードのコピーをクライアントに送ることになる（たとえば、図１８のステップ７７２）。
【０１１７】
以上のように、スマートクライアントは、タイムスタンプを変更しない。タイムスタンプは、サーバがそのレコードを更新した最後の時間を表す。したがって、サーバ上のタイムスタンプがスマートクライアント上のタイムスタンプより後である場合には、サーバは、クライアントより新版のデータを有する。サーバ上のタイムスタンプとクライアント上のタイムスタンプが合致する場合には、クライアント上のデータがサーバと同じであるか、それともクライアント上のデータがサーバより新版である。クライアント上のデータがサーバと同じである場合には、データは汚いものでなく、同期のために送られないであろう。したがって、サーバと同じタイムスタンプを有するクライアントから受信されたどのデータも、サーバ上で更新することを必要とする更新済みデータであると仮定される。同期のためにクライアントから送られるレコードが、やはり更新されているサーバ上のレコードに対応する場合には、衝突があり、サーバ上のレコードは更新されない。逆に、サーバ上のレコードを使用し、スマートクライアント上のレコードを上書きする。
【０１１８】
図２１は、活動と連絡先との関係、および／または活動と機会との関係に関連して、活動について実行される追加のステップについて説明する流れ図を含む。一実施形態では、図２１のプロセスは、図１８のステップ７５８の一部として実行することができる。（すべてではないが）いくつかのシナリオでは、図２１のプロセスを開始する前に、新しい活動が作成（および記憶）され、新しい機会または連絡先が作成（および記憶）される。新しい機会または連絡先は、新しい機会または連絡先のＬｏｃａｌＩＤを新しい活動用のオブジェクトに格納することによって、新しい活動に関連付けられる。
【０１１９】
図２１のステップ９００では、活動データ項目が新しいものであるかどうか判定される。新しいものでない場合には、ステップ９０２で、上記で論じたように、活動項目が更新される。新しいものである場合には、活動の更新前に、様々なステップ９０６〜９２６を実行することができる。ステップ９０６では、活動が機会に関連付けられるかどうか判定される。関連付けられない場合には、活動が任意の連絡先に関連付けられるかどうか判定される。活動にも連絡先にも関連付けられない場合には、活動が、上記で論じたように更新される。
【０１２０】
活動が機会に関連付けられる場合（ステップ９０６）には、ステップ９０８で、その機会が新しいものであるかどうか判定される。機会が新しいものである場合には、ステップ９１０で、機会が同期される。同期プロセスの一部として、その機会について、ＳｅｒｖｅｒＩＤが受信および記憶されることになる。活動オブジェクトでは、機会オブジェクトの同期中に、機会を識別するためのＳｅｒｖｅｒＩＤフィールドが、その機会オブジェクトについて受信されたＳｅｒｖｅｒＩＤで更新される（ステップ９１２）。
【０１２１】
ステップ９１２の後で、プロセスはステップ９２０で続行し、そこでは特定の活動が連絡先に関連付けられるかどうか判定される。連絡先に関連付けられる場合には、ステップ９２２で、その連絡先が新しいものであるかどうか判定される。連絡先が新しいものでない場合には、ステップ９０２で、活動が更新される。連絡先が新しいものである場合には、ステップ９２４で、その連絡先が同期される。同期プロセスの一部として、その連絡先について、ＳｅｒｖｅｒＩＤが受信および記憶されることになる。活動オブジェクトでは、連絡先オブジェクトの同期中に、連絡先を識別するためのＳｅｒｖｅｒＩＤフィールドが、その連絡先オブジェクトについて受信されたＳｅｒｖｅｒＩＤで更新される（ステップ９２６）。次いで、ステップ９２６の後、ステップ９０２で（機会および連絡先用のＳｅｒｖｅｒＩＤを使用して）活動が更新される。
【０１２２】
図２２は、スマートクライアントアドイン３６０をインストールするためのプロセスについて説明する流れ図を示す。ステップ９５０では、ソフトウェアがクライアントマシンにインストールされる。ステップ９５２では、Ｏｕｔｌｏｏｋ（登録商標）アプリケーションが起動される。ステップ９５４では、同期マネージャ３７０は、（エージェント３７２およびウェブサービス３０２を介して）ＣＲＭソフトウェア内のＭｙＡｃｃｏｕｎｔｓビューから、すべてのアカウントのリアルタイムクエリフェッチング（ｒｅａｌ−ｔｉｍｅ  ｑｕｅｒｙ  ｆｅｔｃｈｉｎｇ）によって、特定の別名に関連付けられたアカウントのリストを得る。ステップ９５６では、そのアカウントリストが、アカウント選択フォーム（たとえば、ピックリスト）内で表示される。次いで、ユーザは、その選択フォームから様々なアカウントを選択または選択解除することができる。これらの選択は、アカウントリストとして受け取られ、記憶される（ステップ９５８）。ステップ９６０では、同期プロセスが実行される。これは、同期が行われる初めての時であるため、スマートクライアント上にトランザクションデータがない可能性が高く、したがって、データは、クライアントからダウン同期される。
【０１２３】
次いで、インストールおよび初期の同期の後で、ユーザは、上述の任意の機能を実行することができる。ユーザがトップレベルメニュー１０から「ＭｙＣＲＭ」を選択し、アカウント選択フォームを変更することを選んだ（ステップ９７０）場合には、ステップ９５６で、ユーザにアカウント選択フォームが提供されることになる。ユーザが様々なアカウントを選択または選択解除した後で、ステップ９５８において、新しいアカウントリストが更新されることになる。次いで、システムは、ステップ９６０で、新しいアカウントリストを記憶した直後に同期することになり、あるいは、同期は、構成データに基づいて、スケジュールにより後で実行することができる。
【０１２４】
本発明の前述の詳細な説明は、例示および説明のために提示されている。包括的なものとすることも、本発明を、開示されているまさにその形態に限定することも意図されていない。上記の教示に照らして、多くの修正形態および変形形態が可能である。述べられている諸実施形態は、本発明の原理とその実際的な応用例について最もよく説明し、それによって、当業者が、本発明を、熟慮された特定の使用に適した様々な実施形態でかつ様々な修正形態で最もよく利用することを可能にするために選ばれている。本発明の範囲は、本明細書に添付されている特許請求の範囲によって定義されるものとする。
【図面の簡単な説明】
【０１２５】
【図１】スマートクライアント用グラフィカルユーザインタフェースの一例を示す図である。
【図２】スマートクライアント用グラフィカルユーザインタフェースの一部分を示す図である。
【図３】スマートクライアントを使用してアカウントを閲覧、編集および／または作成するための一実施形態について説明する流れ図である。
【図４】スマートクライアントを使用して様々なデータ項目を閲覧、編集および／または作成するための一実施形態について説明する流れ図である。
【図５】スマートクライアントからアプリケーションにアクセスするためのプロセスの一実施形態について説明する流れ図である。
【図６】スマートクライアントからＣＲＭアプリケーションにアクセスするための一実施形態について説明する流れ図である。
【図７】ＣＲＭソフトウェアシステムなどの外部アプリケーションと共にスマートクライアントを使用するためのアーキテクチャの一実施形態について説明するブロック図である。
【図８】スマートクライアントのためのアーキテクチャの一実施形態について説明するブロック図である。
【図８Ａ】アプリケーションインタフェースのためのアーキテクチャの一実施形態について説明するブロック図である。
【図９】クラス階層の一例を示すブロック図である。
【図１０】データ項目を変換するためのプロセスの一実施形態について説明する流れ図である。
【図１１】データ項目を変換するためのプロセスの一実施形態について説明する流れ図である。
【図１２】データを同期するためのプロセスの一実施形態について説明する流れ図である。
【図１３】ドメインデータを同期するとき使用されるプロセスの一実施形態について説明する流れ図である。
【図１４】ドメインデータを同期するとき使用されるプロセスの一実施形態について説明する流れ図である。
【図１５】アカウントデータを同期するとき使用されるプロセスの一実施形態について説明する流れ図である。
【図１６】もはや必要とされないアカウントフォルダを削除するためのプロセスの一実施形態について説明する流れ図である。
【図１７】他のアプリケーションからデータを獲得するためのプロセスの一実施形態について説明する流れ図である。
【図１８】トランザクションデータを同期するためのプロセスの一実施形態について説明する流れ図である。
【図１９】トランザクションデータを同期するためのプロセスの一実施形態について説明する流れ図である。
【図２０】サーバ側で実行される、トランザクションデータを同期するためのものであるプロセスの一実施形態について説明する流れ図である。
【図２１】活動データを同期するとき使用されるプロセスの一実施形態について説明する流れ図である。
【図２２】アクセスされるアカウントのリストが変更されているとき実行されるプロセスの一実施形態について説明する流れ図である。
【符号の説明】
【０１２６】
３０２  ウェブサービス
３６０  スマートクライアントアドイン
３６２  アプリケーションインタフェース
３６４  アプリケーション
３６６  アプリケーションストレージ
３７０  同期マネージャ
３７２  エージェント
３７４  ＵＩマネージャ
３８０  データクラス
３８２  構成クラス
３８４  構成
３８６  Ｏｕｔｌｏｏｋアプリケーション
３８７  コマンドバー
３８８  名前
３８９  アドレス帳
３９０  フォーム
３９３  ローダ
３９４  コア
３９５  診断
【図１】
2006134294.tif 000006
【図２】
2006134294.tif 000007
【図３】
2006134294.tif 000008
【図４】
2006134294.tif 000009
【図５】
2006134294.tif 000010
【図６】
2006134294.tif 000011
【図７】
2006134294.tif 000012
【図８】
2006134294.tif 000013
【図８Ａ】
2006134294.tif 000014
【図９】
2006134294.tif 000015
【図１０】
2006134294.tif 000016
【図１１】
2006134294.tif 000017
【図１２】
2006134294.tif 000018
【図１３】
2006134294.tif 000019
【図１４】
2006134294.tif 000020
【図１５】
2006134294.tif 000021
【図１６】
2006134294.tif 000022
【図１７】
2006134294.tif 000023
【図１８】
2006134294.tif 000024
【図１９】
2006134294.tif 000025
【図２０】
2006134294.tif 000026
【図２１】
2006134294.tif 000027
【図２２】
2006134294.tif 000028
【外国語明細書】
2006134294000001.pdf