一个基于WF的业务流程平台

时间:2021-02-27 07:58:25

一个基于WF的业务流程平台

过年了向所有学习WF,关注我的博客的朋友们问个好,发布一个我用WF开发的工作流平台,供大家参考

 

这个平台适合于以审批为主业务的工作环境,可以做为一个产品直接使用(已有公司在项目中直接使用了这个平台).

这个平台的特点是我对子流程的支持做得比较满意

WF对子流程支持很弱,我没用

这个平台支持静态调用多个子流程,动态调用多个子流程,

支持并发调多个不同类型的子流程

支持并发多个子流程的等待

支持数据表单从主流程分单入子流程,子流程再入子流程,最后再回到主流程

支持可用不同分支并发的会签

支持将现有的正在运行的流程挂接到其它流程

支持流程自身的递归调用

 

 

先说一下我的代码

 

从来不在代码中加注解,我写代码的方式是先写文档,然后按文档去写代码.

所以,要看代吗要先打开文档

(这是文档中的一个抓图,[1.1],[1.2],[1.3]都是方法变号,方法前有[√]表示该方法有对应的单元测试)

一个基于WF的业务流程平台

 

打开代吗,你在代码中会看到编号,所有的编号在文档中都有详细目的,实现方式,调用,算法说明

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

一个基于WF的业务流程平台

 

 

数据库设计,架构设计都在文档中

一个基于WF的业务流程平台

服务

服务以EXE程序的方式运行

提供了权限,流程操作,报表的WCF提口,

服务写的非常稳定,所的能判断的都判断了,基本没用 try { } catch { },客户端的不正确操作服务都会有说明值返回,压力测试不会拖垮服务

系统级问题会写入系统日志,业务级问题会写入业务日志,logo文件中会记录所有操作的流水账.

服务的所的参数在config文件中配置,服务的主程序是[BPM.Foundation.Server.exe]

一个基于WF的业务流程平台

 

时间引擎

计时,自动处理,可以管理工作日

一个基于WF的业务流程平台

 

 

流程设计器(专业版)

 

可发直接从数据库中打开流程,保存流程,也可将流程导出为XOML文件,也可加载XOML文件

一个基于WF的业务流程平台

 

 

打开数据库中的流程

一个基于WF的业务流程平台

 

将流程发布到数据库中

一个基于WF的业务流程平台

 

可以在发布前用测试器在本地进行快速测试

 

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

可以为流程生成文档,并生成业务流程图

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

设计工作流时,有向导

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

流程设计器(用户简洁版)

一个基于WF的业务流程平台

 

表单设计器

鼠标拖动任意布局,

 

一个基于WF的业务流程平台

可以为任意字段指定权限(流程设计器上)

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

流程监控器

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

客户端

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

任务区

一个基于WF的业务流程平台

 

系统中所有的信息页面都可以动态添加项

一个基于WF的业务流程平台

 

功能模块可配置

一个基于WF的业务流程平台

一个基于WF的业务流程平台

可以以图形的方式查看流程

一个基于WF的业务流程平台

 

人员权限管理

一个基于WF的业务流程平台

 

流程启动管理

一个基于WF的业务流程平台

 

启动流程

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

表单的字段权限控制,有验证,版本管理,打印功能

 

一个基于WF的业务流程平台

 

可对流程进行管理

一个基于WF的业务流程平台

 

 

报表

只使用了Reporting 客户端控件,不需要Reporting Services服务

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

 

一个基于WF的业务流程平台

 

一个基于WF的业务流程平台

 

 

最后说明

 

这个平台是去年年初用空余时间写的,每天5个小时用了一个半月.

一般我前半夜写服务部分,思路还算清晰,所以写的还可以,文档也比效认真.

后半夜累的时候就用WPF写客户端,那时基本处于半睡眠状态,所以实现的方式很乱,风格也不统一,而且没文档(^_^)

 

所以要直接使用这个平台,服务部分没什么问题,前台UI建议重写,可以用WPF,Winform,ASPNET,Silverlight,

如果用Silverlight写,无法直接访问我的WCF服务,有个Silverlight跨域安全问题,有这方面需求的,我可以给你提供一个独立的跨域验证服务,加载到这个平台中

 

[流程监控器]部分,我有点偷懒,把以前项目的UI直接用上了,有的地方好像有连接服务或数据库代码写死的情况,使用时注意一下,自已改过来就行了.

 

平台使用的是Net 3.5

数据库是Sql Server 2008 任意版本都行,操作系统可用win XP ,win 2003 , win 2008 , (vista 我没试过)

 

有的盗版Win xp /2003 将系统中的一些服务去掉了,如DTC,这样在运行时WF的持久化由于要跨库操作,会报错,报的不是数据库错误,而是队列错误.这个错误我捕获了,如果大家看到这个错误注意一下系统服务,我的队列处理的很好,不会出错

 

所有的数据库与网络配置都在对应的Config文件中,根据自已的情况改一下就可已了.默认是全在本运行.

如要地网络中运行,注意一下防火墙

 

表单设计器做的一般,好多人没用我的表单设计器,有用Infopath的,有用ASPNET动态页的.

郁闷中,下个版本我一定写一个像样的表单设计器

 

系统中已初始化了一个用于练习的组织结构,与一组各种业务主题的流程

 

这个平台的思想就是[基于WF设计业务流程平台]这系列的讲的,只不过有些内容在这个平台上只做了后台,前台UI中没有体现.

好了,更多的内容我会在[基于WF设计业务流程平台]这系列中详细讲的

 

代码下载:

http://cid-c36588978afc344a.skydrive.live.com/browse.aspx/WF (已无效)

(修改为)

 http://cid-c36588978afc344a.office.live.com/browse.aspx/BPM.Foundation%5E_%e5%bc%80%e5%8f%91%e7%89%88 

 

BPM.Foundation.rar 服务

BPM.Foundation.Designer.rar 流程设计器(专业版)

BPM.Foundation.WorkflowMonitor.rar 流程监控器

BPM.Client.rar 客户端,流程设计器(用户简洁版),表单设计器报表

DB.rar 数据库

Help.rar 开发文档

流程设计(VS2008版).rar 用VS设计流程的说明

流程设计(设计器版).rar 用流程设计设计流程的说明