工作流程
一個工作流程(workflow),就是你程式中一個行程的模型。它可以是「部落格主題從草稿、審核到發布」的進程。另一個例子是,當一位使用者提交一系列不同的表單以完成一個任務。類似的進程最好從你的models中脫離,而且應該在設定資訊中定義。
一個工作流程的 definition(定義) 包含places(位置)和actions(動作),以從一個位置來到另一個位置。 actions被稱為 transistions(過渡)。工作流程也需要知道每個物件在工作流程中的位置。那個 marking store 寫入了物件的一個屬性來記住目前位置。
上面的專有名詞一般被用來討論工作流程和 Petri nets。
Workflow元件支援狀態機(state machines)。狀態機是工作流程的子集(subset),其目的是持有你的模型的一個狀態。在 工作流程作為狀態機 一文可以讀到更多的關於狀態機的不同和特定的功能。
範例 ¶
最簡單的工作流程就是下面這種。它包括兩個places和一個transition。
當用來描述一個真實業務時,工作流程可以是更複雜的。下面的工作流程描述了在job程式中進行填入的進程。
當你填寫本例中的一個工作時,根據所要求的工作之不同,會有4到7步驟。某些工作需要性格測驗,邏輯測驗,以及/或需要使用者填寫正式的需求。另一些則不需要。 GuardEvent
用於在特定程式中決定「允許進行的下一步是什麼」。
透過像這樣定義一個工作流程,流程如何被展現就能知其大概。行程的邏輯並不與控制器、model層或view層混為一談。步驟(steps)的次序只能透過改變「設定資訊」才可以改變。