Jbpm笔记之三 -- 流程变量
来源:互联网 发布:知乎 健康果甲醛检测 编辑:程序博客网 时间:2024/05/18 13:04
import java.util.HashMap;import java.util.Map;import java.util.Set;import org.jbpm.api.Configuration;import org.jbpm.api.ProcessEngine;import org.junit.Before;import org.junit.Test;public class VariablesTest{/** * 涉及到的表 * jbpm4_variable:存放流程变量 * 当一个流程实例结束以后,关于流程实例的流程变量也被删除了 * 该表也是一个临时表,临时才存放流程变量 * * jbpm4提供了流程变量持久化的保存方法 * 但是如果jbpm4的方法把流程变量持久化,那么就意味着所有的数据的数据结构写死了 * 如果将来需要比较复杂的查询统计,jbpm4本身的表根本满足不了需求 * 流程控制的表和数据结构的表是分开的 * * * 在整个流程控制产生的数据主要用于分析统计 */public static ProcessEngine processEngine;//定义流程引擎@Beforepublic void testBase(){this.processEngine = Configuration.getProcessEngine();//获取工作流引擎}//设置变量@Testpublic void testStrartPI(){Map<String,String> var = new HashMap<String,String>();var.put("流程实例开始", "开始了");processEngine.getExecutionService().startProcessInstanceById("qingjia-3",var);}@Testpublic void testWhenStartPI(){Person person = new Person();person.setId(1L);person.setName("呵呵");Map<String,Object> variables = new HashMap<String,Object>();variables.put("person",person);processEngine.getExecutionService().startProcessInstanceById("qingjia-1", variables);}/** * 完成任务 */@Testpublic void testWhenFinishTash(){Map<String,String> variables = new HashMap<String,String>();variables.put("请假天数", "2天");variables.put("请假原因", "呵呵");/*processEngine.getTaskService().completeTask("110003");*///processEngine.getTaskService().setVariables("140003", variables);//给当前节点设置流程变量 (在完成任务的时候设置流程变量)processEngine.getTaskService().completeTask("190001");/*在完成任务的使用同时设置流程变量 * processEngine.getTaskService().completeTask("110003", variables);这是jbpm内部的一个bug能编译过去,但是运行出错 * org.jbpm.api.JbpmException: No unnamed transitions were found for the task '申请请假'at org.jbpm.jpdl.internal.activity.TaskActivity.signal(TaskActivity.java:159)at org.jbpm.jpdl.internal.activity.TaskActivity.signal(TaskActivity.java:116)at org.jbpm.pvm.internal.model.op.Signal.perform(Signal.java:70)at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperationSync(ExecutionImpl.java:672)at org.jbpm.pvm.internal.model.ExecutionImpl.performAtomicOperation(ExecutionImpl.java:632)at org.jbpm.pvm.internal.model.ExecutionImpl.signal(ExecutionImpl.java:430)at org.jbpm.pvm.internal.model.ExecutionImpl.signal(ExecutionImpl.java:416)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.hibernate.proxy.pojo.javassist.JavassistLazyInitializer.invoke(JavassistLazyInitializer.java:197)at org.jbpm.pvm.internal.model.ExecutionImpl_$$_javassist_5.signal(ExecutionImpl_$$_javassist_5.java)at org.jbpm.pvm.internal.task.TaskImpl.complete(TaskImpl.java:201)at org.jbpm.pvm.internal.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:65)at org.jbpm.pvm.internal.cmd.CompleteTaskCmd.execute(CompleteTaskCmd.java:32)at org.jbpm.pvm.internal.cmd.CompositeCmd.execute(CompositeCmd.java:42)at org.jbpm.pvm.internal.cmd.CompositeCmd.execute(CompositeCmd.java:34)at org.jbpm.pvm.internal.svc.DefaultCommandService.execute(DefaultCommandService.java:42)at org.jbpm.pvm.internal.tx.StandardTransactionInterceptor.execute(StandardTransactionInterceptor.java:50)at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.executeInNewEnvironment(EnvironmentInterceptor.java:53)at org.jbpm.pvm.internal.svc.EnvironmentInterceptor.execute(EnvironmentInterceptor.java:40)at org.jbpm.pvm.internal.svc.RetryInterceptor.execute(RetryInterceptor.java:56)at org.jbpm.pvm.internal.svc.SkipInterceptor.execute(SkipInterceptor.java:43)at org.jbpm.pvm.internal.svc.TaskServiceImpl.completeTask(TaskServiceImpl.java:105)at org.jbpm.pvm.internal.svc.TaskServiceImpl.completeTask(TaskServiceImpl.java:92)at cn.itcast.jbpm.variables.VariablesTest.testWhenFinishTash(VariablesTest.java:43)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)at org.junit.runners.ParentRunner.run(ParentRunner.java:236)at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:49)at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) * */}/*查寻当前任务的流程变量 * 说明:历史服务只能根据流程实例去查询 */@Testpublic void showVariablesByTask(){Set<String> sets = processEngine.getTaskService().getVariableNames("140003");System.out.println(sets.size());for(String s:sets){System.out.println(processEngine.getTaskService().getVariable("140003", s));}}/** * 查询整个流程实例的变量 * 任务表中的ID */@Testpublic void showVariablesByPI(){Set<String> sets = processEngine.getExecutionService().getVariableNames("qingjia.140001");System.out.println(sets.size());}/** * 在运行时设置流程变量 */@Testpublic void testWhenPI(){//参数为流程实例qingjia.140001processEngine.getExecutionService().setVariable("qingjia.140001", "哈哈", "哈哈");}}
0 0
- Jbpm笔记之三 -- 流程变量
- jbpm中的流程变量
- JBPM流程变量
- Jbpm 流程变量
- jbpm设置流程变量
- JBPM具体应用之流程变量与任务变量
- Jbpm笔记之二 -- 流程实例-任务
- 07-jbpm工作流之根据流程变量分配任务Task
- jbpm学习笔记(三)--管理流程实例
- jbpm 笔记 流程部署
- JBPM流程变量的处理
- JBPM学习(五):流程变量
- JBPM流程变量的处理
- JBPM(六)流程变量
- jbpm(4)---流程局部变量
- 最新JBoss jBPM 3.1 开始指南之三---创建流程和部署流程
- JBPM笔记二一、流程变量1、连接线及信息号发送
- JBPM流程部署之流程版本升级
- opensuse安装文件拷贝完成后无法进行图像界面安装
- 奇异值、奇异矩阵、SVD分解、正交矩阵定义解释
- OSCACHE简介
- 802.11——WEP
- Hadoop 2.2 & HBase 0.96 Maven 依赖总结
- Jbpm笔记之三 -- 流程变量
- PEAR简易安装Drush,附常用命令
- linux下的随机数问题
- sqlite简单入门学习
- 蓝牙翻译术语
- Android开源项目第一篇——个性化控件(View)篇
- 敏捷:什么是用户故事(User Story)
- proc_create的使用方法
- art 收集