柔性的工作流管理系统设计

     工作流管理系统已经发展了很多年了,已经在不同的行业得到了应用,对企业信息化建设发挥了重大的作用。但是很多的工作流管理系统存在着不够灵活,弹性不足的问题。在国内的项目中,不能够适应企业灵活多变的业务流程以及复杂的人事关系。如何设计出灵活度较高,能够适应不同的行业,以及不同企业的柔性的工作流管理系统呢?通过参与过一些OA系统及其他的行业的工作流应用系统的开发,总结出如下设计经验:

1.流程中的每个活动,在加入参与者时,需要指定流程表单的操作项。在执行到该活动时,参与者的操作项为可编辑,其与为不可编辑或者为文本显示。在对象设计时,表单定义对应一张表,规定表单字段和数据库存储字段的对应关系,流程定义一张表,二者进行一对一关联,流程实例一张表和表单的执行数据一张表,进行一对一关联。

2.表单设计,使用html设计好即可,省去了表单设计器的开发工作,而且设计出来的表单可以足够美观。并且省去设计器表单,到html的映射的开发量,以及运行过程中的开销。流程引擎在执行流程实例的过程中需要控制表单的显示以及操作。比如流程的第一个活动在表单上输入的数据,在后面的活动操作界面上能够显示,并且需要控制操作,即哪些元素可以操作,哪些元素不能操作。

3.流程运行过程中既需要流程引擎根据流程的定义,自动流转到下一个任务,也需要流程的参与者根据流程的状态,选择下一个任务的执行者和执行的活动。可以有两种情况,第一种情况为只能选择执行者,另一种,是执行者和执行的活动都可以选。此种流程称为半自动化流程。 当流程执行到某个参与者时,若参与者指定了委托者(通过请假流程可以设置,在执行过程中查询相关的表进行查询),则任务自动流转到委托处执行。

4.流程的发起者可以看到流程实例的执行状态,可用图形化或者表格方式进行显示,并且定义过程中可以定义撤销点(类型数据库的回滚点),即流程执行到那个活动前可以撤销。并且可以有催办功能,比如给该活动的参与者发送短信等方式进行催办。催办过的任务在任务表中需要状态显示。

5. 流程实例在执行的过程中,需要增加统计功能,比如统计每个活动的起止时间,便于统计每个参与者,

   处理工作的效率。为流程优化提供参考。

对象模型图:


柔性的工作流管理系统设计
 

相关推荐