`
AngelAndAngel
  • 浏览: 234816 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jbpm学习笔记(九) task活动之泳道的概念

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

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

<process name="taskSwimlane" xmlns="http://jbpm.org/4.4/jpdl">
	<!-- 在这里定义泳道,泳道是为流程定义的子元素 -->
	<swimlane name="checkManagers" candidate-groups="order_managers" />
	<start>
		<transition to="checkOrder" />
	</start>

	<!-- 以下2个任务的分配工作,都交给上面定义的泳道完成 -->
	<task name="checkOrder" swimlane="checkManagers">
		<transition to="repeatCheckOrder" />
	</task>

	<task name="repeatCheckOrder" swimlane="checkManagers">
	 		<transition to="end" />
	</task>

 <end name="end" />
</process>
上面定义的泳道“check”引用了一个用户组 managers。在流程运行前,这个用户组需要被创建出来,利用身份认证服务 IdentityService:
identityService.createGroup("order_managers");
		// 创建用户 afei并加入managers组
identityService.createUser("afei", "du", "yunfei");
identityService.createMembership("afei", "order_managers");
在发起流程实例后,用户afei将成为任务 checkOrder的唯一候选者。首先,让afei接受这个任务:
注意,使用findGroupTasks才能看到task,用findPersonalTasks是出不来的。
taskService.takeTask(taskId,”afei”);
接受这个任务将使afei成为任务的分配者,同时泳道“check”也会发生变化,afei在这个流程实例中会被固化为分配者。
接下来,afei可以完成任务了:
taskService.completeTask(taskId);
完成此任务后流程实例将会流转到下一个任务“repeatCheckOrder”。这个任务也引用了之前的泳道。因此,任务会直接分配给afei。可以通过如下代码验证:

tasks = taskService.findPersonalTasks("afei"); // 断言afei直接拿到了任务
		System.out.println("tasks.size(): " + tasks.size());
		task = tasks.get(0);
		// 断言是否为预期的任务和分配者
		assertEquals("repeatCheckOrder", task.getName());
		assertEquals("afei", task.getAssignee());
		// taskService.takeTask(task.getId(), "afei");
		taskService.completeTask(task.getId());
注意:假如此时takeTask也是不对的,因为已经被afei给take了。

下一张,任务变量!






分享到:
评论
1 楼 鲁伊大卫 2013-02-22  
大哥,下一章咋没了呢?

相关推荐

    工作流引擎jbpm学习笔记

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

    jbpm学习笔记体会很深刻

    jbpm的核心实体如ProcessInstance、Task、Job等,是业务流程运行的基础。学习如何定义和映射这些实体到数据库,可以确保流程实例的持久化和恢复。此外,jbpm使用Hibernate作为默认的ORM框架,因此熟悉Hibernate的...

    jbpm学习笔记.docx

    jbpm学习笔记主要涵盖了jbpm(Java Business Process Management)的多个方面,包括Signavio的使用和配置、jBPM数据库的安装、Graphical Process Designer(GPD)的安装以及jBPM在Eclipse环境中的配置。以下是这些...

    jbpm学习笔记jbpm学习笔记

    在本篇jbpm学习笔记中,我们将深入探讨如何安装jbpm插件,配置运行环境,发布流程定义以及查看流程定义。 首先,下载jbpm的最新版本可以从官方指定的源获取,例如在SourceForge上...

    jbpm 4.4 学习笔记

    在本文档中,主要讨论的是jbpm 4.4 版本的学习笔记。作者通过实践学习并整理了关于jbpm的一些关键概念和操作。 首先,流程图是jbpm设计流程的核心,它包含了一系列的流程元素。在提到的订购流程中,主要包括以下...

    JBPM工作流实战_使用泳道为多个任务指定相同的参与者视频 07

    通过学习这个视频教程,你可以掌握如何利用JBPM的泳道功能来优化工作流程,实现多任务的并行处理,提高工作效率,并且更好地理解BPMN模型在实际应用中的运用。这将对你的IT职业生涯尤其是在企业流程管理领域有着极大...

    JBPM3学习笔记

    **JBPM3学习笔记** JBPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了对业务流程的建模、部署、执行和监控的能力。在本文中,我们将深入探讨JBPM3的核心概念、功能和使用方法,以帮助...

    《jBPM学习笔记_框架设计简介》

    ### jBPM学习笔记_框架设计简介 #### JPDL与jBPM框架设计概述 jBPM(Java Business Process Model)是一种开源的工作流引擎,它提供了用于定义、执行和管理业务流程的功能。JPDL(jBPM Process Definition ...

    JBPM4.3 学习笔记

    【JBPM4.3 学习笔记】 JBPM(Java Business Process Management)是一个开源的工作流管理系统,主要用于设计、执行和管理业务流程。JBPM4.3是JBPM的一个重要版本,它提供了强大的流程建模、执行和服务集成能力,是...

    jBPM-jPDL学习笔记

    在开始jBPM-jPDL的学习之前,首先要搭建一个合适的运行环境。系统平台通常要求Java运行环境(JRE或JDK),因为jBPM是基于Java的。安装包通常包括jBPM的核心库、示例项目以及相关的开发工具。对于部署,可以将jBPM...

    jbpm-jpdl 学习笔记

    入门材料 jbpm-jpdl 学习笔记 jbpm-jpdl 学习笔记 jbpm-jpdl 学习笔记

    jbpm4.4学习笔记

    1 工作流的概念 5 2 工作流的过程 7 3 Jbpm4.4介绍 7 3.1工作流引擎 8 3.2jpdl 8 3.3数据库 8 3.3.1资源库和运行时表结构 8 3.3.2历史数据库表 9 3.3.3身份认证表 9 3.4jbpm.cfg.xml 9 3.5 jbpm.hibernate.cfg.xml ...

    吉林大学Java工作流JBPM学习笔记

    在本篇吉林大学的学习笔记中,我们将聚焦于JBPM,这是一个广泛使用的开源Java工作流管理系统,它提供了一整套工具和服务来支持流程的建模、部署和执行。 JBPM是Business Process Management(业务流程管理)的缩写...

    jbpm学习资料,jbpm教程

    通过jBPM-jPDL学习笔记,你可以系统地学习如何使用jPDL设计和实施业务流程,掌握jbpm的核心概念和技术。无论是对于开发人员还是业务分析师,这份资料都将极大地提升你在工作流管理领域的专业技能。

    JBPM4学习笔记.doc

    **JBPM4学习笔记** JBPM(Java Business Process Management)是一个开源的工作流管理系统,它提供了业务流程建模、执行和监控的能力。JBPM4是该系统的一个重要版本,它引入了许多增强功能,使得开发者和业务分析师...

    jBPM-jPDL学习笔记.zip

    通过阅读《jBPM-jPDL学习笔记.pdf》,你可以深入了解这些概念,并学会如何使用jPDL编写和部署流程定义,从而在实际项目中实现灵活、可扩展的业务流程管理。这份资料对于初学者来说是一份很好的入门指南,能够帮助...

    jbpm3.1.4经典学习教程

    jbpm3.1.4是其历史版本之一,虽然现在有更高级的版本,但对于学习工作流基础概念和原理,这个版本仍然具有很高的价值。 首先,我们要理解jbpm的核心概念。jbpm提供了流程定义的语言(BPMN,Business Process Model ...

    JBPM4学习笔记

    【JBPM4学习笔记】 JBPM4是一款开源的工作流管理系统,它提供了强大的流程定义和执行能力,被广泛应用于企业的业务流程自动化。本学习笔记将深入探讨JBPM4的核心特性和使用方法,帮助读者掌握如何利用它来实现高效...

    jbpm-human-task-5.1.0.Final.jar

    jbpm-human-task-5.1.0.Final.jar jbpm5

Global site tag (gtag.js) - Google Analytics