1.启动流程实例

[java] view plaincopy

  1. // 启动流程实例

  2. @Test

  3. public void startProcessInstance() {

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

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

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

  7. }

2.设置流程变量

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

[java] view plaincopy

  1. //设置流程变量

  2. @Test

  3. public void setVariable() {

  4. String executionId = "test.140001";

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

  6. Integer value = 3;

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

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

  9. }

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

用到变量的类型:

[java] view plaincopy

  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] view plaincopy

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

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

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

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

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

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

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

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

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

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

3.获取流程变量

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

[java] view plaincopy

  1. //获取流程变量

  2. @Test

  3. public void getVariable() {

  4. String executionId = "test.140001";

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

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

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

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

  9. }

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

用到变量的类型:

[java] view plaincopy

  1. String executionId = "";

  2. String taskId = "";

  3. String variableName = "";

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

具体方法:

[java] view plaincopy

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

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

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

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

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

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

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

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

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

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

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

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

JBPM学习(五):流程变量相关推荐

  1. SQL语言学习(五)流程控制函数学习

    1. if()函数 SELECT IF(10<5,"正确","错误"); IFNULL(value1, value2) 如果value1不为空,返回val ...

  2. 学习笔记之-Activiti7工作流引擎,概述,环境搭建,类关系图,使用Activiti BPMN visualizer,流程变量,组任务 网关,Activiti整合Spring SpringBoot

    本篇学习笔记是观看黑马程序员Activiti7视频而得 Activiti7 一.工作流介绍 1.1 概念 工作流(Workflow),就是通过计算机对业务流程自动化执行管理.它主要解决的是" ...

  3. 【Activity学习五】--基于SSM整合Activiti之请假流程实现(二)

    [Activity学习五]--基于SSM整合Activiti之请假流程实现(二) 1.部署流程资源 2.查询流程定义信息 3.发布请假流程 4.查询用户任务 5.提出请假 6.老板查看请假任务 7.老 ...

  4. flowable工作流 流程变量_Activiti工作流的应用示例

    1:工作流的概念 工作流(Workflow),就是"业务过程的部分或整体在计算机应用环境下的自动化",它主要解决的是"使在多个参与者之间按照某种预定义的规则传递文档.信息 ...

  5. Java学习笔记——流程控制

    Java学习笔记--流程控制 Day05 一.用户交互Scanner 1.Scanner对象 我们通过Java工具包java.util.Scanner中的Scanner类来获取用户的输入 基本语法:S ...

  6. Activiti——流程变量(六)

    Activiti--流程变量 转自:http://lib.csdn.net/article/java/66665?knId=268 流程变量在整个工作流中扮演很重要的作用.例如:请假流程中有请假天数. ...

  7. JBPM深入解析之变量设计

    JBPM深入解析之变量设计 在流程的流转的过程中,很多时候我们需要根据不同的实际情况传入一些初始化数据,以便完成我们个性化的业务需求:同时很多时候我们需要在不同的节点之间共享一些业务数据,特别是一些节 ...

  8. JBPM学习(六):详解流程图

    概念: 流程图的组成: a. 活动 Activity / 节点 Node b. 流转 Transition / 连线(单向箭头) c. 事件 1.流转(Transition) a) 一般情况一个活动中 ...

  9. Docker学习五:Docker 数据管理

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

最新文章

  1. requirements.txt
  2. 广西区计算机一级全称是,计算机一级考试(广西区)历年真题-20210412075414.pdf-原创力文档...
  3. 热传递 matlab,利用matlab程序解决热传导问题
  4. 给 EF Core 查询增加 With NoLock
  5. Maven+Tomcat的热部署方案
  6. 程序员为什么热衷于造轮子,而不是硬照,升职加薪吗?
  7. RGB图像点落入色度图上的算法
  8. WPS 2019|WPS Office 2019官方最新版 v11.1下载
  9. 银行业应用系统监控的维度与目标
  10. UserWarning: Glyph 28857 (\N{CJK UNIFIED IDEOGRAPH-70B9}) missing from current font. FigureCanvasA
  11. Film Stocks for Mac(PS胶片模拟调色插件)
  12. iphone不支持webp图片格式处理方案
  13. 学习汇编对编程有什么帮助?如何学习
  14. 比普通空调好,比净化器静 海尔唯一获“空·净一体”A+认证
  15. python手机编程调试_在Linux下调试Python代码的各种方法
  16. 18.通过按键切换LED颜色
  17. 湘南巷子商城“0元购”逆袭上线
  18. 网易邮箱登录界面制作方法
  19. Java对象结构与synchronized实现原理及MarkWord详解
  20. 查看Oracle数据库命中率

热门文章

  1. js 两行之间的设置间距_防火间距
  2. Java中资源关闭的处理方式
  3. python算法与数据结构-希尔排序算法
  4. php中 elseif和else if 的区别
  5. WeChat小程序授权机制踩坑请求头中设置cookie保持session
  6. PHP的strlen与mb_strlen
  7. PHP的静态方法与普通方法
  8. document write的用法
  9. linux中mongo的导出数据,Linux下mongodb安装及数据导入导出教程(示例代码)
  10. php去掉内部空格_php中去掉头尾空格3种方法