Activiti7基本介绍( 三 )

删除流程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);

推荐阅读