建立和編輯商務規則

 

發佈日期: 2016年11月

適用對象: Dynamics CRM 2015

在 Microsoft Dynamics 365,您可以套用表單邏輯,而不需要撰寫 JavaScript 程式碼或發開外掛程式。 商務規則提供簡單的宣告式介面,以實作和維護快速變更的常用商務規則,這些規則將套用至 Web 應用程式和 平板電腦專用 Microsoft Dynamics CRM 的主要表單及快速建立表單,以及實體。 它套用至線上和離線模式 Outlook 用戶端的主要表單及快速表單。

本主題內容

為什麼使用商務規則?

商務規則可以做什麼?

如何設定商務規則?

伺服器端商務規則以及 IF-Else 與 AND/OR 邏輯支援

商務規則的限制

當地語系化用於商務規則的錯誤訊息

為什麼使用商務規則?

商務規則提供簡易的宣告式方法,可一致地在用戶端或伺服器上評估商務規則,而不需要撰寫程式碼。 用戶端規則評估較易立即看到結果,因為它會在您開啟和更新記錄表單時執行,而伺服器端則在伺服器上提供一致的規則評估。

  • 如果商務規則的範圍設定在表單等級 (所有表單或特定表單),該規則只會在用戶端執行。 將記錄表單載入和更新時,會執行規則。

  • 如果商務規則的範圍設定在實體等級,該規則在伺服器和用戶端上都會執行。 建立或儲存記錄時,會在伺服器端執行規則。

商務規則可以做什麼?

商務規則允許表單指令碼提供的功能子集。 您可以定義條件和套用下列動作:

  • 設定欄位值

  • 清除欄位值

  • 設定欄位需求等級

  • 顯示或隱藏欄位

  • 啟用或停用欄位

  • 驗證資料並顯示錯誤訊息

商務規則可以設定套用至所有主要表單或快速建立實體表單或您所選擇的特定主要表單。 您也可以設定規則以套用至實體。

您可以將商務規則包含在解決方案中並安裝包含商務規則的解決方案,將商務規則從一個組織傳輸至另一個組織。

示範如何設定或清除欄位值的範例

我們來考慮幾個範例。 在第一個規則下,您會對任何立即購買套用 5% 的折扣。 在第二條規則下,如果購買時間範圍不明,您會清除所有折扣。

下列規則定義顯示如何將欄位值設定為立即購買的 5% 折扣。

在 Dynamics CRM 中設定商機中的欄位

下列規則定義如何顯示清除欄位值 – 針對購買時間範圍不明的購買,清除所有折扣。

清除 Dynamics CRM 中欄位的動作

清除 Dynamics CRM 中的欄位

如何設定商務規則?

首先,您必須具有巡覽至 [設定] > [自訂] 必要的權限。 這通常需要系統管理員系統自訂員的資訊安全角色。 若要啟用商務規則,您必須具有 [啟用商務規則] 權限。

備註

商務規則只適用於更新的實體或自訂實體。

檢視、建立或編輯商務規則有四種方式:

  • 解決方案 > 實體
    從解決方案,例如預設解決方案,您將會發現所有實體的 [商務規則] 節點。

    CRM 中客戶實體的商務規則

  • 解決方案 > 實體 > 欄位
    當您檢視實體欄位時,您會發現 [商務規則] 節點,只顯示包含此屬性的商務規則。

    Dynamics CRM 中欄位的商務規則

  • 表單編輯器
    從表單編輯器,您可以使用功能區上的 [商務規則] 按鈕,在右邊顯示 [商務規則總管]。 這會顯示只適用於這個表單的所有商務規則。

    如果您從表單編輯器建立規則,預設範圍為該表單。其他資訊:設定範圍

    Dynamics CRM 中表單的商務規則

  • 表單編輯器 > 欄位
    當您檢視表單中所用欄位的屬性時,您會看到 [商務規則] 索引標籤,顯示包含這個屬性的商務規則。

    Dynamics CRM 中表單欄位的商務規則

如果現有的規則類似您要建立的規則,您可以開啟該規則和使用 [另存新檔] 按鈕,複製現有的規則做為新規則的起點。

設定範圍

在表單右上角,使用 [範圍] 欄位以設定規則的範圍。

範圍

執行位置

實體

所有表單與伺服器

所有表單

所有表單

特定表單

僅此表單

您無法選取多個特定表單。 如果您選取 [所有表單],規則會套用至所有主要表單和快速建立表單,只要表單包含規則參考的所有欄位。 如果您透過使用表單編輯器建立新的商務規則,預設範圍就是該表單。

伺服器端商務規則以及 IF-Else 與 AND/OR 邏輯支援

之前,您可以在個別用戶端上評估商務規則。 若要在伺服器上評估商務規則邏輯,然後套用至所有用戶端,您必須提供外掛程式 (使用大量開發及維護資源)。 在實體等級設定商務規則的範圍,讓您能夠在伺服器評估一次商務規則,然後套用至所有用戶端,不需要撰寫程式碼。 您可以將常用案例的邏輯從外掛程式移至實體等級商務規則。 此外,我們對商務規則的預設值提供支援。 例如,如果 Contoso 只在美國進行業務往來,那麼就可以實作簡單的商務規則,自動在建立接收潛在客戶時,將國家/地區/區域設為美國。

備註

當範圍設定至實體,而且您使用表單來建立或編輯記錄,規則會在用戶端執行,但是之後會在伺服器再次執行。 因此,如果您設定範圍至實體,我們會防止您建立欄位的循環參考。 例如,您無法設定「信用額度 = 信用額度 + 1000」,因為這會在用戶端增加值一次,然後嘗試在伺服器端重新執行。

針對複雜的商務案例,您需要使用多個商務規則,使用 AND 邏輯運算子進行評估。 在動作套用之前,所有條件必須為 true。 沒有 If-ElseAND/OR 支援。 現在新增此功能,讓您較不費力地建立更複雜的商務規則。 商務規則的下列範例使用 If-Else 邏輯:

Dynamics CRM 中使用 If-Else 邏輯的商務規則

有一些限制您需要注意:

  • 不支援巢狀 If-Else 陳述式。

  • 不支援條件中的運算式群組。

  • 運算式可以使用 AND 或使用 OR 合併,不能同時使用兩者。

設定條件

如果您要變更啟用的商務規則,您必須停用它,才能編輯它。

若要加入條件,請按一下 + 圖示,新的條件就會顯示預設值設定。 輸入欄位名稱設定 [欄位],然後選取適當的 [運算子]。 運算子選項會根據欄位的資料類型而變更。

每當條件中參考的任何欄位變更時,就會檢查條件。

您可以選擇三種不同的條件:

  • 欄位
    使用這個類型來比較某個表單欄位的值與另一個表單欄位的值。


  • 使用這個類型來比較某個表單欄位的值與輸入的值。

  • 公式
    只針對數字或日期資料類型,才會出現這個選項。 如果欄位包含文字,這個選項不會出現。 使用這個類型來比較簡單計算的結果,計算可能會使用另一個表單欄位的值或您輸入的值。

當您完成輸入或編輯規則時,選擇核取記號圖示儲存它,或選擇 (X) 圖示捨棄變更。 若要移除先前儲存的條件,將游標放在條件上方並選擇 [刪除] 按鈕 [刪除] 按鈕

設定動作

若要新增動作,請選擇 [新增] 按鈕 +,然後您會有下列選項:

  • 顯示錯誤訊息
    使用這個動作設定當欄位資料無效時,顯示的欄位錯誤訊息。 您指定的訊息文字會與錯誤圖示一起顯示在欄位附近。

    Dynamics CRM 中表單欄位的錯誤訊息

    只要顯示這個訊息,記錄無法儲存。 在欄位資料已根據您的規則條件修正之後,訊息會消失,而且這個記錄可以儲存。

  • 設定欄位值
    依序選取 [欄位] 和 [類型]。 共有三種類型:

    • 欄位
      使用這個類型,以另一個表單欄位的值來設定某個表單欄位的值。


    • 使用這個類型,以輸入的值來設定表單欄位的值。

    • 公式
      只針對數字或日期資料類型,才會出現這個選項。 如果欄位包含文字,這個選項不會出現。 使用這個類型來設定簡單計算的結果值,計算可能會使用另一個表單欄位的值或您輸入的值。

  • 設定業務需求
    使用這個類型來變更欄位的需求等級。 其中的選項包含 [無業務需求] 和 [業務需求]。 沒有選項可將欄位設定為業務建議。

  • 設定顯示性
    使用這個類型來變更欄位是否顯示在表單中。 其中的選項包含 [顯示欄位] 和 [隱藏欄位]。

  • 鎖定或解除鎖定欄位
    使用這個類型來變更欄位是否在表單中啟用。 其中的選項包含 [鎖定] 和 [解除鎖定]。 當欄位鎖定時,人員無法編輯欄位中的值。

在定義動作之後,您可以使用當您將游標放在動作上時可用的選項,變更命令或刪除它。

設定描述

設定描述是選擇性的。 除了在商務規則編輯器,它不會在其他地方顯示。 但是,最好能包含規則應該執行的動作,以及已加入的原因之描述。

測試並啟用您的商務規則

在任何人使用您建立的商務規則之前,必須先啟用它們。 在您啟用規則之前,您應該測試它們。 使用表單編輯器中的 [預覽] 按鈕,您可以測試商務規則。

商務規則的限制

商務規則旨在解決一般動作。 相較於開發人員使用表單指令碼執行的動作,商務規則有限制。 不過,商務規則並非要取代表單指令碼。

以下是一些使用商務規則的限制:

  • 只有在表單載入和欄位值變更時,商務規則才會執行。 當記錄儲存時未執行,除非規則範圍設定在實體等級。

  • 商務規則只於欄位上運作。 如果需要表單指令碼可以與表單內其他可見項目互動,例如索引標籤和區段。

  • 當您使用商務規則設定欄位值時,該欄位的任何 OnChange 事件處理常式不會執行。 這是為了減少可能會導致無限迴圈的循環參考。

  • 如果商務規則參考不存在於表單上的欄位,此規則不會執行。 沒有錯誤訊息。

  • 使用時區、期間或語言格式的整數欄位不會出現在條件或動作的規則編輯器,因此它們不能用於商務規則。

  • 您無法新增超過 10 個 if-else 條件在商務規則中。

  • 對於 平板電腦專用 Microsoft Dynamics CRM,商務規則定義會在 平板電腦適用的 CRM 開啟時下載並存入快取。 對商務規則進行的變更在關閉並重新開啟 平板電腦適用的 CRM 前將不會套用。

  • 當您設定查詢欄位值時,設定於表單主要欄位值文字一定會與在規則定義的文字相符。 如果顯示在查詢變更可以設定記錄主要欄位中的文字,在您規則下的值集會繼續使用規則定義的主要欄位值文字部分。 若要修正此問題,將規則定義更新至使用目前主要名稱欄位值。

    了解查詢的值分為三部分非常實用:

    • Name:您在表單看到的主要欄位值文字。

    • Id:紀錄的唯一識別碼。 這是儲存後的資料。 這不會顯示在表單中。

    • LogicalName:實體名稱,例如 contactaccount,或 opportunity

    規則會設定此值的全部三個部分。 特定記錄的 Id 值永遠不變,但 Name 值可能會變更。

    例如,如果您定義規則設定查詢一位 [全名] 為「舊名稱」的連絡人,此文字就是商務查詢規則設定下看到的 Name,即使人員日後變更連絡人的 [全名] 為「新名稱」。 查詢 Id 值會正確設定為預期的記錄,但是, (未儲存) Name 會反映規則定義值而非不是進行之記錄的目前 [全名] 值。

從您的規則清除動作

除了顯示錯誤訊息,您必須確定包含個別的商務規則,以清除已套用的任何動作。 例如,假設在客戶實體上有下列規則:

如果偏好的連絡方式等於電話
商務電話設定為業務需求

每當 [偏好的連絡方式] 欄位設定為 [電話] 時,這將會執行。 但是,如果 [偏好的連絡方式] 欄位之後變更為其他設定,[電話] 欄位仍然會是 [業務需求]。 若要清除這個動作,您需要包含個別的規則套用下列邏輯:

如果偏好的連絡方式不等於電話
商務電話設定為無業務需求

[顯示錯誤訊息] 動作不同,因為它會自動評估所有用於設定錯誤訊息的條件,並在條件不再為 true 時將它移除。

當地語系化用於商務規則的錯誤訊息

如果您提供組織一個以上的語言,您會想要當地語系化您設定的任何錯誤訊息。 每當您設定訊息時,系統會產生標籤。 如果您匯出組織中的翻譯,您可以加入訊息當地語系化版本,然後將這些標籤匯入回到 Microsoft Dynamics 365,因此,使用基礎語言之外語言的人員可以檢視已翻譯的訊息。

另請參閱

影片:Microsoft Dynamics CRM 自訂新功能 - 商務規則
建立和編輯程序
建立及編輯表單
建立並編輯檢視表
SDK:建立或編輯商務規則啟始的方式

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