posts - 193,  comments - 520,  trackbacks - 0

一个Task instance(任务实例)可以被分配给一个actorId (java.lang.String)。所有的Task instance都被保存在数据库中的表jbpm_taskinstance里。当你想得到特定用户的任务清单时,你就可以通过一个与用户关联的actorId来查询这张表。

一个流程定义有一个TaskMgmtDefinition;一个TaskMgmtDefinition对应多个swimlane,同时对应多个task;一个swimlane有多个task,可以  TaskMgmtDefinition中通过task的名称直接获取相应的task;

swimlane对象有四个属性,分别是name(名字)、assignmentDelegation(分配代理类)、taskMgmtDefinition、tasks(Set 对应多个task),可以增加task

task对象主要的属性:taskMgmtDefinition、swimlane、assignmentDelegation、taskNode,需要注意的是swimlane和assignmentDelegation中间只是可以一个属性有值,因为它们都和任务的分配有关系。

一个流程实例有一个TaskMgmtInstance;一个TaskMgmtInstance对应多个swimlaneInstance,同时对应多个taskInstance;一个swimlaneInstance有多个taskInstance,可以从TaskMgmtInstance中直接获取相应的taskInstance;

swimlaneInstance对象主要有五个属性,分别是name、actorId、pooledActors(Set)、swimlane、taskMgmtInstance。
taskInstance对象的主要属性:name、actorId、task、swimlaneInstance、taskMgmtInstance、pooledActors。

当对任务进行分配时,一般需要实现AssignmentHandler这个接口,这个接口的方法只有一个:
  void assign( Assignable assignable, ExecutionContext executionContext ) throws Exception;
一个典型的实现(把名字是'change nappy'的任务交给NappyAssignmentHandler这个类来分配)
   <task name='change nappy'>
      <assignment class='org.jbpm.tutorial.taskmgmt.NappyAssignmentHandler' />
   </task>
NappyAssignmentHandler类:
  public void assign(Assignable assignable, ExecutionContext executionContext) {
    assignable.setActorId("papa");
  }
同样,Assignable只是一个接口,它有两个方法:setActorId()和setPooledActors(),Assignable的具体实现类也是两个
  swimlaneInstancehe和taskInstance。这样就不不难理解整个任务分配流程了:
  1、流程进入TaskNode节点,执行TaskNode类的execute()方法,该方法首先获得TaskMgmtInstance实例,然后通过它来创建TaskInstance。taskMgmtInstance.createTaskInstance(task, executionContext);
  2、在上面的createTaskInstance(task, executionContext)里,该方法调用了taskInstance.assign(executionContext)对taskInstance进行分配。
  3、在assign(executionContext)方法里,首先会判断task属性里是否存在swimlane,如果有的话,这个taskInstance就会分配给swimlane指定的ActorId或 PooledActors;如果不存在,再去找task属性里 assignmentDelegation(分配代理类)通过代理类(即我们自己写的实现AssignmentHandler这个接口的类)指定ActorId或 PooledActors。



http://www.blogjava.net/ronghao 荣浩原创,转载请注明出处:)
posted on 2005-11-11 16:39 ronghao 阅读(3505) 评论(3)  编辑  收藏 所属分类: 工作流jbpm3

FeedBack:
# re: jbpm任务分配管理
2005-11-30 01:31 | jk
g  回复  更多评论
  
# re: jbpm任务分配管理
2006-11-19 04:09 | kuan
jbpm的每个流程变更的话,是不是都要重新写action来适应的?  回复  更多评论
  
# re: jbpm任务分配管理
2007-06-08 00:29 | L2
学习。。。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航:
 
<2005年11月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

关注工作流和企业业务流程改进。现就职于ThoughtWorks。新浪微博:http://weibo.com/ronghao100

常用链接

留言簿(38)

随笔分类

随笔档案

文章分类

文章档案

常去的网站

搜索

  •  

最新评论

阅读排行榜

评论排行榜