删除流程public interface RepositoryService {/*** 删除指定流程.* @param deploymentId 流程部署ID*/void deleteDeployment(String deploymentId);/*** 删除给定的部署和级联删除到流程实例、历史流程实例和作业 。** @param deploymentId 流程部署ID* @param cascade是否级联删除*/void deleteDeployment(String deploymentId, boolean cascade);}
流程实例
当我们将流程部署完成之后,先要使用他就得先开始一个流程实例 。所谓流程实例,即比如我们部署了一个请假流程,小李的请假流程就是一个实例,小王的请假流程也是一个实例 。所以我们的流程实例也是基于流程部署来实现的 。流程实例的管理底层使用的是
RuntimeService
,而最新提供的ProcessRuntime
对流程进行了二次封装,简便了api的调用 。启动流程实例
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();RuntimeService runtimeService = processEngine.getRuntimeService();
public interface RuntimeService {/*** 启动先前创建的流程实例 。* @param createdProcessInstance 已经创建的流程实例*/ProcessInstance startCreatedProcessInstance(ProcessInstance createdProcessInstance, Map<String, Object> variables); /*** 开启指定流程定义Key的最新版本* @param processDefinitionKey 流程定义的Key*/ProcessInstance startProcessInstanceByKey(String processDefinitionKey);/*** 开启给定流程定义Key的最新版本,并指定业务流程Key* @param processDefinitionKey 流程定义Key* @param businessKey 业务流程Key*/ProcessInstance startProcessInstanceByKey(String processDefinitionKey, String businessKey);/*** 开启指定流程定义Key的最新版本** @param processDefinitionKey 流程定义的Key* @param variables 流程的参数,比如uel参数*/ProcessInstance startProcessInstanceByKey(String processDefinitionKey, Map<String, Object> variables);/*** 开启给定流程定义Key的最新版本,并指定业务流程Key* @param processDefinitionKey 流程定义Key* @param variables 参数* @param businessKey 业务Key*/ProcessInstance startProcessInstanceByKey(String processDefinitionKey, String businessKey, Map<String, Object> variables);/*** 开启指定流程定义Id的最新版本.* @param processDefinitionId 流程定义Id*/ProcessInstance startProcessInstanceById(String processDefinitionId);/*** 开启给定流程定义Id的最新版本,并指定业务流程Key* @param processDefinitionId 流程定义ID*/ProcessInstance startProcessInstanceById(String processDefinitionId, String businessKey);/*** 开启给定流程定义Id的最新版本* @param processDefinitionId 流程定义Id* @param variables 参数*/ProcessInstance startProcessInstanceById(String processDefinitionId, Map<String, Object> variables);/*** 开启给定流程定义Id的最新版本* @param processDefinitionId 流程定义Id* @param variables 参数*/ProcessInstance startProcessInstanceById(String processDefinitionId, String businessKey, Map<String, Object> variables);}
涉及数据库表- ACT_RU_EXECTION
流程实例执行表 , 记录当前流程实例的执行情况 。流程实例执行 , 如果当前只有一个分支时 , 一个流程实例只有一条记录且执行表的主键id和流程实例id相同 , 如果当前有多个分支正在运行则该执行表中有多条记录 , 存在执行表的主键和流程实例id不相同的记录 。
不论当前有几个分支总会有一条记录的执行表的主键和流程实例id相同
一个流程实例运行完成,此表中与流程实例相关的记录删除 。
- ACT_RU_TASK
任务执行表 , 记录当前执行的任务 。启动流程实例,流程当前执行到第一个任务结点,此表会插入一条记录表示当前任务的执行情况,如果任务完成则记录删除 。
- ACT_RU_IDENTITYLINK
任务参与者,记录当前参与任务的用户或组 。
- ACT_HI_PROCINST
流程实例历史表,流程实例启动,会在此表插入一条记录,流程实例运行完成记录也不会删除 。
- ACT_HI_TASKINST
任务历史表 , 记录所有任务,开始一个任务,不仅在act_ru_task表插入记录,也会在历史任务表插入一条记录,任务历史表的主键就是任务id,任务完成此表记录不删除 。
- ACT_HI_ACTINST
活动历史表,记录所有活动,活动包括任务,所以此表中不仅记录了任务,还记录了流程执行过程的其它活动,比如开始事件、结束事件 。
挂起流程实例
/*** 挂起指定流程Id的流程实例*/void suspendProcessInstanceById(String processInstanceId);
推荐阅读
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 苹果13mini屏幕材质_苹果13mini屏幕介绍
- AlexNet-文献阅读笔记
- 15 基于SqlSugar的开发框架循序渐进介绍-- 整合代码生成工具进行前端界面的生成
- 红米Note11参数配置_红米Note11详细配置介绍
- 小米笔记本Pro15增强版参数_小米笔记本Pro15增强版参数介绍
- iPadPro2021参数配置_iPadPro2021详细参数介绍
- 红米K50参数配置_红米K50参数介绍
- Nebula Graph介绍和SpringBoot环境连接和查询
- iqoou3详细参数_iqoou3参数详细参数配置
- 三国杀玩法及卡牌介绍(三国杀108张牌明细)