最近公司要整理公司内部oa系统,须要使用到工做流,因此就开始了开源工做流挑选,使用,到集成到公司内部系统的工做。 html
首先在网上搜了文档,本身也有补充,整理啦国内几款工做流的比较,因为没有个个击破式的研究因此不足之处还望海涵。web
送上比较内容图:redis
鉴于这个表的内容,与公司技术与需求的结合,咱们选择啦RoadFlow工做流引擎。数据库
下面踏上RoadFlow的征程。数据结构
官方网址:http://cqroad.cn/mvc
官方文档:http://cqroad.cn/Doc/Default.aspx框架
官方源码下载连接:http://cqroad.cn/Download学习
项目下载完成后,spa
一、自带有数据库脚本,执行到本地数据库,就行啦。设计
二、打开项目,因为咱们公司绝大多说项目都是用mvc,因此我选用webmvc项目,移除webform项目,也能够保留去看看哈。
三、配置webconfig中的数据库连接字符串,注意这里通常会有一个版本问题或者模式问题,爆红页面顺手就能解决没多大难度。
四、而后就是打开/login/index页面,按照提示登陆进去。
五、根据文档,本身一点点摸索前进啦。
我摸索的差很少啦,感受公司通常的流程需求这里是能够知足的,而且考虑啦一下集成的成本与技术实现,也感受没有什么问题,毕竟代码都在手里吗,哈哈。而后搞起。
首先弄懂一个陌生的项目,我是从数据库进行操刀的,由于我看啦一下他的项目结构,没有很是特别的东西,就是通常的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系列。