【Flowable】 部署流程详解

Metadata

title: 【Flowable】 部署流程详解
date: 2023-01-23 16:51
tags:
  - 行动阶段/完成
  - 主题场景/组件
  - 笔记空间/KnowladgeSpace/ProgramSpace/ModuleSpace
  - 细化主题/Module/Flowable
categories:
  - Flowable
keywords:
  - Flowable
description: 【Flowable】 部署流程详解

1. 图标介绍

BPMN 2.0 是业务流程建模符号 2.0 的缩写。它由 Business Process Management Initiative 这个非营利协会创建并不断发展。作为一种标识,BPMN 2.0 是使用一些符号来明确业务流程设计流程图的一整套符号规范,它能增进业务建模时的沟通效率。目前 BPMN2.0 是最新的版本,它用于在 BPM 上下文中进行布局和可视化的沟通。接下来我们先来了解在流程设计中常见的 符号。

BPMN2.0 的基本符合主要包含:

1.1 事件图标

在 Flowable 中的事件图标启动事件,边界事件, 中间事件和结束事件.

1.2 活动 (任务) 图标

活动是工作或任务的一个通用术语。一个活动可以是一个任务,还可以是一个当前流程的子处理流程; 其次,你还可以为活动指定不同的类型。常见活动如下:

1.3 结构图标

结构图标可以看做是整个流程活动的结构,一个流程中可以包括子流程。常见的结构有:

1.4 网关图标

网关用来处理决策,有几种常用网关需要了解:

3. 流程部署详解

我们先来看下流程部署的具体过程。代码实现

@Test
public void test3(){
    ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    RepositoryService repositoryService = processEngine.getRepositoryService();
    Deployment deploy = repositoryService.createDeployment()
            .addClasspathResource("holiday-request-new.bpmn20.xml")
            .name("请假流程...")
            .category("请假") 
            .tenantId("dpb") 
            .deploy();
    System.out.println("deploy.getId() = " + deploy.getId());
    System.out.println("deploy.getName() = " + deploy.getName());
    System.out.println("deploy.getCategory() = " + deploy.getCategory());
}

涉及到的三张表:

部署资源表:act_ge_bytearray

字段 名称 备注
ID_ 主键
REV_ 版本号
NAME_ 名称 部署的文件名称,如:holiday-request-new.bpmn20.xml、holiday-request-new.bpmn20.png
DEPLOYMENT_ID_ 部署 ID
BYTES_ 字节(二进制数据)
GENERATED_ 是否系统生成 0 为用户上传,1 为系统自动生成, 比如系统会 自动根据 xml 生 成 png

部署 ID 表:act_re_deployment

字段 名称 备注
ID_ 主键
NAME_ 名称
CATEGORY_ 分类
TENANT_ID_ 租户 ID
DEPLOY_TIME_ 部署时间
DERIVED_FROM_ 来源于
DERIVED_FROM_ROOT_ 来源于
ENGINE_VERSION_ 流程引擎的版本

流程表:act_re_procdef

字段 名称 备注
ID_ 主键
REV_ 版本号
CATEGORY_ 分类 流程定义的 Namespace 就是类别
NAME_ 名称
KEY_ 标识
VERSION_ 版本
DEPLOYMENT_ID_ 部署 ID
RESOURCE_NAME_ 资源名称 流程 bpmn 文件名称
DGRM_RESOURCE_NAME_ 图片资源名称
DESCRIPTION_ 描述
HAS_START_FORM_KEY_ 拥有开始表单标识 start 节点是否存在 formKey 0 否 1 是
HAS_GRAPHICAL_NOTATION_ 拥有图形信息
SUSPENSION_STATE_ 挂起状态 暂停状态 1 激活 2 暂停
TENANT_ID_ 租户 ID

注意:

业务流程定义数据表。此表和 ACT_RE_DEPLOYMENT 是多对一的关系,即,一个部署的 bar 包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在 ACT_REPROCDEF 表内,每个流程定义的数据,都会对于 ACT_GE_BYTEARRAY 表内的一个资源文件和 PNG 图片文件。和 ACT_GE_BYTEARRAY 的关联是通过程序用 ACT_GE_BYTEARRAY.NAME 与 ACT_RE_PROCDEF.NAME_完成的