flowable整合方案

一、官方文档

英文版: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、依赖引入


            org.flowable
            flowable-spring-boot-starter
            6.4.1
        
        
            mysql
            mysql-connector-java
            5.1.45
        

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 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整合方案)