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