Flowable-7.流程定义系列
...大约 4 分钟
Flowable框架学习笔记-07-流程定义系列
RepositoryService
RepositoryService:仓库服务类(管理bpmn文件和流程图片)
流程图片生成支持的方式:可以在设计流程的时候产生或者是API方式根据流程文件产生
// 获取流程定义和部署对象相关的Service(如果整合Spring框架,则可通过注解进行Bean注入)
RepositoryService repositoryService = processEngine.getRepositoryService() ;
// 流程引擎配置类:ProcessEngineConfigurationImpl
// 服务类实现类:
public class RepositoryServiceImpl extends CommonEngineServiceImpl<ProcessEngineConfigurationImpl> implements RepositoryService
RepositoryService派生类:
【1】DeploymentBuild的构造
DeploymentBuilder deploymentBuilder = repositoryService
.createDeployment()
.category("测试分类")
.name("名称");
【2】资源部署的方式
步骤说明:
a.借助流程引擎对象ProcessEngine获取RepositoryService仓库对象
b.构造一个DeploymentBuilder,结合实际需求参考构造方法
c.随后调用deploy()方法部署数据,返回一个Deployment对象
输入流城市: addInputStream(String var1, InputStream var2);
classPath方式: addClasspathResource(String var1);
文本方式: addString(String var1, String var2);
字节方式: addBytes(String var1, byte[] var2);
压缩流方式: addZipInputStream(ZipInputStream var1);
模型方式: addBpmnModel(String var1, BpmnModel var2);
【3】部署资源设计核心表说明
流程部署:
- ACT_GE_PROPERTY 主键生成策略表
- ACT_GE_BYTEARRAY 保存流程设计的xml文件和流程图片(两条记录)
- ACT_RE_DEPLOYMENT 保存流程部署信息,名称,部署时间,分类(每次部署增加一条记录)
- ACT_RE_PROCDEF 保存流程定义信息,key,名称(多次部署同一个流程文件,会生成多个部署记录和流程定义记录,流程定义的ID由key+版本+id组成)
BPMN属性说明:
<definitions targetNamespace="">:targetNamespace对应ACT_RE_PROCDEF的CATEGORY_字段
<process id="sbf-demo-single" name="sbf-demo-single">:id对应ACT_RE_PROCDEF的key字段
如果采用文本方式部署,如果部署之后流程定义表无数据,检查资源名称是否正确,如果不正确则无法加载资源,资源的名称必须是bpmn20.xml、bpmn结尾才能部署到流程定义表
ACT_GE_BYTEARRAY (二进制文件)
字段 | 字段名称 | 数据类型 | 字段长度 | 键 | 备注 |
---|---|---|---|---|---|
ID_ | 主键 | varchar | 64 | PRI | |
REV_ | 版本号 | int | NULL | version | |
NAME_ | 名称 | varchar | 255 | 部署的文件名称,如:mail.bpmn、mail.png 、mail.bpmn20.xml | |
DEPLOYMENT_ID_ | 部署ID | varchar | 64 | ACT_RE_DEPLOYMENT | |
BYTES_ | 字节(二进制数据) | longblob | 4294967295 | ||
GENERATED_ | 是否系统生成 | tinyint | NULL | 0为用户上传, 1为系统自动生 成, 比如系统会 自动根据xml生 成png | |
说明:
用来保存部署文件的大文本数据
所有二进制内容都会保存在这个表里, 比如部署的process.bpmn20.xml, process.png, user.form、附件、bean序列化为二进制的流程变量
act_ge_property属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录
ACT_RE_DEPLOYMENT (部署信息表核心表)
字段 | 字段名称 | 数据类型 | 字段长度 | 键 | 备注 |
---|---|---|---|---|---|
ID_ | 主键 | varchar | 64 | PRI | |
NAME_ | 名称 | varchar | 255 | ||
CATEGORY_ | 分类 | varchar | 255 | ||
TENANT_ID_ | 租户ID | varchar | 255 | ||
DEPLOY_TIME_ | 部署时间 | timestamp | NULL | ||
说明:
部署流程定义时需要被持久化保存下来的信息
ACT_RE_PROCDEF (流程定义数据表核心表)
字段 | 字段名称 | 数据类型 | 字段长度 | 键 | 备注 |
---|---|---|---|---|---|
ID_ | 主键 | varchar | 64 | PRI | |
REV_ | 版本号 | int | NULL | version | |
CATEGORY_ | 分类 | varchar | 255 | 流程定义的Namespace就是类别 | |
NAME_ | 名称 | varchar | 255 | ||
KEY_ | 标识 | varchar | 255 | MUL | |
VERSION_ | 版本 | int | NULL | ||
DEPLOYMENT_ID_ | 部署ID | varchar | 64 | ||
RESOURCE_NAME_ | 资源名称 | varchar | 4000 | 流程bpmn文件名称 | |
DGRM_RESOURCE_NAME_ | 图片资源名称 | varchar | 4000 | ||
DESCRIPTION_ | 描述 | varchar | 4000 | ||
HAS_START_FORM_KEY_ | 拥有开始表单标识 | tinyint | NULL | start节点是否存在formKey 0否 1是 | |
HAS_GRAPHICAL_NOTATION_ | 拥有图形信息 | tinyint | NULL | ||
SUSPENSION_STATE_ | 挂起状态 | int | NULL | 暂停状态 1激活 2暂停 | |
TENANT_ID_ | 租户ID | varchar | 255 |
说明:
业务流程定义数据表:此表和ACT_RE_DEPLOYMENT是多对一的关系,即一个部署的bar包里可能包含多个流程定义文件,每个流程定义文件都会有一条记录在ACT_REPROCDEF表内,每个流程定义的数据,都会对于ACT_GE_BYTEARRAY表内的一个资源文件和PNG图片文件。和ACT_GE_BYTEARRAY的关联是通过程序用ACT_GE_BYTEARRAY.NAME与ACT_RE_PROCDEF.NAME_完成的,在数据库表结构中没有体现
Key属性被用来区别不同的流程定义,其中Key和Value值为对应bpmn文件的process节点的id和name属性,器version版本属性会在原有基础上递增,其ID命名规则为'key+版本+id'构成
Powered by Waline v3.1.3