美文网首页
flowable整合方案

flowable整合方案

作者: 夜色001 | 来源:发表于2020-10-21 13:44 被阅读0次

    一、官方文档

    英文版:https://flowable.com/open-source/docs
    中文版:http://www.shareniu.com/flowable6.5_zh_document/bpm/index.html

    二、概述

    flowable基于bpmn2.0标准。BPMN(Business Process Model & Note)业务流程建模与标注

    BPMN基础

    1)流对象(Flow):
    事件:圆圈表示,一个业务流程期间发生的东西,事件影响流程的流动。
    活动:圆角矩形表示,要处理的工作。
    条件:菱形表示,控制序列流的分支与合并(网关)
    2)连接对象(Connection):用于将流对象连接起来。顺序流、消息流和关联。
    3)泳道(Swimlane)
    4)人工信息(Artifact):人员、组

    flowable流程定义

    流程定义文件示意.png

    三、SpringBoot整合Flawable

    参考
    https://www.jianshu.com/p/e8f4e9a7bd8a
    https://blog.csdn.net/liuwenjun05101/article/details/103419364

    1、依赖引入

    <dependency>
                <groupId>org.flowable</groupId>
                <artifactId>flowable-spring-boot-starter</artifactId>
                <version>6.4.1</version>
            </dependency>
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.45</version>
            </dependency>
    

    2、数据库表说明

    https://blog.csdn.net/huangjun0210/article/details/84951615
    ACT_RE_
    ’RE’表示repository(存储)。RepositoryService接口操作的表。带此前缀的表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
    ACT_RU_
    ’RU’表示runtime。这是运行时的表存储着流程变量,用户任务,变量,职责(job)等运行时的数据。flowable只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。
    ACT_ID_
    ’ID’表示identity(组织机构)。这些表包含标识的信息,如用户,用户组,等等。
    ACT_HI_
    ’HI’表示history。就是这些表包含着历史的相关数据,如结束的流程实例,变量,任务,等等。
    ACT_GE_
    普通数据,各种情况都使用的数据。

    3、创建流程

    创建流程

    @GetMapping("add")
        @ApiOperation(value = "创建流程")
        public String addExpense(@ApiParam(value = "流程Key", example = "holidayRequest") @RequestParam String processKey,
                                 String userId, String days, String reason) {
            Map<String, Object> map = new HashMap<>();
            map.put("employee", userId);
            map.put("nrOfHolidays", days);
            map.put("description", reason);
    
            ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processKey, map);
            return "提交成功,流程ID为:" + processInstance.getId();
        }
    

    其中的processKey为流程定义的流程标识(ID),流程标识(ID)从哪里来,流程定义的本质是一个bpmn标准的xml文件,我们肯定不能手写文件。

    使用tyflow-ui-1.0.0创建流程定义

    flowable提供了tyflow-ui-1.0.0包,下载后用tomcat部署起来,访问ip:port可以进入流程定义界面,进行可视化流程定义。定义好的流程定义可以导出成bpmn文件,如果仅仅想用这个流程引擎不要界面的话,可以通过这种方式得到bmpn文件,放入项目目录,可以供创建流程时引用。
    若同时将tyflow-ui-1.0.0包的数据库连接设置为和流程引擎相同的数据库,也可以直接使用数据库的act_re_procdef表的定义。

    四、常见问题

    1、部署tyflow-ui-1.0.0后,原flowable服务启动不起来

    通过tomcat部署tyflow-ui-1.0.0(从官网下载),数据库链接配置为服务所在的数据库,可以进行对流程定义信息进行编辑。但要注意,tomcat启动时,会自动更新数据库中act_ge_property、act_id_property两个表的schema.version版本信息。如果org.flowable包的版本要和tyflow-ui-1.0.0的版本不一致,flowable就启动不了了,强行修改act_ge_property、act_id_property后,tyflow-ui-1.0.0又启动不了。所以两者版本在开始就要保持一致。

    相关文章

      网友评论

          本文标题:flowable整合方案

          本文链接:https://www.haomeiwen.com/subject/lxbkmktx.html