Task
在我们上述流程定义中,张三审批这个环节,用的是一个Task类型的Activity来定义的。这种类型的Activity的行为是:创建任务实例 (TaskImpl),并把任务实例与参与者(assignee)相关联。Task是一个接口,而TaskImpl是具体的实现类。
任务实例(Task)这种概念,其实质是用来定义Execution与assignee之间的关联的。从上面我们知道流程已经执行到了张三审批这个环节了,因此,我们下一步的目标就是:通过张三,找出流转到他手上的所有的业务对象信息。下面是一个示例:
ProcessEngine engine = newConfiguration()
.setResource("jbpm.cfg.xml").buildProcessEngine();
//根据用户,查询它的任务列表
List<Task> tasks = engine.getTaskService().findPersonalTasks("张三");
for(Task t:tasks){
System.out.println("任务ID:"+t.getId()+","+t.getAssignee()+"手上有【"+t.getExecutionId()+"】等待:"+t.getActivityName());
}
|
在数据库中,亦可查询到相关信息:
关于Task及其与Execution等之间的关系,我们在课堂上将做详细解析。
提交
张三如果审批完成,他需要继续向下提交,下面是示例代码:
//根据任务ID,完成此任务
//任务被完成之后,将自动流转到下一个环节
engine.getTaskService().completeTask("10002");
//任务被完成之后,下面的查询将无数据
List<Task> tasks = engine.getTaskService().findPersonalTasks("张三");
for(Task t:tasks){
System.out.println(t.getAssignee()+"手上有【"+t.getExecutionId()+"】等待:"+t.getActivityName());
}
|
completeTask就是完成某个任务实例,我们在查询出某人有哪些任务实例之后,他就可以选择其中一个任务实例来完成(complete)。任务实例被完成之后,任务实例对象将被删除,并被转移到历史库中。
在张三提交完成之后,JBPM4_TASK表将变为:
你也可以到JBPM4_HIST_TASK表中查询有关刚才那个Task的历史信息(比如它的完成时间等信息)。
后续工作
张三审批完成之后,我们可以继续用李四来查询其手上的任务列表,并结束任务对象;然后继续用王五来查询其手上的任务列表,并结束任务对象。
当所有环节都完成之后,流程实例对象及各种任务实例对象都会被删除,并被转移到历史库中。
大家可继续执行,直到执行结束!
分享到:
相关推荐
jBPM4.4 会签(带加签、减签功能),通过查找资料,个人摸索,利用task节点实现了会签功能,加签、减签功能是我自己摸索出来的,是不是能满足大家的需求,仅供参考。
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 10 3.6logging.properties 10 4 准备...
新手,近段时间正在自学jbpm4.4,然后花了很长一段时间做会签,并与ssh集成,今天终于做出来。会签分配任务时,我用的是:task assignment handler,可在页面上显示流程图。开发环境为:jdk1.6.0_18+mysql5.1.48+...
JBPM4.4工作流用户手册(适合于初始学JBPM4的人),本用户下还有JBPM4.4开发指南(适合于有点经验的人),2011-03-28参考自http://www.family168.com/tutorial/jbpm4.0/html/index.html,可直接浏览网站, ...
安装jbpm4插件 发布流程模板 创建流程实例 流程的signal操作 Task节点的任务分配 获取某人的taskList,并对task进行comple操作
<process name="leave" xmlns="http://jbpm.org/4.3/jpdl"> ,25,48,48" name="start1"> 申请"/> <task form="qhrequest.jsp" g="172,118,92,52" name="申请" candidate-groups="#{dev}"> //*****candidate-...
jBPM 4.4 API Packages org.jbpm.api the jBPM API, Start by creating a Configuration, build a ProcessEngine from that, and then you can find the workflow methods on the services like ExecutionService,...
本文件从JBPM的原理、实现方法、实例等方面详细讲解了JBPM的原理,包括以下内容: 1、JBPM特色: 3 2、流程图的组成: 3 2.1流转 (TRANSITION) 3 2.2活动 (ACTIVITY) 3 3、所用到的表: 4 3.1资源库与运行时表结构:...
1 简介 4 1.1 什么是JBPM 4 1.2 概述 4 1.3 该版本的改进 5 1.4 Eclipse设计器 6 1.5 基于Web的设计器 7 1.6 JBPM控制台 7 2 入门 8 2.1 下载 8 2.2 资源 8 2.3 环境准备 9 2.3.1 安装JDK 9 2.3.2 安装Ant 9 3 DEMO...
26 2.3 安装脚本详解 27 2.3.1 关于配置文件 30 2.3.2 关于依赖库 31 2.4 安装到JBoss 31 2.5 安装到Tomcat 32 2.6 基于Web的Signavio流程设计器 33 2.6.1 jBPM Web流程设计器简介 33 2.6.2 独立安装Signavio 34 ...
2.13.2 BeanShell在jBPM中的用法........63 第 3 章 流程节点详解.....................................67 3.1 公共属性...................................................68 3.2 Node节点........................
2.13.2 BeanShell在jBPM中的用法........63 第 3 章 流程节点详解.....................................67 3.1 公共属性...................................................68 3.2 Node节点........................