流程定义的查询,本质的话就是通过Activiti框架提供的API对act_re_procdef进行查询操作
首先查看下表中的数据
Activiti给我们提供非常丰富的API,用来模拟SQL查询,包括通过某些字段查询,模糊查询,分页查询,排序等等
package com.gcx.activiti.table;
import java.util.List;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.ProcessDefinition;
import org.junit.Test;
public class Search {
private ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();
/**
* 通过key来查询
*/
@Test
public void searchKey(){
String processDefinitionKey="myFirstProcess";
List<ProcessDefinition> list = processEngine.getRepositoryService()//获取service
.createProcessDefinitionQuery()//创建流程定义查询
.processDefinitionKey(processDefinitionKey)//通过key查询
.list();//返回一个集合
for(ProcessDefinition pd:list){
System.out.println("ID_"+pd.getId());
System.out.println("NAME_"+pd.getName());
System.out.println("KEY_"+pd.getKey());
System.out.println("VERSION_"+pd.getVersion());
System.out.println("=========");
}
}
}
运行结果:
通过ID查询
package com.gcx.activiti.table;
import java.util.List;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.ProcessDefinition;
import org.junit.Test;
public class Search {
private ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();
/**
* 通过ID来查询
*/
@Test
public void searchKey(){
String processDefinitionId="myFirstProcess:1:4";
ProcessDefinition list = processEngine.getRepositoryService()//获取service
.createProcessDefinitionQuery()//创建流程定义查询
.processDefinitionId(processDefinitionId)//通过ID查询
.singleResult();
System.out.println("ID_"+list.getId());
System.out.println("NAME_"+list.getName());
System.out.println("KEY_"+list.getKey());
System.out.println("VERSION_"+list.getVersion());
System.out.println("=========");
}
}
运行结果:
通过流程部署iD和资源文件名来查询表流程图片
先看看表中数据
在pom.xml添加依赖
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
package com.gcx.activiti.table;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.apache.commons.io.FileUtils;
import org.junit.Test;
public class Search {
private ProcessEngine processEngine=ProcessEngines.getDefaultProcessEngine();
/**
* 通过流程部署iD和资源文件名来查询表流程图片
* @throws IOException
*/
@Test
public void getImageId() throws IOException{
InputStream is= processEngine.getRepositoryService()
.getResourceAsStream("10001", "helloWorld/HelloWorld.png");
FileUtils.copyInputStreamToFile(is,new File("c:/HelloWorld.png"));
}
}
在c盘下查看,打开