JBPM工作流(六)——流程变量
1.启动流程实例
|
1
2
3
4
5
6
7
|
// 启动流程实例@Testpublic void startProcessInstance() { // 使用指定key的最新版本的流程定义启动流程实例 ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("test"); System.out.println("processInstanceId=" + pi.getId());} |
2.设置流程变量
a) 一个设置流程变量实例
12345678910//设置流程变量@TestpublicvoidsetVariable() {String executionId ="test.140001";String name ="请假天数";Integer value =3;//将name为"请假天数",value=3的流程变量设置到executionId为test.140001的执行对象上processEngine.getExecutionService().setVariable(executionId, name, value);}b) 所有设置流程变量方法
用到变量的类型:
12345678Object value ="";String executionId ="";String taskId ="";String name ="";String processDefinitionKey ="";String variableName ="";Set<String> variableNames =newHashSet<String>();Map<String, Object> variablesMap =newHashMap<String, Object>();具体方法:
123456789101112// 根据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) 一个获取流程变量实例
12345678910//获取流程变量@TestpublicvoidgetVariable() {String executionId ="test.140001";String variableName ="请假天数";//从executionId为test.140001的执行对象上取出流程变量名为"请假天数"的流程变量的valueInteger value = (Integer) processEngine.getExecutionService().getVariable(executionId, variableName);System.out.println(variableName +" = "+ value);}
b) 所有获取流程变量方法
用到变量的类型:
1234String executionId ="";String taskId ="";String variableName ="";Set<String> variableNames =newHashSet<String>();具体方法:
12345678910111213// 根据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工作流(六)——流程变量的更多相关文章
- 工作流Activiti5流程变量 任务变量 setVariables 跟 setVariablesLocal区别
工作流Activiti5流程变量 任务变量 setVariables 和 setVariablesLocal区别 因为网上的资料比较少.结合源码把相关API写下来. 设置流程级别变量: runtime ...
- 工作流JBPM_day01:7-使用流程变量
工作流JBPM_day01:7-使用流程变量 工作流就像流水线 对应数据库中的一张表 ProcessVariableTest.Java import java.util.List; import or ...
- 工作流学习——Activiti流程变量五步曲 (zhuan)
http://blog.csdn.net/zwk626542417/article/details/46648139 ***************************************** ...
- JBPM学习(五):流程变量
1.启动流程实例 // 启动流程实例 @Test public void startProcessInstance() { // 使用指定key的最新版本的流程定义启动流程实例 ProcessInst ...
- JBPM工作流(五)——执行流程实例
概念: ProcessInstance,流程实例:代表流程定义的一次执行.如:张三昨天按请假流程请了一次假.一个流程实例包括了所有运行阶段,其中最典型的属性就是跟踪当前节点的指针,如下图. Execu ...
- 工作流学习——Activiti流程变量五步曲
一.前言 上一篇文章我们将流程实例的启动与查询,任务的办理查询都进行了介绍,我们这篇文章来介绍activiti中的流程变量. 二.正文 流程变量与我们寻常理解的变量是一样的,仅仅只是是用在了我们act ...
- Activiti工作流(三)——流程变量
流程变量可以是流程中一系列参数,比如办理人(Assignee),消息(message)等.这些流程变量使得activiti能够应用于更为复杂的业务中,使得流程变得更加灵活可控. 场景(一) 图一:没有 ...
- JBPM工作流
一.开发环境的搭建 1.下载Jbpm4.4 1.1下载地址: https://sourceforge.net/projects/jbpm/files/jBPM%204/jbpm-4.4/ 1.2解压后 ...
- 【Java EE 学习 67 下】【OA项目练习】【SSH整合JBPM工作流】【JBPM项目实战】
一.SSH整合JBPM JBPM基础见http://www.cnblogs.com/kuangdaoyizhimei/p/4981551.html 现在将要实现SSH和JBPM的整合. 1.添加jar ...
随机推荐
- float 浮点数与零值0比较大小 ZZ
float x: 千万不要写x==0; 写出float x 与“零值”比较的if语句——一道面试题分析 写出float x 与“零值”比较的if语句 请写出 float x 与“零值”比较的 if ...
- 怎样在 Ubuntu 16.04 强制 APT 包管理器使用 IPv4 | Linux 中国
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/F8qG7f9YD02Pe/article/details/82879401 https://mmbi ...
- zabbix 界面翻译不完全的处理
zabbix是一个多语言监控系统,界面显示由对应的语言下的frontend.mo控制.当前对中文的翻译不完全,如下图 如果我们需要自己优化,将此翻译成中文,那么你需要修改zh_CN下的frontend ...
- 每天一个linux命令(10):cat
1.命令简介 cat (concatenate,连接)命令将[文件]或标准输入组合输出到标准输出,如果没有指定文件,或者文件为"-",则从标准输入读取. 2.用法 cat [选项] ...
- QGIS Server使用记录
目录 0. 简述 1. 下载QGIS桌面64位版本 2. 下载安装QGIS Server程序 3. 下载安装Apache服务器 4.使用及问题处理 0. 简述 关于QGIS Server相关的文档很少 ...
- R语言学习-set.seed()
今天查了一下R语言中set.seed(),该命令的作用是设定生成随机数的种子,种子是为了让结果具有重复性.如果不设定种子,生成的随机数无法重现. > x<-rnorm(10) #随机生成1 ...
- mongodb连接配置实践
之前百度,google了很多,发现并没有介绍mongodb生产环境如何配置的文章, 当时想参考下都不行, 所以写篇文章,大家可以一块讨论下. 1. MongoClientOptions中的连接池配置: ...
- OpenLayers4地图实例-功能齐全
网址:http://api.rivermap.cn/openlayers4/map.min.html 标注 工具
- 深入 AngularUI Router
翻译:深入 AngularUI Router 原文地址:http://www.ng-newsletter.com/posts/angular-ui-router.html ui-router: htt ...
- 【iCore4 双核心板_FPGA】例程十七:基于FIFO的ARM+FPGA数据存取实验
实验现象: 核心代码: int main(void) { /* USER CODE BEGIN 1 */ int i; int fsmc_read_data; ; ]; ]; char *p; /* ...