1. 挂起与激活的定义及区别
在Flowable流程中,挂起是指将流程实例暂停,它将停止执行当前步骤并暂时中断流程的执行。相反,激活是指恢复被挂起的流程实例的执行,使其能够继续执行后续步骤。
区别在于挂起流程实例后,流程将无法继续执行,而激活操作可以重新启动已挂起的流程实例,使其流程执行再次开始。
2. 涉及的数据表及字段取值
为了实现挂起和激活功能,Flowable引擎使用了以下三个数据表及其字段取值:
- ACT_RE_PROCDEF(流程定义表):该表记录了流程定义的信息。其中的字段
SUSPENSION_STATE_
用于标识流程定义是否被挂起。可以设置为1(挂起)或2(激活)。 - ACT_RU_EXECUTION(运行时执行表):该表记录了运行中的流程实例的执行信息。字段
SUSPENSION_STATE_
表示流程实例的挂起状态,可以设置为1(挂起)或2(激活)。 - ACT_RU_JOB(作业执行表):该表记录了需要异步执行的作业信息。字段
SUSPENSION_STATE_
表示作业的挂起状态,同样可以设置为1(挂起)或2(激活)。
需要注意的是,字段名以及具体的取值可能会根据Flowable版本而有所不同。以上仅作为示例。
3. 代码示例:挂起与激活操作
以下提供了使用Java代码进行挂起和激活操作的示例:
// 挂起流程实例 RuntimeService runtimeService = processEngine.getRuntimeService(); runtimeService.suspendProcessInstanceById(processInstanceId); // 激活流程实例 runtimeService.activateProcessInstanceById(processInstanceId);
上述代码中,processInstanceId
是要挂起或激活的流程实例的ID。通过调用RuntimeService的相应方法,我们可以方便地对流程实例进行挂起和激活操作。