前言
上一篇中我們將工作流的圖已經畫好了,畫好之後需要將該流程部署到數據庫中,這樣以後纔可以用到該流程去完成相應流程工作。
Activiti工作流部署
@Test
public void deployActiviti(){
//默認加載工作流引擎
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//加載RepositoryService
RepositoryService repositoryService = processEngine.getRepositoryService();
//創建部署對象
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
//加載流程配置文件和圖片
deploymentBuilder.addClasspathResource("diagrams/MyProcess.bpmn")
.name("ok")
.category("")
.addClasspathResource("diagrams/MyProcess.png");
//部署流程
deploymentBuilder.deploy();
}
可以看到主要是利用上一篇中畫好的圖部署流程.
主要涉及3張表:
act_re_deployment ->工作流部署表
act_ge_bytearray ->儲存二進制相關文件
act_re_procdef ->流程定義數據
建議好好看看這三張表中的數據,以及它們之間的關係。
Activiti流程啓動
@Test
public void startProcess(){
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
RuntimeService runtimeService = processEngine.getRuntimeService();
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("activiti_leave");
System.out.println("流程實例ID:"+processInstance.getId());
System.out.println("正在活動的節點ID:"+processInstance.getActivityId());
System.out.println("流程定義ID:"+processInstance.getProcessDefinitionId());
}
流程啓動主要是利用RuntimeService指定上一篇中畫的圖的id即activiti_leave,獲取到流程實例ProcessInstance。