在流程中得到 MultiInstanceLoopCharacteristics参数
思路为 procDefId->bpmnModel->mainProcess->userTask->getLoop
@Test
public void name1() {
Task task = processEngine.getTaskService().createTaskQuery()
.taskAssignee("张三").singleResult();
String activityId = task.getTaskDefinitionKey();
ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) processEngine
.getRepositoryService().getProcessDefinition(
task.getProcessDefinitionId());
List<TaskDefinition> taskDefinitionList = new ArrayList<TaskDefinition>();
//执行实例
ProcessDefinition processDefinition = processEngine
.getRepositoryService().getProcessDefinition(
task.getProcessDefinitionId());
ActivityImpl activityImpl = processDefinitionEntity.findActivity(activityId);
List<PvmTransition> outgoingTransitions = activityImpl.getOutgoingTransitions();
Map<String, Object> a = activityImpl.getProperties();
ActivityImpl parentActivity = activityImpl.getParentActivity();
//得到的参数map,其中map和key值是相同的
Map<String, String>map = new HashMap<String, String>();
for (PvmTransition pvmTransition : outgoingTransitions) {
PvmActivity destination = pvmTransition.getDestination();
String id = destination.getId();
Map<String, Object> geta = geta(task.getProcessDefinitionId(), id);
TransitionImpl transitionImpl= activityImpl.findOutgoingTransition(pvmTransition.getId());
Map<String, Object> properties = transitionImpl.getProperties();
Object object = properties.get("conditionText");
/*if (object!=null) {
String string = object.toString();
Map<String, String> array = getArray(string);
map.putAll(array);
}*/
}
System.out.println(task.getAssignee());
}
private Map<String, Object> geta(String ProcessDefinitionId,String actId) {
BpmnModel bpmnModel =
processEngine.getRepositoryService()
.getBpmnModel(ProcessDefinitionId);
Process mainProcess = bpmnModel.getMainProcess();
Collection<FlowElement> flowElements = mainProcess.getFlowElements();
FlowElement flowElement1 = null;
for (FlowElement flowElement : flowElements) {
if (flowElement.getId().equals(actId)) {
flowElement1 = flowElement;
}
}
UserTask userTask= (UserTask)flowElement1;
MultiInstanceLoopCharacteristics loopCharacteristics = userTask.getLoopCharacteristics();
String loopCardinality = loopCharacteristics.getLoopCardinality();
String replace = loopCardinality.replace("${", "");
String replace2 = replace.replace("}", "");
Map<String, Object> map = new HashMap<String, Object>();
map.put(replace2, replace2);
return map;
}