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

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

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

 

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

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

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

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

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

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

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

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

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

支持流程自身的递归调用

 

 

先说一下我的代码

 

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

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

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

一个基于WF的业务流程平台_第1张图片

 

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

一个基于WF的业务流程平台_第2张图片

 

一个基于WF的业务流程平台_第3张图片

一个基于WF的业务流程平台_第4张图片

 

 

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

一个基于WF的业务流程平台_第5张图片

服务

服务以EXE程序的方式运行

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

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

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

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

一个基于WF的业务流程平台_第6张图片

 

时间引擎

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

一个基于WF的业务流程平台_第7张图片

 

 

流程设计器(专业版)

 

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

一个基于WF的业务流程平台_第8张图片

 

 

打开数据库中的流程

一个基于WF的业务流程平台_第9张图片

 

将流程发布到数据库中

一个基于WF的业务流程平台_第10张图片

 

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

 

一个基于WF的业务流程平台_第11张图片

 

一个基于WF的业务流程平台_第12张图片

 

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

一个基于WF的业务流程平台_第13张图片

 

一个基于WF的业务流程平台_第14张图片

 

设计工作流时,有向导

一个基于WF的业务流程平台_第15张图片

 

一个基于WF的业务流程平台_第16张图片

 

一个基于WF的业务流程平台_第17张图片

一个基于WF的业务流程平台_第18张图片

 

一个基于WF的业务流程平台_第19张图片

 

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

一个基于WF的业务流程平台_第20张图片

 

表单设计器

鼠标拖动任意布局,

 

一个基于WF的业务流程平台_第21张图片

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

一个基于WF的业务流程平台_第22张图片

 

一个基于WF的业务流程平台_第23张图片

 

流程监控器

一个基于WF的业务流程平台_第24张图片

 

一个基于WF的业务流程平台_第25张图片

 

一个基于WF的业务流程平台_第26张图片

客户端

一个基于WF的业务流程平台_第27张图片

 

一个基于WF的业务流程平台_第28张图片

 

一个基于WF的业务流程平台_第29张图片

 

任务区

一个基于WF的业务流程平台_第30张图片

 

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

一个基于WF的业务流程平台_第31张图片

 

功能模块可配置

一个基于WF的业务流程平台_第32张图片

一个基于WF的业务流程平台_第33张图片

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

一个基于WF的业务流程平台_第34张图片

 

人员权限管理

一个基于WF的业务流程平台_第35张图片

 

流程启动管理

一个基于WF的业务流程平台_第36张图片

 

启动流程

一个基于WF的业务流程平台_第37张图片

 

一个基于WF的业务流程平台_第38张图片

 

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

 

一个基于WF的业务流程平台_第39张图片

 

可对流程进行管理

一个基于WF的业务流程平台_第40张图片

 

 

报表

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

一个基于WF的业务流程平台_第41张图片

 

一个基于WF的业务流程平台_第42张图片

 

一个基于WF的业务流程平台_第43张图片

 

一个基于WF的业务流程平台_第44张图片

 

一个基于WF的业务流程平台_第45张图片

 

 

一个基于WF的业务流程平台_第46张图片

 

一个基于WF的业务流程平台_第47张图片

 

 

最后说明

 

这个平台是去年年初用空余时间写的,每天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 用流程设计设计流程的说明

 

 

 

你可能感兴趣的:(平台)