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

有没有会计做兼职的网站wordpress获取文章

有没有会计做兼职的网站,wordpress获取文章,陕西恒业建设集团网站,如何在局域网中做网站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/523715.html

相关文章:

  • 中国人在国外做网站网站代理网站群建设 会议 主持
  • 在Ubuntu Linux安装brew 使用brew安装llama.cpp 运行文心Ernie大模型
  • 基于MATLAB/Simulink的风光储联合系统经M3C接入电网的低电压穿越仿真研究
  • CNCF Kepler与MCP:开启云原生绿色计算的人机协作新纪元
  • 昇腾NPU部署GPT-OSS-20B混合专家模型:从环境配置到性能优化的完整实践指南
  • java8中的‘+‘的使用注意事项
  • 德国莱茵金属公司使用Varjo XR-4创建虚拟现实培训解决方案
  • STM32的GPIOx_ODR,GPIOx_BSRR,GPIOx_BRR寄存器的区别与使用
  • 网站建设指南 菜鸟教程简历模板做的最好的是哪个网站
  • Prometheus + Alertmanager + 钉钉告警
  • 基于 Spring Boot + RabbitMQ 实现应用通信
  • docker一键部署prometheus和grafana
  • 《深入剖析TCP Socket API:从连接到断开的全链路解读》
  • 数据库连接池 HikariCP Spring官方内置连接池 配置简单 以性能与稳定性闻名天下
  • Flink Watermark(水位线)机制详解
  • wordpress wpadmin东莞seo网站建设公司
  • 刷赞网站怎么做WordPress编辑器加载慢
  • 【知识图谱】图神经网络(GNN)核心概念详解:从消息传递到实战应用
  • 系统与网络安全------弹性交换网络(5)
  • 车联网车云架构_信息分享01
  • 纯css实现任务头像叠加
  • B2122 单词翻转
  • Tailwind CSS Next.js实战(官方)Tailwind Demo、Tailwind教程
  • 建设个人博客网站做网站页面设计报价
  • 告别显卡焦虑:Wan2.1+cpolar让AI视频创作走进普通家庭
  • 浙人医创新开新篇——用KingbaseES数据库开创首个多院区异构多活容灾架构
  • openstock部署
  • 平替 MongoDB 实践指南 | 金仓多模数据库助力电子证照系统国产化改造
  • android三方调试几个常用命令
  • 响应式网站建设开发公司网站名称需要备案吗