流程已デプロイされたactivitiをどのように変更しますか?
流れを変更する際は、ActivitiのAPIを使用して実装することができます。
以下は、既に展開されたプロセスを変更する方法を示すサンプルコードです。
// 获取RepositoryService
RepositoryService repositoryService = processEngine.getRepositoryService();
// 查询已部署的流程定义
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery()
.processDefinitionKey("processKey")
.latestVersion()
.singleResult();
// 获取流程定义的资源名称
String resourceName = processDefinition.getResourceName();
// 读取流程定义的资源文件
InputStream inputStream = repositoryService.getResourceAsStream(processDefinition.getDeploymentId(), resourceName);
// 将资源文件转换为BpmnModel对象
BpmnModel bpmnModel = new BpmnXMLConverter().convertToBpmnModel(new InputStreamSource(inputStream), false, false, "UTF-8");
// 对BpmnModel进行修改
// ...
// 将修改后的BpmnModel转换为字节数组
byte[] bpmnBytes = new BpmnXMLConverter().convertToXML(bpmnModel);
// 部署修改后的流程定义
Deployment deployment = repositoryService.createDeployment()
.addBytes(resourceName, bpmnBytes)
.deploy();
RepositoryServiceを取得する必要があります。その後、createProcessDefinitionQuery()メソッドを使用してデプロイ済みのプロセス定義をクエリすることができます。プロセス定義のkeyやnameなどの条件でクエリを実行できます。次に、クエリ結果からプロセス定義のIDとリソース名を使用し、getResourceAsStream()メソッドを使ってプロセス定義のリソースファイルを取得します。リソースファイルをBpmnModelオブジェクトに変換した後、修正することができます。修正が完了したら、convertToXML()メソッドを使用してBpmnModelをバイト配列に変換し、createDeployment()メソッドを使用して新しいデプロイメントオブジェクトを作成し、addBytes()メソッドを使って修正されたバイト配列をデプロイメントオブジェクトに追加し、最後にdeploy()メソッドを使用して修正済みのプロセス定義をデプロイします。
修正ポリシーを実装すると、実行中のプロセスインスタンスに影響を及ぼす可能性があるため、プロセス定義を変更する前に、既存のプロセスインスタンスの影響を考慮して適切な処理を行う必要があります。