`
squall140
  • 浏览: 146214 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

jbpm学习笔记—— task活动之泳道的概念

    博客分类:
  • JBPM
 
阅读更多

任务泳道的概念:在实际的业务应用中,经常会遇到这样一种场景:流程定义中的多个任务需要被分配或候选给同一个群用户。那么我们可以统一将这个“同一群用户”定义为“一个泳道”。同一流程定义中的任何一个任务都可以应用泳道。属于同一个泳道的任务将会被分配或候选给这个泳道中的所有用户。 

泳道的概念也可以理解为流程定义的“全局用户组”。在某些情况下,泳道可能与后面提到的身份认证组件中的权限角色相似,但是实际上他们并不是同一个东西。 
先来熟悉一下简单的例子,jpdl如下: 

Xml代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2.   
  3. <process name="taskSwimlane" xmlns="http://jbpm.org/4.4/jpdl">  
  4.     <!-- 在这里定义泳道,泳道是为流程定义的子元素 -->  
  5.     <swimlane name="checkManagers" candidate-groups="order_managers" />  
  6.     <start>  
  7.         <transition to="checkOrder" />  
  8.     </start>  
  9.   
  10.     <!-- 以下2个任务的分配工作,都交给上面定义的泳道完成 -->  
  11.     <task name="checkOrder" swimlane="checkManagers">  
  12.         <transition to="repeatCheckOrder" />  
  13.     </task>  
  14.   
  15.     <task name="repeatCheckOrder" swimlane="checkManagers">  
  16.             <transition to="end" />  
  17.     </task>  
  18.   
  19.  <end name="end" />  
  20. </process>  

上面定义的泳道“check”引用了一个用户组 managers。在流程运行前,这个用户组需要被创建出来,利用身份认证服务 IdentityService: 

Java代码   收藏代码
  1. identityService.createGroup("order_managers");  
  2.         // 创建用户 afei并加入managers组  
  3. identityService.createUser("afei""du""yunfei");  
  4. identityService.createMembership("afei""order_managers");  

在发起流程实例后,用户afei将成为任务 checkOrder的唯一候选者。首先,让afei接受这个任务: 
注意,使用findGroupTasks才能看到task,用findPersonalTasks是出不来的。 
taskService.takeTask(taskId,”afei”); 
接受这个任务将使afei成为任务的分配者,同时泳道“check”也会发生变化,afei在这个流程实例中会被固化为分配者。 
接下来,afei可以完成任务了: 
taskService.completeTask(taskId); 
完成此任务后流程实例将会流转到下一个任务“repeatCheckOrder”。这个任务也引用了之前的泳道。因此,任务会直接分配给afei。可以通过如下代码验证: 

Java代码   收藏代码
  1. tasks = taskService.findPersonalTasks("afei"); // 断言afei直接拿到了任务  
  2.         System.out.println("tasks.size(): " + tasks.size());  
  3.         task = tasks.get(0);  
  4.         // 断言是否为预期的任务和分配者  
  5.         assertEquals("repeatCheckOrder", task.getName());  
  6.         assertEquals("afei", task.getAssignee());  
  7.         // taskService.takeTask(task.getId(), "afei");  
  8.         taskService.completeTask(task.getId());  

注意:假如此时takeTask也是不对的,因为已经被afei给take了。 


分享到:
评论

相关推荐

    JBPM采购申请系统——08_JBPM流程节点.7z

    JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM采购申请系统——08_JBPM流程节点.7z JBPM...

    jBPM-jPDL学习笔记——流程设计与控制(转载)

    《jBPM-jPDL学习笔记——流程设计与控制》 在IT行业中,流程管理和自动化是企业提升效率的关键。jBPM(Java Business Process Management)是一个开源的工作流和业务流程管理套件,它允许开发者通过定义流程定义...

    jBPM-jPDL学习笔记——流程设计与控制

    下面,我们将通过学习笔记,了解jBPM-jPDL的流程设计与控制机制。 流程设计 在jBPM-jPDL中,流程设计是指定义业务流程的结构和行为。流程设计通常包括定义流程的各个节点、 переход和操作。jPDL(Java ...

    JBPM采购申请系统——05_构建JBPM数据库.7z

    JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM数据库.7z JBPM采购申请系统——05_构建JBPM...

    JBPM采购申请系统——02_Eclipse与JBPM.7z

    JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z JBPM采购申请系统——02_Eclipse与JBPM.7z ...

    JBPM采购申请系统——06_JBPM版本控制及Token对象.7z

    JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z JBPM采购申请系统——06_JBPM版本控制及Token对象.7z ...

    JBPM采购申请系统——13_JBPM异步(二).7z

    JBPM采购申请系统——13_JBPM异步(二).7z JBPM采购申请系统——13_JBPM异步(二).7z JBPM采购申请系统——13_JBPM异步(二).7z JBPM采购申请系统——13_JBPM异步(二).7z JBPM采购申请系统——13_JBPM异步(二).7z JBPM...

    JBPM采购申请系统——12_JBPM异步(一).7z

    JBPM采购申请系统——12_JBPM异步(一).7z JBPM采购申请系统——12_JBPM异步(一).7z JBPM采购申请系统——12_JBPM异步(一).7z JBPM采购申请系统——12_JBPM异步(一).7z JBPM采购申请系统——12_JBPM异步(一).7z JBPM...

    JBPM采购申请系统——07_JBPM中的脚本语言.7z

    JBPM采购申请系统——07_JBPM中的脚本语言.7z JBPM采购申请系统——07_JBPM中的脚本语言.7z JBPM采购申请系统——07_JBPM中的脚本语言.7z JBPM采购申请系统——07_JBPM中的脚本语言.7z JBPM采购申请系统——07_JBPM...

    JBPM采购申请系统——20_JBPM4.0使用及特性.7z

    JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_JBPM4.0使用及特性.7z JBPM采购申请系统——20_...

    JBPM采购申请系统——11_讲任务调度.7z

    JBPM采购申请系统——11_讲任务调度.7z JBPM采购申请系统——11_讲任务调度.7z JBPM采购申请系统——11_讲任务调度.7z JBPM采购申请系统——11_讲任务调度.7z JBPM采购申请系统——11_讲任务调度.7z JBPM采购申请...

    工作流引擎jbpm学习笔记

    工作流引擎jbpm学习笔记 jbpm是一个专业的工作流引擎,用于定义、管理和执行业务流程。它可以帮助我们简化工作流程的开发和维护,提高工作效率和可扩展性。 一、什么是公文流转? 公文流转是指公文在定义流转中的...

    JBPM采购申请系统——23_综合技术应用.7z

    JBPM采购申请系统——23_综合技术应用.7z JBPM采购申请系统——23_综合技术应用.7z JBPM采购申请系统——23_综合技术应用.7z JBPM采购申请系统——23_综合技术应用.7z JBPM采购申请系统——23_综合技术应用.7z JBPM...

    JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z

    JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一).7z JBPM采购申请系统——21_JBPM4.0与JBPM3.0差异(一)...

    JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z

    JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二).7z JBPM采购申请系统——22_JBPM4.0与JBPM3.0差异(二)...

    JBPM采购申请系统——19_JBPM采购申请系统(三).7z

    JBPM采购申请系统——19_JBPM采购申请系统(三).7z JBPM采购申请系统——19_JBPM采购申请系统(三).7z JBPM采购申请系统——19_JBPM采购申请系统(三).7z JBPM采购申请系统——19_JBPM采购申请系统(三).7z JBPM采购申请...

    JBPM采购申请系统——17_JBPM采购申请系统(一).7z

    JBPM采购申请系统——17_JBPM采购申请系统(一).7z JBPM采购申请系统——17_JBPM采购申请系统(一).7z JBPM采购申请系统——17_JBPM采购申请系统(一).7z JBPM采购申请系统——17_JBPM采购申请系统(一).7z JBPM采购申请...

Global site tag (gtag.js) - Google Analytics