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。

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