1.核心API
1.1ProcessEngine
1.1-1 .PocessEngine是Activiti中最核心的類,其他的類都是由他而來;
1.1-2 .產生方式:ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();調用 ProcessEngine的getDefaultProcessEngine()方法會自動加載classpath下名爲activit.cfg.xml文件;
1.1-3 .可以產生:RepositoryService
RepositoryService repositoryService =pocessEngine.getRepositoryService();
1.1-4 .可以產生RuntimeService
RuntimeService runtimeService = pocessEngine.getRuntimeService();
1.1-5 .可以產生TaskService
TaskService taskService = processEngine.getTaskService();
各個Service的作用 :
RepositoryService 管理流程定義
RuntimeService 執行管理 包括啓動,推進,刪除流程實例等
TaskService 任務管理
IdentityService 組織機構管理
HistoryService 歷史管理(執行完的數據管理)
FormService 一個可選服務,任務表單管理
ManagerService
1.2.RepositoryService
是Activiti的倉庫服務類。所謂的倉庫服務類就是指倉庫流程定義文檔的兩個文件:bpmn文件和流程圖片
可以產生DeploymentBuilder,用來定義流程部署的相關參數
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
刪除流程定義 repositoryService.deleteDepioyment(deploymentId);
1.3RuntimeService
是Activitie流程執行服務類,可以從這個服務類中獲取很多相關流程執行相關信息;
1.4TaskService
是Activitie 任務服務類,可以從類中獲取任務的信息
1.5HistoryService
是activitie 查詢歷史信息的類。在一個流程執行完之後,這個對象爲我們提高查詢歷史信息;
1.6ProcessDefinition
是activitie流程定義類,可以從這裏獲取資源文件
1.7ProcessIntance
代表流程定義的執行實例,流程實例就是一個流程從開始到結束的最大流程分支,即一個流程中流程實例只有一個;
5.8Execution
activiti用這個對象去描述流程執行的每個節點。在沒有併發的情況下,Execution就是同ProcessInstsnce。
流程按照流程定義的規則執行一次的過程,就可以表示執行對象Execution
ProcessInstance 的源代碼
public interface ProcessInstance extends Execution{ }
總結
在一個流程定義中,執行對象可以存在多個,但是流程實例只能有一個;
當流程按照規則只執行一次的時候,那麼流程實例就是流程對象;
2.基本流程實例
2.1:流程圖
開始------提交申請-----審批(部門經理)-----審批(經理)
2.2:部署流程定義
獲取流程引擎
ProcessEngine processEngine =ProcessEngine.getDefaultProcessEngine();
獲取倉庫服務的實例
Deployment deployment = processEngine.getRepositoryService().createDeployment()
.addClasspathResource("*.bpmn").addClasspathResource("*.png")
.deploy();
2.3:啓動流程實例
//指定任務辦理者
String assignee ="XX";
//獲取流程引擎對象
ProcessEngine processEngine =ProcessEngine.getDefaultProcessEngine();
//查詢任務列表
List<Task> taskList =processEngine.getTaskService().createTaskQuery().taskAssignee(xx).list();
//遍歷查看內容
For(Task task : taskList){
task.getId();
task.getName();
}
2.4 辦理任務
String taskId ="12";
ProcessEngine processEngine = ProcessEngine.getDefaultProcessEngine();
processEngince.getTaskService().complete(taskId);
3.部署流程定義(classpath路徑加載文件)
--先獲取流程引擎對象:
--通過流程引擎獲取一個RepositoryService對象(也就是倉庫對象)
--由倉庫的服務對象產生一個部署對象配置對象,用來封裝部署操作的相關對象;
--這是一個 鏈式編程,在部署配置對象中設置顯示名,上傳流程定義規則文件;
--向數據庫表中存放流程定義的規則信息
--分別操作三張表
(act_redeployment 部署對象表 )(act_re_procdef 流程定義表)
(act_ge_bytearray 資源文件表)