Flowchart 工作流程
本主題僅適用於 Windows Workflow Foundation 4。
流程圖是設計程式的常見範例。Flowchart 活動通常用於實作非循序性的工作流程,但如果沒有使用 FlowDecision 節點,也可用於循序性的工作流程。
Flowchart 工作流程結構
Flowchart 活動是一種活動,包含繼承自 FlowNode 之流程節點的集合。流程節點可包含要執行以及直接執行其他流程節點的子活動。
流程節點的型別
使用的項目型別,要視項目執行時所需的流程控制型別而定。流程圖項目的型別有:
FlowStep - 建立流程圖中一個步驟執行的模型。
FlowDecision - 根據 Boolean 條件執行的分支,與 If 相似。
FlowSwitch - 根據獨佔開關執行的分支,與 Switch 相似。
每個連結都有 Action 屬性,會定義可用於執行子活動的 ActivityAction,以及一個或多個 Next 屬性,以定義當項目完成執行時要執行哪個項目。
使用 FlowStep 節點建立基礎活動序列
若要建立讓兩個活動從中輪流執行的基礎序列,就要使用 FlowStep 項目。在下列範例中,會使用兩個 FlowStep 項目來依序執行兩個活動。
<Flowchart>
<FlowStep>
<Read Result = "[result]"/>
<FlowStep.Next>
<FlowStep>
<Write Text="[Hello + result]"/>
</FlowStep>
</FlowStep.Next>
</FlowStep>
</Flowchart>
使用 FlowDecision 節點建立條件式流程圖
若要在流程圖工作流程中建立條件式流程節點 (也就是,建立做為傳統流程圖決策符號的連結),就要使用 FlowDecision 節點。節點的 Condition 屬性已設定為定義條件的 WorkflowElement,且 True 和 False 屬性已設定為當運算式評估為 true 或 false 時,要執行的 FlowNode 執行個體。下列範例示範如何定義使用 FlowDecision 節點的工作流程。
<Flowchart>
<FlowStep>
<Read Result="[s]"/>
<FlowStep.Next>
<FlowDecision>
<IsEmpty Input="[s]" />
<FlowDecision.True>
<FlowStep>
<Write Text="Empty"/>
</FlowStep>
</FlowDecision.True>
<FlowDecision.False>
<FlowStep>
<Write Text="Non-Empty"/>
</FlowStep>
</FlowDecision.False>
</FlowDecision>
</FlowStep.Next>
</FlowStep>
</Flowchart>
使用 FlowSwitch 節點建立獨佔開關
若要建立其中根據相符值選取之獨佔路徑流程圖的模型,就要使用 FlowSwitch 節點。Expression 屬性已設定為 WorkflowElement’1,其中包含定義值以符合選項的 Object 的型別參數,以及定義索引鍵字典和 FlowNode 物件,以符合條件運算式的 Cases 屬性,以及一組FlowNode 物件,這組物件會定義如果指定案例符合條件運算式時,如何進行執行的流程。FlowSwitch 也會定義 Default 屬性,此屬性會定義如果沒有符合條件運算式的情況時,應該要如何進行執行的流程。下列範例示範如何定義使用 FlowSwitch 項目的工作流程。
<Flowchart>
<FlowSwitch>
<FlowSwitch.Expression>
<ReadColor/>
</FlowSwitch.Expression>
<FlowStep x:Key="Red">
<WriteRed/>
</FlowStep>
<FlowStep x:Key="Blue">
<WriteBlue/>
</FlowStep>
<FlowStep x:Key="Green">
<WriteGreen/>
</FlowStep>
</FlowSwitch.Cases>
</FlowSwitch>
</Flowchart>