Camunda流程部署/定义

2,050 阅读1分钟

我们需要下载camunda的流程设计器camunda.com/download/mo…,下载安装完成后打开Camunda Modeler

我们设计一个简单的流程

说明一下,camunda提供了一系列操作流程的restful api,但是本系列所有分享camunda内容都是使用原生api来完成。

1.流程部署

部署流程主要使用到的类

RepositoryService(部署定义服务)

Deployment(部署对象)

 //读取流程文件,获取文件输入流
        String fileName = "diagram_1.bpmn";
        InputStream inputStream = ProcessDeployTest.class.getResourceAsStream("/bpmn/" + fileName);
        //获取Deployment对象
        Deployment deployment = repositoryService.createDeployment()
                .name("diagram_1")
                .addInputStream(fileName, inputStream)
                .deploy();

        if (deployment != null) {
            System.out.println("部署id:" + deployment.getId());
        }

如果能够打印出部署id说明已经部署成功了

2.流程定义

如果在设计流程时Executable是勾选状态,流程部署后,流程定义的信息也同步生成,如果没有勾选,则只会生成部署相关的信息,流程定义的信息是无法获取的,因此我们可以使用api查询流程定义的信息

String pdKey = "test";//此处流程定义key为设计流程图时的Id值
ProcessDefinition pd = repositoryService.createProcessDefinitionQuery()
        .active()
        .processDefinitionKey(pdKey)
        .latestVersion()//获取最新版本
        .singleResult();

if (pd != null) {
    System.out.println("流程定义id:" + pd.getId() + ",流程版本:" + pd.getVersion());
}

流程部署和流程定义我在这里只是抛砖引玉,其实还可以使用压缩zip的方式部署,朋友们可以自己去扩展一下。本次的示例demo下载链接为github.com/fishjenny/c…,如果有帮助到大家,欢迎star,谢谢!