定義功能區啟用規則
發行︰ 2017年1月
適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online
當設定功能區元素時,您可以定義特定規則來控制功能區元素何時啟用。<EnableRule> (RibbonDiffXml) 元素使用方式如下所示:
使用 /RuleDefinitions/EnableRules/EnableRule 元素定義控制功能區元素何時啟用的規則。
使用 /CommandDefinitions/CommandDefinition/EnableRules/EnableRule 元素,關聯特定啟用規則與命令定義。
已啟用表示什麼意思?
在命令列,已停用的命令會隱藏。 在功能區,已停用的命令會顯示,但對事件沒有反應。
控制功能區元素何時啟用
啟用規則設計為重新使用。 透過在規則定義中定義啟用規則,您可以針對許多命令定義使用相同啟用規則。 當多個啟用規則定義給命令定義,所有啟用規則必須評估為 true,才會啟用功能區元素。
所有啟用規則提供選擇性屬性,指定規則的預設值是 true 或 false,以及選擇性 InvertResult 屬性,允許在受測試項目傳回 true 時傳回負值結果。
/RuleDefinitions/EnableRules/EnableRule 元素支援下列類型的規則:
<CommandClientTypeRule> (RibbonDiffXml)
指定可偵測所使用之簡報類型的規則。Type 值對應於下列:
值
簡報
Modern
命令列使用 平板電腦專用 Microsoft Dynamics 365 呈現。
Refresh
命令列使用更新的使用者介面呈現。
Legacy
功能區在未更新的實體表單中或在 Microsoft Dynamics 365 for Outlook 的清單檢視中呈現。
<CrmClientTypeRule> (RibbonDiffXml)
允許根據使用的用戶端類型來定義規則。 Type 選項如下:Web
Outlook
<CrmOfflineAccessStateRule> (RibbonDiffXml)
使用此準則,根據 Microsoft Dynamics 365 for Microsoft Office Outlook with Offline Access 目前是否離線啟用功能區元素。<CrmOutlookClientTypeRule> (RibbonDiffXml)
若只要顯示 Microsoft Dynamics 365 for Outlook 特定類型的按鈕,使用此規則。 Type 選項如下:CrmForOutlook
CrmForOutlookOfflineAccess
<CustomRule> (RibbonDiffXml)
使用這種規則類型,呼叫 JavaScript 程式庫中的函數,以傳回布林值。注意
不會快速傳回值的自訂規則會影響功能區的效能。 如果您必須執行可能花一些時間完成邏輯,請使用下列策略讓您的自訂規則成為非同步:
-
定義規則來檢查自訂物件。 您可以檢查物件,如附加至視窗的 Window.ContosoCustomObject.RuleIsTrue。
-
如果該物件存在,請傳回它。
-
如果該物件不存在,請定義物件和設定值為 false。
-
在傳回值之前,請使用 settimeout 執行非同步回呼函數,以重設物件。 然後傳回 false。
-
在回呼函數已執行作業 (判斷正確結果所需) 之後,它會設定物件的值和使用 refreshRibbon 方法重新整理功能區。
-
當功能區重新整理時,它會偵測物件與正確的設定值,並評估規則。
-
<EntityRule> (RibbonDiffXml)
實體規則允許目前實體的評估。 當您定義套用至實體範本 (而不是特定實體) 的自訂動作時,這非常實用。 例如,您可以將功能區元素加入至數個特定實體以外的所有實體。 定義套用至所有實體的實體範本的自訂動作,然後使用實體規則篩選應排除的實體,會比較容易。實體規則也包括一個選擇性內容屬性,指定實體是否在表單或清單中顯示 (HomePageGrid)。 選擇性 AppliesTo 屬性可以設定成 PrimaryEntity 或 SelectedEntity,區分實體是否在子格中顯示。
<FormStateRule> (RibbonDiffXml)
使用 FormState 規則,決定顯示記錄之表單的目前類型。 State 選項如下:Create
Existing
ReadOnly
Disabled
BulkEdit
<OrRule> (RibbonDiffXml)
OrRule 可讓您覆寫多個啟用規則類型的預設 AND 比較。 使用 OrRule 元素定義要檢查的數個可能有效組合。<OutlookItemTrackingRule> (RibbonDiffXml)
使用此元素的 TrackedInCrm 屬性,判斷在 Microsoft Dynamics 365 中是否追蹤記錄。<OutlookVersionRule> (RibbonDiffXml)
用來啟用 Microsoft Office Outlook 特定版本的功能區元素,如下所示:2003
2007
2010
<PageRule> (RibbonDiffXml)
這個規則類型檢查顯示的頁面的 URL。 如果 Address 相符,它會傳回 true。<RecordPrivilegeRule> (RibbonDiffXml)
使用此規則決定目前使用者是否具有特定記錄的權限。 因為可包含其他使用者與目前使用者共用記錄所存取的權限,這些權限與實體權限不同。<SelectionCountRule> (RibbonDiffXml)
使用這種規則與針對清單所顯示的功能區,以在特定最大與最小記錄數目在格線中選取時啟用按鈕。 例如,如果按鈕合併記錄,必須先確定至少選取兩筆記錄,然後啟用功能區控制項。<SkuRule> (RibbonDiffXml)
使用這種規則來啟用 Microsoft Dynamics 365 特定 SKU 版本的功能區元素,如下:OnPremise
Online
Spla
<ValueRule> (RibbonDiffXml)
使用此規則,檢查表單顯示的記錄中特定欄位的值。 您必須指定要檢查的 Field 和 Value。
另請參閱
Microsoft Dynamics 365
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權