activiti工作流技术方案

Activiti快速入门(三)—— 部署你的第一个流程

2018-12-21  本文已影响3人  Blue_hr

部署流程的2大前提:

流程定义文件需要通过IDEA的、eclipse 中的 Activiti designer插件或者Web 编辑器Activiti modeler来的设计,且得到一个以.bpmn为后缀的流程定义文件
安装完成插件后在Eclipse 右键new—Other—Activiti Diagram即可新建流程定义文件
Activiti designer插件设计界面如下

eclipse activiti modeler.PNG

IDEA 安装完成插件后在任意目录下右键new BpmnFile 即可新建流程定义文件
actibpm 插件设计界面如下

IDEA actiBPM.PNG

这里如果遇到actiBPM插件中文乱码则需要在IDEA安装目录下找到idea.exe.vmoptions和idea64.exe.vmoptions这两个文件,且在最后一行添加如下配置

-Dfile.encoding=UTF-8

设计器中有很多元素可以供我们选择,但是在入门阶段,我认为只需要关注StartEvent UserTask EndEvent 这3个元素即可,简单场景下,也只会用到这3个。

设计器元素

在我们定义好了流程定义文件后,就可以使用流程引擎部署它了,前提是你已经搭建好了Activiti的项目环境,这里可以参考快速入门(二)

@Test
    public void deployMyProcess() throws FileNotFoundException {
        //几乎所有需要操作到流程文件,或者读取流程相关信息的,都是使用仓库服务repositoryService
        //部署流程 这里跟构建流程引擎的方式差不多,都是使用了构建者模式
        //1. 首先创建DeploymentBuilder对象,通过这个对象,我们可以指定要加载的流程定义文件,以及一些其他属性。
        DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
        //2.1 加载流程文件,从类路径加载
//        deploymentBuilder.addClasspathResource("AskForLeave.bpmn");
        //2.使用InputStream加载
        FileInputStream fileInputStream = new FileInputStream("E:\\YS2000\\DemoProjects\\ActivitiExample\\ActivitiFirstDeploy\\src\\main\\resources\\AskForLeave.bpmn");
        deploymentBuilder.addInputStream("AskForLeave.bpmn", fileInputStream);
        deploymentBuilder.name("测试部署请假流程");
        //还有将多个bpmn文件打包批量,以及字符串这两种部署方式(这里暂时不介绍这两种方式)
        //执行部署,直到调用deploy()方法才是真正的部署到引擎中了
        //同时会在act_ge_bytearray ,act_re_deployment ,act_re_procdef这3个表中插入相关信息
        //与以前的教程不一样的是,别的教程中会经常将流程图片和流程bpmn文件一起部署,但我认为有点多余了,因为在部署bpmn的时候会自动生成流程图片
        Deployment deploy = deploymentBuilder.deploy();
        //这个是创建一个部署查询对象查询,查询的是act_re_deployment表这个表记录的就是deploymentBuilder对象所附加的属性
        long count = repositoryService.createDeploymentQuery().count();
        System.out.println("部署时间:"+deploy.getDeploymentTime());
        Assert.assertEquals(1, count);
    }

在流程部署完成后,我们来看一看数据库的变化,学习Activiti引擎就必须要对这20多张表有一个比较深刻的了解。
部署一个流程,数据库中有act_ge_bytearray ,act_re_deployment ,act_re_procdef这3个表会发生变化

上一篇下一篇

猜你喜欢

热点阅读