文档章节

JBPM学习(五):流程变量

gitphg
 gitphg
发布于 2016/04/07 15:19
字数 605
阅读 12
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

1.启动流程实例

// 启动流程实例
@Test
public void startProcessInstance() {
	// 使用指定key的最新版本的流程定义启动流程实例
	ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("test");
	System.out.println("processInstanceId=" + pi.getId());
}

2.设置流程变量

  • 一个设置流程变量实例

//设置流程变量
@Test
public void setVariable() {
	String executionId = "test.140001";
	String name = "请假天数";
	Integer value = 3;

	//将name为"请假天数",value=3的流程变量设置到executionId为test.140001的执行对象上
	processEngine.getExecutionService().setVariable(executionId, name, value);
}
  • 所有设置流程变量方法

用到变量的类型:

Object value = "";
String executionId = "";
String taskId = "";
String name = "";
String processDefinitionKey = "";
String variableName = "";
Set<String> variableNames = new HashSet<String>();
Map<String, Object> variablesMap = new HashMap<String, Object>();

具体方法:

// 根据Execution设置一个流程变量
processEngine.getExecutionService().setVariable(executionId, name, value);
// 根据Execution设置多个流程变量(需要先把流程变量放到一个Map中)
processEngine.getExecutionService().setVariables(executionId, variablesMap);

// 根据Task设置多个流程变量(需要先把流程变量放到一个Map中,通过Task方法,它会先找到它所属的Execution然后设置流程变量)
processEngine.getTaskService().setVariables(taskId, variablesMap);

// 使用指定key的最新版本的流程定义启动流程实例,并设置一些流程变量
processEngine.getExecutionService().startProcessInstanceByKey(processDefinitionKey, variablesMap);
// 办理完指定的任务,并设置一些流程变量
processEngine.getTaskService().completeTask(taskId, variablesMap);


3.获取流程变量

  • 一个获取流程变量实例

//获取流程变量
@Test
public void getVariable() {
	String executionId = "test.140001";
	String variableName = "请假天数";

	//从executionId为test.140001的执行对象上取出流程变量名为"请假天数"的流程变量的value
	Integer value = (Integer) processEngine.getExecutionService().getVariable(executionId, variableName);
	System.out.println(variableName + " = " + value);
}
  • 所有获取流程变量方法

用到变量的类型:

String executionId = "";
String taskId = "";
String variableName = "";
Set<String> variableNames = new HashSet<String>();

具体方法:

// 根据Execution获取指定名称的一个流程变量
processEngine.getExecutionService().getVariable(executionId, variableName);
// 根据Execution获取所有流程变量的名称
processEngine.getExecutionService().getVariableNames(executionId);
// 根据Execution获取指定名称的所有流程变量
processEngine.getExecutionService().getVariables(executionId, variableNames);

// 根据Task获取指定名称的一个流程变量
processEngine.getTaskService().getVariable(taskId, variableName);
// 根据Task获取所有流程变量的名称
processEngine.getTaskService().getVariableNames(taskId);
// 根据Task获取指定名称的所有流程变量
processEngine.getTaskService().getVariables(taskId, variableNames);

4.流程变量所支持的值的类型(jBPM User Guide,7.2. Variable types)

jBPM supports following Java types as process variables:

  • java.lang.String 

  • java.lang.Long 

  • java.lang.Double 

  • java.util.Date 

  • java.lang.Boolean 

  • java.lang.Character 

  • java.lang.Byte 

  • java.lang.Short 

  • java.lang.Integer 

  • java.lang.Float 

  • byte[] (byte array) 

  • char[] (char array) 

  • hibernate entity with a long id 

  • hibernate entity with a string id 

  • serializable

本文转载自:http://blog.csdn.net/v123411739/article/details/24930907

gitphg
粉丝 0
博文 12
码字总数 9474
作品 0
海淀
程序员
私信 提问
jbpm各种触发节点基础

对jBPM来讲,工作流由一些节点和用户定义的Hander组成。一个工作流从start-state开始,中间经过若干个节点(state、fork、milestone、process-state、decision和join),最后结束于end-state...

晨曦之光
2012/04/11
891
0
快速掌握JBPM工作流

搭建开发环境 1.为eclipse安装流程设计器gpd插件 安装完成后检查Window?Preference中是否有Jboss jBPM 路径jbpm-4.4/install/src/gpd/jbpm-gpd-site.zip 安装完后重启eclipse 2.添加jar包:j...

长平狐
2012/09/03
2.2K
0
JBoss 系列七十二:jBPM 6 新功能/特性介绍(API 层面)

概述 jBPM 6.0 最终版已与上月底发布,与jBPM 5相比有很大变化,本文从API编程的角度去简单说说jBPM 6,本文涉及到内容包括: 2个重要的接口 运行状态管理 jBPM 服务注入 (CDI) 2个重要的接口...

无鸯
2014/02/04
210
0
为各位看官来介绍一下JBPM是个啥东东

JBPM简介 JBPM,全称是Java Business Process Management(业务流程管理),网络推广它是覆盖了业务流程管理、工作流、服务协作等领域的一个开源的、灵活的、易扩展的可执行流程语言框架。jBP...

网络营销
2012/01/09
105
0
jBPM 6.2.0.Final 发布,工作流管理系统

jBPM 6.2 Final 发布,此版本包括一些新特性和大量 bug 修复。新特性包括:EJB,OSGi 和 Camel 终端支持的改进;添加了新资产管理功能;社会配置和反馈可以通过插件进行扩展。 相关链接: 下...

叶秀兰
2015/03/07
3.1K
0

没有更多内容

加载失败,请刷新页面

加载更多

有哪些常用的命名git分支实例的例子? [关闭]

现在,我已经使用本地git存储库与我的组的CVS存储库进行了几个月的交互。 我已经制作了一个几乎神经质的分支,其中大部分幸运地合并回我的行李箱。 但是命名开始成为一个问题。 如果我有一个...

javail
9分钟前
4
0
在virtualenv中使用不同的Python版本

我有一个目前使用python 2.5.4运行的Debian系统。 我正确安装了virtualenv,一切正常。 我是否可以将virtualenv与其他版本的Python一起使用? 我编译了Python 2.6.2,并希望将其与一些virtu...

技术盛宴
24分钟前
5
0
保证金术语参考

术语,定义 1.钱包, 余额. ON THE ENCHANGED CONVERGENCE OF STANDARD LATTICE METHODS FOR OPTION PRICING...

MtrS
27分钟前
4
0
x006-函数和模块的使用

函数和模块的使用 在Python中可以使用def关键字来定义函数,和变量一样每个函数也有一个响亮的名字,而且命名规则跟变量的命名规则是一致的。在函数名后面的圆括号中可以放置传递给函数的参数...

伟大源于勇敢的开始
37分钟前
4
0
为什么面试必问线程状态?你的回答满分了吗

看很多同学的面经、网上的面试资料,都不约而同的提到了一个基础问题:“你知道线程有几种状态吗?状态之间的扭转是怎样的?”,有准备的同学都知道有五种:New(新建)、Runnable(可运行)...

Z_J_H
37分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部