前言
上一篇作了一个简单的环境介绍,这里开始自己定义一个工作流。我用的开发工具是idea。
1、定义自己的工作流bpmn文件
- 安装bpmn插件:
我用的开发工具是idea,如果你用的eclipse可以直接参考官网的安装方法。
首先下载activti插件- actiBPM
File - settings-plugins-Browse-Repositories 搜索 actiBPM 双击搜索结果或点击Install plugin安装。
去掉启动时去掉processes目录的自动检测
spring boot在启动时会默默去检测processes目录并加载bpmn文件,如果没有那么会报错,这里我想手动部署工作流,所以在application.properties中加上配置,并且删除了processes目录,同时删除了activiti的所有相关表
#启动报错class path resource [processes/] cannot be resolved to URL because it does not exist
spring.activiti.check-process-definitions=false
新建一个activiti工作流文件
这次建立到dig/process
文件夹下,我想在项目启动的时候部署这个工作流或手动部署这个工作流
建立test.bpmn完成打开设计
idea建立bpmn文件不会生成png图片,所以直接复制这个文件到当前目录改名为test.xml,然后右键打开Diagrams designer ,然后另存为png文件即可。
2、部署定义的工作流
因为我这次没有直接建立到resources\process
目录下,所以不会自动部署。需要写一个类手动部署:
public class ActivitiDeployTest extends AbstratApplicationBaseBootTest {
@Autowired
private RepositoryService repositoryService;
//部署流程定义
@Test
public void deployementProcessDefinition(){
Deployment deployment = repositoryService//获取流程定义和部署对象相关的Service
.createDeployment()//创建部署对象
.name("test")//声明流程的名称
.addClasspathResource("dig/processes/myprocess.bpmn")//加载资源文件,一次只能加载一个文件
.addClasspathResource("dig/processes/myprocess.png")//
.deploy();//完成部署
System.out.println("部署ID:"+deployment.getId());//1
System.out.println("部署时间:"+deployment.getDeploymentTime());
}
}
可先启动spring boot,可以看到ac_re_deployment
表下没有部署记录。
act_re_procdef
也可看到一条流程信息