送上比较内容图:

鉴于这个表的内容,与公司技术与需求的结合,我们选择啦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);
}
}

小结

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

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

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

流程设计集成

表单设计集成

待办事项集成

.net 开源工作流比较及应用的更多相关文章

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

    序言 最近公司要整理公司内部oa系统,需要使用到工作流,所以就开始了开源工作流挑选,使用,到集成到公司内部系统的工作. 首先在网上搜了文档,自己也有补充,整理啦国内几款工作流的比较,由于没有个个击破式 ...

  2. 开源工作流 Bonita BPM (JAVA)

    Bonita BPM 开源工作流 Bonita BPM  (JAVA) http://www.bonitasoft.com/

  3. .Net开源工作流Roadflow的使用与集成(转)

    序言 最近公司要整理公司内部oa系统,需要使用到工作流,所以就开始了开源工作流挑选,使用,到集成到公司内部系统的工作. 首先在网上搜了文档,自己也有补充,整理啦国内几款工作流的比较,由于没有个个击破式 ...

  4. Java三大主流开源工作流引擎技术分析

    首先,这个评论是我从网上,书中,搜索和整理出来的,也许有技术点上的错误点,也许理解没那么深入.但是我是秉着学习的态度加以评论,学习,希望对大家有用,进入正题! 三大主流工作流引擎:Shark,oswo ...

  5. 【Slickflow学习】.NET开源工作流介绍、下载(一)

    第一次自己写博客文章,大家多多指教.写博客主要记录一下学习的过程,给初学者提供下参考,也留给自己做备忘. Slickflow .NET开源工作流-介绍 这里摘录Slickflow官网的介绍: Slic ...

  6. Java开源 开源工作流

    OpenEbXML   点击次数7801 Werkflow   点击次数11181 OSWorkflow   点击次数14988 wfmOpen   点击次数7997 OFBiz   点击次数1234 ...

  7. 【Slickflow学习】.NET开源工作流环境搭建(三)

    第一次自己写博客文章,大家多多指教.写博客主要记录一下学习的过程,给初学者提供下参考,也留给自己做备忘. Slickflow .NET开源工作流-环境搭建 在VS2010中使用附加进程的方式调试IIS ...

  8. 【Slickflow学习】.NET开源工作流项目转换(二)

    第一次自己写博客文章,大家多多指教.写博客主要记录一下学习的过程,给初学者提供下参考,也留给自己做备忘. Slickflow .NET开源工作流-项目转换 上一篇文章里说了1.2版本的下载,下载解压后 ...

  9. .net开源工作流引擎ccflow

    关于济南驰骋信息技术有限公司的.net开源工作流引擎 驰骋工作流引擎,工作流程管理系统:简称ccflow,驰骋一体化解决方案简称ccport. ccflow是济南驰骋信息技术有限公司向社会提供的一款1 ...

随机推荐

  1. Win Server 2008 RD案例:Client通过Server的浏览器上网

    一.简介 RD是Windows Server远程桌面服务,可以实现从客户端运行服务器上的软件.首先在Server安装软件,设置能远程访问的应用和账号,并且创建.rdp快捷方式文件,然后Client打开 ...

  2. Csharp--Read Csv file to DataTable

    在网上找的资料都不怎么好使,许多代码一看就知道根本没有考虑全面. 最后找到一个好用的,在codeproject上,这位老兄写成了一个framework,太重了. http://www.codeproj ...

  3. oracle 倒库后insert id冲突的问题

    错误为:ORA-00001: unique constraint violated 把test库的数据导入到另一个库后,忘记修改自增id sequence的nextval了,因此,当前的数据库中数据和 ...

  4. 【2016-10-16】【坚持学习】【Day7】【建造者模式】

    建造者模式: 一个复杂的对象由多个分部件组成.一个复杂对象 class Product { private string partA; //定义部件,部件可以是任意类型,包括值类型和引用类型 priv ...

  5. Bootstrap CSS 栅格、代码和表格

    一.bootstrap栅格 Bootstrap 提供了一套响应式.移动设备优先的流式网格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多12列. Bootstrap 网格系统(G ...

  6. Mybatis(综合案例)

    MyBatis本是apache的一个开源项目iBatis,2010年这个项目有Apache software foundation 迁移到了Google code,并改名MyBatis.2013年11 ...

  7. Linux 进程间通讯详解五

    msgrcv函数 ssize_t msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp,int msgflg); --功能:是从一个消息队列接 ...

  8. 阅读ArrayBlockingQueue源码了解如何利用锁实现BlockingQueue

    BlockingQueue是多线程里面一个非常重要的数据结构.在面试的时候,也常会被问到怎么实现BlockingQueue.本篇根据Java7里ArrayBlockingQueue的源码,简单介绍一下 ...

  9. 20145315&20145307《信息安全系统设计基础》实验五

    20145315&20145307<信息安全系统设计基础>实验五 北京电子科技学院(BESTI) 实 验 报 告 课程:信息安全系统设计基础 班级:1453 1452 姓名:陈俊达 ...

  10. vc++2013中使用MySQL connector/C++ 1.1.4静态链接报错

    包含头文件 #include <mysql_connection.h> #include <mysql_driver.h> #include <cppconn/state ...