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 ...
随机推荐
- OpenCV3 for python3 学习笔记3-----用OpenCV3处理图像2
3.5.Canny边缘检测 OpenCV提供了Canny边缘检测函数来识别边缘.它有5个步骤:使用高斯滤波器对图像进行去噪.计算梯度.在边缘上使用最大抑制(NMS).在检测到的边缘上使用双阀值去除 假 ...
- JAVA使用Logback发送日志到控制台、文件、ELK的最简单用法
一.简述 本文讲JAVA使用Logback发送日志到控制台.文件.ELK的最简单用法. 二.教程 1.新建pom.xml项目引入下列依赖: <dependencies> <!--Be ...
- CAS 单点登录【2】自定义用户验证
基础不太熟的同学可以先去看:CAS 单点登录[1]入门 方案1:CAS默认的JDBC扩展方案: CAS自带了两种简单的通过JDBC方式验证用户的处理器. 1.QueryDatabaseAuthe ...
- Linux输入子系统框架分析(1)
在Linux下的输入设备键盘.触摸屏.鼠标等都能够用输入子系统来实现驱动.输入子系统分为三层,核心层和设备驱动层.事件层.核心层和事件层由Linux输入子系统本身实现,设备驱动层由我们实现.我们在设备 ...
- .net core 2.0+superui +Dapper.SimpleCRUD+mysql+NLog
**_ .net core 2.0+superui +Dapper.SimpleCRUD+mysql+NLog _** 前端框架 superui http://www.supermgr.cn/ 1.组 ...
- What is a Back Order
What is a Back Order A back order is a customer order that has not been fulfilled. A back order gene ...
- python3 --- locale命名空间让程序更加安全了
[简介] 由于python-2.x 并没有locale这个层次的命名空间,所以临时变量有可能会泄漏,进而影响到了包涵它的命名空间 [看一下pyhont-2.x是怎么泄漏临时变量的] python Py ...
- celery --分布式任务队列
一.介绍 celery是一个基于python开发的分布式异步消息任务队列,用于处理大量消息,同时为操作提供维护此类系统所需的工具. 它是一个任务队列,专注于实时处理,同时还支持任务调度.如果你的业务场 ...
- 前端学习-jQuery-2
老师的博客地址:https://www.cnblogs.com/yuanchenqi/articles/6070667.html day44 属性操作: ----------------------- ...
- 物联网架构成长之路(25)-Docker构建项目用到的镜像1
0. 前言 现在项目处于初级阶段,按照规划,先构建几个以后可能会用到的Image,并上传到阿里云的Docker仓库.以后博客中用到的Image,大部分都会用到这几个基础的Image,构建一个简单的物联 ...