流程定义部署
6.2.1 什么是流程定义部署
将线下定义的流程部署到 activiti 数据库中,这就是流程定义部署,通过调用 activiti 的 api 将流程定义的 bpmn 和 png 两个文件一个一个添加部署到 activiti 中,也可以将两个文件打成 zip 包进行部署。
6.2.2 单个文件部署方式
分别将 bpmn 文件和 png图片文件部署。
@Test
public void deployProcess() {
// 获取repositoryService
RepositoryService repositoryService = processEngine
.getRepositoryService();
// bpmn输入流
InputStream inputStream_bpmn = this
.getClass()
.getClassLoader()
.getResourceAsStream(
"diagram/holiday.bpmn");
// 图片输入流
InputStream inputStream_png = this
.getClass()
.getClassLoader()
.getResourceAsStream(
" diagram/holiday.png");
// 流程部署对象
Deployment deployment = repositoryService.createDeployment()
.addInputStream("holiday.bpmn", inputStream_bpmn)
.addInputStream("holiday.png", inputStream_png)
.deploy();
System.out.println("流程部署id:" + deployment.getId());
System.out.println("流程部署名称:" + deployment.getName());
}
执行此操作后 activiti 会将上边代码中指定的 bpm 文件和图片文件保存在 activiti 数据库。
6.2.3 压缩包部署方式
将 holiday.bpmn 和 holiday.png 压缩成 zip 包。
@Test
public void deployProcessByZip() {
// 定义zip输入流
InputStream inputStream = this
.getClass()
.getClassLoader()
.getResourceAsStream(
" diagram/holiday.zip");
ZipInputStream zipInputStream = new ZipInputStream(inputStream);
// 获取repositoryService
RepositoryService repositoryService = processEngine
.getRepositoryService();
// 流程部署
Deployment deployment = repositoryService.createDeployment()//
.addZipInputStream(zipInputStream)//
.deploy();
System.out.println("流程部署id:" + deployment.getId());
System.out.println("流程部署名称:" + deployment.getName());
}
执行此操作后 activiti 会将上边代码中指定的 bpm 文件和图片文件保存在 activiti 数据库。