博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JBPM学习(五):流程变量
阅读量:5894 次
发布时间:2019-06-19

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

hot3.png

1.启动流程实例

[java] 

  1. // 启动流程实例  

  2.   

  3. public void startProcessInstance() {  

  4.     // 使用指定key的最新版本的流程定义启动流程实例  

  5.     ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("test");  

  6.     System.out.println("processInstanceId=" + pi.getId());  

  7. }  

2.设置流程变量

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

[java] 

  1. //设置流程变量  

  2.   

  3. public void setVariable() {  

  4.     String executionId = "test.140001";  

  5.     String name = "请假天数";  

  6.     Integer value = 3;  

  7.   

  8.     //将name为"请假天数",value=3的流程变量设置到executionId为test.140001的执行对象上  

  9.     processEngine.getExecutionService().setVariable(executionId, name, value);  

  10. }  

b) 所有设置流程变量方法

用到变量的类型:

[java] 

  1. Object value = "";  

  2. String executionId = "";  

  3. String taskId = "";  

  4. String name = "";  

  5. String processDefinitionKey = "";  

  6. String variableName = "";  

  7. Set<String> variableNames = new HashSet<String>();  

  8. Map<String, Object> variablesMap = new HashMap<String, Object>();  

具体方法:

[java] 

  1. // 根据Execution设置一个流程变量  

  2. processEngine.getExecutionService().setVariable(executionId, name, value);  

  3. // 根据Execution设置多个流程变量(需要先把流程变量放到一个Map中)  

  4. processEngine.getExecutionService().setVariables(executionId, variablesMap);  

  5.   

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

  7. processEngine.getTaskService().setVariables(taskId, variablesMap);  

  8.   

  9. // 使用指定key的最新版本的流程定义启动流程实例,并设置一些流程变量  

  10. processEngine.getExecutionService().startProcessInstanceByKey(processDefinitionKey, variablesMap);  

  11. // 办理完指定的任务,并设置一些流程变量  

  12. processEngine.getTaskService().completeTask(taskId, variablesMap);  

3.获取流程变量

a) 一个获取流程变量实例

[java] 

  1. //获取流程变量  

  2.   

  3. public void getVariable() {  

  4.     String executionId = "test.140001";  

  5.     String variableName = "请假天数";  

  6.   

  7.     //从executionId为test.140001的执行对象上取出流程变量名为"请假天数"的流程变量的value  

  8.     Integer value = (Integer) processEngine.getExecutionService().getVariable(executionId, variableName);  

  9.     System.out.println(variableName + " = " + value);  

  10. }  

b) 所有获取流程变量方法

用到变量的类型:

[java] 

  1. String executionId = "";  

  2. String taskId = "";  

  3. String variableName = "";  

  4. Set<String> variableNames = new HashSet<String>();  

具体方法:

[java] 

  1. // 根据Execution获取指定名称的一个流程变量  

  2. processEngine.getExecutionService().getVariable(executionId, variableName);  

  3. // 根据Execution获取所有流程变量的名称  

  4. processEngine.getExecutionService().getVariableNames(executionId);  

  5. // 根据Execution获取指定名称的所有流程变量  

  6. processEngine.getExecutionService().getVariables(executionId, variableNames);  

  7.   

  8. // 根据Task获取指定名称的一个流程变量  

  9. processEngine.getTaskService().getVariable(taskId, variableName);  

  10. // 根据Task获取所有流程变量的名称  

  11. processEngine.getTaskService().getVariableNames(taskId);  

  12. // 根据Task获取指定名称的所有流程变量  

  13. 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

转载于:https://my.oschina.net/duanvincent/blog/394153

你可能感兴趣的文章
在模板中将php数组转换成js对象
查看>>
使用java调用FFMPEG进行转码
查看>>
克隆虚拟机以及互相登陆
查看>>
AES加密解密
查看>>
酷客多小程序会员体系上线,你不可不知道!
查看>>
objective c:import和include的区别, ""和<>区别
查看>>
CentOS 6.5上部署drbd
查看>>
spring SchedulerFactoryBean 没有创建 Scheduler的实现类bea
查看>>
基于cobbler实现自动化安装系统
查看>>
java基础专栏—IOUtils(4)
查看>>
TimeUnit使用
查看>>
进程管理
查看>>
我的VIM配置(ubuntu)
查看>>
linux 常用配置文件
查看>>
cisco交换机配置练习疑难
查看>>
我的友情链接
查看>>
16、MariaDB工作中遇到的一部分报错的解决方法
查看>>
jdk的fastdebug版本是什么
查看>>
ConcurrentLinkedQueue cas实现分析
查看>>
在论坛中出现的比较难的sql问题:13(循环替换问题)
查看>>