JBPM(六)流程变量

原创 2016年08月31日 10:09:51

1.启动流程实例

[java] view plain copy
  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 plain copy
  1. //设置流程变量  
  2. @Test  
  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] view plain copy
  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 plain copy
  1. // 根据Execution设置一个流程变量  
  2. processEngine.getExecutionService().setVariable(executionId, name, value);  
  3. // 根据Execution设置多个流程变量(需要先把流程变量放到一个Map中)  
  4. processEngine.getExecutionService().setVariables(executionId, variablesMap);  
  5.   
  6. // 根据Task设置多个流程变量(需要先把流程变量放到一个Map中,通过Task方法,
  7. //它会先找到它所属的Execution然后设置流程变量)  
  8. processEngine.getTaskService().setVariables(taskId, variablesMap);  
  9.   
  10. // 使用指定key的最新版本的流程定义启动流程实例,并设置一些流程变量  
  11. processEngine.getExecutionService()
  12.         .startProcessInstanceByKey(processDefinitionKey, variablesMap);  
  13. // 办理完指定的任务,并设置一些流程变量  
  14. processEngine.getTaskService().completeTask(taskId, variablesMap);  

3.获取流程变量

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

[java] view plain copy
  1. //获取流程变量  
  2. @Test  
  3. public void getVariable() {  
  4.     String executionId = "test.140001";  
  5.     String variableName = "请假天数";  
  6.   
  7.     //从executionId为test.140001的执行对象上取出流程变量名为"请假天数"的流程变量的value  
  8.     Integer value = (Integer) processEngine.getExecutionService()
  9.                                 .getVariable(executionId, variableName);  
  10.     System.out.println(variableName + " = " + value);  
  11. }  

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

用到变量的类型:

[java] view plain copy
  1. String executionId = "";  
  2. String taskId = "";  
  3. String variableName = "";  
  4. Set<String> variableNames = new HashSet<String>();  

具体方法:

[java] view plain copy
  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
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Jbpm 流程变量

一、流程图: 二、设置与获取变量:三、代码:public class ProcessVariableTest { private ProcessEngine processEngine = Conf...
  • lovoo
  • lovoo
  • 2016-11-05 22:09
  • 273

jbpm中的流程变量

package com.njupt.jbpm; import java.util.Map; import java.util.Set; import org.jbpm.api.Configurat...

jbpm学习笔记(六)--请假流程的设计(3)

经过上一节的学习,我们已经将真整个请假流程的部署,发起以及执行分配都集成到web应用中,这里我们要做的新工作是为我们之前发布的请假流程实现流程图的跟踪。 1、流程定义图片生成 流程定义的图片生成很...

JBPM学习(四):执行流程实例

概念: ProcessInstance,流程实例:代表流程定义的一次执行.如:张三昨天按请假流程请了一次假.一个流程实例包括了所有运行阶段,其中最典型的属性就是跟踪当前节点的指针,如下图。 ...

JBPM4入门——4.封装流程管理的工具类(JbpmUtil)

本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google链接: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门...

Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8 整合例子(附完整的请假流程例子)。

Jbpm4.4+hibernate3.5.4+spring3.0.4+struts2.1.8 整合例子(附完整的请假流程例子)。 1.       jbpm4.4 测试环境搭建 2. &#...

揭秘jbpm流程引擎内核设计思想及构架

揭秘jbpm流程引擎内核设计思想及构架

Jbpm3.2 开发HelloWorld (简单请假流程)客户端

Jbpm3.2 开发HelloWorld (简单请假流程)客户端

JBPM4基础篇03-管理流程实例

 本篇主要对流程进行启动,终止和删除操作。 [java] view plaincopyprint? package org.wxp;    import java.u...

JBPM4入门——5.流程定义的发布、查询、删除

本博文只是简要对JBPM4进行介绍,如需更详细内容请自行google链接: JBPM4入门——1.jbpm简要介绍 JBPM4入门——2.在eclipse中安装绘制jbpm流程图的插件 JBPM4入门...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)