Activiti 变量设置
使用工作流的时候必定会附上一些变量。例如,请假的时候有填写请假理由,天数等等。可以用以下代码实现
public void setVariables(){
/**与任务(正在执行)*/
TaskService taskService = processEngine.getTaskService();
//任务ID
String taskId = "1904";
/**一:设置流程变量,使用基本数据类型*/
//taskService.setVariableLocal(taskId, "请假天数", 3);//与任务ID绑定 local变量与任务id绑定,当进行到下一步的时候该变量在正在执行不再出现 在act_hi_varinst中还存在
//taskService.setVariable(taskId, "请假日期", new Date());
//taskService.setVariable(taskId, "请假原因", "回家探亲");
//System.out.println("设置流程变量成功!");
/**二:设置流程变量,使用javabean类型*/
/**
* 当一个javabean(实现序列号)放置到流程变量中,要求javabean的属性不能再发生变化
* * 如果发生变化,再获取的时候,抛出异常
*
* 解决方案:在Person对象中添加:
* private static final long serialVersionUID = 6757393795687480331L;
* 同时实现Serializable
* */
Person p = new Person();
p.setId(20);
p.setName("翠花");
p.setEducation("翠花123");
taskService.setVariable(taskId, "人员信息(添加固定版本)", p);
System.out.println("设置流程变量成功!");
}
而获得流程变量则用以下代码实现
public void getVariables()
{
TaskService taskService = processEngine.getTaskService();
String taskId = "2102";
/**Integer days = (Integer) taskService.getVariable(taskId, "请假天数");
Date date = (Date) taskService.getVariable(taskId, "请假日期");
String resean = (String) taskService.getVariable(taskId, "请假原因");
System.out.println("请假天数:"+days);
System.out.println("请假日期:"+date);
System.out.println("请假原因:"+resean);**/
/**二:获取流程变量,使用javabean类型*/
Person p = (Person)taskService.getVariable(taskId, "人员信息(添加固定版本)");
System.out.println(p.getId()+" "+p.getName()+" "+p.getEducation());
}
可以看到,这里有两种方法设置和获取流程变量,第一种使用数据基本类型,第二种则是使用javabean。两者实现效果一样,但是在数据库中存储的位置不相同。前者可以在act_ru_variable中查询到相关的变量,后者则在act_ge_bytearray中查询。此外,使用javabean设置变量的时候,如果在流程启动后修改了bean则会抛出异常,解决方法如下
package d_processVariable;
import java.io.Serializable;
public class Person implements Serializable{
private static final long serialVersionUID = 6757393795687480331L;//固定版本
private Integer id;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
private String name;
private String education;
public String getEducation() {
return education;
}
public void setEducation(String education) {
this.education = education;
}
}
只要把bean设置固定版本,即可解决该问题。
设置的函数有两种,一种是setVariableLocal()另一种是setVariable。前者会把变量和taskId绑定,这样一来,一但流程进入下一步,该变量不可见。只能在act_hi_varinst表中查询到变量。在实际过程中可以根据需要选择
Activiti 变量设置的更多相关文章
- SQL*Plus环境变量设置浅析
SQL*Plus的使用环境是可以通过login.sql 或 glogin.sql脚本来设置的,可能很多初学者或不习惯使用SQL*Plus的老鸟都不知道.因为在如今UI工具(Toad.PL/SQL De ...
- [Java] Tomcat环境变量设置
@echo off title Tomcat环境变量设置 color 0a set /p inputTH=D:\Work\024_Tomcat if /i "%inputTH%"= ...
- Eclipse为成员变量设置前缀
Eclipse可以自动生成getter和setter,constructor. 菜单 - Source, 有Generate Getters and Setter,Generate Construct ...
- java环境变量设置
java环境变量设置 1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program Files\Ja ...
- AIX系统的环境变量设置
AIX系统的环境变量设置 用户环境的定义是通过设置环境变量来实现的.AIX系统主要使用两大类profile文件来定义用户环境.一类是用来为所有用户定制环境,另一类是为个人定义自己的环境. 登录时,sh ...
- Mac 系统下cocos2dx 环境变量设置
Mac 系统环境变量设置 vim ~/.bash_profile export PATH=$PATH:/Users/wangchengcheng/Downloads/LearningSoft ...
- [Java] JDK 系统环境变量设置 bat
@echo off set regpath=HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environmen ...
- Windows-001-Win7系统变量设置
本节主要讲述Windows系统环境变量配置介绍,以 Windows 7 为例讲解. 1.右键单击 计算机,选择 属性,进入 系统 界面,如下所示: 2.点击上图中的 高级系统设置,进入 系统属性 界面 ...
- tomcat配置及使用 环境变量设置
Tomcat的配置及测试: 第一步:下载tomcat,然后解压到任意盘符 第二步:配置系统环境变量 我这里是tomcat5.5,解压到的D盘 (路径为: D:\Program Files\tomcat ...
随机推荐
- EXCEL表格链接SQLSEVER数据库
Sub 数据库连接() Set Cnn = CreateObject("ADODB.Connection") Set rs = CreateObject(" ...
- Git 如何使用ssh上传或者同步/下载项目到github
上传本地代码及更新代码到GitHub教程 上传本地代码 第一步:去github上创建自己的Repository,创建页面如下图所示: 红框为新建的仓库的https地址 第二步: echo " ...
- mui--使用mui中的图文表格组件时出现一条横线的解决方法
最近做的微信公众号点击链接跳转到H5页面,该H5页面使用mui做的,遇到的商品列表页出现一个横线的问题, 这个是修改前的图片 解决方法: <style type="text/css&q ...
- php 引用文件
require_once :为了避免重复加载文件. 用意:加载文件一次. require_once() 语句在脚本执行期间包括并运行指定文件.此行为和require()语句类似,唯一区别是:如果该文件 ...
- scala中异常捕获与处理简单使用
import java.io.IOException /** * 异常捕获与处理 */ object excepitonUse { def main(args: Array[String]): Uni ...
- 配置文件一spring-mvc.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- POJ 3134 - Power Calculus
迭代加深 //Twenty #include<cstdio> #include<cstdlib> #include<iostream> #include<al ...
- VS2010-MFC(常用控件:组合框控件Combo Box)
转自:http://www.jizhuomi.com/software/189.html 上一节讲了列表框控件ListBox的使用,本节主要讲解组合框控件Combo Box.组合框同样相当常见,例如, ...
- mysql重点,表查询操作和多表查询
表单查询 1. 完整的查询语句语法 select distinct(* or 字段名 or 四则运算 )from 表名 where 条件 group by 条件 having 条件 order by ...
- joda 获取每个月第一天第一秒和最后一天最后一秒
/** * 获取每个月第一天的第一秒 * @return */ public static final Date getMouthOfFirst(){ DateTimeFormatter format ...