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);

推薦閱讀