工作流JBPM_day01:7-使用流程变量

工作流就像流水线

对应数据库中的一张表

ProcessVariableTest.Java

import java.util.List;

import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.jbpm.api.task.Task;
import org.junit.Test; public class ProcessVariableTest {
private ProcessEngine processEngine = Configuration.getProcessEngine(); // 启动流程实例
// jbpm4_execution
@Test
public void testStartProcessInstance() {
ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("helloworld");
System.out.println("流程实例启动成功:id=" + pi.getId());// 所使用的流程定义的Id
}
//设置流程变量
@Test
public void testSetVariable() {
String executionId = "helloworld.170001";
processEngine.getExecutionService().setVariable(executionId, "请假天数", 15);
} //获取流程变量
@Test
public void testGetVariable() {
String executionId = "helloworld.170001";
Integer days = (Integer) processEngine.getExecutionService().getVariable(executionId, "请假天数");
System.out.println("请假天数=" + executionId);
} /**
{
ExecutionService executionService = processEngine.getExecutionService();
TaskService taskService = processEngine.getTaskService(); // ============ 设置变量 ========================
executionService.setVariable(executionId, name, value); // 设置一个变量
executionService.setVariables(executionId, variablesMap); // 设置多个变量
taskService.setVariables(taskId, variables); // 设置多个变量 executionService.startProcessInstanceByKey(processDefinitionKey, variablesMap); // 启动流程实例时,先设置一些变量
taskService.completeTask(taskId, variablesMap); // 真正办理完任务前先设置一些变量 // ============ 获取变量 ========================
executionService.getVariable(executionId, variableName); // 获取一个变量
executionService.getVariableNames(executionId); // 返回Set<String>,是所有变量的名称集合
executionService.getVariables(executionId, variableNames); //获取多个变量,返回Map<String,Object>,表示指定名称的变量信息 taskService.getVariable(taskId, variableName);
taskService.getVariableNames(taskId);
taskService.getVariables(taskId, variableNames);
}
*/
}

Form.java

public class Form /* implements java.io.Serializable */{

    private Long id;
private String title; // ... public Form() {
} public Form(String title) {
this.title = title;
} public Form(Long id, String title) {
this.id = id;
this.title = title;
} public Long getId() {
return id;
} public void setId(Long id) {
this.id = id;
} public String getTitle() {
return title;
} public void setTitle(String title) {
this.title = title;
} @Override
public String toString() {
return "[Form: id=" + id + ", title=" + title + "]";
}
}

Form.hbm.xml

<hibernate-mapping package="cn.itcast.d_processvariable">

    <class name="Form" table="itcast_form" lazy="false">
<id name="id">
<generator class="native"/>
</id>
<property name="title"/>
</class> </hibernate-mapping>

ProcessVariableTest2.Java

import org.jbpm.api.Configuration;
import org.jbpm.api.ProcessEngine;
import org.jbpm.api.ProcessInstance;
import org.junit.Test; public class ProcessVariableTest2 {
private ProcessEngine processEngine = Configuration.getProcessEngine(); // 启动流程实例
@Test
public void testStartProcessInstance() throws Exception {
ProcessInstance pi = processEngine.getExecutionService().startProcessInstanceByKey("helloworld");
System.out.println("流程实例启动成功:id=" + pi.getId());
} // 设置流程变量
@Test
public void testSetVariable() throws Exception {
String executionId = "helloworld.190001";
Form form = new Form(1L, "我要请假,我是张三"); // 通过指定id来模拟一个游离状态的对象
processEngine.getExecutionService().setVariable(executionId, "form", form);
} // 获取流程变量
@Test
public void testGetVariable() throws Exception {
String executionId = "helloworld.190001";
Form form = (Form) processEngine.getExecutionService().getVariable(executionId, "form");
System.out.println(form);
}
}

工作流JBPM_day01:7-使用流程变量的更多相关文章

  1. JBPM工作流(六)——流程变量

    1.启动流程实例 ? 1 2 3 4 5 6 7 // 启动流程实例 @Test public void startProcessInstance() {     // 使用指定key的最新版本的流程 ...

  2. Activiti工作流(三)——流程变量

    流程变量可以是流程中一系列参数,比如办理人(Assignee),消息(message)等.这些流程变量使得activiti能够应用于更为复杂的业务中,使得流程变得更加灵活可控. 场景(一) 图一:没有 ...

  3. 工作流学习——Activiti流程变量五步曲 (zhuan)

    http://blog.csdn.net/zwk626542417/article/details/46648139 ***************************************** ...

  4. 工作流Activiti5流程变量 任务变量 setVariables 跟 setVariablesLocal区别

    工作流Activiti5流程变量 任务变量 setVariables 和 setVariablesLocal区别 因为网上的资料比较少.结合源码把相关API写下来. 设置流程级别变量: runtime ...

  5. 工作流JBPM_day01:6-执行流程实例

    工作流JBPM_day01:6-执行流程实例 执行流程 启动流程实例 查询任务列表 办理任务 向后执行一步 先部署流程定义在启动流程实例 Jbpm4_execution表表示正在执行的流程实例的的信息 ...

  6. 工作流JBPM_day01:5-管理流程定义3点改进

    工作流JBPM_day01:5-管理流程定义3点改进 1.打包多个文件上传 再部署一个 查询所有看看,旧版本也查出来了 2.查询时只查询所有最新的版本 3.删除指定名称指定key的所有的它的版本

  7. 工作流JBPM_day01:4-管理流程定义

    工作流JBPM_day01:4-管理流程定义 管理流程(流程定义) 部署(添加) 查询 删除 查看流程图(xxx.png) -- 修改 --> 没有真正的修改,而是使用“再次部署+使用最新版本启 ...

  8. 工作流JBPM_day01:3-使用JBPM的API添加与执行流程

    工作流JBPM_day01:3-使用JBPM的API添加与执行流程 流程定义画完得到压缩文件--->部署流程定义-->启动流程实例-->查询我的个人任务列表-->办理任务--& ...

  9. 工作流JBPM_day01:1-说明_MyProcessDesigner_流程设计器

    工作流JBPM_day01:1-说明 先只做请假功能,怎么做? (请假可以和考勤整合到一起) 1,银行(拿号---叫号---办理) 2,餐馆(点菜---上菜---结账) 3,网购(下订单--配送--收 ...

随机推荐

  1. Markdown 11种基本语法【转】

    [转自:http://www.cnblogs.com/hnrainll/p/3514637.html] 1. 标题设置(让字体变大,和word的标题意思一样)在Markdown当中设置标题,有两种方式 ...

  2. Activiti工作流学习要点

    1. 1个插件 在Eclipse中安装Activiti插件,让你可以在Eclipse中绘制Activiti工作流图 2. 1个引擎 ProcessEngine对象,Activiti工作流引擎.这是Ac ...

  3. 对象的操作-javascript

    任务要求: 每单机一下div,边框各加5px,且会红色跟黑色相互交替. 学习总结: 主要是学习到了parseInt这个函数.主要是将本身设置好的长宽然后再加5像素的时候需要用到该函数.如果直接加不使用 ...

  4. iOS runtime探究(二): 从runtime開始深入理解OC消息转发机制

    你要知道的runtime都在这里 转载请注明出处 http://blog.csdn.net/u014205968/article/details/67639289 本文主要解说runtime相关知识, ...

  5. 【Unity笔记】UGUI物体的Rect Transform组件(Pivot中心点,Anchor锚点)

    Pivot:自身中心点,图标是小蓝点.表示图片以哪个点来计算坐标值.默认在UI元素的几何中心点(0.5, 0,5). Anchor:锚点,图标是四个小三角形.表示该UI元素以父物体的哪个位置作为缩放参 ...

  6. C语言 · 9-1九宫格

    算法提高 9-1九宫格   时间限制:1.0s   内存限制:256.0MB      问题描述 九宫格.输入1-9这9个数字的一种任意排序,构成3*3二维数组.如果每行.每列以及对角线之和都相等,打 ...

  7. [uboot]在uboot里面添加环境变量使用run来执行

    转自:http://blog.csdn.net/yangzheng_yz/article/details/41038259 在移植uboot的时候,可以在uboot里面添加定义一些自己的环境变量,这些 ...

  8. u-boot中网口处理--软件部分

    u-boot中DM9000驱动分析 1. CSRs和PHY reg读写. static u16 phy_read(int reg) { u16 val; /* Fill the phyxcer reg ...

  9. DataGridView使用技巧九:DataGridView的右键菜单(ContextMenuStrip)

    DataGridView,DataGridViewColumn,DataGridViewRow,DataGridViewCell有ContextMenuStrip属性.可以通过设置ContextMen ...

  10. DOS建立带点的文件夹

    md 表示make directory 创建文件夹 rd 表示remove directory 删除文件夹 我们用一个实例来说明一切吧. 1.按 键盘Windows徽标键+R 来打开 运行 对话框 2 ...