WEB开发网
开发学院软件开发Java 使用jBpm支持高级用户交互模式 阅读

使用jBpm支持高级用户交互模式

 2010-01-21 00:00:00 来源:WEB开发网   
核心提示: 实现四眼原则 我们上面已经说过,实现四眼原则意味着要允许多人同时干一个活,使用jBpm支持高级用户交互模式(3),它的实现有以下几种可能方法:在任务外解决:需要大量时间的任务并行循环(parallel looping) ,使用动作处理器(Action handler):附加到任务节点的进入事件(

实现四眼原则

我们上面已经说过,实现四眼原则意味着要允许多人同时干一个活。它的实现有以下几种可能方法:

在任务外解决:需要大量时间的任务并行循环(parallel looping) 。

使用动作处理器(Action handler):附加到任务节点的进入事件(enter event),基于流程实例变量创建多个节点实例。

在任务内解决:引入“任务接受量(task take)”(类似jPDL 4)并允许某个任务实例可被接受多次。

根据jBPM最佳实践 ——“扩展jBPM API而不是去搞复杂的流程建模” ,我决定采用任务内解决的方法。这就要求修改jBPM提供的任务和任务实例类。

扩展Task类

jBPM任务的定义被包含在org.jbpm.taskmgmt.def.Task类中。为了支持四眼原则,我们需要给类增加以下的字段/方法(清单1):

 protected int numSignatures = 1; 
 
 
 public int getNumSignatures(){ 
  return numSignatures; 
 } 
 public void setNumSignatures(int numSignatures){ 
  this.numSignatures = numSignatures; 
 }

清单1 给Task类增加字段和方法

这个新的参数允许指定任务完成所需的任务处理人数量。缺省值为1,这意味着,只有1个用户应该/可以处理这个任务。

jBPM使用Hibernate来向数据库保存和读取数据。为了让我们新加的变量持久化,我们需要更新Task类的Hibernate配置文件(Task.hbm.xml),它在org.jbpm.taskmgmt.def文件夹中,增加代码如下(清单2)

  <property name="numSignatures" column="NUMSIGNATURES_" />

上一页  1 2 3 4 5 6 7 8  下一页

Tags:使用 jBpm 支持

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接