当前位置: 首页 > news >正文

做问卷的网站好烟台网站建设seo

做问卷的网站好,烟台网站建设seo,做网站费用计入什么,在线设计发型Flowable 是一个轻量级的工作流和业务流程管理(BPM)平台,基于 Activiti 项目发展而来。 本文详细讲解 Flowable 的核心概念、核心表字段、关联关系以及生命周期。 Flowable 核心概念 1. 流程定义 (Process Definition) 流程定义是 BPMN 2.0 XML 文件的部署结果它描述…

Flowable 是一个轻量级的工作流和业务流程管理(BPM)平台,基于 Activiti 项目发展而来。
本文详细讲解 Flowable 的核心概念、核心表字段、关联关系以及生命周期。

Flowable 核心概念

1. 流程定义 (Process Definition)

  • 流程定义是 BPMN 2.0 XML 文件的部署结果
  • 它描述了业务流程的结构和行为
  • 每个流程定义都有一个唯一的 key 和版本号

2. 流程实例 (Process Instance)

  • 流程实例是流程定义的一次具体执行
  • 每启动一次流程就会创建一个流程实例
  • 一个流程定义可以有多个流程实例

3. 执行 (Execution)

  • 执行代表流程实例当前活动的位置
  • 在简单流程中,执行与流程实例是一对一关系
  • 在并行流程中,一个流程实例可能有多个执行

4. 任务 (Task)

  • 人工任务需要用户参与处理
  • 系统任务由系统自动执行
  • 用户任务是任务的一种特殊类型

5. 身份管理 (Identity Management)

  • 用户 (User) 和组 (Group) 管理
  • 任务分配和权限控制

Flowable 核心表结构

1. Repository 表 (ACT_RE_*)

ACT_RE_PROCDEF (流程定义表)
  • ID_: 流程定义唯一标识符
  • KEY_: 流程定义 Key
  • VERSION_: 版本号
  • NAME_: 流程定义名称
  • DEPLOYMENT_ID_: 部署ID,关联 ACT_RE_DEPLOYMENT
  • RESOURCE_NAME_: BPMN 文件名
  • DGRM_RESOURCE_NAME_: 流程图文件名
ACT_RE_DEPLOYMENT (部署表)
  • ID_: 部署ID
  • NAME_: 部署名称
  • DEPLOY_TIME_: 部署时间

2. Runtime 表 (ACT_RU_*)

ACT_RU_EXECUTION (执行表)
  • ID_: 执行ID
  • PROC_INST_ID_: 流程实例ID
  • PROC_DEF_ID_: 流程定义ID
  • ACT_ID_: 当前活动ID
  • IS_ACTIVE_: 是否活跃
  • IS_CONCURRENT_: 是否并行
  • PARENT_ID_: 父执行ID
ACT_RU_TASK (任务表)
  • ID_: 任务ID
  • EXECUTION_ID_: 执行ID
  • PROC_INST_ID_: 流程实例ID
  • PROC_DEF_ID_: 流程定义ID
  • NAME_: 任务名称
  • ASSIGNEE_: 任务处理人
  • CREATE_TIME_: 创建时间
  • TASK_DEF_KEY_: 任务定义Key
ACT_RU_VARIABLE (变量表)
  • ID_: 变量ID
  • PROC_INST_ID_: 流程实例ID
  • EXECUTION_ID_: 执行ID
  • TASK_ID_: 任务ID
  • NAME_: 变量名
  • TYPE_: 变量类型
  • TEXT_: 变量值
ACT_RU_IDENTITYLINK (身份链接表)
  • ID_: 链接ID
  • USER_ID_: 用户ID
  • GROUP_ID_: 组ID
  • TASK_ID_: 任务ID
  • PROC_INST_ID_: 流程实例ID
  • TYPE_: 链接类型(candidate/assignee/owner)

3. History 表 (ACT_HI_*)

ACT_HI_PROCINST (历史流程实例表)
  • ID_: 流程实例ID
  • PROC_DEF_ID_: 流程定义ID
  • START_TIME_: 开始时间
  • END_TIME_: 结束时间
  • DURATION_: 持续时间
  • START_USER_ID_: 发起人ID
  • START_ACT_ID_: 开始活动ID
  • END_ACT_ID_: 结束活动ID
ACT_HI_ACTINST (历史活动实例表)
  • ID_: 活动实例ID
  • PROC_DEF_ID_: 流程定义ID
  • PROC_INST_ID_: 流程实例ID
  • EXECUTION_ID_: 执行ID
  • ACT_ID_: 活动ID
  • ACT_NAME_: 活动名称
  • ACT_TYPE_: 活动类型
  • START_TIME_: 开始时间
  • END_TIME_: 结束时间
  • DURATION_: 持续时间
ACT_HI_TASKINST (历史任务实例表)
  • ID_: 任务实例ID
  • PROC_DEF_ID_: 流程定义ID
  • TASK_DEF_KEY_: 任务定义Key
  • PROC_INST_ID_: 流程实例ID
  • EXECUTION_ID_: 执行ID
  • NAME_: 任务名称
  • ASSIGNEE_: 任务处理人
  • START_TIME_: 开始时间
  • END_TIME_: 结束时间
  • DURATION_: 持续时间
ACT_HI_VARINST (历史变量实例表)
  • ID_: 变量实例ID
  • PROC_INST_ID_: 流程实例ID
  • EXECUTION_ID_: 执行ID
  • TASK_ID_: 任务ID
  • NAME_: 变量名
  • VAR_TYPE_: 变量类型
  • TEXT_: 变量值

核心表关联关系

1. 流程定义与部署关系

ACT_RE_PROCDEF.DEPLOYMENT_ID_ → ACT_RE_DEPLOYMENT.ID_

2. 流程实例与流程定义关系

ACT_RU_EXECUTION.PROC_DEF_ID_ → ACT_RE_PROCDEF.ID_
ACT_HI_PROCINST.PROC_DEF_ID_ → ACT_RE_PROCDEF.ID_

3. 执行与流程实例关系

ACT_RU_EXECUTION.PROC_INST_ID_ → ACT_RU_EXECUTION.ID_ (根执行)

4. 任务与执行关系

ACT_RU_TASK.EXECUTION_ID_ → ACT_RU_EXECUTION.ID_
ACT_RU_TASK.PROC_INST_ID_ → ACT_RU_EXECUTION.PROC_INST_ID_

5. 变量与执行/任务关系

ACT_RU_VARIABLE.EXECUTION_ID_ → ACT_RU_EXECUTION.ID_
ACT_RU_VARIABLE.TASK_ID_ → ACT_RU_TASK.ID_
ACT_RU_VARIABLE.PROC_INST_ID_ → ACT_RU_EXECUTION.PROC_INST_ID_

6. 身份链接与任务/流程实例关系

ACT_RU_IDENTITYLINK.TASK_ID_ → ACT_RU_TASK.ID_
ACT_RU_IDENTITYLINK.PROC_INST_ID_ → ACT_RU_EXECUTION.PROC_INST_ID_

Flowable 生命周期详解

1. 部署阶段 (Deployment)

// 部署流程定义
Deployment deployment = repositoryService.createDeployment().addClasspathResource("processes/my-process.bpmn20.xml").name("My Process Deployment").deploy();// 结果:
// 1. ACT_RE_DEPLOYMENT 插入部署记录
// 2. ACT_RE_PROCDEF 插入流程定义记录

2. 启动流程实例 (Start Process Instance)

// 启动流程实例
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcessKey");// 结果:
// 1. ACT_RU_EXECUTION 插入执行记录
// 2. ACT_HI_PROCINST 插入历史流程实例记录
// 3. ACT_RU_VARIABLE 插入流程变量
// 4. ACT_HI_ACTINST 记录开始活动

3. 任务处理阶段 (Task Processing)

// 查询任务
List<Task> tasks = taskService.createTaskQuery().taskAssignee("user1").list();// 完成任务
taskService.complete(task.getId());// 结果:
// 1. ACT_RU_TASK 删除已完成任务
// 2. ACT_HI_TASKINST 插入历史任务记录
// 3. ACT_RU_EXECUTION 更新执行状态
// 4. ACT_HI_ACTINST 记录活动历史

4. 流程执行 (Process Execution)

// 设置流程变量
runtimeService.setVariable(processInstanceId, "variableName", "value");// 触发信号事件
runtimeService.signalEventReceived("signalName");// 结果:
// 1. ACT_RU_VARIABLE 更新变量值
// 2. ACT_HI_VARINST 记录变量历史

5. 流程结束 (Process Completion)

// 正常结束或通过结束事件结束
// 结果:
// 1. ACT_RU_EXECUTION 删除执行记录
// 2. ACT_RU_TASK 删除任务记录
// 3. ACT_RU_VARIABLE 删除运行时变量
// 4. ACT_HI_PROCINST 更新结束时间
// 5. ACT_HI_ACTINST 记录结束活动

6. 流程异常处理

// 挂起流程实例
runtimeService.suspendProcessInstanceById(processInstanceId);// 激活流程实例
runtimeService.activateProcessInstanceById(processInstanceId);// 删除流程实例
runtimeService.deleteProcessInstance(processInstanceId, "reason");

生命周期中的关键转换

1. 运行时表到历史表的转换

  • 当任务完成时,ACT_RU_TASK → ACT_HI_TASKINST
  • 当流程实例结束时,ACT_RU_EXECUTION → ACT_HI_PROCINST
  • 当变量更新时,ACT_RU_VARIABLE → ACT_HI_VARINST

2. 并行执行管理

  • 并行网关会产生多个执行实例
  • 每个执行实例在 ACT_RU_EXECUTION 中有独立记录
  • 并行汇聚时会合并执行实例

3. 多实例任务处理

  • 多实例任务会产生多个任务实例
  • 每个实例在 ACT_RU_TASK 中有独立记录
  • 完成所有实例后继续流程执行

实际应用示例

在你的项目中,这些概念和表结构体现在:

  1. 流程启动

    // 设置认证用户
    identityService.setAuthenticatedUserId(userIdStr);
    // 启动流程实例
    ProcessInstance processInstance = runtimeService.startProcessInstanceById(procDefId, formBusinessKey, variables);
    
  2. 任务处理

    // 完成任务
    taskService.complete(taskBo.getTaskId(), taskBo.getVariables(), localScope);
    
  3. 历史查询

    // 查询历史流程实例
    HistoricProcessInstance historicProcIns = historyService.createHistoricProcessInstanceQuery().processInstanceId(procInsId).includeProcessVariables().singleResult();
    

理解这些核心概念、表结构和生命周期,可以更好地设计和优化基于 Flowable 的工作流应用。

http://www.dtcms.com/a/550883.html

相关文章:

  • wordpress仿模板完整的网站优化放啊
  • gbase8s的定时任务的使用方式基础版-创建简单的定时任务
  • 8款主流软件项目管理工具横向测评
  • 江西求做网站网站企业有哪些
  • 手机app与手机网站的区别wordpress设置内容标题
  • 手机网站的推广现代企业信息管理系统
  • 核货宝S2B2C系统核心优势:赋能B端,服务C端,驱动增长
  • Java 黑马程序员学习笔记(进阶篇22)
  • 网页制作用哪个软件宁波seo的公司联系方式
  • 如何理解不同行业AI决策系统的功能差异?
  • 长沙英文网站建设公司郑州大型网站公司
  • 建设部网站村镇建设口碑营销的产品
  • 网站建设网站模版广东省建设工程交易中心
  • 深圳网站建设培训班本科自考有哪些科目
  • RHEL 9.6 从源码安装 Open vSwitch 完整指南
  • 域名跟空间都有了怎么做网站网站的思维导图怎么做
  • 高端建站用什么软件菏泽 做网站 多少钱
  • 网站导航页设计标识设计公司排名
  • 【符号论】群的概念与五行关系的循环群结构
  • 宜兴网站建设价格信息做海报的素材那个网站比较好
  • 网站开发用到的技术上海网站建设上海
  • 昆山高端网站建设咨询设计公司职位
  • 你问GeeLark答 QA 第8章
  • 南京360推广 网站建设网页视频加速器
  • 有谁知道网站优化怎么做南宁网站建设信息推荐
  • 永川区网站建设名词解释搜索引擎优化
  • 点云深度学习:KPFCNN(Kernel Point Convolutional Neural Network)
  • Rust:类型 impl
  • STM32项目分享:避障小车设计
  • 从密集到稀疏:InfLLM-V2 如何实现零参数开销的长文本高效处理