設定工作流程步驟
發行︰ 2017年2月
適用於: Dynamics 365 (online)、Dynamics 365 (on-premises)、Dynamics CRM 2016、Dynamics CRM Online
當設定工作流程時,會考慮四個主要區域:
何時啟動?
應該以即時工作流程或背景工作流程執行?
應該執行哪些動作?
在哪些情況下應該執行動作?
工作流程程序主題中介紹如何尋找工作流程程序、何時啟動它們,以及應該當做即時工作流程或背景工作流程執行。 本主題著重於指定工作流程可以執行哪些動作和指定條件執行這些動作。
本主題內容
工作流程階段和步驟
工作流程程序可以執行的動作
設定工作流程動作的條件
使用即時工作流程
工作流程階段和步驟
當您設計工作流程時,可以選擇包含您要在階段和步驟中執行的邏輯。
階段
階段可讓工作流程邏輯更易於讀取,並可解釋工作流程邏輯。 不過,階段不會影響工作流程的邏輯或行為。 如果程序具有階段,程序中的所有步驟都必須包含在階段中。步驟
步驟是工作流程內的商務邏輯單位。 步驟可以包括條件、動作、其他步驟或這些項目的組合。
工作流程程序可以執行的動作
工作流程程序可以執行下表中列出的動作。
目的 |
描述 |
---|---|
建立記錄 |
為實體建立新記錄,並將所選取的值指派給屬性。 |
更新記錄 |
您可以更新工作流程執行的記錄、連結至 N:1 關聯中的該記錄的任何一個記錄,或先前步驟中建立的任何記錄。 |
指派記錄 |
您可以指派工作流程執行的記錄、連結至 N:1 關聯中的該記錄的任何一個記錄,或先前步驟中建立的任何記錄。 |
傳送電子郵件 |
傳送電子郵件。 您可以選擇建立新的電子郵件訊息,或為工作流程執行的記錄、與該實體具有 N:1 關聯的任何實體,或先前步驟中建立的任何記錄,使用為相關實體設定的電子郵件範本。 |
啟動子工作流程 |
啟動已設定為子工作流程的工作流程程序。 |
變更狀態 |
變更工作流程程序執行之記錄、連結至 N:1 關聯中的該記錄的任何一個記錄,或先前步驟中建立的任何記錄的狀態。 |
停止工作流程 |
停止目前的工作流程。 您可以設定 [成功] 或 [已取消] 狀態和指定狀態訊息。 為事件設定即時工作流程時,停止已取消狀態的工作流程,會防止事件動作完成。 如需詳細資訊,請參閱使用即時工作流程。 |
自訂步驟 |
開發人員可以建立定義動作的自訂工作流程步驟。 根據預設,Microsoft Dynamics 365 沒有自訂步驟。 |
設定記錄值
當您建立記錄時,可以設定記錄的值。 當您更新記錄時,可以設定、附加、遞增、遞減、相乘或清除值。
當您按一下 [設定屬性] 時,對話方塊會開啟並顯示實體的預設表單。
在對話方塊的底端,可以看到表單中沒有的其他欄位清單。
針對所有欄位,您可以設定靜態值 (該值會由工作流程設定)。
在對話方塊右側,[表單小幫手] 可讓您從目前記錄的內容設定或附加動態值。 這包括可從實體的 N:1 (多對一) 關聯中存取之相關記錄的值。
[表單小幫手] 中的可用選項取決於您選取的表單欄位。 當您設定動態值,您會看到黃色預留位置 (稱為「動態資料欄位」),顯示動態資料將會包含的地方。 如果您要移除值,請選取這個的動態資料欄位並刪除它。 對於文字欄位,您可以使用靜態和動態資料的組合。
對於動態值,您不確定欄位或相關實體是否具有您要設定的值。 您可以實際設定一些欄位,嘗試設定值和使用綠色箭號依值順序排序。 如果第一個欄位沒有資料,則會嘗試第二個欄位,以此類推。 如果所有欄位都沒有資料,您可以指定要使用的預設值。
設定工作流程動作的條件
您要套用的動作通常取決於條件。 工作流程程序提供幾種方式,可以設定條件及建立分支邏輯以取得想要的結果。 您可以檢查工作流程程序執行之記錄的值、連結至 N:1 關聯中的該記錄的任何一個記錄的值,或程序本身的值。
條件類型 |
描述 |
---|---|
檢查條件 |
邏輯「如果 <condition> 則」陳述式。 您可以檢查工作流程執行之記錄的值、連結至 N:1 關聯中的該記錄的任何一個記錄的值,或先前步驟中建立的任何記錄的值。 根據這些值,您可以定義當條件為 true 時的其他步驟。 在「如果 <condition> 則」陳述式,您可以使用下列運算子:[等於]、[不等於]、[包含資料]、[不包含資料]、[在下面] 和 [不在下面]。 注意 [在下面] 和 [不在下面] 是階層式運算子。 它們只能使用於已定義階層式關聯的實體。 若嘗試將這些運算子使用於未定義階層式關聯的實體,看到錯誤訊息:「您在未定義階層式關聯的實體上使用了階層式運算子。 請將實體設為階層式 (將關聯標記為階層式),或使用其他運算子。」 表格之後的螢幕擷取畫面是使用 [在下面] 和 [不在下面] 階層式運算子的工作流程程序定義範例。 |
條件分支 |
邏輯 "else-if-then" 陳述式。編輯器會使用「否則,如果 <condition> 則:」文字 選取先前定義的檢查條件,而且您可以加入條件分支,來定義當檢查條件傳回 false 時的其他步驟。 |
預設動作 |
邏輯 "else" 陳述式。 編輯器使用文字 "Otherwise:" 選取您先前定義的檢查條件、條件分支、等待條件或等待分支,而且您可以使用預設動作,針對不符合條件或分支項目中定義的準則的所有案例來定義步驟。 |
等待條件 |
在符合條件所定義的準則之前,讓背景工作流程暫停它自己。 工作流程會在符合等待條件中的準則時自動再次啟動。 即時工作流程無法使用等待條件。 |
平行等待分支 |
定義背景工作流程的替代等待條件,其一組對應的額外步驟只有在初始準則符合時才會執行。 您可以使用平行等待分支,於工作流程邏輯中建立時間限制。 這些逾時有助於防止工作流程無限期地等待符合等待條件中所定義的準則。 |
自訂步驟 |
開發人員可以建立定義條件的自訂工作流程步驟。 根據預設,Microsoft Dynamics 365 沒有自訂步驟。 |
以下螢幕擷取畫面包含使用 [在下面] 和 [不在下面] 階層式運算子的工作流程程序定義範例。 在我們範例中,我們將兩個不同折扣套用至兩個客戶群組。 在 [新增步驟],我們選取 [檢查條件],指定包含 [在下面] 或 [不在下面] 運算子的 if-then 條件。 第一個 if-then 條件適用於在 Alpine Ski House 客戶下面的所有客戶。 這些客戶對於購買的商品和服務獲得 10% 折扣。 第二個 if-then 條件適用於不在 Alpine Ski House 客戶下面的所有客戶,他們獲得 5% 折扣。 然後,我們選取 [更新記錄],根據條件定義要執行的動作。
使用即時工作流程
您可以設定 Microsoft Dynamics 365 即時工作流程,但是您應該小心使用。 通常建議使用背景工作流程,因為它們允許系統在伺服器上有可用的資源時套用它們。 這有助於伺服器順利執行工作,也可以對每個使用者維持系統最佳效能。 缺點是背景工作流程定義的動作不是立即的。 您無法預測其何時套用,不過,通常會需要幾分鐘的時間。 對於商務程序的大部分自動化,這沒有關係,因為使用系統的人員不需要意識到程序正在執行中。
當商務程序要求某人立即查看程序的結果,或者如果您想要能夠取消作業,使用即時工作流程。 例如,您可能想要在第一次儲存時設定記錄的某些預設值,或要確定有些記錄不會被刪除。
在即時和背景工作流程之間轉換
您可以透過選擇工具列上的 [轉換成背景工作流程],將即時工作流程轉換成背景工作流程。
您可以透過選擇工具列上的 [轉換成即時工作流程],將背景工作流程轉換成即時工作流程。 如果背景工作流程使用等待條件就會變成無效,在移除等待條件之後,才能啟用它。
在狀態變更之前或之後啟始即時工作流程
當您設定即時工作流程的 [自動程序選項] 時,狀態變更事件的 [開始時機] 選項可讓您為狀態變更時機選取 [晚於] 或 [早於]。 預設選項是 [晚於]。
當您選取 [早於] 時,表示要工作流程邏輯在變更狀態的資料儲存之前套用。 這可讓您在其他邏輯於作業完成後套用之前檢查值,避免執行進一步邏輯。 例如,您的外掛程式或自訂工作流程動作可能有額外邏輯,會在另一個系統上啟始動作。 透過停止進一步處理,您可以避免外部系統受影響的情況。 在這個事件之前套用即時工作流程,也表示 Microsoft Dynamics 365 中的其他工作流程或外掛程式動作可能會儲存資料,因此當作業取消時不需要「回復」。
搭配使用停止工作流程動作與即時工作流程
當您在工作流程中套用 [停止工作流程] 動作時,可以選擇指定可以是 [成功] 或 [已取消] 的狀態條件。 當您將狀態設為已取消時,可以防止作業。 系統會向使用者顯示標題為 [商務程序錯誤]、來自停止動作狀態訊息之文字的錯誤訊息。
另請參閱
建立和編輯程序
工作流程程序
監控和管理程序
工作流程程序的最佳做法
© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權