spring bootg整合activiti工作流(二)

前言

上一篇作了一个简单的环境介绍,这里开始自己定义一个工作流。我用的开发工具是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也可看到一条流程信息
这里写图片描述

猜你喜欢

转载自blog.csdn.net/lh87270202/article/details/80464603