activiti 部署流程定义(InputStream) 流程变量设置 及获取流程变量、查询流程变量历史表
2018-01-22 10:08
633 查看
ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();
/**
* 部署流程定义(InputStream)
*/
@Test
public void depolymentProcessDefinition_inputStream(){
InputStream bpmn=this.getClass().getClassLoader().getResourceAsStream("diagrams/processVariablesProcess.bpmn");
InputStream png=this.getClass().getClassLoader().getResourceAsStream("diagrams/processVariablesProcess.png");
Deployment deployment=processEngine.getRepositoryService()
.createDeployment()
.name("部署名称XX")
.addInputStream("processVariablesProcess.bpmn", bpmn)
.addInputStream("processVariablesProcess.png", png)
.deploy();
System.out.println("部署ID:"+deployment.getId()); // 部署ID:1201
System.out.println("部署名称:"+deployment.getName()); // 部署名称:部署名称XX
}
/**
* 启动流程
* ProcessInstance
*/
@Test
public void startProcessIntance(){
// 获取流程定义的 key
String proceskey="processVariables";
ProcessInstance processInstance=processEngine.getRuntimeService()
.startProcessInstanceByKey(proceskey);
System.out.println("流程实例ID:"+processInstance.getId()); //流程实例ID:1301
System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId()); //流程定义ID:processVariables:5:1204
}
/**
* 启动流程
* ProcessInstance
*/
@Test
public void startProcessIntance(){
// 获取流程定义的 key
String proceskey="processVariables";
ProcessInstance processInstance=processEngine.getRuntimeService()
.startProcessInstanceByKey(proceskey);
System.out.println("流程实例ID:"+processInstance.getId()); //流程实例ID:1301
System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId()); //流程定义ID:processVariables:5:1204
}
/**
* 查询当前 办理人的 任务
*/
@Test
public void findMyPersonalTask(){
//与任务(正在执行)
TaskService taskService=processEngine.getTaskService();
// 任务Id
String taskId="1304"; //act_ru_task
/**
* 一:设置流程变量,使用基本数据类型
*/
taskService.setVariableLocal(taskId, "请假天数", 5);
taskService.setVariable(taskId, "请假日期", new Date());
taskService.setVariable(taskId, "请假原因", "回家探亲一起吃个饭!");
/**
* 二:设置流程变量,使用javabean类型
*/
Person person=new Person();
person.setId(20);
person.setName("楼妹妹");
taskService.setVariable(taskId, "人员信息(添加固定版本)", person);
System.out.println("设置流程变量成功!");
}
/**
* 获取流程变量
*/
@Test
public void getVariableLocal(){
//与任务(正在执行)
TaskService taskService=processEngine.getTaskService();
// 任务id
String taskId="1304";
/**
* 一:获取流程变量,使用基本数据类型
*/
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 person = (Person)taskService.getVariable(taskId, "人员信息(添加固定版本)");
System.out.println(person.getId()+" "+person.getName());
}
/**
* 模拟设置和获取流程变量的场景
*/
@Test
public void setAndGetVariables(){
//与流程实例,执行对象(正在执行)
RuntimeService runtimeService = processEngine.getRuntimeService();
// 与任务(正在执行)
TaskService taskService = processEngine.getTaskService();
//设置流程变量
// runtimeService.setVariable(executionId, variableName, value)//表示使用执行对象ID,和流程变量的名称,设置流程变量的值(一次只能设置一个值)
// runtimeService.setVariables(executionId, variables)//表示使用执行对象ID,和Map集合设置流程变量,map集合的key就是流程变量的名称,map集合的value就是流程变量的值(一次设置多个值)
// taskService.setVariable(taskId, variableName, value)//表示使用任务ID,和流程变量的名称,设置流程变量的值(一次只能设置一个值)
// taskService.setVariables(taskId, variables)//表示使用任务ID,和Map集合设置流程变量,map集合的key就是流程变量的名称,map集合的value就是流程变量的值(一次设置多个值)
// runtimeService.startProcessInstanceByKey(processDefinitionKey, variables);//启动流程实例的同时,可以设置流程变量,用Map集合
// taskService.complete(taskId, variables)//完成任务的同时,设置流程变量,用Map集合
/**获取流程变量*/
// runtimeService.getVariable(executionId, variableName);//使用执行对象ID和流程变量的名称,获取流程变量的值
// runtimeService.getVariables(executionId);//使用执行对象ID,获取所有的流程变量,将流程变量放置到Map集合中,map集合的key就是流程变量的名称,map集合的value就是流程变量的值
// runtimeService.getVariables(executionId, variableNames);//使用执行对象ID,获取流程变量的值,通过设置流程变量的名称存放到集合中,获取指定流程变量名称的流程变量的值,值存放到Map集合中
// taskService.getVariable(taskId, variableName);//使用任务ID和流程变量的名称,获取流程变量的值
// taskService.getVariables(taskId);//使用任务ID,获取所有的流程变量,将流程变量放置到Map集合中,map集合的key就是流程变量的名称,map集合的value就是流程变量的值
// taskService.getVariables(taskId, variableNames);//使用任务ID,获取流程变量的值,通过设置流程变量的名称存放到集合中,获取指定流程变量名称的流程变量的值,值存放到Map集合中
}
/**
* 完成我的任务
* taskId 1304
*/
@Test
public void completeMyPersonalTask(){
//任务ID
String taskId = "1304";
processEngine.getTaskService()
.complete(taskId);
System.out.println("完成 :任务Id:"+taskId); //1304
}
/**
* 查询流程变量的历史表
* HistoricVariableInstance
*/
@Test
public void findHistoryProcessVariables(){
List<HistoricVariableInstance> list=processEngine.getHistoryService()
.createHistoricVariableInstanceQuery()
.variableName("请假天数")
.list();
if(list!=null && list.size()>0){
for (HistoricVariableInstance hti : list) {
System.out.println(hti.getId()+" "+hti.getProcessInstanceId()+" "+hti.getVariableName()+" "+hti.getVariableTypeName()+" "+hti.getValue());
System.out.println("======================查询流程变量 的历史表 ==========================");
}
}
}
/**
* 部署流程定义(InputStream)
*/
@Test
public void depolymentProcessDefinition_inputStream(){
InputStream bpmn=this.getClass().getClassLoader().getResourceAsStream("diagrams/processVariablesProcess.bpmn");
InputStream png=this.getClass().getClassLoader().getResourceAsStream("diagrams/processVariablesProcess.png");
Deployment deployment=processEngine.getRepositoryService()
.createDeployment()
.name("部署名称XX")
.addInputStream("processVariablesProcess.bpmn", bpmn)
.addInputStream("processVariablesProcess.png", png)
.deploy();
System.out.println("部署ID:"+deployment.getId()); // 部署ID:1201
System.out.println("部署名称:"+deployment.getName()); // 部署名称:部署名称XX
}
/**
* 启动流程
* ProcessInstance
*/
@Test
public void startProcessIntance(){
// 获取流程定义的 key
String proceskey="processVariables";
ProcessInstance processInstance=processEngine.getRuntimeService()
.startProcessInstanceByKey(proceskey);
System.out.println("流程实例ID:"+processInstance.getId()); //流程实例ID:1301
System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId()); //流程定义ID:processVariables:5:1204
}
/**
* 启动流程
* ProcessInstance
*/
@Test
public void startProcessIntance(){
// 获取流程定义的 key
String proceskey="processVariables";
ProcessInstance processInstance=processEngine.getRuntimeService()
.startProcessInstanceByKey(proceskey);
System.out.println("流程实例ID:"+processInstance.getId()); //流程实例ID:1301
System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId()); //流程定义ID:processVariables:5:1204
}
/**
* 查询当前 办理人的 任务
*/
@Test
public void findMyPersonalTask(){
//与任务(正在执行)
TaskService taskService=processEngine.getTaskService();
// 任务Id
String taskId="1304"; //act_ru_task
/**
* 一:设置流程变量,使用基本数据类型
*/
taskService.setVariableLocal(taskId, "请假天数", 5);
taskService.setVariable(taskId, "请假日期", new Date());
taskService.setVariable(taskId, "请假原因", "回家探亲一起吃个饭!");
/**
* 二:设置流程变量,使用javabean类型
*/
Person person=new Person();
person.setId(20);
person.setName("楼妹妹");
taskService.setVariable(taskId, "人员信息(添加固定版本)", person);
System.out.println("设置流程变量成功!");
}
/**
* 获取流程变量
*/
@Test
public void getVariableLocal(){
//与任务(正在执行)
TaskService taskService=processEngine.getTaskService();
// 任务id
String taskId="1304";
/**
* 一:获取流程变量,使用基本数据类型
*/
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 person = (Person)taskService.getVariable(taskId, "人员信息(添加固定版本)");
System.out.println(person.getId()+" "+person.getName());
}
/**
* 模拟设置和获取流程变量的场景
*/
@Test
public void setAndGetVariables(){
//与流程实例,执行对象(正在执行)
RuntimeService runtimeService = processEngine.getRuntimeService();
// 与任务(正在执行)
TaskService taskService = processEngine.getTaskService();
//设置流程变量
// runtimeService.setVariable(executionId, variableName, value)//表示使用执行对象ID,和流程变量的名称,设置流程变量的值(一次只能设置一个值)
// runtimeService.setVariables(executionId, variables)//表示使用执行对象ID,和Map集合设置流程变量,map集合的key就是流程变量的名称,map集合的value就是流程变量的值(一次设置多个值)
// taskService.setVariable(taskId, variableName, value)//表示使用任务ID,和流程变量的名称,设置流程变量的值(一次只能设置一个值)
// taskService.setVariables(taskId, variables)//表示使用任务ID,和Map集合设置流程变量,map集合的key就是流程变量的名称,map集合的value就是流程变量的值(一次设置多个值)
// runtimeService.startProcessInstanceByKey(processDefinitionKey, variables);//启动流程实例的同时,可以设置流程变量,用Map集合
// taskService.complete(taskId, variables)//完成任务的同时,设置流程变量,用Map集合
/**获取流程变量*/
// runtimeService.getVariable(executionId, variableName);//使用执行对象ID和流程变量的名称,获取流程变量的值
// runtimeService.getVariables(executionId);//使用执行对象ID,获取所有的流程变量,将流程变量放置到Map集合中,map集合的key就是流程变量的名称,map集合的value就是流程变量的值
// runtimeService.getVariables(executionId, variableNames);//使用执行对象ID,获取流程变量的值,通过设置流程变量的名称存放到集合中,获取指定流程变量名称的流程变量的值,值存放到Map集合中
// taskService.getVariable(taskId, variableName);//使用任务ID和流程变量的名称,获取流程变量的值
// taskService.getVariables(taskId);//使用任务ID,获取所有的流程变量,将流程变量放置到Map集合中,map集合的key就是流程变量的名称,map集合的value就是流程变量的值
// taskService.getVariables(taskId, variableNames);//使用任务ID,获取流程变量的值,通过设置流程变量的名称存放到集合中,获取指定流程变量名称的流程变量的值,值存放到Map集合中
}
/**
* 完成我的任务
* taskId 1304
*/
@Test
public void completeMyPersonalTask(){
//任务ID
String taskId = "1304";
processEngine.getTaskService()
.complete(taskId);
System.out.println("完成 :任务Id:"+taskId); //1304
}
/**
* 查询流程变量的历史表
* HistoricVariableInstance
*/
@Test
public void findHistoryProcessVariables(){
List<HistoricVariableInstance> list=processEngine.getHistoryService()
.createHistoricVariableInstanceQuery()
.variableName("请假天数")
.list();
if(list!=null && list.size()>0){
for (HistoricVariableInstance hti : list) {
System.out.println(hti.getId()+" "+hti.getProcessInstanceId()+" "+hti.getVariableName()+" "+hti.getVariableTypeName()+" "+hti.getValue());
System.out.println("======================查询流程变量 的历史表 ==========================");
}
}
}
相关文章推荐
- activiti学习--06流程变量:流程变量+变量的类型+流程变量api+设置流程变量1或2+查询流程变量的历史表
- 【入门篇】Activiti查询指定流程定义下指定流程实例下历史任务
- Activiti基础教程--04管理流程定义(流程定义部署ZIP/classpath)、查看(获取流程定义图图片)、删除,不能修改
- Activiti进阶(四)——流程变量的设置和获取
- JBPM4.4:执行流程实例(启动、向后一步、查询任务、拾取任务、完成任务、设置获取流程变量)
- activiti学习--04流程定义:流程定义组成+部署流程定义+查询流程定义+删除流程定义+删除流程定义+查询最新版本的流程定+查询最新版本的流程定义
- activiti学习--05流程实例:部署流程定义+部署流程定义+查询当前人的个人任务+完成我的任务
- 工作流引擎Activiti学习第四天(七)--- 设置获取与流程变量
- 文章标题JBPM4.4:执行流程实例(启动、向后一步、查询任务、拾取任务、完成任务、设置获取流程变量)
- 【Activiti 基础篇四】流程变量设置与获取方式
- activiti 工作流会签 / 多人审批时一人通过也可 / 在当前节点获取下一节点的信息 / 流程部署之后发布之前获取所有节点的信息 / 流程启动开始之前传送之后节点办理人 / 同一结点设置多个监听
- Activiti进阶(四)——流程变量的设置和获取
- activiti 流程定义部署及查询
- Activiti基础教程--04管理流程定义(流程定义部署ZIP/classpath)、查看(获取流程定义图图片)、删除,不能修改
- (四)Activiti之流程定义部署之ZIP方式和流程定义查询
- activiti获取用户任务同时查询流程变量 null pointer问题解决。
- activiti获取最新版本流程定义列表
- activiti自定义流程之Spring整合activiti-modeler实例(九):历史任务查询
- 【入门篇】Activiti流程定义查询
- activiti 启动流程实例 查询、和历史表信息