.Net开源工作流Roadflow的使用与集成-阿里云开发者社区

开发者社区> 吞吞吐吐的> 正文

.Net开源工作流Roadflow的使用与集成

简介:
+关注继续查看

序言

最近公司要整理公司内部oa系统,需要使用到工作流,所以就开始了开源工作流挑选,使用,到集成到公司内部系统的工作。 

首先在网上搜了文档,自己也有补充,整理啦国内几款工作流的比较,由于没有个个击破式的研究所以不足之处还望海涵。

送上比较内容图:

鉴于这个表的内容,与公司技术与需求的结合,我们选择啦RoadFlow工作流引擎。

下面踏上RoadFlow的征程。

RoadFlow的下载、部署、及使用

官方网址:http://cqroad.cn/

官方文档:http://cqroad.cn/Doc/Default.aspx

官方源码下载链接:http://cqroad.cn/Download

项目下载完成后,

1、自带有数据库脚本,执行到本地数据库,就行啦。

2、打开项目,由于我们公司绝大多说项目都是用mvc,所以我选用webmvc项目,移除webform项目,也可以保留去看看哈。

3、配置webconfig中的数据库链接字符串,注意这里一般会有一个版本问题或者模式问题,爆红页面顺手就能解决没多大难度。

4、然后就是打开/login/index页面,按照提示登录进去。

5、根据文档,自己一点点摸索前进啦。

我摸索的差不多啦,感觉公司一般的流程需求这里是可以满足的,并且考虑啦一下集成的成本与技术实现,也感觉没有什么问题,毕竟代码都在手里吗,哈哈。然后搞起。

Roadflow开源工作流集成到公司内部OA系统

首先弄懂一个陌生的项目,我是从数据库进行操刀的,因为我看啦一下他的项目结构,没有非常特别的东西,就是一般的mvc项目。

数据结构如下:

1、基础平台:日志表,数据库配置表,数据字典表。

这些表在roadflow中几乎都是单表操作,比较独立,不用做过多的分析就一目了然。

 

2、组织结构,工作组,人员信息

3、角色,权限,人员信息

4、表单,流程,按钮,步骤等工作流相关核心表

 

 

需要注意的就是自己建自己的表单字段存储表,然后在绑定表单的时候可以选择数据自己的数据表进行绑定映射。

分析完表结构之后,就是自己的登录权限集成与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);
            }
        }
复制代码
复制代码

小结

由于工作流不是一个工作量小的项目,别且过于繁杂,所以如果没有特殊的需求,建议使用开源框架。

还有,如果你也用到啦工作流,那么咱们可以一起交流学习,左上方是我的群,欢迎加入。

下面给大家展示下我的成果。

流程设计集成

表单设计集成

待办事项集成

 

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/6233408.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
MyBatis 执行问题|学习笔记
快速学习 MyBatis 执行问题
5 0
上次被 ArrayList 锤了一拳后,LinkedList 很不服气,做出最后一击(1)
上次被 ArrayList 锤了一拳后,LinkedList 很不服气,做出最后一击
5 0
如何使用Kubernetes里的NetworkPolicy
如何使用Kubernetes里的NetworkPolicy
5 0
硬核,学习 Java 的一点小建议(思维导图,建议收藏2)!
硬核,学习 Java 的一点小建议(思维导图,建议收藏)!
4 0
Duang!Duang!Duang!直击痛点的一款 HTTP 客户端框架(Java),墙裂推荐!(1)
Duang!Duang!Duang!直击痛点的一款 HTTP 客户端框架(Java),墙裂推荐!
5 0
SLS告警管理中心App重磅发布!
SLS发布了一款日志应用:告警管理中心;告警管理中心是一套以业务为中心告警管理运维平台,企业可以将同时将已有的监控告警平台如Zabbix,Prometheus,Datadog等产生的告警和SLS上的Project/Logstore等资源产生的告警添加到告警运维运维中心进行统一的告警管理和通知配置,将相关业务的告警收敛到一个地方进行运维管理,可以有效的提高运维效率。
7 0
凌晨起来肝的一篇 Java 学习路线,保证学弟学妹们大三大四的时候顺利找到实习 Offer(2)
凌晨起来肝的一篇 Java 学习路线,保证学弟学妹们大三大四的时候顺利找到实习 Offer
6 0
半年时间,从机械转行 Java,二哥的读者真牛逼!
半年时间,从机械转行 Java,二哥的读者真牛逼!
4 0
MongoDB最简单的入门教程之二 使用nodejs访问MongoDB
MongoDB最简单的入门教程之二 使用nodejs访问MongoDB
5 0
4533
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载