Activiti 流程中得到 MultiInstanceLoopCharacteristics参数

来源:互联网 发布:网络主播工资 编辑:程序博客网 时间:2024/06/05 11:59

在流程中得到  MultiInstanceLoopCharacteristics参数


思路为  procDefId->bpmnModel->mainProcess->userTask->getLoop


@Testpublic 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;}


0 0
原创粉丝点击