发大水

package com.java1234.activiti.variable;

import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map; import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.junit.Test; import com.java1234.activiti.model.Student; public class VariableTest { /**
* 获取默认流程引擎实例,默认读取配置文件activiti.cfg.xml
*/
private ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine(); /**
* 1.部署流程定义.
*/
@Test
public void deployWidthClassPath(){ Deployment deployment= processEngine.getRepositoryService()// 部署相关service
.createDeployment()//创建部署对象
.addClasspathResource("diagrams/StudentLeaveProcess.bpmn")//加载资源文件
.addClasspathResource("diagrams/StudentLeaveProcess.png") //加载资源图片
.name("学生请假流程")//设置名称
.deploy();//部署 System.out.println("流程部署Id:"+deployment.getId());
System.out.println("流程部署Name:"+deployment.getName());
/*
流程部署Id:15001
流程部署Name:学生请假流程
-------------------
## 流程部署表
select * from act_re_deployment; ## 流程定义表
select * from act_re_procdef; ## 资源文件表
select * from act_ge_bytearray;
*/
}
/**
* 1.1查询所以流程部署,名称查询,like查询
*/
@Test
public void findDeploy(){
// processEngine.getRepositoryService().get } /**
* 2.启动流程实例
*/
@Test
public void start(){
ProcessInstance pi= processEngine.getRuntimeService() //运行服务
.startProcessInstanceByKey("studentLeaveProcess"); //数据库中act_re_procdef的key_字段
System.out.println("流程实例ID:"+pi.getId());
System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID
/*
流程实例ID:17501 ,30001
流程定义ID:studentLeaveProcess:1:15004
*/
}
/**
* 3.查询任务
*
*/
@Test
public void findTask(){
List<Task> taskList= processEngine.getTaskService() //任务服务实例
.createTaskQuery()//创建任务查询
.taskAssignee("王五")// 查询 张三 ,李四,后欧洲王五
.list(); for(Task task:taskList){
// act_ru_task; 字段 里面的信息
System.out.println("任务Id:"+task.getId());
System.out.println("任务Name:"+task.getName());
System.out.println("任务创建时间:"+task.getCreateTime());
System.out.println("任务委派人:"+task.getAssignee());
System.out.println("任务实例ID:"+task.getProcessInstanceId());
} /*打印结果: 任务Id:17504, 30004
任务Name:学生请假申请
任务创建时间:Thu Jul 28 15:24:50 CST 2016
任务委派人:张三
任务实例ID:17501 ,30001
*/
}
/**
* 4.完成任务,让张三完成任务
*/
@Test
public void completeTask(){
processEngine.getTaskService()//任务服务器
.complete("50002"); //使用上面: 任务Id:(17504)
System.out.println("任务完成!");
} /**
* 设置流程变量数据
* 42504,47502,如果再用42504会出现异常!
*/
private String taskId="47502";
@Test
public void setVariableValues(){
/*
# 运行时参数设定 , 先这个表的数据会在任务结束的时候被清空
select * from act_ru_variable;
*/
TaskService taskService= processEngine.getTaskService(); //任务服务实例
//String taskId="";
taskService.setVariable(taskId, "days", 2);
taskService.setVariable(taskId, "date", new Date());
taskService.setVariable(taskId, "reason","发烧了"); Student student=new Student();
student.setId(1);
student.setName("张三");
taskService.setVariable(taskId, "student", student);
System.out.println("设置完成!");
}
@Test
public void getVariableValues(){
TaskService taskService= processEngine.getTaskService(); //任务服务实例
//String taskId="";
/**
* 当任务提交的时候,下一个人可以根据自己的任务id获取 到这些变量值
* 使用 42504 设置参数,使用47502也可获取到
*/
Integer days = (Integer) taskService.getVariable(taskId, "days");
Date date = (Date) taskService.getVariable(taskId, "date");
String reason= (String) taskService.getVariable(taskId, "reason");
Student student=(Student) taskService.getVariable(taskId, "student");
System.out.println("days:"+days+"");
System.out.println("date:"+date);
System.out.println("reason:"+reason);
System.out.println("student:"+student);
System.out.println("------查询完成!");
/*
days:2
date:Thu Jul 28 17:52:45 CST 2016
reason:发烧了
student:Student [id=1, name=张三]
*/
}
/**
* 这种设置会覆盖数据!
*/
@Test
public void setVariableMap(){
TaskService taskService= processEngine.getTaskService(); //任务服务实例
Map<String, Object> variables =new HashMap<String, Object>();
variables.put("days", 3);
variables.put("date", new Date());
variables.put("reason","发烧了22"); Student student=new Student();
student.setId(2);
student.setName("张三1");
variables.put("student", student);
/**
*这种设置方法会覆盖task数据!
*/
taskService.setVariables(taskId, variables); System.out.println("设置完成!");
}
@Test
public void getVariableMap(){
TaskService taskService= processEngine.getTaskService(); //任务服务实例
//String taskId="";
/**
* 当任务提交的时候,下一个人可以根据自己的任务id获取 到这些变量值
* 使用 42504 设置参数,使用47502也可获取到
*/
Map<String ,Object> variables = (Map<String, Object>) taskService.getVariables(taskId);
System.out.println(variables);
System.out.println("------查询完成!");
} }

  

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. Android Task 相关

    在日常开发过程中,只要涉及到activity,那么对task相关的东西总会或多或少的接触到,不过对task相关的一些配置的作用一直理解的还不是很透彻,官方文档在细节上说的也不够清楚,要透彻理解还是得自 ...

  2. mysql数据库操作语句大全

    一 . 常用mysql命令行命令 1 .启动MYSQL服务  net start mysql 停止MYSQL服务  net stop mysql 2 . netstat –na | findstr 3 ...

  3. find the most comfortable road

    XX星有许多城市,城市之间通过一种奇怪的高速公路SARS(Super Air Roam Structure---超级空中漫游结构)进行交流,每条SARS都对行驶在上面的Flycar限制了固定的Spee ...

  4. i++和++i的老问题

    对于++j,该式是指先将j的值自加1,然后再取j的值.自增过后参与计算 i的值也为10:对于i++,该表达式是指先取i的值做运算,再将i加1.参见过计算后再自增

  5. Delphi NativeXML 乱码的问题

    我遇到 NativeXML 在它的一个节点的属性上面写入属性,但是当读出的值中包含汉字的时候出现了乱码.检查代码如下 NativeXml := TNativeXml.Create; try Nativ ...

  6. CodeForces 595B

    题目链接: http://codeforces.com/problemset/problem/595/B 题意: 有一个n位的电话号码,每位电话号码将分成n/k段,每段均为k个数,求出满足以下要求的电 ...

  7. SRM 506(2-1000pt)

    DIV2 1000pt 题意:一个由n*m的网格组成的棋盘,有四种点,'.'表示空点,'#'表示是墙不能走,'$'表示起点(同样是空点),'1'~'9'表示该点有复活时间为t的怪兽.每次,可以从一个点 ...

  8. openStack 云平台管理节点管理网口流量非常大 出现丢包严重 终端总是时常中断问题调试及当前测试较有效方案

    tuning for Data Transfer hosts connected at speeds of 1Gbps or higher <一.本次OpenStack系统调试简单过程简单记录& ...

  9. poj1017

    一个工厂制造的产品形状都是长方体,它们的高度都是h,长和宽都相等,一共有六个型号,他们的长宽分别为1*1, 2*2, 3*3, 4*4, 5*5, 6*6.这些产品通常使用一个 6*6*h 的长方体包 ...

  10. geektool--一款很geek的工具

    2016/12/18 今天尝试一款很geek的工具 geektool 听名字就超级geek有木有 get it geektool website 从官网直接下载app,一键傻瓜式安装. use it ...