Activiti學習筆記(六)Activiti的流程引擎API和服務
阿新 • • 發佈:2018-11-23
引擎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();