工作流程flowable(二)流程节点跟踪

flowable 节点跟踪

  • 一、发起
    • 1-1 流程模型
        • 1-1-1 流程模型定义
        • 1-1-2 部署流程模型 {modelId}
    • 1-2 部署管理
        • 1-2-1 流程定义列表查询
    • 新的改变
  • 二、我的申请
    • 新的改变
  • 三、我的待办
    • 新的改变
  • 三、我的已办
    • 新的改变

一、发起

1-1 流程模型

1-1-1 流程模型定义
1-1-2 部署流程模型 {modelId}
  • 获取流程模型 -> select * from ACT_RE_MODEL where ID_ = ‘531209153359254155’
model = {ModelEntityImpl@21199} 
	 name = "薪资发放申请模型"
	 key = "Process_1702015475567"
	 category = "payroll_approval"
	 createTime = {Date@21280} "Sat Dec 09 15:33:59 CST 2023"
	 lastUpdateTime = {Date@21281} "Mon Dec 11 19:10:50 CST 2023"
	 version = {Integer@21282} 2
	 metaInfo = "{"createUser":null,"description":"人事薪资发放申请","formType":1,"formId":null,"customFormPath":"/salary/salaryPaymentDetails","customFormTitle":null}"
	 deploymentId = null
	 editorSourceValueId = "531209153359257156"
	 editorSourceExtraValueId = null
	 tenantId = ""
	 id = "531209153359254155"
	 revision = 20
  • 获取流程图 (存着各task节点)bpmnBytes -> select * from ACT_GE_BYTEARRAY where ID_ = ‘531209153359257156’
  • 部署流程 -> ACT_RE_PROCDEF 保存一个流程定义的 快照版本 ,部署当时的流程定义快照, (因为定义可能会随时调整)
  • 在这里插入图片描述
1.  先用model中的 key 查询流程定义   最新版本的
 select * from ACT_RE_PROCDEF where KEY_ = 'Process_1702015475567' and (TENANT_ID_ = '' or TENANT_ID_ is null) and DERIVED_FROM_ is null and VERSION_ = (select max(VERSION_) from ACT_RE_PROCDEF where KEY_ = 'Process_1702015475567' and (TENANT_ID_ = '' or TENANT_ID_ is null))

查出 PROC_DEF_ID_
 PROC_DEF_ID_ = 'Process_1702015475567:2:531212111059431103'

## 会生成一个 deployment_id,  关联上 :流程定义快照 和 流程部署

insert into ACT_RE_PROCDEF(ID_, REV_, **CATEGORY_**, NAME_, KEY_, VERSION_, **DEPLOYMENT_ID_**, RESOURCE_NAME_, DGRM_RESOURCE_NAME_, DESCRIPTION_, HAS_START_FORM_KEY_, HAS_GRAPHICAL_NOTATION_ , SUSPENSION_STATE_, DERIVED_FROM_, DERIVED_FROM_ROOT_, DERIVED_VERSION_, TENANT_ID_, ENGINE_VERSION_) 
values ('Process_1702015475567:3:531212112140456107', 1, '**http://flowable.org/bpmn**', '薪资发放申请模型', 'Process_1702015475567', 3, '**531212112139926104**', '薪资发放申请模型.bpmn', '薪资发放申请模型.Process_1702015475567.png', NULL, true, true, 1, NULL, NULL, 0, '', NULL)

## 用 deployment_id 关联上表和下表 
 Consume Time:9 ms 2023-12-12 11:21:40
insert into ACT_RE_DEPLOYMENT(**ID_**, NAME_, CATEGORY_, KEY_, TENANT_ID_, DEPLOY_TIME_, DERIVED_FROM_, DERIVED_FROM_ROOT_, PARENT_DEPLOYMENT_ID_, ENGINE_VERSION_) 
values('**531212112139926104**', '薪资发放申请模型', 'payroll_approval', 'Process_1702015475567', '', '2023-12-12 11:21:39', NULL, NULL, '531212112139926104', NULL)

## 流程部署时,流程定义中的参数变量 , 也是用 deployment_id 关联上 
 Consume Time:34 ms 2023-12-12 11:21:40
INSERT INTO ACT_GE_BYTEARRAY(ID_, REV_, NAME_, BYTES_, **DEPLOYMENT_ID_**, GENERATED_) 
VALUES 
('531212112139927105', 1, '薪资发放申请模型.bpmn', 'java.io.ByteArrayInputStream@d868798', '**531212112139926104**', false) ,
 ('531212112140389106', 1, '薪资发放申请模型.Process_1702015475567.png', 'java.io.ByteArrayInputStream@57ef832a', '**531212112139926104**', true)

插入结果 deployment 如下 :

deployment = {DeploymentEntityImpl@26933} "DeploymentEntity[id=531212112139926104, name=薪资发放申请模型]"
 name = "薪资发放申请模型"
 category = "payroll_approval"
 key = "Process_1702015475567"
 tenantId = ""
 resources = {HashMap@26965}  size = 2
 deploymentTime = {Date@26966} "Tue Dec 12 11:21:39 CST 2023"
 isNew = true
 derivedFrom = null
 derivedFromRoot = null
 parentDeploymentId = "531212112139926104"
 engineVersion = null
 deployedArtifacts = {HashMap@26968}  size = 1
 id = "531212112139926104"
  • 修改流程定义的分类,便于搜索流程 ->
## 1 先查询  再更新
SELECT RES.* from ACT_RE_PROCDEF RES WHERE RES.DEPLOYMENT_ID_ = '531212112139926104' order by RES.ID_ asc
结果 :
procDef = {ProcessDefinitionEntityImpl@27004} "ProcessDefinitionEntity[Process_1702015475567:3:531212112140456107]"
name = "薪资发放申请模型"
localizedName = null
description = null
localizedDescription = null
key = "Process_1702015475567"
version = 3
**category** = "http://flowable.org/bpmn" 
deploymentId = "531212112139926104"
resourceName = "薪资发放申请模型.bpmn"
tenantId = ""
historyLevel = null
diagramResourceName = "薪资发放申请模型.Process_1702015475567.png"
isGraphicalNotationDefined = true
variables = null
hasStartFormKey = true
suspensionState = 1
isIdentityLinksInitialized = false
definitionIdentityLinkEntities = {ArrayList@27019}  size = 0
ioSpecification = null
derivedFrom = null
derivedFromRoot = null
derivedVersion = 0
engineVersion = null
id = "Process_1702015475567:3:531212112140456107"
revision = 1
isInserted = false

## 2  又根据上面结果的 id 查询一下,有点啰嗦了
select * from ACT_ 
RE_PROCDEF where ID_ = 'Process_1702015475567:3:531212112140456107'
##3 然后才更新  流程定义的category   REV_ =  REV_  + 1 
update ACT_RE_PROCDEF SET REV_ = 2, CATEGORY_ = *'payroll_approval'*   where ID_ = 'Process_1702015475567:3:531212112140456107' and REV_ = 1


  • 保存部署表单 -> FROM wf_form WHERE form_id=1
## 1 先查询 
SELECT form_id,form_name,content,remark,create_by,create_time,update_by,update_time FROM wf_form WHERE form_id=1 

##2  如果有标准表单,如果是自定义业务流程,可能没有 下面的插入操作  
INSERT INTO wf_deploy_form ( deploy_id, form_key, node_key, form_name, content )

VALUES ( '531212112139926104', 'key_1', 'Event_028fyme', '请假申请单', '{"formRef":"elForm","formModel":"formData","size":"medium","labelPosition":"right","labelWidth":100,"formRules":"rules","gutter":15,"disabled":false,"span":24,"formBtns":true,"fields":[
{"__config__":{"label":"员工姓名","labelWidth":null,"showLabel":true,"changeTag":true,"tag":"el-input","tagIcon":"input","required":true,"layout":"colFormItem","span":24,"document":"https://element.eleme.cn/#/zh-CN/component/input","regList":[],"formId":101,"renderKey":"1011686020316414"},"__slot__":{"prepend":"","append":""},"placeholder":"请输入员工姓名","style":{"width":"100%"},"clearable":true,"prefix-icon":"","suffix-icon":"","maxlength":null,"show-word-limit":false,"readonly":false,"disabled":false,"__vModel__":"field101"},

{"__config__":{"label":"员工编号","labelWidth":null,"showLabel":true,"changeTag":true,"tag":"el-input","tagIcon":"input","required":true,"layout":"colFormItem","span":24,"document":"https://element.eleme.cn/#/zh-CN/component/input","regList":[],"formId":102,"renderKey":"1021686020353898"},"__slot__":{"prepend":"","append":""},"placeholder":"请输入员工编号","style":{"width":"100%"},"clearable":true,"prefix-icon":"","suffix-icon":"","maxlength":null,"show-word-limit":false,"readonly":false,"disabled":false,"__vModel__":"field102"},

{"__config__":{"label":"请假原因","labelWidth":null,"showLabel":true,"changeTag":true,"tag":"el-input","tagIcon":"input","required":true,"layout":"colFormItem","span":24,"document":"https://element.eleme.cn/#/zh-CN/component/input","regList":[],"formId":103,"renderKey":"1031686020368854"},"__slot__":{"prepend":"","append":""},"placeholder":"请输入请假原因","style":{"width":"100%"},"clearable":true,"prefix-icon":"","suffix-icon":"","maxlength":null,"show-word-limit":false,"readonly":false,"disabled":false,"__vModel__":"field103"},

{"__config__":{"label":"请假日期","tag":"el-date-picker","tagIcon":"date-range","defaultValue":["2023-06-07 00:08:00","2023-06-08 18:00:00"],"span":24,"showLabel":true,"labelWidth":null,"required":true,"layout":"colFormItem","regList":[],"changeTag":true,"document":"https://element.eleme.cn/#/zh-CN/component/date-picker","formId":105,"renderKey":"1051686020408243"},"style":{"width":"100%"},"type":"datetimerange","range-separator":"至","start-placeholder":"开始日期","end-placeholder":"结束日期","disabled":false,"clearable":true,"format":"yyyy-MM-dd HH:mm:ss","value-format":"yyyy-MM-dd HH:mm:ss","readonly":false,"__vModel__":"field105"}]}' )

1-2 部署管理

  • /workflow/deploy/list?pageNum=1&pageSize=10
1-2-1 流程定义列表查询

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;

二、我的申请

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;

三、我的待办

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;

三、我的已办

新的改变

我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;

你可能感兴趣的:(java,spring,boot)