1. 程式人生 > >Activiti學習筆記(六)Activiti的流程引擎API和服務

Activiti學習筆記(六)Activiti的流程引擎API和服務

引擎API是與Activiti互動的最常見方式。中心起點是ProcessEngine,可以通過多種方式建立,如《Activiti學習筆記(三)獲取ProcessEngine物件的多種方式》

從ProcessEngine中,可以獲得包含工作流BPM方法的各種服務。一下是Activiti的模型圖

一共有7個服務分別執行了Activiti的部署、建立、啟動、執行.....等

首先通過RepositoryService部署服務,程式碼如下:

Deployment deployment = processEngine.getRepositoryService().createDeployment().addClasspathResource("diagrams/HelloWord.bpmn").deploy();

RuntimeService啟動服務,程式碼如下:

ProcessInstance pi = processEngine.getRuntimeService().startProcessInstanceByKey("HelloWord");

TaskService執行服務,程式碼如下

processEngine.getTaskService().complete(taskId)

HistoryService歷史任務管理服務,程式碼如下:

HistoryService historyService = processEngine.getHistoryService();
HistoricProcessInstance historicProcessInstance =
historyService.createHistoricProcessInstanceQuery().processInstanceId(procId).singleResult();

IdentityService組織機構管理服務,程式碼如下:

List<User> authorizedUsers =  identityService().createUserQuery().potentialStarter("processDefinitionId").list();

FormService任務表單管理服務,程式碼如下:

TaskFormdata FormService.getTaskFormData(String taskId)

ManagementService 服務管理,程式碼如下:

List<Task> tasks = taskService.createNativeTaskQuery()
  .sql("SELECT count(*) FROM " + managementService.getTableName(Task.class) + " T WHERE T.NAME_ = #{taskName}")
  .parameter("taskName", "gonzoTask")
  .list();