博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
activiti5/6 系列之--Activiti 读取并转换BPMN2文件
阅读量:6852 次
发布时间:2019-06-26

本文共 4133 字,大约阅读时间需要 13 分钟。

统一的BPMN标准,对工作流的流程定义采用BPMN统一格式。BPMN流程文件可以使用eclipse bpmn2插件开发比如eclipse bpmn2 modeler或者idea activiti插件。

SequenceFlow_1
SequenceFlow_1
SequenceFlow_2
DataInput_8
DataInput_9
DataInput_10
DataInput_11
DataInput_12
DataInput_13
DataInput_14
DataInput_8
ImpIndexFile
DataInput_8
DataInput_9
1
DataInput_9
DataInput_10
DataInput_11
DataInput_12
true
DataInput_12
DataInput_13
{ "executeMode":"manual"}
DataInput_13
DataInput_14
en-UK
DataInput_14
SequenceFlow_2

如下是对该类型文件的解析工具类和方法。

public void init() throws XMLStreamException, IOException {        for (int i = 0; i < bpmnLocation.length; i++) {            InputStream is = bpmnLocation[i].getInputStream();            byte[] encoded = IOUtils.toByteArray(is);            String bpmnResource = new String(encoded, Charset.forName("UTF-8"));            BpmnXMLConverter converter = new BpmnXMLConverter();            XMLInputFactory factory = XMLInputFactory.newInstance();            @Cleanup XMLStreamReader reader = factory.createXMLStreamReader(bpmnLocation[i].getInputStream());            BpmnModel bpmnModel = converter.convertToBpmnModel(reader);            Process process = bpmnModel.getProcesses().get(0);            ProcessDefinition processDefinition = new ProcessDefinition();            processDefinition.setProcessSource(bpmnResource);            processDefinition.setProcessId(process.getId());            processDefinition.setProcessName(process.getName());            List
flowElementList = (List
) process.getFlowElements(); Map
flowElementMap = new HashMap(); for (FlowElement flowElement : flowElementList) { flowElementMap.put(flowElement.getId(),flowElement); } processDefinition.setFlowElementMap(flowElementMap); ProcessDataUtil.processDefinitionMap.put(process.getId(), processDefinition); } }

 

转载地址:http://hcyyl.baihongyu.com/

你可能感兴趣的文章
springMVC 中几种获取request和response的方式
查看>>
vector与ArrayList、hashmap与hashtable区别
查看>>
一个简单系统的设计之争
查看>>
如何配置Kettle集群运行环境
查看>>
Jmeter分布式测试
查看>>
Centos6.9系统部分基础优化(更新时间2018/04/19)
查看>>
一次浏览器http请求的过程
查看>>
比较两个List的内容是否相等
查看>>
centos7 init
查看>>
php通过各种函数判断0和空
查看>>
基于easyui的文档管理系统springmvc+mybaits实现
查看>>
Chrome将证书透明度要求推迟至2018年
查看>>
jdbc的五大常见应用场景
查看>>
字符串
查看>>
剖析非同质化代币ERC721-全面解析ERC721标准
查看>>
Python八荣八耻
查看>>
华硕网络硬盘服务出问题!遭到中间人攻击
查看>>
java电子商务系统源码 Spring MVC+mybatis+spring cloud+spring boot+spring security
查看>>
Java 实现 给Excel模板赋值(直接打开表格赋值或者用自定义了名称的单元格(一块区域)赋值)...
查看>>
DataLakeAnalytics: 解析IP地址对应的国家城市地址的能力
查看>>