今天终于将公司的工作流项目划上圆满句号了,由于急于转向其他产品的开发,并未全面的进行运转测试。
该项目主要参考了FireWorkflow为,在此基础上,引入了域的配置、工作流分类、业务数据表定义、工作流服务、外务协调器、日志、通知、代理,外围提供了表单设计器、流程设计器、表单相关控件。
一、模型
该模型主要由开始节点、结束节点、活动、路由、转移构成,对FireWorkflow改进的地方有:
1、手工活动
分配策略:全部、任意
完成策略:全部、任意、按完成数量、按完成百分比
超时策略:默认、完成、提前提醒
选项:允许临时指定参与者、允许委派、允许跳过、允许收回、允许拒收
关键指标定义:目标表达式、状态表达式、趋势表达式
2、路由
分支网关:并行、独占选择、多重选择
合并网关:同步、简单聚合、多重聚合
触发类型:自动、手工
3、转移
条件:使用Sql标准语法作为条件表达式
转入策略:全部、任意、最终、按进入数量、按进入百分比
其他:动作名称
二、业务数据表定义
支持在线自定义业务数据结构,也可以由工作流分类引入即定的数据结构(对于同一个分类,数据结构不改变,业务性强);
支持明细表的定义;
支持公式的定义,可使用sum、max等聚合函数对明细表统计。
三、工作流域
可以将一个业务系统内的不同业务分离为多个域,每个域配置相应的引擎实现部份。
四、工作流服务
主要用于监视域中运行的具有时限的任务,可以将工作流服务宿主到web中。
五、工作流分类
将不同的业务进行分类,对于业务性相对固定的工作流(如公文、物资采购),其数据表是不变的,因此可以为该分类配置一个数据结构定义文件,而其他简单的业务(如请假、费用报销)则没有该文件,可以在线定义数据结构。
六、外务协调器
主要用于获取业务系统中的组织机构、角色、群组、用户、代理用户等信息,以及当前登录用户的信息。