リボンの有効化ルールの定義
公開日: 2016年11月
対象: Dynamics CRM 2015
リボン要素を構成する場合は、そのリボン要素をいつ有効にするかを制御する特定のルールを定義できます。<EnableRule> (RibbonDiffXml) 要素は、次のように使用します。
リボン要素をいつ有効にする必要があるかを制御するルールを定義するには、/RuleDefinitions/EnableRules/EnableRule 要素を使用します。
コマンド定義に対して特定の有効化ルールを関連付けるには、/CommandDefinitions/CommandDefinition/EnableRules/EnableRule 要素を使用します。
有効になっているとはどういう意味か。
コマンド バーでは、無効なコマンドは非表示です。 リボンでは、無効なコマンドは表示されますが、イベントに応答しません。
リボン要素をいつ有効にするかをコントロール
有効化ルールは再利用することを前提としています。 ルール定義と一緒に定義することで、同じ有効化ルールを複数のコマンド定義で使用できます。 1 つのコマンド定義に対して複数の有効化ルールを定義した場合、有効化するリボン要素に対してすべての有効化ルールを true と評価する必要があります。
すべての有効化ルールには、ルールの既定値が true か false かを指定するための属性、およびテスト対象のアイテムが true を返す場合に負の結果を返せるようにするための InvertResult 属性があります。どちらの属性も省略可能です。
/RuleDefinitions/EnableRules/EnableRule 要素では、次の種類のルールがサポートされています。
<CommandClientTypeRule> (RibbonDiffXml)
使用される表示の種類を検出するルールを指定します。Type の値は、次に対応します。
値
プレゼンテーション
Modern
コマンド バーは、タブレット PC 用 Microsoft Dynamics CRMを使用して表現されます。
Refresh
コマンド バーは、更新されたユーザー インターフェイスを使用して表示されます。
Legacy
リボンは、更新されなかったエンティティのフォーム、または Outlook 用 Microsoft Dynamics CRMのリスト ビューで表示されます。
<CrmClientTypeRule> (RibbonDiffXml)
使用されるクライアントの種類に応じてルールを定義できます。 種類のオプションは次のとおりです。Web
Outlook
<CrmOfflineAccessStateRule> (RibbonDiffXml)
この条件は、オフライン アクセス対応 Microsoft Office Outlook 用 Microsoft Dynamics CRM が現在オフラインであるかどうかに基づいてリボン要素を有効にする場合に使用します。<CrmOutlookClientTypeRule> (RibbonDiffXml)
特定の種類の Outlook 用 Microsoft Dynamics CRM でのみボタンを表示する場合は、このルールを使用します。 種類のオプションは次のとおりです。CrmForOutlook
CrmForOutlookOfflineAccess
<CustomRule> (RibbonDiffXml)
ブール値を返す JavaScript ライブラリ内の関数を呼び出すには、この種類のルールを使用します。注意
すぐに値を返さないユーザー定義ルールは、リボンのパフォーマンスに影響を与える可能性があります。 完了するまで時間がかかることがあるロジックを実行する必要がある場合は、次の方式を使用して、ユーザー定義ルールを非同期にしてください。
-
ユーザー定義オブジェクトをチェックするルールを定義します。 Window に接続する Window.ContosoCustomObject.RuleIsTrue のようなオブジェクトをチェックします。
-
そのオブジェクトが存在する場合は、それを返します。
-
オブジェクトが存在しない場合は、オブジェクトを定義し、値を false に設定します。
-
値を返す前に、settimeout を使用して、オブジェクトを再設定する非同期コールバック関数を実行します。 その後、false を返します。
-
コールバック関数は、正しい結果を判断するために必要な操作を実行した後、オブジェクトの値を設定し、refreshRibbon メソッドを使用してリボンを更新します。
-
リボンが更新されると、正しい値が設定されたオブジェクトが検出され、ルールが評価されます。
-
<EntityRule> (RibbonDiffXml)
エンティティ ルールでは、現在のエンティティを評価できます。 これは、特定のエンティティではなくエンティティ テンプレートに適用するユーザー定義アクションを定義する場合に有効です。 たとえば、一部の特定のエンティティを除くすべてのエンティティへのリボン要素の追加が必要な場合があります。 この場合、すべてのエンティティに適用するエンティティ テンプレート用のユーザー定義のアクションを定義してから、除外する必要のあるアクションをエンティティ ルールを使用して除外すると簡単です。エンティティ ルールには、フォームまたはリストにエンティティが表示されるかどうかを指定するための省略可能なコンテキスト属性 (HomePageGrid) が含まれています。 省略可能な AppliesTo 属性を PrimaryEntity または SelectedEntity に設定すると、エンティティがサブグリッドに表示されているかどうかを識別できます。
<FormStateRule> (RibbonDiffXml)
FormState ルールは、レコードを表示している現在のフォームの種類を判断する使用します。 状態には次のオプションがあります。Create
Existing
ReadOnly
Disabled
BulkEdit
<OrRule> (RibbonDiffXml)
OrRule を使用すると、複数の有効化ルールの種類に対する既定の AND による比較を無効にすることができます。 確認のために使用可能な複数の有効な結合を定義するには、OrRule 要素を使用します。<OutlookItemTrackingRule> (RibbonDiffXml)
レコードが Microsoft Dynamics 365 で追跡されているかどうかを判断するには、この要素に対して TrackedInCrm 属性を使用します。<OutlookVersionRule> (RibbonDiffXml)
このルールは、次に示す特定のバージョンの Microsoft Office Outlook のリボン要素を有効にする場合に使用します。2003
2007
2010
<PageRule> (RibbonDiffXml)
この種類のルールでは、表示されているページの URL を確認します。Addressが一致した場合は true を返します。<RecordPrivilegeRule> (RibbonDiffXml)
このルールは、現在のユーザーが特定のレコードに対して特権を持っているかどうかを判断する場合に使用します。 これらの特権には現在のユーザーとレコードを共有している別のユーザーによって取得された特権も含まれるため、エンティティ特権とは異なります。<SelectionCountRule> (RibbonDiffXml)
リストに対して表示されるリボンで、指定した最大数または最小数のレコードがグリッド内で選択された場合にボタンを有効にするには、この種類のルールを使用します。 たとえば、レコードを統合するボタンであれば、リボン コントロールを有効にする前に少なくとも 2 つのレコードが選択されていることを確認する必要があります。<SkuRule> (RibbonDiffXml)
この種類のルールは、次のような特定の SKU バージョンの Microsoft Dynamics 365 のリボン要素を有効にする場合に使用します。OnPremise
Online
Spla
<ValueRule> (RibbonDiffXml)
このルールは、フォームに表示されているレコード内の特定のフィールドの値を確認する場合に使用します。 確認するにはFieldとValueを指定する必要があります。
関連項目
コマンドおよびリボンをカスタマイズする
リボン コマンドを定義する
リボンの表示ルールの定義
© 2017 Microsoft. All rights reserved. 著作権