webreport

博客园 首页 新随笔 联系 订阅 管理

前言:
osworkflow的任务管理很简单,没有专门的任务表,也没有待办,已办,发出,处理任务等等。
只有很简单的查询用户可处理的动作和已经处理过的历史步骤。(注意这里只是可处理的动作和已经处理过的历史步骤,都不是任务)

这显然距任务管理差很多很多

改造方案:
      增加任务表,记录任务的相关属性,可执行人,任务处理人,任务发出时间,完成时间等。
      流程定义模版文件中增加任务节点,定义任务的名称,从流程上下文中获取任务的内容和相关属性,定义任务的可执行人。

      将产生任务记录和处理关闭任务的过程嵌入到工作流引擎的动作执行函数中。
      当流程到达步骤后,根据流程定义模版文件中定义的任务节点,产生任务记录;
      当动作执行时,检查任务是否可以执行完成,关闭任务。

      因为单独出一张任务表,所以可以增加对任务的管理,查询得出待办任务列表,已办任务列表,做代理待办,催办,逾期未办等等的处理。

      可以做到的任务管理:任务发起,待办,已办,催办,督办,收回等等。

 

任务表结构:

 


流程定义节点:
例如:
     <tasks>
        <task name="审核员工:${oCaller.name} 的请假申请" classname="cn.com.fcsoft.workflow.util.MakeTask">
          <arg name="taskDesc">内容:${remark}</arg>
          <arg name="rolename">部门经理</arg>
          <arg name="stepId">5110</arg>
          <arg name="role">ROL_0000003</arg>
        </task>
      </tasks>

 

增加生成任务的类MakeTask:

 

增加descriptor中的任务定义类,并在相应的检查校验中增加对任务节点的校验:

 


总结:

      通过增加任务,将任务的生成与处理嵌入到流程引擎中,任务的产生与完成跟流程的运行密切相关,在流程运行时会生成相应的任务,实例递进时完成相应的任务。同时任务记录单独抽出生成一张表,又可以很容易的做待办,已办,催办等等和任务相关的管理。
      原来osworkflow是从流程引擎的核心表中去查太麻烦了,也很不灵活,功能太过简单,也不利于扩展。

 

 

相关链接;

web工作流管理系统开发之一 工作流概念

web工作流管理系统开发之二 工作流引擎

web工作流管理系统开发之三 可视化流程设计器

web工作流管理系统开发之四 自定义表单

web工作流管理系统开发之五 开源osworkflow之用户系统改造

web工作流管理系统开发之六 表单权限与流程的权限控制

web工作流管理系统开发之八 开源osworkflow之任务管理

 

web工作流管理系统开发之十 数据库连接及事务设定

web工作流管理系统开发之十一 流程数据与业务数据的交互

web工作流管理系统开发之十二 同一张表单在流程多节点中流转的权限控件

web工作流管理系统开发之十三 流程与电子表单集成之事件实现篇

web工作流管理系统开发之十四 流程设计器属性页面之实现篇  

 

posted on 2009-10-16 11:11  web报表  阅读(14307)  评论(1编辑  收藏  举报