オフラインと Outlook のフィルターおよびテンプレート

 

公開日: 2017年1月

対象: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online

Microsoft Office Outlook 用のデータ フィルターによって、Microsoft Dynamics 365 サーバーと Outlook 用 Dynamics 365 間で同期するデータが決定されます。Microsoft Dynamics 365 と Microsoft Dynamics 365 (オンライン) は、SDK を使用して既定のフィルターを変更して、一部またはすべてのユーザーに対してこの変更を配信する機能をサポートします。

フィルター カスタマイズの新しいサポートの一部として、管理者がフィルター テンプレートを作成して公開するためのコードを作成できるようになりました。 これにより、Microsoft Dynamics 365 管理者は、Microsoft Outlook ストアやオフライン データベースと同期させるための共通のフィルターや目的のフィルターを作成し、ユーザーに公開できます。 また、テンプレートを最初に公開した後でシステムに追加されたユーザー向けに、既定のフィルター テンプレートをカスタマイズして適用することもできます。 管理者は、ユーザー フィルターを公開した後でそのフィルターを更新または削除することもできます。

これらのカスタマイズをサポートするため、保存済みクエリ (ビュー) 用の新しい 4 つのクエリの種類があります。 保存済みクエリ (ビュー) レコードを作成する場合は、SavedQueryQueryType 列挙体を使用して、SavedQuery.QueryType 属性でこれらの種類のいずれかを指定します。 これらには、ここで説明するメソッドを使用することによってのみアクセスできます。変更に使用できる UI はありません。 携帯電話の Microsoft Outlook に対してすべてのデータを同期させることを回避するには、別のフィルターを指定できます。 フィルター テンプレートはソリューションに対応しているため、ソリューションと一緒にエクスポートできます。

次の表はフィルターとフィルター テンプレートで使用される新しいクエリの種類を示します。

クエリの種類

説明

OutlookFilters

Outlook 用 Dynamics 365 と同期させるエンティティのサブセットを定義します。 これらのフィルターで定義されるデータのサブセットは、[取引先担当者]、[カレンダー] など、Microsoft Outlook のフォルダーに同期します。

OfflineFilters

オフライン アクセス対応 Microsoft Office Outlook 用 Microsoft Dynamics 365 と同期させるエンティティのサブセットを定義します。 これらのフィルターで定義されるデータのサブセットは、オフライン データベースに同期します。

OutlookTemplate

Outlook 用 Dynamics 365 と同期させるために新しいユーザーに適用するフィルター テンプレートを定義します。

OfflineTemplate

オフライン アクセス対応 Microsoft Office Outlook 用 Microsoft Dynamics 365 と同期させるために新しいユーザーに適用するフィルター テンプレートを定義します。

フィルターのインスタンスの作成

同期サブスクリプションが作成されると、既定のフィルター テンプレートのインスタンスがユーザーごとに UserQuery エンティティに対して自動的に作成されます。Microsoft Outlook またはオフライン データベースに対する同期が開始されると、対応するユーザーのフィルターが収集され、それらのフィルターを使用して同期対象のエントリと属性のコレクションがフィルター処理されます。 特定のエントリに対し複数のフィルターが指定されている場合、エントリの結果セットは個々のフィルターの結果を合わせたものになります。

管理者が他のユーザーのフィルターにアクセスすることを許可する新しい権限 prvAdminFilter があります。 これは、Web アプリケーションでは [ユーザー同期フィルターの管理] と呼ばれます。 この権限がないと、ユーザーのフィルターを表示できるのは所有ユーザーのみなので、システム管理者のロールにはこの権限が含まれます。 ユーザー クエリで IOrganizationService.RetrieveMultiple メソッドを呼び出したときに、呼び出し側が prvAdminFilter 特権を持っていない場合、取得されるのは所有ユーザーのレコードのみとなります。クエリには、QueryType が呼び出し側に等しくない場合に、OwnerIdOutlookFilters または OfflineFilters に等しく、かつ UserIdUserId に等しいという条件が含まれている必要があります。 その他の条件がクエリに追加されると、これは機能しません。

新しいユーザーには、SavedQuery.IsDefault 属性で既定として指定されているフィルター テンプレートからフィルターが自動的に提供されます。 管理者は、この値を変更するとこの処理に影響する可能性があることを認識する必要があります。 各エンティティに適用できるのは、既定として指定されている 1 つのフィルター テンプレートのみです。 既定のフィルターがなく、フィルター テンプレートのみの場合もあります。 ユーザー定義エンティティを作成し、IsAvailableOffline プロパティを設定すると、既定のフィルター テンプレートが自動的に作成されます。

システム フィルターと呼ばれる、管理者が定義できる新しい種類のフィルターがあります。 これらのフィルターは、クエリの種類が OutlookFilters または OfflineFilters である SavedQuery レコードとして定義されます。 システム フィルターは、すべてのユーザーに自動的に適用されます。ユーザーはこのフィルターを変更できません。

追加できるフィルターの数には制限があります。 この設定は、ユーザーや管理者がフィルターを作成しすぎてサーバーのパフォーマンスに影響しないように、Microsoft Dynamics 365 展開管理者によって制御されます。 すべてのエンティティに対して同じ制限の設定が適用されます。

既定では、システム フィルターとユーザー フィルターの両方で無制限に設定されます。

テンプレートのインスタンスの作成

ユーザーごとに 1 つ以上のフィルターのインスタンスを作成できます。 これを手動で行うには、InstantiateFiltersRequest を使用してフィルターのインスタンスを作成し、ユーザー クエリ レコードを作成します。 各ユーザー クエリ レコードには、フィルターへの逆参照が含まれます。 フィルターを更新する場合は、インスタンス作成を再び呼び出して更新するか、フィルター (ユーザー クエリ レコード) に対するユーザーの変更を無効にできます。

ユーザーのフィルターを既定にリセットする

ユーザーのフィルターを既定にリセットするには、ResetUserFiltersRequest を使用します。

関連項目

InstantiateFiltersRequest
ResetUserFiltersRequest
Outlook 用 Microsoft Dynamics 365 の展開
Outlook 用 Microsoft Dynamics 365 のカスタム コードの記述
SavedQuery (ビュー) エンティティのメッセージとメソッド
サンプル: Outlook フィルターの作成および取得
マッピングに対して特権を与えるセキュリティ ロール UI

Microsoft Dynamics 365

© 2017 Microsoft. All rights reserved. 著作権