JBPM学习(五):流程变量
1.启动流程实例
// 启动流程实例
@Test
public void startProcessInstance() {
// 使用指定key的最新版本的流程定义启动流程实例
ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("test");
System.out.println("processInstanceId=" + pi.getId());
}
2.设置流程变量
a) 一个设置流程变量实例
//设置流程变量
@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);
}b) 所有设置流程变量方法
用到变量的类型:
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.获取流程变量
a) 一个获取流程变量实例
//获取流程变量
@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);
}
b) 所有获取流程变量方法
用到变量的类型:
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
For persistence of these variable, the type of the variable is checked in the order of this list. The first match will determine how the variable is stored.
JBPM学习(五):流程变量的更多相关文章
- 工作流学习——Activiti流程变量五步曲 (zhuan)
http://blog.csdn.net/zwk626542417/article/details/46648139 ***************************************** ...
- 工作流学习——Activiti流程变量五步曲
一.前言 上一篇文章我们将流程实例的启动与查询,任务的办理查询都进行了介绍,我们这篇文章来介绍activiti中的流程变量. 二.正文 流程变量与我们寻常理解的变量是一样的,仅仅只是是用在了我们act ...
- Lua的五种变量类型、局部变量、全局变量、lua运算符、流程控制if语句_学习笔记02
Lua的五种变量类型.局部变量.全局变量 .lua运算符 .流程控制if语句 Lua代码的注释方式: --当行注释 --[[ 多行注释 ]]-- Lua的5种变量类型: 1.null 表示 ...
- JBPM学习(四):执行流程实例
概念: ProcessInstance,流程实例:代表流程定义的一次执行.如:张三昨天按请假流程请了一次假.一个流程实例包括了所有运行阶段,其中最典型的属性就是跟踪当前节点的指针,如下图. Execu ...
- JBPM工作流(六)——流程变量
1.启动流程实例 ? 1 2 3 4 5 6 7 // 启动流程实例 @Test public void startProcessInstance() { // 使用指定key的最新版本的流程 ...
- (C/C++学习笔记) 五. 常变量(只读变量)和宏
五. 常变量(只读变量)和宏 ● 常变量 常变量 #include <iostream.h> //预处理文件 int main() { const d ...
- JBPM学习(四):运行流程实例
概念: ProcessInstance,流程实例:代表流程定义的一次执行.如:张三昨天按请假流程请了一次假.一个流程实例包含了全部执行阶段,当中最典型的属性就是跟踪当前节点的指针,例如以下图. Exe ...
- Activiti流程变量五步曲 ——by fightingKing
http://blog.csdn.net/zwk626542417/article/details/46648139 一.前言 上一篇文章我们将流程实例的启动与查询,任务的办理查询都进行了介绍,我们这 ...
- Flowable实战(五)表单和流程变量
一.流程变量 流程实例按步骤执行时,需要保存并使用一些数据,在Flowable中,这些数据称为变量(variable). 流程实例可以持有变量,称作流程变量(process variables ...
随机推荐
- underscore vs jquery
http://wordpress.tv/2013/06/23/k-adam-white-underscore-and-backbone-jquerys-new-friends/ http://www. ...
- POJ 3007 Organize Your Train part II(哈希链地址法)
http://poj.org/problem?id=3007 题意 :给你一个字符串,让你无论从什么地方分割,把这个字符串分成两部分s1和s2,然后再求出s3和s4,让你进行组合,看能出来多少种不同的 ...
- android ExpandableListActivity的使用
package com.example.keKuoZhanLieBiao; import android.app.ExpandableListActivity; import android.os.B ...
- android Failure [INSTALL_FAILED_OLDER_SDK] 安装apk失败
安装文件与运行环境的skd不匹配 打开源码目录下的AndroidManifest.xml文件,然后注释掉或者删除掉这行: <uses-sdk android:minSdkVersion=&quo ...
- 保护模式下GDTR,LDTR,全局描述符表,局部描述符表和选择器的关系
这张图要注意:右边两个0-15,其中上面的是LDTR, 下面的是选择子. 图下第五个标线,是两个线交叉的,实际上第五个线是指向右边水平的那个线. 没有箭头的两组线分别表示GDT的区间,LDT的区间 ...
- *[topcoder]LittleElephantAndBalls
http://community.topcoder.com/stat?c=problem_statement&pm=12758&rd=15704 topcoder的题经常需要找规律,而 ...
- LINQ TO SQL 怎样 执行存储过程并返回存储过程的临时表
查了GOOGLE一下,这种办法可以解决 我的存储过程是这样的: CREATE procedure cal_month_dep_fast @begdt datetime,@endt datetime ...
- 批量生成卡号密码的php程序
<?php header('Content-Type:text/html; charset=utf-8'); function MakeCard() { set_time_limit(0); / ...
- git workflow 原文 以及缺点
原文链接 http://nvie.com/posts/a-successful-git-branching-model/ 有人发现git work flow的缺点,历史提交会变得混乱 http://e ...
- Android开发UI之Navigation Drawer
http://blog.csdn.net/xyz_lmn/article/details/12523895