工作流引擎设计第一版

很久没写点东西了,现在有点时间来分享下工作流引擎设计的一点体会。希望能帮助各位园友。

前段时间接手一OA系统项目,经过一段时间的需求调研,总共十多个功能模块,但系统主要功能是应付一堆堆审批流程,各流程千差万别,而且流程变动也大,这无疑是需要设计一个工作流引擎才能解决。这个引擎主要做到流程可配置,可视化编辑,可视化的流程图展示,且需要保留审批处理的历史快照......

经过一段时间的资料查阅(感谢园子的大虾们),并且经合自身的经历(曾经用过,但未曾开发过工作流引擎),终于想出了一套方案:

以下是相关的网络资料:

http://www.cnblogs.com/f2flow/p/3659685.html

http://cqroad.cn/ 

 链接一主要是可借鉴下流程的运转模型,连接二主要是可借鉴下流程图设计

标准参考模型图:

 

 

以我的理解,工作流引擎分两大部分:流程模板库和流程实例库。

流程模板库是各流程配置的地方,可看作是工厂生产仓库中的机模,里面包含了流程制作的处理步骤,各步骤的运转方式,发起权限,提醒处理,处理人设置等,当流程模板装配完毕后就可批量生产,上市销售了。

流程实例就好比如上述已上市销售的流程产品了,经过用户的选择购买。按照相关说明进行使用。

 

其组成可理解如下:

 

一个流程模板可生成多个实例(如对象实例化一样),每个实例中包含多个处理步骤,每个处理步骤中蕴含了所指定的表单(数据呈现)、处理动作、运转规则、提醒处理等。

其中处理动作主要是:草稿,提交,驳回,作废,暂存,转办,转阅。

处理规则就是根据流程的运转模型而定,顺序模式,单选模式,并行分支模式,汇聚模式,转办模式,驳回模式等

而表单,则是流程步骤处理时的数据展现形式,可理解为页面。里面的数据及呈现需根据自身业务情况而定。流程与表单的结合是一个难点

 

经过我的理解,梳理出一个适合自己设计时的流程引擎模型

 

模型中分成三个库,这主要都是为了体现在数据存储上。模板管理与表单库有机地结合(模板管理负责流转规则的配置,表单库负责数据呈现)制作成模板,最终被用户所使用,激活成一个个实例至运行库中。如运行库中的实例出现异常,则需要流程监控模块进行调整。

不过表单的设计是一个难点,需要进行多种格式化的处理,由于时间和人力都有限,没有具体实现此功能。目前是使用硬编码设计表单的形式来应付。

 

分享一下数据结构:

     

 

 

流程配置图:

 

步骤配置:

 

目前的流程引擎还未考虑到支持多平台调用,只局限于自身系统。各们有见解的可留言分享,感谢。

有很多实现细节未能详细讲述,日后有时间再分享。

 

转载于:https://www.cnblogs.com/TsinghuaSit/p/4195774.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值