package com.zcc.activiti02;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.apache.commons.io.IOUtils;
import java.io.*;
/**
* 從act_ge_bytearray表中查詢資源文件並保存到桌面文件夾中
*
*/
public class QueryBpmnFile {
public static void main(String[] args) {
//創建流程引擎配置類
ProcessEngineConfiguration processEngineConfiguration=
ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
//流程引擎對象
ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
//獲取查詢器
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
//設置查詢條件
processDefinitionQuery.processDefinitionKey("myProcess");
//執行查詢操作,得到想要流程定義信息
ProcessDefinition processDefinition = processDefinitionQuery.singleResult();
//通過流程定義信息得到部署id
String deploymentId = processDefinition.getDeploymentId();
//實現讀寫bpmn文件信息
InputStream bpmnIs = repositoryService.getResourceAsStream(deploymentId, processDefinition.getResourceName());
//構建輸出流
FileOutputStream bpmnOs = null;
try {
bpmnOs = new FileOutputStream("C:\\Users\\Administrator\\Desktop\\新建文件夾\\"+processDefinition.getResourceName());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//輸入流,輸出流的轉換
try {
IOUtils.copy(bpmnIs,bpmnOs);
} catch (IOException e) {
e.printStackTrace();
}
}
}