.Net開源工做流Roadflow的使用與集成

序言

最近公司要整理公司內部oa系統,須要使用到工做流,因此就開始了開源工做流挑選,使用,到集成到公司內部系統的工做。 html

首先在網上搜了文檔,本身也有補充,整理啦國內幾款工做流的比較,因爲沒有個個擊破式的研究因此不足之處還望海涵。web

送上比較內容圖:redis

鑑於這個表的內容,與公司技術與需求的結合,咱們選擇啦RoadFlow工做流引擎。數據庫

下面踏上RoadFlow的征程。數據結構

RoadFlow的下載、部署、及使用

官方網址:http://cqroad.cn/mvc

官方文檔:http://cqroad.cn/Doc/Default.aspx框架

官方源碼下載連接:http://cqroad.cn/Download學習

項目下載完成後,spa

一、自帶有數據庫腳本,執行到本地數據庫,就行啦。設計

二、打開項目,因爲咱們公司絕大多說項目都是用mvc,因此我選用webmvc項目,移除webform項目,也能夠保留去看看哈。

三、配置webconfig中的數據庫連接字符串,注意這裏通常會有一個版本問題或者模式問題,爆紅頁面順手就能解決沒多大難度。

四、而後就是打開/login/index頁面,按照提示登陸進去。

五、根據文檔,本身一點點摸索前進啦。

我摸索的差很少啦,感受公司通常的流程需求這裏是能夠知足的,而且考慮啦一下集成的成本與技術實現,也感受沒有什麼問題,畢竟代碼都在手裏嗎,哈哈。而後搞起。

Roadflow開源工做流集成到公司內部OA系統

首先弄懂一個陌生的項目,我是從數據庫進行操刀的,由於我看啦一下他的項目結構,沒有很是特別的東西,就是通常的mvc項目。

數據結構以下:

一、基礎平臺:日誌表,數據庫配置表,數據字典表。

這些表在roadflow中幾乎都是單表操做,比較獨立,不用作過多的分析就一目瞭然。

 

二、組織結構,工做組,人員信息

三、角色,權限,人員信息

四、表單,流程,按鈕,步驟等工做流相關核心表

 

 

須要注意的就是本身建本身的表單字段存儲表,而後在綁定表單的時候能夠選擇數據本身的數據表進行綁定映射。

分析完表結構以後,就是本身的登陸權限集成與Js解壓分析,集成到適合本身的內部系統中。通過千辛萬苦以後,就是輕鬆的頁面集成。

哦,中間綁定自定義事件的時候,遇到啦反射程序集路徑問題,這裏給你們作個簡單的分享。修改下路徑就能夠啦。

/// <summary>
        /// 執行自定義方法
        /// </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);
            }
        }

小結

因爲工做流不是一個工做量小的項目,別且過於繁雜,因此若是沒有特殊的需求,建議使用開源框架。

還有,若是你也用到啦工做流,那麼我們能夠一塊兒交流學習,左上方是個人羣,歡迎加入。

下面給你們展現下個人成果。

流程設計集成

表單設計集成

待辦事項集成

 

好啦,好事說三遍,我再次說明下,若是你對本篇內容有什麼批評指教或者想一塊兒交流學習,歡迎加入左上角個人技術交流羣。

今晚陪媳婦逛超市啦,時間有點緊,就整理啦一篇圖比較多的博文,耽誤啦個人redis,明天堅持繼續個人redis系列

相關文章
相關標籤/搜索