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