发大水

  1. package com.java1234.activiti.variable;
  2.  
  3. import java.util.Date;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7.  
  8. import org.activiti.engine.ProcessEngine;
  9. import org.activiti.engine.ProcessEngines;
  10. import org.activiti.engine.TaskService;
  11. import org.activiti.engine.repository.Deployment;
  12. import org.activiti.engine.runtime.ProcessInstance;
  13. import org.activiti.engine.task.Task;
  14. import org.junit.Test;
  15.  
  16. import com.java1234.activiti.model.Student;
  17.  
  18. public class VariableTest {
  19.  
  20. /**
  21. * 获取默认流程引擎实例,默认读取配置文件activiti.cfg.xml
  22. */
  23. private ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();
  24.  
  25. /**
  26. * 1.部署流程定义.
  27. */
  28. @Test
  29. public void deployWidthClassPath(){
  30.  
  31. Deployment deployment= processEngine.getRepositoryService()// 部署相关service
  32. .createDeployment()//创建部署对象
  33. .addClasspathResource("diagrams/StudentLeaveProcess.bpmn")//加载资源文件
  34. .addClasspathResource("diagrams/StudentLeaveProcess.png") //加载资源图片
  35. .name("学生请假流程")//设置名称
  36. .deploy();//部署
  37.  
  38. System.out.println("流程部署Id:"+deployment.getId());
  39. System.out.println("流程部署Name:"+deployment.getName());
  40. /*
  41. 流程部署Id:15001
  42. 流程部署Name:学生请假流程
  43. -------------------
  44. ## 流程部署表
  45. select * from act_re_deployment;
  46.  
  47. ## 流程定义表
  48. select * from act_re_procdef;
  49.  
  50. ## 资源文件表
  51. select * from act_ge_bytearray;
  52. */
  53. }
  54. /**
  55. * 1.1查询所以流程部署,名称查询,like查询
  56. */
  57. @Test
  58. public void findDeploy(){
  59. // processEngine.getRepositoryService().get
  60.  
  61. }
  62.  
  63. /**
  64. * 2.启动流程实例
  65. */
  66. @Test
  67. public void start(){
  68. ProcessInstance pi= processEngine.getRuntimeService() //运行服务
  69. .startProcessInstanceByKey("studentLeaveProcess"); //数据库中act_re_procdef的key_字段
  70. System.out.println("流程实例ID:"+pi.getId());
  71. System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID
  72. /*
  73. 流程实例ID:17501 ,30001
  74. 流程定义ID:studentLeaveProcess:1:15004
  75. */
  76. }
  77. /**
  78. * 3.查询任务
  79. *
  80. */
  81. @Test
  82. public void findTask(){
  83. List<Task> taskList= processEngine.getTaskService() //任务服务实例
  84. .createTaskQuery()//创建任务查询
  85. .taskAssignee("王五")// 查询 张三 ,李四,后欧洲王五
  86. .list();
  87.  
  88. for(Task task:taskList){
  89. // act_ru_task; 字段 里面的信息
  90. System.out.println("任务Id:"+task.getId());
  91. System.out.println("任务Name:"+task.getName());
  92. System.out.println("任务创建时间:"+task.getCreateTime());
  93. System.out.println("任务委派人:"+task.getAssignee());
  94. System.out.println("任务实例ID:"+task.getProcessInstanceId());
  95. }
  96.  
  97. /*打印结果:
  98.  
  99. 任务Id:17504, 30004
  100. 任务Name:学生请假申请
  101. 任务创建时间:Thu Jul 28 15:24:50 CST 2016
  102. 任务委派人:张三
  103. 任务实例ID:17501 ,30001
  104. */
  105. }
  106. /**
  107. * 4.完成任务,让张三完成任务
  108. */
  109. @Test
  110. public void completeTask(){
  111. processEngine.getTaskService()//任务服务器
  112. .complete("50002"); //使用上面: 任务Id:(17504)
  113. System.out.println("任务完成!");
  114. }
  115.  
  116. /**
  117. * 设置流程变量数据
  118. * 42504,47502,如果再用42504会出现异常!
  119. */
  120. private String taskId="47502";
  121. @Test
  122. public void setVariableValues(){
  123. /*
  124. # 运行时参数设定 , 先这个表的数据会在任务结束的时候被清空
  125. select * from act_ru_variable;
  126. */
  127. TaskService taskService= processEngine.getTaskService(); //任务服务实例
  128. //String taskId="";
  129. taskService.setVariable(taskId, "days", 2);
  130. taskService.setVariable(taskId, "date", new Date());
  131. taskService.setVariable(taskId, "reason","发烧了");
  132.  
  133. Student student=new Student();
  134. student.setId(1);
  135. student.setName("张三");
  136. taskService.setVariable(taskId, "student", student);
  137. System.out.println("设置完成!");
  138. }
  139. @Test
  140. public void getVariableValues(){
  141. TaskService taskService= processEngine.getTaskService(); //任务服务实例
  142. //String taskId="";
  143. /**
  144. * 当任务提交的时候,下一个人可以根据自己的任务id获取 到这些变量值
  145. * 使用 42504 设置参数,使用47502也可获取到
  146. */
  147. Integer days = (Integer) taskService.getVariable(taskId, "days");
  148. Date date = (Date) taskService.getVariable(taskId, "date");
  149. String reason= (String) taskService.getVariable(taskId, "reason");
  150. Student student=(Student) taskService.getVariable(taskId, "student");
  151. System.out.println("days:"+days+"");
  152. System.out.println("date:"+date);
  153. System.out.println("reason:"+reason);
  154. System.out.println("student:"+student);
  155. System.out.println("------查询完成!");
  156. /*
  157. days:2
  158. date:Thu Jul 28 17:52:45 CST 2016
  159. reason:发烧了
  160. student:Student [id=1, name=张三]
  161. */
  162. }
  163. /**
  164. * 这种设置会覆盖数据!
  165. */
  166. @Test
  167. public void setVariableMap(){
  168. TaskService taskService= processEngine.getTaskService(); //任务服务实例
  169. Map<String, Object> variables =new HashMap<String, Object>();
  170. variables.put("days", 3);
  171. variables.put("date", new Date());
  172. variables.put("reason","发烧了22");
  173.  
  174. Student student=new Student();
  175. student.setId(2);
  176. student.setName("张三1");
  177. variables.put("student", student);
  178. /**
  179. *这种设置方法会覆盖task数据!
  180. */
  181. taskService.setVariables(taskId, variables);
  182.  
  183. System.out.println("设置完成!");
  184. }
  185. @Test
  186. public void getVariableMap(){
  187. TaskService taskService= processEngine.getTaskService(); //任务服务实例
  188. //String taskId="";
  189. /**
  190. * 当任务提交的时候,下一个人可以根据自己的任务id获取 到这些变量值
  191. * 使用 42504 设置参数,使用47502也可获取到
  192. */
  193. Map<String ,Object> variables = (Map<String, Object>) taskService.getVariables(taskId);
  194. System.out.println(variables);
  195. System.out.println("------查询完成!");
  196. }
  197.  
  198. }

  

java测试1的更多相关文章

  1. Java测试工具

    1.   开源测试工具: http://www.open-open.com/43.htm 2.   10款常用的JAVA测试工具 :http://developer.51cto.com/art/200 ...

  2. 在Jmeter中使用自定义编写的Java测试代码

    我们在做性能测试时,有时需要自己编写测试脚本,很多测试工具都支持自定义编写测试脚本,比如LoadRunner就有很多自定义脚本的协议,比如"C Vuser","Java ...

  3. 如何使用 Java 测试 IBM Systems Director 的 REST API

    转自: http://www.ibm.com/developerworks/cn/aix/library/au-aix-systemsdirector/section2.html 如何使用 Java ...

  4. 第一次Java测试及感触

    周四进行了java测试,感触很深,测试的题目是用Java实现一个ATM机的管理系统.最后3个小时后,我没有完成这次测试,但是我找到了自己的很多不足,明确了自己的问题究竟在哪里. 关于这次测试我不会的最 ...

  5. 第一次java测试有感

    今天下午的Java测试体会深刻,真的可能我一暑假学的还没有今天一下午学的多.但通过今天一下午地与Java近距离接触 ,我感受到我与真正的Java距离还是特别远的.以后我的路还很长,我对Java仍然还是 ...

  6. Java测试工具使用(1)--Junit

    在进行测试之前需要导入junit的两个包,分别是 junit:4.12;hamcrest-core:1.1 1.基本测试标签 @Test.@Before.@After 2.组测试 有时候多个测试文件, ...

  7. Java测试工具和框架

    个人目前只接触过JUnit以及Powermock,后续会关注更多有关测试这方面的东西 8个超实用的Java测试工具和框架_开发/数据库_IT专家网 http://database.ctocio.com ...

  8. 自定义编写jmeter的Java测试代码

    我们在做性能测试时,有时需要自己编写测试脚本,很多测试工具都支持自定义编写测试脚本,比如LoadRunner就有很多自定义脚本的协议,比如"C Vuser","JavaV ...

  9. 8个超实用的Java测试工具和框架

    Java入门 如果你才刚开始接触Java世界,那么要做的第一件事情是,安装JDK——Java Development Kit(Java开发工具包),它自带有Java Runtime Environme ...

  10. 第一次Java测试及感触(2018.9.20)

    在本周周四进行了java测试,有一点感触,测试的题目是用Java实现一个ATM机的管理系统.之前老师提前给我们样卷,结果考试的时候换了题型,瞬间脑子空白,一时不知道怎么下手,因为暑假虽然涉猎了java ...

随机推荐

  1. Qt之模型/视图(自定义按钮)(使用QStyleOption的子类进行drawControl,和我用的方法完全不一样)

    http://blog.csdn.net/liang19890820/article/details/50974059

  2. MFC添加自定义消息

    由于MFC中无法通过类向导来自定义消息,所以需要手动添加,主要过程如下: 本文基于vs2008下通过线程实现数据实时更新的对话框运用程序 1. 定义消息(Resource.h文件中): 由于很多新控件 ...

  3. 【字符串】【最小表示法】Vijos P1683 有根树的同构问题

    题目链接: https://vijos.org/p/1683 题目大意: 给M棵树,每棵N个点,N-1条边,树边有向,问哪些树同构. 题目思路: [字符串][最小表示法] 用()表示一个节点,那么三个 ...

  4. 不允许从数据类型 nvarchar 到 varbinary 的隐式转换

    一:错误截图 二:解决 数据库里面的数据类型错了,应该是varchar,而我选了varbinary.太粗心了!

  5. Search in Rotated Sorted Array II——LeetCode

    Follow up for "Search in Rotated Sorted Array":What if duplicates are allowed? Would this ...

  6. [Audio processing] Harmonic change detection function (HCDF)

    Harmonic change detection function (HCDF) 是根据 Tonal Centroid (TC)实现的,首先TC如何提取? Step 1. 提取PCP特征 Step ...

  7. hdoj 1728 逃离迷宫

    逃离迷宫 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  8. 10382 - Watering Grass

    Problem E Watering Grass Input: standard input Output: standard output Time Limit: 3 seconds n sprin ...

  9. 一、cocos2d-x 3.0 final使用httpclient编译到android,须要用到的android.mk

    今天写一个网络框架,在vs上面非常欢快的执行车,心想,尼玛!cocos2d-x 3.0这么方便,预计不久的将来我就能回家种地了,由于不用程序猿了,直接cocos2dstudio拖界面了= =!!. 写 ...

  10. Android中的双向链表

    1.看源代码必须搞懂Android的数据结构.在init源代码中双向链表listnode使用非常多,它仅仅有prev和next两个指针,没有不论什么数据成员.这个和linux内核的list_head如 ...