Flowable分析流程与表.docx
"Flowable流程分析流程与表" Flowable是一个流程引擎,用于流程自动化和业务流程管理。Flowable提供了强大的流程引擎,可以对流程进行建模、执行和监控。 流程生命周期与数据库表之间的逻辑关系: Flowable流程引擎中,流程生命周期与数据库表之间存在紧密的逻辑关系。流程实例可以被分为多个执行对象,每个执行对象对应一个流程实例。act_ru_execution表是流程引擎的核心表,用于存储流程实例的执行信息。 act_ru_execution表字段解释: * ID_:执行对象的主键,可能与PROC_INST_ID_相同。 * REV_:数据库表更新次数。 * PROC_INST_ID_:流程实例的唯一标识符。 * BUSINESS_KEY_:业务主键,主流程使用业务主键,具有唯一约束。 * PARENT_ID_:父实例ID,用于表示父实例和子实例之间的关系。 * PROC_DEF_ID_:流程定义ID,用于标识流程定义。 * SUPER_EXEC:表示实例记录是否为外部子流程记录。 * ACT_ID_:流程运行到的节点ID。 * IS_ACTIVE_:是否活动流程实例。 * IS_CONCURRENT_:是否并发流程实例。 * IS_SCOPE_:是否为主实例,主实例为1,子实例为0。 * TENANT_ID_:租户ID,用于多租户设计。 * IS_EVENT_SCOPE:是否事件范围,通常为0。 * SUSPENSION_STATE_:是否暂停流程实例。 Flowable流程对象之间的关系: Flowable流程引擎中,流程对象之间存在复杂的关系。一个流程实例可以有多个执行对象,每个执行对象对应一个流程实例。流程实例可以分为主实例和子实例,主实例的父ID为空,子实例的父ID为主实例的ID。 Activiti业务键(businessKey)问题: Activiti业务键是用于关联业务对象和流程实例的唯一标识符。可以通过ProcessInstance的getBusinessKey()方法获取业务键。业务键的生成规则为:className+"."+objId,例如LeaveBill类的业务键为"LeaveBill."+objId。 解决业务键问题的方法: 1. 保证流程的ID和业务对象的类名一致。 2. 在流程启动时,传入业务键,例如:workflowService.startProcess(key,businessKey,vars)。