wf 4.0提供了許多活動,其中有一些是流控制活動,用來表達不同的建模風格,開發人員可以使用這些風格來構建各自的業務過程。順序和flowchart是wf4中提供的兩個建模風格。本文將會介紹這兩種建模風格,了解它們的概念、使用場景、以及它們之間的主要區別。
順序工作流會按順序執行它包含的一組活動。wf 4.0的sequence活動允許你以順序建模風格來構建工作流。sequence包含了乙個活動集合,新增到該集合中的活動會被按照順序計畫執行。因此,活動的執行順序是可預知的。
你可以在sequence活動中新增任何活動-諸如foreach、if、switch、while、dowhile等程式性流控制活動,或者諸如parallel和parallelforeach等並行結構來構建邏輯的並行執行;再或者wf 4.0 中提供任何活動(概覽1、概覽2)(也可以是自定義活動或第三方活動)。
使用順序建模風格來構建的工作流非常易於理解和創作。它們可以用來模擬簡單到難度適中的過程。由於程式性活動相當於程式語言中的程式性語句,你就可以使用這種型別的工作流來模擬幾乎所有型別的過程。順序工作流還很適合模擬簡單的並且沒有人類互動的過程(比如服務)。
隨著過程複雜度的增加,工作流也會變得越來越複雜。與**相比較,工作流能夠使你具體地看到過程,並且視覺化地進行除錯,然而,你也許還希望將邏輯提取為可以重用的自定義活動來改進大型工作流的可讀性。
順序建模風格和sequence活動
在使用順序建模風格來建立工作流時,sequence並不是必要元素。本文下面將會解釋,wf 4.0的所有活動都可以作為工作流的根活動。因地,我們可以建立不包含sequence,卻仍然使用順序建模風格和程式性活動的工作流。在下圖中,我們的工作流使用了foreach作為根活動,它將列表中的所有長度大於5的子項列印出來。
flowchart是一種眾所周知的、能夠直觀地表示業務過程的圖表。業務分析師、架構師和開發人員經常使用flowchart作為他們表達過程定義和邏輯流的共同語言。
flowchart包括一組節點和連線(譯者注:原文為arc,弧之意,我認為譯為連線更加妥當)。節點是flownode - 包含了活動或諸如兩路決策(譯者注:if-else)和多路切換(譯者注:switch)等專門的通用結構。連線則描述了節點之間的潛在執行路徑。wf 4.0的flowchart有一條執行路徑;也就是說,它不支援「分開」或「結合」語義,既不支援多條交錯的執行路徑。
下圖顯示了乙個使用flowchart構造的簡單招聘過程。在本例中,當接收到簡歷後,就會去檢查求職者的經驗。如果經驗豐富,過程就繼續,否則就拒絕簡歷。下一步是驗證求職者的技能是否符合職位的要求。如果求職者足以勝任該職位,他就會得到這份工作。如果他並不能勝任該職位,但將來也許會需要他,簡歷就會被儲存到資料庫中,並傳送拒絕信。最後,如果求職者並不能很好的勝任,他就會收到一封拒絕信。
flowchart建模風格很適合表現那些實質上是順序的,但包含回退到上一狀態的過程。它使用了一種非常著名的方式來進行過程建模(基於「形狀」和「箭頭」)並且允許以視覺化的方式表現過程。流控制受到節點之間的轉換,以及兩個頭等分支活動(flowdecision和flowswitch)的控制。flowchart非常適合於構造與人類互動的過程(比如人工工作流)。
在wf 3.x工作流中,根活動的觀念是:只有根活動才能用作頂級活動。wf 4.0並沒有類似的限制。再也沒有所謂根活動的概念了。任何活動都可以作為工作流的根活動。
讓我們來更加詳細地進行解釋……活動是wf的工作單元。活動可以組合到乙個更大的活動中。當某個活動被用作頂級進入點後,我們就稱其為「工作流」,就像main僅僅是乙個用來表示clr程式的頂級入口點的函式一樣。因此,使用sequence還是flowchart作為頂級活動是無關緊要的,並且它們可以隨意地進行組合。
下圖顯示了乙個位於sequence內部的flowchart。下面的工作流有三個活動:乙個復合活動(do something),乙個flowchart(突出顯示為綠色)以及另乙個復合活動(do something else)。
同理,在flowchart中也可以這樣做。下圖顯示了乙個flowchart,它包含乙個sequence(突出顯示為綠色)、乙個flowdecision、以及針對決策的true和false路徑的兩個writeline活動。
wf 4.0簡化了活動創作過程,使我們可以更加輕鬆地編寫自定義復合活動來根據我們的選擇構造流控制。在以後的文章中,我們還會介紹如何編寫自定義活動和設計器。
本文介紹了順序和flowchart建模風格。我們了解了sequence用來模擬順序行為,而flowchart則用來模擬單路執行和回滾到上一狀態。我們還了解了sequence和flowchart是可以結合在一起使用的,而且還可以和其他所有現有的活動一起使用。
下表顯示了sequence和flowchart.的主要區別:
sequence
flowchart
執行順序是顯式的,接近於程式設計**
用圖形化的節點和連線來表示執行順序
組合多個流控制活動來表達回滾(比如while+if)
是實現回滾的最佳模式
等同於程式設計**
等同於形狀和箭頭圖表
活動按順序執行
活動的執行順序由它們之間的箭頭方向決定
簡單過程、無人類互動(比如服務)
複雜過程、人類互動(比如:人工工作流、狀態機場景)
過程流顯然並不直觀
boolean值決策活動(flowdecision)和切換活動(flowswitch)使得流控制非常直觀
本文翻譯自:
WF4 0 實戰 WF4 0申請審批例項
工作流 workflow 就是 業務過程的部分或整體在計算機應用環境下的自動化 它主要解決的是 使在多個參與者之間按照某種預定義的規則傳遞文件 資訊或任務的過程自動進行,從而實現某個預期的業務目標,或者促使此目標的實現 一句話 工作流就是一系列相互銜接 自動進行的業務活動。再通俗點就是對於乙個業務需...
WF4 0 學習系列
wf4.0 基礎篇 一 開始使用wf wf4.0 基礎篇 二 activity介紹及writeline activity的使用 wf4.0 基礎篇 四 順序容器sequence 與codeactivity wf4.0 基礎篇 五 資料的傳遞 variable變數 wf4.0 基礎篇 六 資料的傳遞 ...
WF4 0實戰系列索引
wf4.0實戰 二 超市收銀軟體 wf4.0實戰 三 wcf服務 wf4.0實戰 五 實現乙個直觀易擴充套件的自動測試框架 wf4.0實戰 六 控制wpf動畫 wf4.0實戰 七 請假流程 帶駁回操作 wf4.0實戰 八 實現一套圖形化的資料訪問層 wf4.0實戰 九 猜數字遊戲,測下你的智力 wf...