Activiti工作流學習(三)

前言

上一篇中我們將工作流的圖已經畫好了,畫好之後需要將該流程部署到數據庫中,這樣以後纔可以用到該流程去完成相應流程工作。

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。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章