Activiti解析.bpmn文件获得User Task节点的CandidateUsers特性的值
2017-06-26 16:35
1231 查看
参考文档:
http://www.cnblogs.com/mingforyou/p/5351332.html http://blog.csdn.net/jackyrongvip/article/details/9256531
http://www.cnblogs.com/mingforyou/p/5351332.html http://blog.csdn.net/jackyrongvip/article/details/9256531
/** * getJobProcessDefinitionMap * 查找UserTask节点中CandidateUsers不空的流程,并按照CandidateUser分类存储流程列表。 * @param @return 设定文件 * @return Map<String,Set<ProcessDefinition>> DOM对象 * @throws * @since CodingExample Ver 1.1 */ private Map<String,Set<ProcessDefinition>> getJobProcessDefinitionMap() { Map<String, Set<ProcessDefinition>> jobProcessDefinitionCaditateMap = new HashMap<String,Set<ProcessDefinition>>(); List<ProcessDefinition> processDefinitionList = findLastVersionProcessDefinition(); for(ProcessDefinition processDefinition : processDefinitionList){ BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId()); List<org.activiti.bpmn.model.Process> processList = bpmnModel.getProcesses(); if(processList != null && processList.size() > 0){ for(org.activiti.bpmn.model.Process process : processList){ if(process != null){ Collection<FlowElement> flowElementCollection = process.getFlowElements(); if(flowElementCollection != null && flowElementCollection.size() > 0){ for(FlowElement flowElement : flowElementCollection){ if(flowElement instanceof UserTask){ UserTask userTask = (UserTask)flowElement; List<String> candidateUsers = userTask.getCandidateUsers(); if(candidateUsers != null && candidateUsers.size() > 0){ for(String candidateUser : candidateUsers){ if(!StringUtils.isBlank(candidateUser)){ Set<ProcessDefinition> processDefinitionCaditateSet = null; if(jobProcessDefinitionCaditateMap.containsKey(candidateUser)){ processDefinitionCaditateSet = jobProcessDefinitionCaditateMap.get(candidateUser); }else{ processDefinitionCaditateSet = new HashSet<ProcessDefinition>(); jobProcessDefinitionCaditateMap.put(candidateUser, processDefinitionCaditateSet); } if(!processDefinitionCaditateSet.contains(processDefinition)){ processDefinitionCaditateSet.add(processDefinition); } } } } } } } } } } } return jobProcessDefinitionCaditateMap; }
相关文章推荐
- 用DOM4j解析xml文件,获得所有节点信息 http://blog.csdn.net/yizhizouxiaqu/archive/2009/12/10/4977122.aspx
- Dom解析是将xml文件全部载入,组装成一颗dom树,然后通过节点以及节点之间的关系来解析xml文件,下面结合这个xml文件来进行dom解析。
- App.config和Web.config配置文件的配置节点的解析
- .csporj 文件部分节点解析
- 【已解决】Android中用DOM方式解析xml时使用getElementsByTagName去获得节点结果为空
- xml的复杂解析取值和节点插入导出合并后的xml文件
- xml的复杂解析取值和节点插入导出合并后的xml文件
- 扩展Activiti流程定义文件,实现自定义节点属性
- Activiti的流程定义文件解析(后续)
- Dom4j解析xml文件-操作节点和属性及写入其他xml文件
- 白话/图示 从路径名获得文件I节点流程
- XML文件解析,未找到节点
- 解析mp3文件,获得mp3中的专辑图片
- Thunder for Mac: 迅雷下载记录保存文件etm_task_store.dat.mac的解析 【更新】
- Android学习笔记---26_网络通信之资讯客户端,使用pull解析器,解析,从网络中获得的自定义xml文件
- activiti5.0.alpha1之配置文件的结构及功能解析
- BPMN2新规范与Activiti5 (Activiti5的特性介绍)
- 使用XML作为项目的配置文件使用,并解析之,获得数据作为链接数据库的参数
- 打开activiti的.bpmn文件报错
- Java解析Xml文件—判断Xml文件的节点是否存在子节点_以及对节点下不同子节点的内容解析方式