一 代码
/**
* Copyright (C), 2020-2020, 软件公司
* FileName: SuspendProcess.java
* Author: cakin
* Date: 2020/4/25
* Description: 中断和激活流程
*/
package com.syc.activiti.chapter9;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.impl.persistence.entity.ExecutionEntity;
import org.activiti.engine.runtime.ProcessInstance;
/**
* Copyright (C), 2020-2020, 软件公司
* FileName: SuspendProcess.java
* Author: cakin
* Date: 2020/4/25
* Description: 中断和激活流程
*/
@Slf4j
public class SuspendProcess {
public static void main( String[] args ) {
// 创建流程引擎
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 得到流程存储服务实例
RepositoryService repositoryService = engine.getRepositoryService();
// 得到运行时服务组件
RuntimeService runtimeService = engine.getRuntimeService();
// 部署流程描述文件
repositoryService.createDeployment()
.addClasspathResource("bpmn/chapter9/SuspendProcess.bpmn").deploy();
// 开始流流程
ProcessInstance pi = runtimeService
.startProcessInstanceByKey("testProcess");
/************************************************************************************
mysql> select ID_, REV_,PROC_INST_ID_ ,BUSINESS_KEY_ ,PARENT_ID_ ,PROC_DEF_ID_ ,SUPER_EXEC_,ROOT_PROC_INST_ID_ ,ACT_ID_,SUSPENSION_STATE_ from act_ru_execution;
+--------+------+---------------+---------------+------------+----------------------+-------------+--------------------+-----------+-------------------+
| ID_ | REV_ | PROC_INST_ID_ | BUSINESS_KEY_ | PARENT_ID_ | PROC_DEF_ID_ | SUPER_EXEC_ | ROOT_PROC_INST_ID_ | ACT_ID_ | SUSPENSION_STATE_ |
+--------+------+---------------+---------------+------------+----------------------+-------------+--------------------+-----------+-------------------+
| 210005 | 1 | 210005 | NULL | NULL | testProcess:1:210004 | NULL | 210005 | NULL | 1 |
| 210006 | 1 | 210005 | NULL | 210005 | testProcess:1:210004 | NULL | 210005 | usertask1 | 1 |
+--------+------+---------------+---------------+------------+----------------------+-------------+--------------------+-----------+-------------------+
mysql> select * from act_re_deployment;
+--------+-------+-----------+------+------------+-------------------------+-----------------+
| ID_ | NAME_ | CATEGORY_ | KEY_ | TENANT_ID_ | DEPLOY_TIME_ | ENGINE_VERSION_ |
+--------+-------+-----------+------+------------+-------------------------+-----------------+
| 210001 | NULL | NULL | NULL | | 2020-04-25 19:38:42.019 | NULL |
+--------+-------+-----------+------+------------+-------------------------+-----------------+
1 row in set (0.00 sec)
mysql> select ID_,NAME_, KEY_, DEPLOYMENT_ID_,RESOURCE_NAME_,DGRM_RESOURCE_NAME_,SUSPENSION_STATE_ from act_re_procdef;
+----------------------+-------------+-------------+----------------+-----------------------------------+----------------------------------------------+-------------------+
| ID_ | NAME_ | KEY_ | DEPLOYMENT_ID_ | RESOURCE_NAME_ | DGRM_RESOURCE_NAME_ | SUSPENSION_STATE_ |
+----------------------+-------------+-------------+----------------+-----------------------------------+----------------------------------------------+-------------------+
| testProcess:1:210004 | testProcess | testProcess | 210001 | bpmn/chapter9/SuspendProcess.bpmn | bpmn/chapter9/SuspendProcess.testProcess.png | 1 |
+----------------------+-------------+-------------+----------------+-----------------------------------+----------------------------------------------+-------------------+
mysql> select ID_ ,REV_, EXECUTION_ID_, PROC_INST_ID_ , PROC_DEF_ID_, NAME_ , PARENT_TASK_ID_ , DESCRIPTION_ , TASK_DEF_KEY_ , OWNER_, ASSIGNEE_ from act_ru_task;
+--------+------+---------------+---------------+----------------------+------------+-----------------+--------------+---------------+--------+-----------+
| ID_ | REV_ | EXECUTION_ID_ | PROC_INST_ID_ | PROC_DEF_ID_ | NAME_ | PARENT_TASK_ID_ | DESCRIPTION_ | TASK_DEF_KEY_ | OWNER_ | ASSIGNEE_ |
+--------+------+---------------+---------------+----------------------+------------+-----------------+--------------+---------------+--------+-----------+
| 210009 | 1 | 210006 | 210005 | testProcess:1:210004 | First Task | NULL | NULL | usertask1 | NULL | NULL |
+--------+------+---------------+---------------+----------------------+------------+-----------------+--------------+---------------+--------+-----------+
************************************************************************************/
// 中断流程
runtimeService.suspendProcessInstanceById(pi.getId());
ExecutionEntity exe = (ExecutionEntity) runtimeService
.createExecutionQuery().processInstanceId(pi.getId())
.singleResult();
log.info("中断后执行流状态:" + exe.isSuspended());
/************************************************************************************
mysql> select ID_, REV_,PROC_INST_ID_ ,BUSINESS_KEY_ ,PARENT_ID_ ,PROC_DEF_ID_ ,SUPER_EXEC_,ROOT_PROC_INST_ID_ ,ACT_ID_,SUSPENSION_STATE_ from act_ru_execution;
+--------+------+---------------+---------------+------------+----------------------+-------------+--------------------+-----------+-------------------+
| ID_ | REV_ | PROC_INST_ID_ | BUSINESS_KEY_ | PARENT_ID_ | PROC_DEF_ID_ | SUPER_EXEC_ | ROOT_PROC_INST_ID_ | ACT_ID_ | SUSPENSION_STATE_ |
+--------+------+---------------+---------------+------------+----------------------+-------------+--------------------+-----------+-------------------+
| 210005 | 2 | 210005 | NULL | NULL | testProcess:1:210004 | NULL | 210005 | NULL | 2 |
| 210006 | 2 | 210005 | NULL | 210005 | testProcess:1:210004 | NULL | 210005 | usertask1 | 2 |
+--------+------+---------------+---------------+------------+----------------------+-------------+--------------------+-----------+-------------------+
2 rows in set (0.00 sec)
mysql> select * from act_re_deployment;
+--------+-------+-----------+------+------------+-------------------------+-----------------+
| ID_ | NAME_ | CATEGORY_ | KEY_ | TENANT_ID_ | DEPLOY_TIME_ | ENGINE_VERSION_ |
+--------+-------+-----------+------+------------+-------------------------+-----------------+
| 210001 | NULL | NULL | NULL | | 2020-04-25 19:38:42.019 | NULL |
+--------+-------+-----------+------+------------+-------------------------+-----------------+
1 row in set (0.00 sec)
mysql> select ID_,NAME_, KEY_, DEPLOYMENT_ID_,RESOURCE_NAME_,DGRM_RESOURCE_NAME_,SUSPENSION_STATE_ from act_re_procdef;
+----------------------+-------------+-------------+----------------+-----------------------------------+----------------------------------------------+-------------------+
| ID_ | NAME_ | KEY_ | DEPLOYMENT_ID_ | RESOURCE_NAME_ | DGRM_RESOURCE_NAME_ | SUSPENSION_STATE_ |
+----------------------+-------------+-------------+----------------+-----------------------------------+----------------------------------------------+-------------------+
| testProcess:1:210004 | testProcess | testProcess | 210001 | bpmn/chapter9/SuspendProcess.bpmn | bpmn/chapter9/SuspendProcess.testProcess.png | 1 |
+----------------------+-------------+-------------+----------------+-----------------------------------+----------------------------------------------+-------------------+
1 row in set (0.00 sec)
mysql> select ID_ ,REV_, EXECUTION_ID_, PROC_INST_ID_ , PROC_DEF_ID_, NAME_ , PARENT_TASK_ID_ , DESCRIPTION_ , TASK_DEF_KEY_ , OWNER_, ASSIGNEE_ from act_ru_task;
+--------+------+---------------+---------------+----------------------+------------+-----------------+--------------+---------------+--------+-----------+
| ID_ | REV_ | EXECUTION_ID_ | PROC_INST_ID_ | PROC_DEF_ID_ | NAME_ | PARENT_TASK_ID_ | DESCRIPTION_ | TASK_DEF_KEY_ | OWNER_ | ASSIGNEE_ |
+--------+------+---------------+---------------+----------------------+------------+-----------------+--------------+---------------+--------+-----------+
| 210009 | 2 | 210006 | 210005 | testProcess:1:210004 | First Task | NULL | NULL | usertask1 | NULL | NULL |
+--------+------+---------------+---------------+----------------------+------------+-----------------+--------------+---------------+--------+-----------+
************************************************************************************/
// 激活流程
runtimeService.activateProcessInstanceById(pi.getId());
exe = (ExecutionEntity) runtimeService.createExecutionQuery()
.processInstanceId(pi.getId()).singleResult();
log.info("激活后执行流状态:" + exe.isSuspended());
}
/************************************************************************************
mysql> select ID_, REV_,PROC_INST_ID_ ,BUSINESS_KEY_ ,PARENT_ID_ ,PROC_DEF_ID_ ,SUPER_EXEC_,ROOT_PROC_INST_ID_ ,ACT_ID_,SUSPENSION_STATE_ from act_ru_execution;
+--------+------+---------------+---------------+------------+----------------------+-------------+--------------------+-----------+-------------------+
| ID_ | REV_ | PROC_INST_ID_ | BUSINESS_KEY_ | PARENT_ID_ | PROC_DEF_ID_ | SUPER_EXEC_ | ROOT_PROC_INST_ID_ | ACT_ID_ | SUSPENSION_STATE_ |
+--------+------+---------------+---------------+------------+----------------------+-------------+--------------------+-----------+-------------------+
| 210005 | 3 | 210005 | NULL | NULL | testProcess:1:210004 | NULL | 210005 | NULL | 1 |
| 210006 | 3 | 210005 | NULL | 210005 | testProcess:1:210004 | NULL | 210005 | usertask1 | 1 |
+--------+------+---------------+---------------+------------+----------------------+-------------+--------------------+-----------+-------------------+
2 rows in set (0.00 sec)
mysql> select ID_ ,REV_, EXECUTION_ID_, PROC_INST_ID_ , PROC_DEF_ID_, NAME_ , PARENT_TASK_ID_ , DESCRIPTION_ , TASK_DEF_KEY_ , OWNER_, ASSIGNEE_ from act_ru_task;
+--------+------+---------------+---------------+----------------------+------------+-----------------+--------------+---------------+--------+-----------+
| ID_ | REV_ | EXECUTION_ID_ | PROC_INST_ID_ | PROC_DEF_ID_ | NAME_ | PARENT_TASK_ID_ | DESCRIPTION_ | TASK_DEF_KEY_ | OWNER_ | ASSIGNEE_ |
+--------+------+---------------+---------------+----------------------+------------+-----------------+--------------+---------------+--------+-----------+
| 210009 | 3 | 210006 | 210005 | testProcess:1:210004 | First Task | NULL | NULL | usertask1 | NULL | NULL |
+--------+------+---------------+---------------+----------------------+------------+-----------------+--------------+---------------+--------+-----------+
1 row in set (0.00 sec)
mysql> select ID_,NAME_, KEY_, DEPLOYMENT_ID_,RESOURCE_NAME_,DGRM_RESOURCE_NAME_,SUSPENSION_STATE_ from act_re_procdef;
+----------------------+-------------+-------------+----------------+-----------------------------------+----------------------------------------------+-------------------+
| ID_ | NAME_ | KEY_ | DEPLOYMENT_ID_ | RESOURCE_NAME_ | DGRM_RESOURCE_NAME_ | SUSPENSION_STATE_ |
+----------------------+-------------+-------------+----------------+-----------------------------------+----------------------------------------------+-------------------+
| testProcess:1:210004 | testProcess | testProcess | 210001 | bpmn/chapter9/SuspendProcess.bpmn | bpmn/chapter9/SuspendProcess.testProcess.png | 1 |
+----------------------+-------------+-------------+----------------+-----------------------------------+----------------------------------------------+-------------------+
1 row in set (0.00 sec)
mysql> select * from act_re_deployment;
+--------+-------+-----------+------+------------+-------------------------+-----------------+
| ID_ | NAME_ | CATEGORY_ | KEY_ | TENANT_ID_ | DEPLOY_TIME_ | ENGINE_VERSION_ |
+--------+-------+-----------+------+------------+-------------------------+-----------------+
| 210001 | NULL | NULL | NULL | | 2020-04-25 19:38:42.019 | NULL |
+--------+-------+-----------+------+------------+-------------------------+-----------------+
1 row in set (0.00 sec)
************************************************************************************/
}
二 测试结果
中断后执行流状态:true
激活后执行流状态:false