.Net开源工作流Roadflow的使用与集成
序言
最近公司要整理公司內(nèi)部oa系統(tǒng),需要使用到工作流,所以就開始了開源工作流挑選,使用,到集成到公司內(nèi)部系統(tǒng)的工作。?
首先在網(wǎng)上搜了文檔,自己也有補(bǔ)充,整理啦國內(nèi)幾款工作流的比較,由于沒有個個擊破式的研究所以不足之處還望海涵。
送上比較內(nèi)容圖:
鑒于這個表的內(nèi)容,與公司技術(shù)與需求的結(jié)合,我們選擇啦RoadFlow工作流引擎。
下面踏上RoadFlow的征程。
RoadFlow的下載、部署、及使用
官方網(wǎng)址:http://cqroad.cn/
官方文檔:http://cqroad.cn/Doc/Default.aspx
官方源碼下載鏈接:http://cqroad.cn/Download
項目下載完成后,
1、自帶有數(shù)據(jù)庫腳本,執(zhí)行到本地數(shù)據(jù)庫,就行啦。
2、打開項目,由于我們公司絕大多說項目都是用mvc,所以我選用webmvc項目,移除webform項目,也可以保留去看看哈。
3、配置webconfig中的數(shù)據(jù)庫鏈接字符串,注意這里一般會有一個版本問題或者模式問題,爆紅頁面順手就能解決沒多大難度。
4、然后就是打開/login/index頁面,按照提示登錄進(jìn)去。
5、根據(jù)文檔,自己一點(diǎn)點(diǎn)摸索前進(jìn)啦。
我摸索的差不多啦,感覺公司一般的流程需求這里是可以滿足的,并且考慮啦一下集成的成本與技術(shù)實現(xiàn),也感覺沒有什么問題,畢竟代碼都在手里嗎,哈哈。然后搞起。
Roadflow開源工作流集成到公司內(nèi)部OA系統(tǒng)
首先弄懂一個陌生的項目,我是從數(shù)據(jù)庫進(jìn)行操刀的,因為我看啦一下他的項目結(jié)構(gòu),沒有非常特別的東西,就是一般的mvc項目。
數(shù)據(jù)結(jié)構(gòu)如下:
1、基礎(chǔ)平臺:日志表,數(shù)據(jù)庫配置表,數(shù)據(jù)字典表。
這些表在roadflow中幾乎都是單表操作,比較獨(dú)立,不用做過多的分析就一目了然。
2、組織結(jié)構(gòu),工作組,人員信息
3、角色,權(quán)限,人員信息
4、表單,流程,按鈕,步驟等工作流相關(guān)核心表
需要注意的就是自己建自己的表單字段存儲表,然后在綁定表單的時候可以選擇數(shù)據(jù)自己的數(shù)據(jù)表進(jìn)行綁定映射。
分析完表結(jié)構(gòu)之后,就是自己的登錄權(quán)限集成與Js解壓分析,集成到適合自己的內(nèi)部系統(tǒng)中。經(jīng)過千辛萬苦之后,就是輕松的頁面集成。
哦,中間綁定自定義事件的時候,遇到啦反射程序集路徑問題,這里給大家做個簡單的分享。修改下路徑就可以啦。
/// <summary>/// 執(zhí)行自定義方法/// </summary>/// <param name="eventName"></param>/// <returns></returns>public object ExecuteFlowCustomEvent(string eventName, object eventParams, string dllName = ""){if (dllName.IsNullOrEmpty()){dllName = eventName.Substring(0, eventName.LastIndexOf('.'));dllName = dllName.Substring(0,dllName.LastIndexOf('.'));}System.Reflection.Assembly assembly = System.Reflection.Assembly.Load(dllName);string typeName = System.IO.Path.GetFileNameWithoutExtension(eventName);string methodName = eventName.Substring(typeName.Length + 1);Type type = assembly.GetType(typeName, true);object obj = System.Activator.CreateInstance(type, false);var method = type.GetMethod(methodName);if (method != null){return method.Invoke(obj, new object[] { eventParams });}else{throw new MissingMethodException(typeName, methodName);}}小結(jié)
由于工作流不是一個工作量小的項目,別且過于繁雜,所以如果沒有特殊的需求,建議使用開源框架。
還有,如果你也用到啦工作流,那么咱們可以一起交流學(xué)習(xí),左上方是我的群,歡迎加入。
下面給大家展示下我的成果。
流程設(shè)計集成
表單設(shè)計集成
待辦事項集成
總結(jié)
以上是生活随笔為你收集整理的.Net开源工作流Roadflow的使用与集成的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 超难的数学题及答案(超难的数学题)
- 下一篇: echarts在.Net中使用实例(一)