基於WF的工作流平台 系統架構

2021-04-21 12:51:59 字數 1356 閱讀 9195

wf已經實現了工作流平台的最難的引擎部分,但為了這個引擎的通用性,他的程式設計介面比較複雜,並且和應用領域相關的部分也都沒有實現,所以我們必須首先實現乙個工作流平台,在這個平台之上才能方便的進行業務系統的開發;現在談談我們是如何構架這個平台的。

平台的構架分為引擎的封裝和平台資料兩部分。

wf和應用之間的互動是通過介面和事件來實現的,在一些wf相關的例子中,為每個流程都定義了乙個介面,並且在介面中又為每一種狀態的每乙個操作操 作都定義了乙個事件,乙個複雜的流程就可能會定義幾十個事件;這種方式僅僅是乙個學習的示例,如果實際應用在專案中,那麼開發和維護的工作量就太大了。

實際上我們仔細分析乙個流程會發現,不同狀態之間的操作都是很類似的比如同意、退回或拒絕等,而狀態機流程乙個時刻只能處於一種狀態,所以不同狀態之間完全可以共用事件,這樣乙個流程的介面的事件就可以壓縮到只有幾個。

我們再分析一下觸發流程事件的引數externaldataeventargs,他是包含instanceid的,wf是根據這個instanceid找到相應的流程,然後在觸發相應的事件的;也就是說,我們在不同的流程之間可以共用乙個介面;

所以我們只需定義乙個介面,在該介面中為每一類操作定義乙個事件,定義乙個實現該介面的類,將該類例項化一次,就可以平台滿足所有事件驅動的需要。

wf流程設計器支援自定義控制項,引擎的封裝還包括用於與平台資料進行互動的自定義控制項。

比如新增審批人控制項根據流程中設定的角色,將相應的人員新增到流程審批表中等等。

企業應用是工作流應用較廣的乙個領域,但wf為了保證工作流引擎較廣的應用範圍,設計為領域無關的,沒有為企業應用提供更多的支援,所以需要由平台來維護這些企業應用所必需的資料。

很多流程都是按照組織結構來逐級審批,所以我們必須在平台中維護一套使用者和組織結構的資料;

不同的部門對同乙個業務可能執行不同的流程,所以我們要維護流程配置的資料。

不同的流程是由不同的角色參與的,所以我們要維護角色管理的資料。

不同的角色有不同的資料訪問許可權,所以我們要維護選單管理和許可權管理的資料。

當前執行流程的狀態和審批人都是不斷的變化的,所以我們要維護流程管理的資料。

這些資料幾乎是每乙個企業應用都需要的,但在每個軟體開發商中,這些資料結構又幾乎都是不同的,wf給了軟體開發商足夠的空間,使其擅長的資料結構,能夠和wf完美結合,滿足其應用的需要。

工作流學習 WF小結

繼承sequentialworkflowactivity,叫做workflow 實現 executecode 建乙個whileactivity,會自動包含上面的workflow 在console workflowinstance instance workflowruntime.creatework...

工作流 WF 程式設計入門

一 wf基礎 簡介 wf 被用於簡化和爭強 net 應用程式開發,wf不是乙個獨立的開發環境,它提供了一套用於輔助工作流的開發框架。特點 wf 的執行時引擎 wf支援順序工作流 狀態機工作流和資料驅動工作流,並且支援工作流的持久化,wf支援使用特定領域模型解決問題,可以開發自己的活動元件,來引入對特...

基於Web的仿WF工作流設計器

微軟的wf是個不錯的工作流開發平台,相對於開源的工作流實現而言,它的設計器不可謂不漂亮 當然,也和我以前看到的連線式設計器大不一樣 上個星期突然冒出個想法,能不能在web頁面上實現乙個類似的工作流設計器呢?大家都知道用js在web頁面上畫線是困難的 實際上,根本就無法畫出線來,除非用n個div元素模...