工作流JBPM_day01:6-执行流程实例
工作流JBPM_day01:6-执行流程实例
执行流程
启动流程实例
查询任务列表
办理任务
向后执行一步
先部署流程定义在启动流程实例
Jbpm4_execution表表示正在执行的流程实例的的信息
查询个人任务列表
ProcessInstanceTest .java
import java.util.List; import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.task.Task;
import org.junit.Test; public class ProcessInstanceTest {
private ProcessEngine processEngine = Configuration.getProcessEngine(); //部署流程定义
@Test
public void deplyProcessDefinition() {
processEngine.getRepositoryService()//
.createDeployment()//
.addResourceFromClasspath("cn/itcast/b_processinstance/test.jpdl.xml")//
.addResourceFromClasspath("cn/itcast/b_processinstance/test.png")//
.deploy(); }
// 启动流程实例
// jbpm4_execution
@Test
public void testStartProcessInstance() {
ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("helloworld");
System.out.println("流程实例启动成功:id=" + pi.getId()//
+ ", state=" + pi.getState()// 状态
+ ", processDefinitionId=" + pi.getProcessDefinitionId());// 所使用的流程定义的Id
} // 查询个人任务列表
@Test
public void testFindMyPersonalTaskList() {
String userId = "张三";
//查询
// List<Task> list = processEngine.getTaskService().findPersonalTasks(userId);
//分页
List<Task> list = processEngine.getTaskService()//
.createTaskQuery()//
.assignee(userId)//
.page(0, 100)//
.list();
//显示
System.out.println("======= 【" + userId + "】的个人任务列表 ========");
for(Task task : list) {
System.out.println("id=" + task.getId()
+ ", name=" + task.getName()
+ ", assignee=" + task.getCreateTime()
+ ", createTime=" + task.getCreateTime()
+ ", executionId=" + task.getExecutionId());
}
} // 办理任务
@Test
public void testCompleteTask() {
String taskId = "140002";
processEngine.getTaskService().completeTask(taskId);
} // 向后执行一步
@Test
public void testNext() {
String executionId = "helloworld.140001";
processEngine.getExecutionService().signalExecutionById(executionId);
}
}
Execution与ProcessInstance说明
工作流JBPM_day01:6-执行流程实例的更多相关文章
- JBPM4.4_执行流程实例
1. 执行流程实例 1.1. 启动流程实例 说明:流程实例创建后,直接就到开始活动后的第一个活动,不会在开始活动停留. 1.1.1. 示例代码1:使用指定key的最新版本的流程定义启动流程实例 Pro ...
- JBPM工作流(五)——执行流程实例
概念: ProcessInstance,流程实例:代表流程定义的一次执行.如:张三昨天按请假流程请了一次假.一个流程实例包括了所有运行阶段,其中最典型的属性就是跟踪当前节点的指针,如下图. Execu ...
- JBPM学习(四):执行流程实例
概念: ProcessInstance,流程实例:代表流程定义的一次执行.如:张三昨天按请假流程请了一次假.一个流程实例包括了所有运行阶段,其中最典型的属性就是跟踪当前节点的指针,如下图. Execu ...
- JBPM工作流(八)——流程实例(PI)Process Instance
/** * 流程实例 * * 启动流程实例 * * 完成任务 * * 查询 * * 查询流程实例 * * 查询任务 * * 查询正在 ...
- Activiti第二篇【管理流程定义、执行任务和流程实例、流程变量】
上篇Activiti只是一个快速入门案例,这篇就讲定义.部署.查看任务等等的一些细节[涉及到的数据库表.对象等等]- 管理流程定义 管理流程定义主要涉及到以下的4张表: -- 流程部署相关的表 SEL ...
- JBPM4入门——6.流程实例的创建和执行
本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google 链接: JBPM入门系列文章: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流 ...
- oozie 完整流程实例
Oozie概述: Oozie是一个基于Hadoop工作流引擎,也可以称为调度器,它以xml的形式写调度流程,可以调度mr,pig,hive,shell,jar,spark等等.在实际工作中,遇到对数据 ...
- 工作流JBPM_day01:3-使用JBPM的API添加与执行流程
工作流JBPM_day01:3-使用JBPM的API添加与执行流程 流程定义画完得到压缩文件--->部署流程定义-->启动流程实例-->查询我的个人任务列表-->办理任务--& ...
- Activiti工作流学习(二)流程实例、执行对象、任务
一.前言 前面说明了基本的流程部署.定义,启动流程实例等基本操作,下面我们继续来学习流程实例.执行对象.任务. 二.流程实例.执行对象说明 整个Activiti的生命周期经过了如下的几个步骤: 1.流 ...
随机推荐
- Oracle PLSQL Demo - 02.SELECT INTO单行赋值[SELECT INTO variables]
declare v_sal number; begin ; dbms_output.put_line(v_sal); end;
- Redis之Python操作
Redis简单介绍 如果简单地比较Redis与Memcached的区别,大多数都会得到以下观点:1 Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构 ...
- VC中使用Matlab Engine出现"无法找到libeng.dll"的问题
VC中使用Matlab Engine出现"无法找到libeng.dll"的问题 本以为使这个原因 ,其实不是我2了 #include "engine.h" // ...
- ruby send respond_to
http://ruby-metaprogramming.rubylearning.com/html/ruby_metaprogramming_2.html http://galeki.is-progr ...
- svg 添加超链接
<svg> <a xlink:href="http://www.w3.org//Graphics//SVG//Overview.htm8"> ...
- Linux命令 cat命令
这个命令可不是“猫”的意思,而是catenate的缩写.顾名思义,是把东西串起来.比如:cat file1 file2就是把文件file1和file2连在一起,然后输出到屏幕上.注意,输出到屏幕上是c ...
- 后台测试常需要的htm样式
<form name="form" method="post" action="#"> <input type=" ...
- 关于Cocos2d-x有些头文件无法引入或者类显示无法打开
选中工程右键“属性”->"配置属性“->"c/c++"->"常规”->"附加包含目录"中添加“”$(EngineRo ...
- 回调方法介绍之中国好室友篇(Java示例)
前言 在Java社区的各种开源工具中,回调方法的使用俯拾即是.所以熟悉回调方法无疑能加速自己对开源轮子的掌握.网上搜了一些文章,奈何对回调方法的介绍大多只停留在什么是回调方法的程度上.本篇文章尝试从回 ...
- 【转】C# 调用WebService的方法
很少用C#动态的去调用Web Service,一般都是通过添加引用的方式,这样的话是自动成了代理,那么动态代理调用就是我们通过代码去调用这个WSDL,然后自己去生成客户端代理.更多的内容可以看下面的两 ...