`

JBPM 任务

阅读更多

任务:流程中的任务是流程与操作者的交互的一种手段 是JBPM的核心 在jbpm中任务主要定义在Task Node节点上。

任务保存在jbpm_taskinstrance

 

一个任务对应一个任务实例

 

任务实例的生命周期:创建(create)-开始处理(start)-完成(end)  这3步骤是一般情况下的,实际开发中 还有

取消(cancel) 挂起(suspend) 

 

 

在任务实例结束的时候 也可以像流程发出向下流转的型号(signal) 如果一个Task node里面只定义了一个task 那么这个任务实例借宿的时候就会想流程实例发出向下流转信号。

 

 

任务分配

任务可以分配给一个或多个参与者

在Assignment 分配参与者 有以下几种分配方式

1:Handler 方式  实现AssignmentHandler 接口的任务分配类

package assignment;

import org.jbpm.graph.exe.ExecutionContext;
import org.jbpm.taskmgmt.def.AssignmentHandler;
import org.jbpm.taskmgmt.exe.Assignable;
/**
 * 对TaskNode节点进行任务分配
 * @author wwwlike 
 */
public class TestAssignment implements AssignmentHandler {

	public void assign(Assignable assignable, ExecutionContext executionContext)
			throws Exception {

	
		assignable.setActorId("zhongjian");
		
	}}

因为TaskInstrance 实现了Assignable  对象 所以assignable 也相当于是TaskInstrance的实例

 

2 Expression 方式

以后补充

3 swimlance 方式

就是为多个任务分配相同的执行者  在配置文件下 定义 <swimlane name="name"></swimlane>

 

4Pool Actors方式

这个可以是静态的在XMl标签上 定义任务的参与者,也可以用JPDL表达式动态的从上下文中取得任务的参与者

<task-node name="" >
<task >
<assignment pooled-actors=""></assignment>
</task>
</task-node>

 

任务事件

一般有四种事件 :task-create.task-assign(进行任务实例和参与者分配的事件),task-start,task-end 配置文件如下:

<?xml version="1.0" encoding="UTF-8"?>

<process-definition  xmlns="urn:jbpm.org:jpdl-3.2"  name="taskeventtest">


	<start-state name="start-state1">
		<transition to="task-node1"></transition>
	</start-state>


	<task-node name="task-node1">
		<task name="test event task">
			<assignment actor-id="zhongjian"></assignment>
			<controller></controller>
		</task>
		<event type="task-create">
			<script>
				print(&quot;触发了task-create事件&quot;);
			</script>
		</event>
		<event type="task-start">
			<script>
				print(&quot;触发了task-start事件&quot;);
			</script>
		</event>
		<event type="task-assign">
			<script>
				print(&quot;触发了task-assign事件&quot;);
			</script>
		</event>
		<event type="task-end">
			<script>
				print(&quot;触发了task-end事件&quot;);
			</script>
		</event>
		<transition to="end-state1"></transition>
	</task-node>


	<end-state name="end-state1"></end-state>


</process-definition>

 

任务控制器

简单的介绍 任务控制器就是对流程上下文中的变量进行读写操作

<task-node name="task-node1">
<task name="test notify task" notify="true">
<controller>
<varible access="" name="" mapped-name=""></variable>
</controller>
</task>
<transition to="end-state1"></transition>
</task-node>

 access  :指出读写属性: read.write,required

(read表示任务实例化完毕后 从上下文中去读name

write 表示任务完成后 写入name的新值回到流程上下文中

required 和write 配对 如没有回写 者抛出异常)

name:指的是变量名称 相当于key 从map 为key的中间读取,写入值value

 mapped-name 非必填属性(当定义了这个值后 进行写入的key 不是name 而是mapeed-name这个)

分享到:
评论

相关推荐

    jbpm任务分配管理.doc

    jbpm任务分配管理是BPM(业务流程管理)框架jbpm中的一个重要组成部分,它涉及到如何在流程执行过程中将任务分配给合适的参与者。jbpm是一个开源的Java库,用于建模、执行和管理业务流程,而任务分配是流程执行的...

    JBPM3.2与Spring结合时任务调度的实现.doc

    JBPM3.2与Spring的整合主要是为了实现任务调度的功能,这在企业级应用中是非常重要的,因为它能够自动化执行定时任务,如流程启动、数据同步、报告生成等。在JBPM3.1.x版本中,通过SpringModules提供的`spring-...

    深入浅出JBPM最新源码第七章-报销实例

    这可能涉及到SMTP服务器配置、邮件模板设计以及与JBPM任务服务的集成。 最后,监控是BPM系统的重要组成部分,JBPM提供了报表和监控工具,可以帮助你查看流程实例的状态、跟踪流程执行历史、分析性能瓶颈等。你可以...

    JBPM共9节 视屏教程2

    6. **jbPM任务服务(Task Service)**:处理人工作流,如任务分配、审批和协作。 7. **集成**:学习如何将JBPM与其他系统如Spring、Hibernate、EJB等集成,实现企业级应用的无缝对接。 8. **事件处理和异常管理**...

    jbpm完整示例 任务列表 权限管理

    本示例集是jbpm的一个综合应用实例,涵盖了任务列表和权限管理的重要方面,这对于理解和实践jbpm在实际工作中的应用具有极大的帮助。 首先,我们来看"我发起的任务"这个部分。在jbpm中,用户可以发起一个新的流程...

    jbpm4jbpm5

    jbpm4.3表结构和表字段说明文档通常会详细介绍jbpm4中涉及的数据库表,包括实体如任务实例(TaskInstance)、流程实例(ProcessInstance)、工作项(WorkItem)等的表结构和字段。这些信息对于开发者来说至关重要,...

    jbpm简介\jbpm简介

    1. **强大的控制流机制**:jBPM提供了直观的流程语言,如任务、异步通信的等待状态、定时器、自动操作等,这些元素共同构成了强大的控制流机制。 2. **低依赖性**:jBPM对企业应用的依赖性极小,可以轻松作为Java库...

    jBPM3.2.rar_JBPM3.2_jbpm_jbpm 3.2_jbpm3_jbpm3.2教程

    4. **任务处理**:jbPM支持用户任务,即需要人工干预的任务。用户可以通过工作列表(Task List)进行任务的接收和处理。 5. **流程监控**:jbPM提供了一个Web管理控制台,可以实时查看流程实例的状态、历史记录,...

    jbpm-3.1.2.zip_jbpm_jbpm 3.1.2_jbpm-3.1.2.rar_jbpm3.1.2_工作流

    6. **任务管理**:提供了用户友好的任务分配和管理界面,便于用户跟踪和处理任务。 7. **监控与日志**:提供详细的执行日志和监控工具,方便对流程执行情况进行分析和优化。 在jbpm-3.1.2.zip压缩包中,可能包含了...

    jBPM4.4.rar_jbpm4.4_jbpm4.4 PDF

    4. **任务管理**:jBPM中的任务服务允许用户交互地处理流程中的任务,包括任务的分配、领取、完成以及查询。 5. **事件处理**:系统能够监听并响应各种事件,如流程实例的开始、结束、异常等,以便进行相应的处理。...

    jbpm开发指南--jbpm全面介绍

    通过查看JBPM的表,我们知道要实现流程监控功能就是把JBPM当中的JBPM_PROCESSDEFINITION(已发布的流程表),JBPM_PROCESSINSTANCE(流程实例表),JBPM_TASKINSTANCE(流程产生的任务实例表)这三张表串联起来就可以...

    JBPM工作原理及表结构详解

    - **JBPM4_TASK**:任务表,记录任务的状态、参与者等信息。 - **JBPM4_VARIABLE**:流程变量表,存储流程实例中的变量值。 6. **操作示例** - **发布流程**:使用`DEPLOY`命令将流程定义发布到系统。 - **上传...

    JBPM修改数据库教程以及实例

    【JBPM修改数据库教程及实例】 JBPM,全称Java Business Process Management,是一个开源的工作流管理系统,用于管理和执行业务流程。在JBPM6中,默认使用H2内存数据库进行存储,但实际生产环境中,我们通常会选择...

    jbpm学习资料,jbpm教程

    jbpm(Java Business Process Management)是一款开源的工作流管理系统,它为业务流程自动化提供了一套全面的解决方案。jbpm不仅支持工作流的建模、执行,还提供了监控和管理功能,使得开发者可以方便地构建和部署...

    jbpm4源代码 简单实现公文流转

    3. **持久化**:jbpm4利用JPA(Java Persistence API)进行持久化管理,可以将流程实例、任务信息等数据存储在数据库中,确保数据的安全性和可靠性。 4. **规则集成**:jbpm4集成了Drools规则引擎,可以在流程执行...

    jbpm数据库表介绍

    jbpm 需要持久化流程部署、流程实例、任务、用户认证等信息,于是 jbpm 设计了一系列的数据库表来存储这些信息。在 jbpm 4.4 中,主要使用的数据库表有: jbpm4_deployment jbpm4_deployment 表用于存储流程部署的...

    SSH+JBPM4.3的整合 JBPM4.3

    6. **任务管理**:JBPM提供了任务服务,允许用户进行任务查询、领取、完成等操作。在Struts视图层,可以展示待办任务列表,用户交互后触发任务状态的变化。 7. **监控与优化**:JBPM提供了丰富的监控功能,如流程...

    jbpm开发入门指南

    - **任务管理**:用户可以通过jbpm提供的web界面或API查看、接受、完成任务。 - **流程监控**:提供实时的流程运行情况监控,如实例数量、任务状态、执行时间等。 - **审计日志**:记录流程实例的详细历史,便于...

    jbpm4web-JBPM4的一个web版本的Demo

    jbpm4web提供了一个用户友好的任务列表,让用户能够查看并处理待办任务。参与者可以完成任务、分配任务给其他人,或者对任务进行评论和附件上传等操作。 4. **流程控制**: 在jbpm4web中,用户还可以进行流程控制...

Global site tag (gtag.js) - Google Analytics