如何实操更新已部署的flowable流程定义?

2026-04-29 21:142阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计431个文字,预计阅读时间需要2分钟。

如何实操更新已部署的flowable流程定义?

首先通过`createProcessDefinitionQuery()`方法获取特定流程定义(根据流程定义键和最新版本号)。然后,使用`deleteDeployment()`方法删除旧的部署及其相关数据。接着,创建新的部署对象。

首先通过createProcessDefinitionQuery()方法获取特定流程定义(根据流程定义键和最新版本)。然后,使用deleteDeployment()方法删除旧的部署及其相关数据。

接下来,我们创建新的部署对象,并使用addClasspathResource()方法添加新的流程资源文件。最后,通过deploy()方法执行部署操作。

在重新部署后,你可以使用startProcessInstanceByKey()方法启动新版本的流程实例,并传递相应的参数和变量。这样,你就成功更新了已部署流程的定义并启动了新的流程实例。

RepositoryService repositoryService = processEngine.getRepositoryService(); RuntimeService runtimeService = processEngine.getRuntimeService(); // 获取原始的流程定义 ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() .processDefinitionKey("yourProcessKey") .latestVersion() .singleResult(); if (processDefinition != null) { String deploymentId = processDefinition.getDeploymentId(); // 删除旧的部署 repositoryService.deleteDeployment(deploymentId, true); // 创建新的部署 DeploymentBuilder deploymentBuilder = repositoryService.createDeployment() .name("New Deployment") .key("newDeploymentKey"); // 添加新的流程资源 deploymentBuilder.addClasspathResource("path/to/new-process.bpmn"); // 执行部署 Deployment deployment = deploymentBuilder.deploy(); // 启动新版本的流程实例 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey( processDefinition.getKey(), variables, processDefinition.getId()); System.out.println("New Deployment ID: " + deployment.getId()); System.out.println("New Process Instance ID: " + processInstance.getId()); } else { System.out.println("Process definition not found."); }

请注意,在重新部署过程中,旧的流程实例数据和历史数据将会被清除,新的版本的流程定义将会生效。

如何实操更新已部署的flowable流程定义?

本文共计431个文字,预计阅读时间需要2分钟。

如何实操更新已部署的flowable流程定义?

首先通过`createProcessDefinitionQuery()`方法获取特定流程定义(根据流程定义键和最新版本号)。然后,使用`deleteDeployment()`方法删除旧的部署及其相关数据。接着,创建新的部署对象。

首先通过createProcessDefinitionQuery()方法获取特定流程定义(根据流程定义键和最新版本)。然后,使用deleteDeployment()方法删除旧的部署及其相关数据。

接下来,我们创建新的部署对象,并使用addClasspathResource()方法添加新的流程资源文件。最后,通过deploy()方法执行部署操作。

在重新部署后,你可以使用startProcessInstanceByKey()方法启动新版本的流程实例,并传递相应的参数和变量。这样,你就成功更新了已部署流程的定义并启动了新的流程实例。

RepositoryService repositoryService = processEngine.getRepositoryService(); RuntimeService runtimeService = processEngine.getRuntimeService(); // 获取原始的流程定义 ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery() .processDefinitionKey("yourProcessKey") .latestVersion() .singleResult(); if (processDefinition != null) { String deploymentId = processDefinition.getDeploymentId(); // 删除旧的部署 repositoryService.deleteDeployment(deploymentId, true); // 创建新的部署 DeploymentBuilder deploymentBuilder = repositoryService.createDeployment() .name("New Deployment") .key("newDeploymentKey"); // 添加新的流程资源 deploymentBuilder.addClasspathResource("path/to/new-process.bpmn"); // 执行部署 Deployment deployment = deploymentBuilder.deploy(); // 启动新版本的流程实例 ProcessInstance processInstance = runtimeService.startProcessInstanceByKey( processDefinition.getKey(), variables, processDefinition.getId()); System.out.println("New Deployment ID: " + deployment.getId()); System.out.println("New Process Instance ID: " + processInstance.getId()); } else { System.out.println("Process definition not found."); }

请注意,在重新部署过程中,旧的流程实例数据和历史数据将会被清除,新的版本的流程定义将会生效。

如何实操更新已部署的flowable流程定义?