项目实践工作流之Activiti学习(十九)

2023-11-01 15:09:05 浏览数 (1)

流程定义部署

6.2.1 什么是流程定义部署

将线下定义的流程部署到 activiti 数据库中,这就是流程定义部署,通过调用 activiti 的 api 将流程定义的 bpmn 和 png 两个文件一个一个添加部署到 activiti 中,也可以将两个文件打成 zip 包进行部署。

6.2.2 单个文件部署方式

分别将 bpmn 文件和 png图片文件部署。

代码语言:javascript复制
@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 包。

代码语言:javascript复制
@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 数据库。

0 人点赞