gpt4 book ai didi

java - 如何查询流程实例的位置?

转载 作者:行者123 更新时间:2023-12-01 12:32:42 25 4
gpt4 key购买 nike

我想在我的流程中获取单个实例的当前位置。是否可以将 Activity 的名称附加到 id 作为返回值?

最佳答案

您可以使用以下代码获取流程实例的当前位置,当流程在多个位置等待时,它还将为您提供 Activity 的名称。

package org.camunda.bpm;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.camunda.bpm.engine.ProcessEngine;
import org.camunda.bpm.engine.RepositoryService;
import org.camunda.bpm.engine.RuntimeService;
import org.camunda.bpm.engine.runtime.ProcessInstance;
import org.camunda.bpm.model.bpmn.BpmnModelInstance;
import org.camunda.bpm.model.xml.instance.ModelElementInstance;

public class AllActiveActivities {

public Map<String, String> getAllActiveActivities(String processInstanceId) {
// get engine services
ProcessEngine processEngine = BpmPlatform.getDefaultProcessEngine()
RuntimeService runtimeService = processEngine.getRuntimeService();
RepositoryService repositoryService = processEngine.getRepositoryService();

// get the process instance
ProcessInstance processInstance =
runtimeService.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();

HashMap<String, String> activityNameByActivityId = new HashMap<String, String>();

// get all active activities of the process instance
List<String> activeActivityIds =
runtimeService.getActiveActivityIds(processInstance.getId());

// get bpmn model of the process instance
BpmnModelInstance bpmnModelInstance =
repositoryService.getBpmnModelInstance(processInstance.getProcessDefinitionId());

for (String activeActivityId : activeActivityIds) {
// get the speaking name of each activity in the diagram
ModelElementInstance modelElementById =
bpmnModelInstance.getModelElementById(activeActivityId);
String activityName = modelElementById.getAttributeValue("name");

activityNameByActivityId.put(activeActivityId, activityName);
}

// map contains now all active activities
return activityNameByActivityId;
}

}

关于java - 如何查询流程实例的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23359503/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com