.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系列

相关文章
相关标签/搜索