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

flowable 全生命周期涉及到的api及mysql表

要了解Flowable从流程创建到审批过程中涉及的API和MySQL表。之前对工作流引擎有一些基础了解,但具体到Flowable的细节可能不太熟悉。需要先回忆一下Flowable的基本概念,比如流程定义、流程实例、任务、执行实例等,然后逐步思考每个步骤会用到哪些API和数据库表。

首先,流程的创建通常是从部署流程定义开始的。Flowable中部署流程定义可能会使用RepositoryService的createDeployment方法,然后添加BPMN文件,最后部署。对应的数据库表是ACT_RE_DEPLOYMENT和ACT_RE_PROCDEF,分别存储部署信息和流程定义信息。

接下来是启动流程实例,这应该使用RuntimeService的startProcessInstanceByKey或startProcessInstanceById方法。启动后会在ACT_RU_EXECUTION表中创建执行实例,可能还有ACT_RU_TASK表记录任务信息。不过这里可能要看流程的具体结构,如果是用户任务,就会生成任务记录。

然后是任务的处理,用户需要查询任务,可能用TaskService的createTaskQuery来获取任务列表,然后执行taskService.complete(taskId)来完成任务。这时候任务会从ACT_RU_TASK表中删除,流程继续到下一个节点。同时,历史任务信息可能会记录在ACT_HI_TASKINST表中。

审批过程中可能涉及到的用户或用户组,可能涉及IdentityService来管理用户和组的关系,相关的表可能是ACT_ID_USER、ACT_ID_GROUP和ACT_ID_MEMBERSHIP。不过实际中可能很多人不使用Flowable内置的用户表,而是集成自己的系统。

还有历史记录,比如流程实例的历史信息存储在ACT_HI_PROCINST,任务历史在ACT_HI_TASKINST,变量历史在ACT_HI_VARINST等。这些表在流程进行中会记录各种历史数据。

变量管理方面,流程变量可能在运行时存储在ACT_RU_VARIABLE,历史变量在ACT_HI_VARINST。设置变量可能通过RuntimeService或TaskService的setVariable方法。

还有,审批过程中可能需要处理网关、分支、并行流程等,这时候执行实例可能会有父级和子级的关系,涉及ACT_RU_EXECUTION表的结构,比如PARENT_ID_字段。

另外,审批的时候可能会有审批意见,这可能需要用到评论功能,对应的API是TaskService的addComment,数据存在ACT_HI_COMMENT表中。

需要注意的是,Flowable的表都以ACT_开头,后面跟着两部分,第一部分表示表的作用,比如RE表示仓库,RU表示运行时,HI表示历史,ID表示身份。第二部分是具体的用途,比如PROCDEF是流程定义,TASK是任务等。

可能还需要考虑事务和异步任务,比如作业处理,对应的表是ACT_RU_JOB,相关的API是ManagementService。

不过,还有其他细节,比如每个步骤具体涉及哪些表,或者某些API的准确名称。比如流程实例启动后的运行时表,除了ACT_RU_EXECUTION和ACT_RU_TASK,可能还有ACT_RU_IDENTITYLINK来处理任务的候选人或组,或者ACT_RU_VARIABLE存储变量。

还有,流程定义部署后,ACT_GE_BYTEARRAY表存储流程的BPMN和图片资源,部署时上传的文件会被存储在这里。

现在需要把这些步骤和对应的API、表整理清楚,可能需要分步骤列出创建流程、启动实例、任务处理、历史查询等各个阶段用到的API和涉及的表。同时要注意有些表是运行时的,只在流程实例运行期间存在数据,而历史表则会保留记录。

比如,部署流程定义:

API:RepositoryService.createDeployment().addClasspathResource("process.bpmn20.xml").deploy();

涉及的表:ACT_RE_DEPLOYMENT(部署信息),ACT_GE_BYTEARRAY(存储BPMN文件),ACT_RE_PROCDEF(流程定义信息)。

启动流程实例:

API:RuntimeService.startProcessInstanceByKey("processKey");

涉及的表:ACT_RU_EXECUTION(执行实例),ACT_RU_TASK(如果启动后第一个节点是用户任务),ACT_RU_IDENTITYLINK(任务关联的用户或组),ACT_HI_PROCINST(历史流程实例),ACT_HI_ACTINST(历史活动实例)。

查询任务:

API:TaskService.createTaskQuery().taskAssignee("user1").list();

涉及的表:ACT_RU_TASK。

完成任务:

API:taskService.complete(taskId);

涉及的表:ACT_RU_TASK(当前任务被删除),ACT_RU_EXECUTION(可能更新或删除旧的,创建新的执行实例),ACT_HI_TASKINST(记录任务完成),ACT_HI_ACTINST(记录活动完成),ACT_HI_VARINST(如果有变量更新)。

变量处理:

API:runtimeService.setVariable(executionId, "varName", value);

涉及的表:ACT_RU_VARIABLE(运行时变量),ACT_HI_VARINST(历史变量)。

审批意见:

API:taskService.addComment(taskId, processInstanceId, "Approved");

涉及的表:ACT_HI_COMMENT。

身份管理:

API:IdentityService.createUserQuery().userId("user1").singleResult();

涉及的表:ACT_ID_USER,ACT_ID_GROUP,ACT_ID_MEMBERSHIP。

另外,流程结束时,相关的运行时数据会被删除,历史数据保留。

可能还有其他表,比如ACT_RU_EVENT_SUBSCR(事件订阅),ACT_RU_JOBS(定时任务),但这些可能在特定场景下使用。

总结下来,需要按流程的各个步骤,分别列出API和涉及的表,同时区分运行时表和历史表。

以下是Flowable从流程创建到审批全过程中涉及的API及MySQL表的详细说明:

1. 流程定义部署

API:

  • RepositoryService

    • createDeployment(): 创建部署对象。

    • addClasspathResource("process.bpmn"): 添加BPMN文件。

    • deploy(): 执行部署。

涉及MySQL表:

  • ACT_RE_DEPLOYMENT:存储部署信息(如部署ID、名称、时间)。

  • ACT_GE_BYTEARRAY:存储流程定义文件(BPMN、PNG)的二进制数据。

  • ACT_RE_PROCDEF:存储流程定义元数据(如Key、版本、流程名)。


2. 启动流程实例

API:

  • RuntimeService

    • startProcessInstanceByKey("processKey"):按流程Key启动实例。

    • startProcessInstanceById("processDefinitionId"):按流程定义ID启动实例。

涉及MySQL表:

  • ACT_RU_EXECUTION:记录运行中的执行实例(如流程实例、子流程)。

  • ACT_RU_TASK:若启动后首个节点是用户任务,生成任务记录。

  • ACT_HI_PROCINST:历史流程实例信息(开始/结束时间、状态)。

  • ACT_HI_ACTINST:历史活动记录(每个节点执行详情)。


3. 任务处理

API:

  • TaskService

    • createTaskQuery().taskAssignee("user1").list():查询用户的任务列表。

    • complete(taskId):完成任务并推动流程。

    • claim(taskId, "user1"):认领任务。

    • addComment(taskId, "Approved"):添加审批意见。

涉及MySQL表:

  • ACT_RU_TASK:运行中的任务信息(名称、处理人、创建时间)。

  • ACT_RU_IDENTITYLINK:任务与用户/组的关联(候选人、候选组)。

  • ACT_HI_TASKINST:历史任务记录(完成时间、处理人)。

  • ACT_HI_COMMENT:存储审批意见(评论内容、时间)。


4. 流程变量管理

API:

  • RuntimeService 或 TaskService

    • setVariable(executionId, "varName", value):设置全局变量。

    • getVariable(executionId, "varName"):获取变量。

涉及MySQL表:

  • ACT_RU_VARIABLE:运行时的流程变量。

  • ACT_HI_VARINST:历史变量变更记录。


5. 用户与组管理

API:

  • IdentityService

    • createUserQuery().userId("user1").singleResult():查询用户。

    • createGroupQuery().groupName("managers").list():查询用户组。

涉及MySQL表(可选,通常集成外部系统):

  • ACT_ID_USER:用户信息。

  • ACT_ID_GROUP:用户组信息。

  • ACT_ID_MEMBERSHIP:用户与组的关联关系。


6. 历史数据查询

API:

  • HistoryService

    • createHistoricProcessInstanceQuery():查询历史流程实例。

    • createHistoricTaskInstanceQuery():查询历史任务。

涉及MySQL表:

  • ACT_HI_PROCINST:历史流程实例。

  • ACT_HI_TASKINST:历史任务实例。

  • ACT_HI_ACTINST:历史节点活动记录。

  • ACT_HI_DETAIL:详细历史数据(如表单提交内容)。


7. 其他运行时操作

API:

  • ManagementService:处理异步作业(如定时器)。

    • createJobQuery().list():查询待处理作业。

  • FormService:处理表单数据(若使用内置表单)。

涉及MySQL表:

  • ACT_RU_JOB:运行中的异步作业(如定时任务)。

  • ACT_RU_EVENT_SUBSCR:事件订阅(如消息事件)。


8. 流程结束

  • 流程完成后,运行时数据(ACT_RU_*表)被清除,历史数据(ACT_HI_*表)保留。


关键表分类总结

表前缀用途示例表
ACT_RE_流程定义与部署ACT_RE_DEPLOYMENT, ACT_RE_PROCDEF
ACT_RU_运行时数据ACT_RU_TASK, ACT_RU_EXECUTION
ACT_HI_历史记录ACT_HI_PROCINST, ACT_HI_TASKINST
ACT_ID_身份管理(用户/组)ACT_ID_USER, ACT_ID_GROUP
ACT_GE_通用数据(如二进制资源)ACT_GE_BYTEARRAY

通过上述API和表的配合,Flowable实现了完整的流程生命周期管理,从部署到审批结束,所有操作均可通过服务API控制,数据持久化到对应的MySQL表中。

相关文章:

  • nextjs项目搭建——头部导航
  • 【数论】—— 快速幂与扩展欧拉定理
  • 【Web开发】PythonAnyWhere免费部署Django项目
  • 第六次作业
  • python类型转换深浅拷贝
  • 了解Pipx:一个轻量但强大的Python工具
  • 如何在 SpringBoot 项目创建并使用 Redis 的详细介绍
  • 【漫话机器学习系列】103.学习曲线(Learning Curve)
  • 蓝桥杯之阶段考核
  • 跟李沐学AI:InstructGPT论文精读(SFT、RLHF)
  • 《Mycat核心技术》第17章:实现MySQL的读写分离
  • 网络安全入门 | TCP/IP协议栈核心协议详解(附攻防案例)
  • 基于AT89C51单片机的教室智能照明控制系统
  • 软件工程和系统分析与设计
  • 前端性能测试优化案例
  • Python 调用 DeepSeek API 完整指南
  • ABC 393
  • [笔记] x86汇编语言:从实模式到保护模式之第四章 汇编语言和汇编软件
  • Docker的基础使用
  • Redis 如何实现消息队列?
  • 做品牌网站公司/培训机构如何招生营销
  • 06年可以做相册视频的网站/淘宝美工培训
  • 新网站如何推广/今日头条官网首页
  • 浅谈幼儿园网站的建设与管理制度/创意设计
  • 深圳网站建设zhaoseo/网络营销总结
  • 门户网站和新闻网站的区别/策划营销推广方案