博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JBPM工作流(六)——流程变量
阅读量:5323 次
发布时间:2019-06-14

本文共 3214 字,大约阅读时间需要 10 分钟。

1.启动流程实例

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

  

2.设置流程变量

a) 一个设置流程变量实例

1
2
3
4
5
6
7
8
9
10
//设置流程变量
@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) 所有设置流程变量方法

用到变量的类型:

1
2
3
4
5
6
7
8
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>();

  具体方法:

1
2
3
4
5
6
7
8
9
10
11
12
// 根据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) 一个获取流程变量实例

1
2
3
4
5
6
7
8
9
10
//获取流程变量
@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) 所有获取流程变量方法

用到变量的类型:

1
2
3
4
String executionId =
""
;
String taskId =
""
;
String variableName =
""
;
Set<String> variableNames =
new
HashSet<String>();

  具体方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
// 根据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.

转载于:https://www.cnblogs.com/HHR-SUN/p/7235862.html

你可能感兴趣的文章
arcgis api 4.x for js 结合 Echarts4 实现散点图效果(附源码下载)
查看>>
YTU 2625: B 构造函数和析构函数
查看>>
apache自带压力测试工具ab的使用及解析
查看>>
加固linux
查看>>
10.17动手动脑
查看>>
WPF中Image显示本地图片
查看>>
SQL Server中利用正则表达式替换字符串
查看>>
[poj1006]Biorhythms
查看>>
Hyper-V虚拟机上安装一个图形界面的Linux系统
查看>>
Hover功能
查看>>
js千分位处理
查看>>
Mac---------三指拖移
查看>>
字符串类型的相互转换
查看>>
HTTP状态码
查看>>
iOS如何过滤掉文本中特殊字符
查看>>
基础学习:C#中float的取值范围和精度
查看>>
javaagent 简介
查看>>
python升级安装后的yum的修复
查看>>
Vim配置Node.js开发工具
查看>>
web前端面试题2017
查看>>