加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Bpmn和xml文件相互转化

发布时间:2020-12-16 08:15:30 所属栏目:百科 来源:网络整理
导读:package com.activit; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import java.io.InputStream; import javax.xml.stream.XMLInputFactory; import javax.xml.stream.XMLStreamException; import javax.x

package com.activit;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

import java.io.InputStream;

import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;

import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.test.Deployment;
import org.junit.Before;
import org.junit.Test;

public class BpmnTest {
ProcessEngine processEngine = null;
RepositoryService repositoryService = null;
RuntimeService runtimeService = null;
TaskService taskService = null;

/**
 * 加载配置文件
 */
@Before
public void init() {
    processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml")
            .buildProcessEngine();
    repositoryService = processEngine.getRepositoryService();
    runtimeService = processEngine.getRuntimeService();
    taskService = processEngine.getTaskService();
}



 @Test
 @Deployment(resources="resources/diagrams/VacationRequest.bpmn")
 public void testXmltoBpmn() throws XMLStreamException{
     ProcessDefinition processDefinition =repositoryService.createProcessDefinitionQuery().processDefinitionKey("vacationRequest").singleResult();
     //获取流程资源的名称
     String sourceName = processDefinition.getResourceName();
     //获取流程资源
     InputStream inputStream = repositoryService.getResourceAsStream(processDefinition.getId(),sourceName);
     //创建转换对象
     BpmnXMLConverter converter = new BpmnXMLConverter();
     //读取xml文件
     XMLInputFactory factory = XMLInputFactory.newInstance();
     XMLStreamReader reader = factory.createXMLStreamReader(inputStream);
     //将xml文件转换成BpmnModel
     BpmnModel bpmnModel = converter.convertToBpmnModel((XMLStreamReader) reader);
     //验证bpmnModel是否为空
     assertNotNull(bpmnModel);
     org.activiti.bpmn.model.Process process = bpmnModel.getMainProcess();
     //验证转换的流程id
     assertEquals("leave",process.getId());                  
 }

}

还有一种更加简便的方法

xml 格式直接自动生成bpmn文件。 新建文件: bpmn20.xml文件结尾的 activiti模型。然后copy得到的xml文件,最后open with 用activiti专用的视图打开就可以了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读