定義功能區啟用規則

 

發行︰ 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 程式庫中的函數,以傳回布林值。

    注意

    不會快速傳回值的自訂規則會影響功能區的效能。 如果您必須執行可能花一些時間完成邏輯,請使用下列策略讓您的自訂規則成為非同步:

    1. 定義規則來檢查自訂物件。 您可以檢查物件,如附加至視窗的 Window.ContosoCustomObject.RuleIsTrue。

    2. 如果該物件存在,請傳回它。

    3. 如果該物件不存在,請定義物件和設定值為 false。

    4. 在傳回值之前,請使用 settimeout 執行非同步回呼函數,以重設物件。 然後傳回 false。

    5. 在回呼函數已執行作業 (判斷正確結果所需) 之後,它會設定物件的值和使用 refreshRibbon 方法重新整理功能區。

    6. 當功能區重新整理時,它會偵測物件與正確的設定值,並評估規則。

  • <EntityRule> (RibbonDiffXml)
    實體規則允許目前實體的評估。 當您定義套用至實體範本 (而不是特定實體) 的自訂動作時,這非常實用。 例如,您可以將功能區元素加入至數個特定實體以外的所有實體。 定義套用至所有實體的實體範本的自訂動作,然後使用實體規則篩選應排除的實體,會比較容易。

    實體規則也包括一個選擇性內容屬性,指定實體是否在表單或清單中顯示 (HomePageGrid)。 選擇性 AppliesTo 屬性可以設定成 PrimaryEntitySelectedEntity,區分實體是否在子格中顯示。

  • <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)
    使用此規則,檢查表單顯示的記錄中特定欄位的值。 您必須指定要檢查的 FieldValue

另請參閱

自訂命令和功能區
定義功能區命令
定義功能區顯示規則

Microsoft Dynamics 365

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權