posts - 94, comments - 346, trackbacks - 10, articles - 0
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

3个月时间完成工作流项目

Posted on 2011-06-28 00:02  faib  阅读(...)  评论(... 编辑 收藏

  今天终于将公司的工作流项目划上圆满句号了,由于急于转向其他产品的开发,并未全面的进行运转测试。

  该项目主要参考了FireWorkflow为,在此基础上,引入了域的配置、工作流分类、业务数据表定义、工作流服务、外务协调器、日志、通知、代理,外围提供了表单设计器、流程设计器、表单相关控件。

 

一、模型

  该模型主要由开始节点、结束节点、活动、路由、转移构成,对FireWorkflow改进的地方有:

 

1、手工活动

  分配策略:全部、任意

  完成策略:全部、任意、按完成数量、按完成百分比

  超时策略:默认、完成、提前提醒

  选项:允许临时指定参与者、允许委派、允许跳过、允许收回、允许拒收

  关键指标定义:目标表达式、状态表达式、趋势表达式

 

2、路由

  分支网关:并行、独占选择、多重选择

  合并网关:同步、简单聚合、多重聚合

  触发类型:自动、手工

 

3、转移

  条件:使用Sql标准语法作为条件表达式

  转入策略:全部、任意、最终、按进入数量、按进入百分比

  其他:动作名称

 

二、业务数据表定义

  支持在线自定义业务数据结构,也可以由工作流分类引入即定的数据结构(对于同一个分类,数据结构不改变,业务性强);

  支持明细表的定义;

  支持公式的定义,可使用sum、max等聚合函数对明细表统计。

 

三、工作流域

  可以将一个业务系统内的不同业务分离为多个域,每个域配置相应的引擎实现部份。

 

四、工作流服务

  主要用于监视域中运行的具有时限的任务,可以将工作流服务宿主到web中。

 

五、工作流分类

  将不同的业务进行分类,对于业务性相对固定的工作流(如公文、物资采购),其数据表是不变的,因此可以为该分类配置一个数据结构定义文件,而其他简单的业务(如请假、费用报销)则没有该文件,可以在线定义数据结构。

 

六、外务协调器

  主要用于获取业务系统中的组织机构、角色、群组、用户、代理用户等信息,以及当前登录用户的信息。