• SpringBoot整合Flowable


    1. 配置

    (1) 引入maven依赖

    1. <dependency>
    2. <groupId>org.flowablegroupId>
    3. <artifactId>flowable-spring-boot-starterartifactId>
    4. <version>6.7.2version>
    5. dependency>
    6. <dependency>
    7. <groupId>mysqlgroupId>
    8. <artifactId>mysql-connector-javaartifactId>
    9. <version>8.0.19version>
    10. dependency>

    (2)配置文件

    1. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    2. spring.datasource.url= jdbc:mysql://localhost:3306/flowable?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
    3. spring.datasource.username = root
    4. spring.datasource.password= root

    (3)启动项目即可在数据库自动生成相关表

    数据库表组说明
    act_app_*跟应用程序相关的表。
    act_cmmn_*跟 CMMN 协议相关的表。
    act_co_*跟内容引擎相关的表
    act_dmn_*跟 DMN 协议相关的表。
    act_evt_log事件日志表
    act_fo_*表单相关的表,这些表主要存储表单相关的数据。
    act_ge_*通用表,普通数据,各种情况都使用的数据。
    act_hi_*历史数据的表,这些表包含着历史的相关数据,如结束的流程实例,变量,任务,等等。
    act_id_*用户用户组表 /身份数据表,这些表包含标识的信息,如用户,用户组,等等。
    act_procdef_info流程定义动态改变信息表
    act_re_*流程的定义、流程的资源表,这些表包含的是静态信息,如,流程定义,流程的资源(图片,规则等)。
    act_ru_*运行时信息表,存储着流程变量,用户任务,变量,职责(job)等运行时的数据。只存储实例执行期间的运行时数据,当流程实例结束时,将删除这些记录。这就保证了这些运行时的表小且快。
    flw_channel_definition都是跟泳道相关的表。
    flw_ev_*跟 Liquibase 相关的表。
    flw_event_*跟事件相关的表。
    flw_ru_*运行时信息表。

    (4)画流程图

           a. 安装 IDEA 插件:lowable BPMN visualizer    
           b. 在 resources 目录下新建 processes 目录,该目录下的流程文件将来会被自动部署。
           c. 在 processes 目录下,新建一个 BPMN 文件,固定后缀为.bpmn20.xml

    1. "1.0" encoding="UTF-8"?>
    2. <definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef">
    3. <process id="demo" name="demo" isExecutable="true">
    4. <startEvent id="sid-507da2f8-ca68-4e25-a256-c9e4e98a8e30"/>
    5. <userTask id="sid-57c1b617-c369-4556-8154-a620652b3ffd" name="申请人" flowable:assignee="${crew}" flowable:formFieldValidation="true"/>
    6. <sequenceFlow id="sid-14435c94-d0a5-4199-b6fb-c08739f014f3" sourceRef="sid-507da2f8-ca68-4e25-a256-c9e4e98a8e30" targetRef="sid-57c1b617-c369-4556-8154-a620652b3ffd" name="开始流程"/>
    7. <sequenceFlow id="sid-023ac358-3952-42fb-8f59-0ea3fb4d55bd" sourceRef="sid-57c1b617-c369-4556-8154-a620652b3ffd" targetRef="sid-e656adbe-9181-4852-9df4-3e6c79f6933a" name="通过"/>
    8. <userTask id="sid-e656adbe-9181-4852-9df4-3e6c79f6933a" name="组长" flowable:assignee="${leader}" flowable:formFieldValidation="true"/>
    9. <endEvent id="sid-312fd1bd-1a79-46f1-956c-b89aab8a03af"/>
    10. <sequenceFlow id="sid-dfe46275-5cb0-40cd-8bd3-b5b9c4178dd6" sourceRef="sid-e656adbe-9181-4852-9df4-3e6c79f6933a" targetRef="sid-312fd1bd-1a79-46f1-956c-b89aab8a03af"/>
    11. process>
    12. <bpmndi:BPMNDiagram id="BPMNDiagram_demo">
    13. bpmndi:BPMNDiagram>
    14. definitions>

    注:
            可使用第三方在线画流程图 ,例如: 流程设计器-演示 (tulangkj.com) 可用于生成流程文件与决策文件。

    (5)调用相关API处理流程

    1. @Resource
    2. RuntimeService runtimeService;
    3. @Resource
    4. TaskService taskService;
    5. /**
    6. * 通过流程id开启一个流程,并设置变量,用于流程图 ${name} 动态赋值
    7. */
    8. @Test
    9. void contextLoads() {
    10. HashMap variables = new HashMap<>();
    11. variables.put("leader","zp");
    12. variables.put("crew","zj");
    13. ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("demo", variables);
    14. System.out.println(processInstance.getProcessInstanceId());
    15. }
    16. /**
    17. * 通过分配任务的人获取任务并处理任务
    18. */
    19. @Test
    20. void contextLoads1() {
    21. List list = taskService.createTaskQuery().taskAssignee("zp").orderByTaskId().desc().list();
    22. for (Task task : list) {
    23. taskService.complete(task.getId());
    24. }
    25. }

  • 相关阅读:
    消费品行业报告:化妆品容器市场现状研究分析与发展前景预测
    【RISC-V】risc-v架构学习笔记(架构初学)
    趣睡科技上市:市值41亿募资缩水超4亿 小米顺为是股东
    Java中的日期和时间的API(Calendar)
    《uni-app》npm详解及在uni-app中对npm的支持
    Nginx实战:代理服务-反向代理
    【代码随想录】算法训练营 第十四天 第六章 二叉树 Part 1
    ts重点学习101-自动类型推论
    科技型中小企业的申报流程及材料?
    作战仿真试验理论体系研究
  • 原文地址:https://blog.csdn.net/qq_41609208/article/details/132788373