工做流組件示例(所有開源)

1.概述

1.1簡介

本文檔旨在幫助開發人員快速使用工做流組件,完成OA或審批等涉及到工做流組件的系統開發工做sql

1.2組件構成

1.2.1組件層次圖

clip_image002

組件的核心是工做流引擎,它負責存儲工做流模板.引擎被服務所包圍,也就是說,若用到工做流引擎操做,必須經過工做流服務數據庫

工做流服務包含幾大部分:模板服務,流程實例服務,查詢服務,跟蹤服務,持久化服務,定時服務等微信

1.2.2與宿主關係圖

clip_image003

宿主經過工做流服務提供的各類命令操做,來完成想要實現的功能.如發起模板,流轉實例等工具

同時,工做流服務會反饋信息給宿主,通知宿主操做是否成功sqlserver

1.2.3服務運行模式

clip_image004

1.2.4組件類圖

clip_image006

clip_image008

1.2.4輔助接口

l 權限組件IpermissionService佈局

clip_image009

方法詳細描述以下圖所示spa

clip_image011

l 數據庫組件IDataBaseService設計

clip_image012

方法詳細描述以下圖所示調試

clip_image014

clip_image016

l 定時組件ItimingServiceorm

clip_image017

方法詳細描述以下圖所示

clip_image019

1.2.5數據庫結構

l 工做流模板部分

clip_image021

l 工做流流程實例部分

clip_image023

l 工做流其餘配置部分

clip_image024

2示例模板

示例模板如圖-所示

clip_image026

2.1功能要求

l 模板發起權限:用戶1

l 模板包含4個環節.其中,首環節爲[擬稿];末環節爲[發證].其環節辦理對象以下所示

環節ID

處理決策

辦理對象

用戶列表

擬稿

第一用戶

用戶/用戶1

用戶1

審覈

第一用戶

用戶/用戶2

用戶2

審查

任務共享

角色/角色1

用戶1,用戶2,用戶3,用戶4,用戶5

發證

第一用戶

用戶/用戶6

用戶6

l 在[審覈]環節包含子流程,而且是迴歸.即主流程需等待子流程完成後

l 全部環節均支持回退,跳轉,掛起,取消掛起,強制歸檔,刪除,備份等命令

3代碼開發

3.1建立Db並導入腳本和數據

l 建立SQLServer數據庫

l 打開02.db腳本文件夾,在查詢分析器中

n 執行」 init_workflow_sqlserver.sql」文件,用於建立腳本

3.2建立解決方案

名稱

描述

Navi.Example.Workflow

整個解決方案名稱

Navi.Example.Workflow.WinForm

WinForm場景示例文件

Navi.Example.Workflow.WebForm

WebForm場景示例文件

Navi.Example.Workflow.WebMVC3

WebMVC3場景示例文件

3.3項目引用DLL文件

clip_image027

3.4Config配置文件說明

clip_image029

結點名稱

描述

RunMode

系統運行場景.包括:WinForm,WebForm,WebMVC

PermissionService

權限中心組件,實體操做類字符串,用於反射.繼承自IpermissionService接口

PermissionDataBaseService

權限中心組件,數據庫操做類字符串

PermissionDbConnectionString

權限中心組件,數據庫鏈接字符串

WorkflowDebugMode

工做流組件.調試模式

WorkflowLoadMode

工做流組件.模板數據源類型.包括Xml和Db

WorkflowLoadFileName

工做流組件.模板數據文件名稱

WorkflowService

工做流組件操做類字符串

WorkflowDataBaseService

工做流組件.數據庫操做類字符串

WorkflowDbConnectionString

工做流組件.數據庫鏈接字符串

WorkflowTimingService

工做流組件.定時服務操做類字符串

3.5環境變量註冊

clip_image031

如上圖所示.以WinForm應用場景爲例

先增長異常捕獲,再獲取應用程序路徑和名稱,再註冊權限組件和工做流組件,最後打開主頁面

注:也可同時註冊數據庫組件,而且支持多數據庫同時註冊

3.6功能模塊

3.6.1擬辦列表

clip_image033

3.6.1.1檢索

檢索條件是模板名稱,支持模糊查詢

3.6.1.2發起

發起選中的模板列表.若發起成功,則提示下圖,表示發起成功

clip_image034

若模板發起失敗緣由有多種,通常包括

n 用戶沒有發起模板權限

n 選中的模板,其版本不是最大版本號.不容許發起歷史模板

n 在發起過程當中出現問題.如:用戶未找到角色或組織機構.或者傳入參數不正確等,需具體問題具體分析

3.6.1.3發起(含業務)

功能與發起相似,區別是根據選中的模板,彈出模板對應的UI業務表單.在此示例DEMO中,不支持業務表單配置

3.6.1.4新增委託

clip_image035

功能描述

n 委託是精確至模板環節級別,而且可將委託對象設置爲組織機構,角色或用戶

n 委託是在某一時間段內.即需設置開始和結束時間.某人的待辦數據交由另外一人或多人辦理

n 到期處理包括:撤消和繼續.用於工做流定時引擎服務中使用

n 是否當即委託,是指委託數據增長成功後,當即實現委託功能,並非根據開始和結束時間

n 待辦是否隱藏:是指在用戶待辦信息中,是否過濾掉屬於被委託者的待辦件

3.6.1.5委託列表

clip_image037

功能描述

l 檢索

檢索條件包括:環節ID,開始和結束時間,是否使用.:數據自己已經根據模板ID和版本過濾

l 查看

查看模板委託詳細信息.:只容許查看,不容許修改

l 撤消委託

撤消模板委託後,此模板再發起的流程實例將沒有委託信息,以前已經發起的流程實例,其委託信息仍存在

l 刪除委託

直接將模板委託數據刪除.此功能已實現撤消委託功能,而且將數據直接從Db表中刪除

3.6.2流程實例

clip_image039

3.6.2.1模塊描述

l 左側爲樹控件,按流程實例狀態類型區分.選中一級結點,加載登陸用戶此狀態的流程實例數據

l 檢索條件能夠根據模板名稱,版本,流程實例ID和操做用戶過濾.注:若爲管理員登陸,可以使用操做用戶檢索條件,檢索出屬於此用戶的流程實例數據

l 功能命令,採用工具欄佈局.包括流轉,完結,回退等功能

l 批量數據欄目名稱包括:環節ID,辦理時限和單位,開始時間,運動狀態等.對應的實體類是WFWaitDealModel

3.6.2.2流轉

l 點擊[流轉]彈出流轉配置頁面,以下圖所示

clip_image041

l 功能說明

n 採用Tabpage控件,每一個面板表示待流轉的環節信息待辦用戶,是指待流轉環節的待辦用戶

n 左側爲待選擇的用戶列表.此配置信息爲模板環節辦理權限.:不管辦理權類型是組織機構,角色或用戶.最終會轉爲用戶,供用戶選擇

u 右側頂部分,是記錄已選中用戶列表

u 辦理權限

Ø 目標環節處理決策:在模板配置時已配置環節處理決策,此處容許再次修改.緣由:流轉到環節的狀況有多種,包括正常流轉,回退,跳轉等

Ø 是否容許分發:用於並行操做.假設選中5個用戶.不勾選此選項時,會生成1條環節數據,5條環節審批意見數據;若是勾選此選項,則會生成5條環節數據,每條環節數據各生成1條環節審批意見數據

Ø 預生成數據:用於環節處理決策是任務共享的狀況.當環節的辦理用戶均要求辦理時,第1個用戶辦理完結後,是不生成目標環節待辦數據的.若勾選此選項,則先生成目標環節待辦數據,但不容許操做

u 右側底部爲子流程列表,在流轉過程當中,需額外發起其餘模板來輔助完成此流程操做

u 底部爲發送信息配置選項.可發送信息至短信,郵件,站內信等.注:每一個發送選項實現,已提供接口,直接實現便可

l 操做完成後,點擊[肯定]按鈕,執行工做流組件服務中[SubmitWFInstance]方法.若操做成功,則將流程實例當前環節實例ID返回

3.6.2.3完結

完結命令,只適用於環節處理決策是任務共享.非最後一個用戶使用.表示用戶已經辦理過此辦理件.若操做成功,則將流程實例當前環節實例ID返回.若操做失敗,可能緣由以下所示

clip_image042

3.6.2.4回退

l 點擊[回退]彈出回退配置頁面,以下圖所示

clip_image043

l 功能說明

n 與[流轉]面板佈局和功能相同

l 操做完成後,點擊[肯定]按鈕,執行工做流組件服務中[BackWFInstance]方法.若操做成功,則將流程實例當前環節實例ID返回

3.6.2.5跳轉

l 點擊[跳轉]彈出跳轉配置頁面,以下圖所示

clip_image045

l 功能說明

n 左側爲跳轉環節列表.注:容許跳轉至任何環節,包括已發起或未發起的環節.經過狀態欄目區分

n 右側爲左側選中環節的辦理用戶列表,支持多選

n 底端爲其餘配置,是將此辦件信息經過何種方式發送給待辦用戶

l 選中環節和環節辦理用戶後,點擊肯定按鈕,執行工做流組件[SkipWFInstance]方法.若操做成功, 則將流程實例當前環節實例ID返回

3.6.2.6置換

l 點擊[置換]按鈕,彈出置換配置頁面,以下圖所示

clip_image046

l 功能說明

n 頁面採用組織機構+用戶列表佈局

n 選中左側樹結點,右側列表加載此組織機構下的用戶,供選擇

l 選中用戶信息後,點擊肯定按鈕.執行工做流組件的[ChangeWFInstance]方法

3.6.2.7歸檔

歸檔命令,是將流程實例的運行狀態置爲end.表示此流程實例已經流轉完成,不須要其餘操做.:此命令只將處於末級環節的流程實例數據歸檔.非末級環節時不容許歸檔

3.6.2.8強制歸檔

強制歸檔命令,功能與歸檔徹底一致.不一樣之處,在於流程實例不限於處在末級環節.在任何環節均可以將流程實例歸檔

3.6.2.9撤消委託

撤消委託命令,並非模板級別的撤消委託.是將流程實例中的委託數據刪除,與模板中的撤消委託功能統一稱之爲撤消委託.分別對模板和流程實例撤消委託

3.6.2.10掛起

l 點擊[掛起]彈出掛起配置頁面,以下圖所示

clip_image047

l 功能描述

n 開始和結束時間,表示流程實例掛起的起止時間

n 到期處理方式,包括撤消和繼續.用於工做流定時服務

n 掛起緣由,代表爲什麼掛起

n 是否當即掛起,是不依賴於開始和結束時間,掛起數據保存成功後,直接將對應的流程實例數據掛起

l 數據錄入完成後,點擊肯定按鈕,完成掛起操做

3.6.2.11複製

複製命令,是指將流程實例數據完整拷貝一份新的,其流程實例ID也是新的.拷貝的數據包括流程實例,環節實例,環節審批意見以及流程監控數據

3.6.2.11備份

備份命令,是指將流程實例的運行狀態修改成backup,表示此流程實例不在用戶待辦和已辦中出現

3.6.2.12刪除

刪除命令,即將流程實例從Db表中直接刪除.注:刪除同時,將此流程實例數據存儲至持久化表中,方便之後查找

3.6.2.13監控

l 點擊[監控]命令彈出監控頁面,以下圖所示

clip_image049

l 功能說明

n 頂部展示流程實例基本信息,包括對應模板ID和版本等

n 左側爲環節流轉信息

n 右側爲環節操做信息.如執行掛起,恢復,置換等,均有記錄

3.6.3配置選項

clip_image051

3.6.3.1檢索

檢索條件是選項名稱和啓用狀態.其中選項名稱支持模糊查詢

3.6.3.2新增

新增配選項,以下圖所示

clip_image052

錄入數據完成後,點擊保存,將數據保存至數據庫

3.6.3.3修改

修改列表中選中的配置選項值,以下圖所示

clip_image053

修改數據完成後,點擊保存,將數據保存至數據庫

注:若配置選項爲系統配置,則不容許修改,會提示以下圖所示的對話框

clip_image054

3.6.3.4刪除

將列表中選中的配置選項刪除

注:若配置選項爲系統配置,則不容許刪除

3.6.4工做流日曆

clip_image056

3.6.4.1檢索

檢索條件包括開始和結束日期,日期種類(日期和時間),日期類型(工做日和休息日)

3.6.4.2新增

新增日期,以下圖所示

clip_image057

錄入數據完成後,點擊保存按鈕,將數據保存至數據庫

3.6.4.3修改

修改日期,以下圖所示

clip_image058

修改數據完成後, 點擊保存按鈕,將數據保存至數據庫

3.6.4.4刪除

將列表中選中的日曆刪除

3.6.5默認審批意見

clip_image060

3.6.5.1檢索

檢索分爲2部分.一是根據用戶檢索;二是根據審批意見檢索,同時,支持模糊查詢

3.6.5.2新增

新增審批意見數據.以下圖所示

clip_image061

模板信息支持彈出頁面選擇,以下圖所示

clip_image062

錄入數據完成後,點擊保存按鈕,將數據保存至數據庫

3.6.5.3刪除

刪除列表中選中審批意見數據

4設計器

4.1設計器(WinForm版本)

4.1.1模板列表

clip_image064

功能描述

l 左側樹控件.加載不一樣版本的模板名稱.單擊樹結點,加載此模板名稱不一樣版本的列表.:單擊頂級節點,加載全部模板

l 右側頂部爲檢索條件,檢索條件是模板名稱和啓用狀態

l 右側頂部下面爲工具欄列表.包括模板新增,複製新增,修改,刪除,導入和導出

n 新增:彈出模板單據頁面,用於新增

n 複製新增:獲取選中行模板ID和版本並加載,其詳細信息加載至表單中,供用戶修改.:版本號自動+1處理

n 修改:修改選中行模板信息.:修改操做,不容許執行刪除環節及環節其餘信息

n 刪除:刪除功能包括刪除當前選中行模板信息(某一版本);刪除某一模板(全部版本)信息和刪除某一模板(某一版本)生成的流程實例信息

n 導入和導出,支持將模板數據導出爲Xml和Sql,共2種文件格式

l 右側右半部分包括上下2個內容.上面顯示此模板的發起權限列表;下面顯示爲模板環節列表

4.1.2模板表單

clip_image066

功能描述

l 頂部爲工具欄,包括髮起權限新增,發佈模板和關閉

n 發起權限:維護此模板容許哪些人發起

n 發佈模板:模板設計完成後,點擊此按鈕,保存至數據庫

l 上半部分爲模板基本信息.包括模板名稱,發起時間,辦理時限等

l 下半部分爲模板環節信息.功能包括新增,複製,刪除環節和快速錄入

n 新增環節:彈出新增環節表單

n 複製環節:根據選中行環節信息,複製新增環節,其標識符+1處理

n 刪除環節:將選中行環節刪除

n 選中某行,點擊」設置」按鈕,彈出修改環節表單

4.1.3模板發起權限

clip_image068

功能描述

l 權限類型包括

n 到人

n 到角色

n 到組織機構

n 動態到模板環節辦理人:是指模板環節配置的辦理用戶列表

n 動態到流程實例待辦人:是指用戶在模板環節配置的用戶列列表中,選擇此環節哪些人能夠辦理

n 動態到流程實例辦理人:是指此環節實例真正辦理的用戶列表

l 發起權限容許有多條,並且權限類型能夠不一樣

4.1.4模板環節表單.基礎信息

clip_image070

功能描述

l 狀態ID:環節標識符,在模板中惟一,不容許重複

l 辦理時限:此環節需辦理的時間限度.單位包括:分鐘,小時,天

l 狀態類型:標識此環節是否爲模板的特殊環節:即首環節或末環節.首環節是指模板發起後,流轉到的環節;末環節是指模板容許歸檔的環節.:整個模板中,有且僅有一個首環節和末環節

l 處理決策:容許此環節向下流轉的條件類型.包括第一用戶和任務共享.注:兩者區別詳見操做手冊

l 並行設置:此選項用於並行分支的發起和匯聚.配置發起選項時,表示此環節的待流轉分支都要生成用戶待辦數據;配置匯聚選項時,表示此環節的容許流轉條件要額外判斷是否全部流向此環節的待辦數據已流轉完成,若完成,則容許向下流轉

4.1.5模板環節信息.辦理權限

clip_image072

功能描述

:其配置方式與模板發起權限相同,

4.1.6模板環節信息.條件分支

clip_image074

功能描述

l 環節條件分支是指此環節容許向下流轉的分支走向.至關於要達到目的地,能夠有不少條路到達,這些條路就至關於條件分支.條件分支是供用戶選擇的

l 條件分支錄入頁面

clip_image075

功能描述

n 分支名稱:環節ID.必須是環節ID

n 分支標籤:並行分支時使用.若某幾個分支的分支標籤相同,表示這幾個分支需並行處理

n 默認分支:定時引擎使用.若辦理用戶在規定時間內沒有辦理,則經過定時引擎此環節能夠自動流轉至默認分支

n 過濾組織機構和過濾角色,用於選擇環節辦理用戶時,根據當前登陸用戶所在的組織機構和角色,過濾出與登陸用戶在同一組織機構或角色的辦理用戶

n 環節處理決策:是指目標環節的處理決策,容許在此處修改

4.1.7模板環節信息.子流程

clip_image077

功能描述

l 環節子流程是指在此環節中,容許另外發起某模板.注:同一環節容許發起多個模板

l 子流程錄入頁面

clip_image078

功能描述

n 子流程信息,經過選擇模板表單加載.以下圖所示

clip_image062[1]

n 是否迴歸至主流程,表示主流程是否需等待發起的子流程

n 子流程版本使用Max代替:因爲模板會根據業務不斷調整,從新發起新的模板,則某一時間點的子流程,其版本就多是歷史版本的模板.選中此項,表示子流程的模板版本,永遠保持最新,使用最大版本的模板信息

4.2設計器(WebForm版本)

暫不提供,請參考WinForm頁面開發

4.3設計器(WebMVC版本)

暫不提供,請參考WinForm頁面開發

5與其餘系統整合

 

源碼下載方式

1,關注微信公衆號:小特工做室(也可直接掃描簽名處二維碼)

2,發送:示例4003

便可下載

相關文章
相關標籤/搜索