Jbpm3.1中setVariable()和setVariableLocally()的区别
来源:互联网 发布:淘宝客服工作流程视频 编辑:程序博客网 时间:2024/06/05 15:52
由于工作需要,最近在jbpm基础上进行工作流系统开发。在开发过程中发现TaskInstance有两个方法setVariable()和setVariableLocally()非常相象,一直没搞明白有何区别。今天写了个测试程序,终于弄懂了两者的区别。
测试程序部分代码:
processinstance.signal();
// jbpmContext.save(processinstance);
Collection co = processinstance.getTaskMgmtInstance()
.getTaskInstances();
Iterator it = co.iterator();
TaskInstance ti = (TaskInstance) it.next();
ti.setVariable("Variable.setVariable", "setVariable");
ti.setVariableLocally("Variable.setLocally", "setLocally");
ti.end();
co = processinstance.getTaskMgmtInstance().getTaskInstances();
it = co.iterator();
ti = (TaskInstance) it.next();
ti.setVariable("Variable.setVariable", "setVariable2");
ti.setVariableLocally("Variable.setLocally", "setLocally2");
jbpmContext.close();
// jbpmContext.save(processinstance);
Collection co = processinstance.getTaskMgmtInstance()
.getTaskInstances();
Iterator it = co.iterator();
TaskInstance ti = (TaskInstance) it.next();
ti.setVariable("Variable.setVariable", "setVariable");
ti.setVariableLocally("Variable.setLocally", "setLocally");
ti.end();
co = processinstance.getTaskMgmtInstance().getTaskInstances();
it = co.iterator();
ti = (TaskInstance) it.next();
ti.setVariable("Variable.setVariable", "setVariable2");
ti.setVariableLocally("Variable.setLocally", "setLocally2");
jbpmContext.close();
此时数据库中variableinstance表中的数据如下:
可以看出,setVariable()方法设置的变量是流程实例变量,其作用范围是整个流程实例;而setVariableLocally()方法设置的变量是任务实例变量,其作用范围只是该任务实例范围内。
但同时还有一个问题没搞清楚,当用setVariableLocally()设置变量时,有时会将第一个设置的变量值加入TokenVariableMap中,而有时又不会,现在还没找到原因,希望知道的高手能解释下。
- Jbpm3.1中setVariable()和setVariableLocally()的区别
- activiti开发中流程变量中,setVariable和setVariableLocal的区别
- activiti 中 setVariable与setVariableLocal区别
- jbpm3.1的不足之处
- 从ApplicationContext.xml看jbpm3.1与3.2的区别
- jbpm3.1.4.jar架包和jbpm-jpdl-3.2.2之间的区别之一
- jbpm3.1.4.jar架包和jbpm-jpdl-3.2.2之间的区别之一 (续)
- jbpm3.1升级到jpbm3.2.2过程中需要注意的几个问题
- jbpm3.2和myeclipse7.5开发环境的集成
- jbpm3.1实际项目中如何做事务管理?
- JBPM3的对象介绍
- JBPM3的对象介绍
- jbpm3
- 在jbpm3中使用Ioc
- JBPM3部署在tomcat中
- 在jbpm3中使用Ioc
- jbpm3的timer开发问题
- robot framework setvariable
- 要发布新版的私人磁盘了。
- Winpcap的Kernel Buffer和其他的Buffer设置
- C#可定制的数据库备份和恢复程序
- 好友看到的进来~~~
- 利用C++模板生成随机二叉树
- Jbpm3.1中setVariable()和setVariableLocally()的区别
- GParted -- 实用的分区工具
- 用cx_Freeze把python打包成exe可执行文件
- Freewheel Frame
- Random.org -- 真正的随机数生成器
- MyEclipse 6.0.1|Dreamweaver8|SQLyog|UltraEdit-32|mysql-Front学习软件注册码收藏 (仅供学习之用)
- GNOME Terminator -- 任意分割你的终端窗口
- 手动制作python的exe可执行程序
- 病毒的行为分析帮助理解驱动pe等