activiti获取流程图和bpmn文件保存到本地

本文详细介绍了如何使用Activiti流程引擎获取已部署流程的流程图和BPMN文件。通过设置ProcessEngine并调用RepositoryService,可以实现流程定义的查询及资源文件的导出。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

activiti中文手册:http://www.mossle.com/docs/activiti/index.html
在学习activiti自定义流程的过程中,发现了下面的方法可以获取已经部署的流程的流程图,和bpmn文件,在这里想记录一下。
一.获取ProcessEngine

protected static ProcessEngine getProcessEngine(){
        ProcessEngine processEngine= ProcessEngineConfiguration.createStandaloneInMemProcessEngineConfiguration()
                .setJdbcUrl("jdbc:mysql://localhost:3306/activiti")
                .setJdbcDriver("com.mysql.jdbc.Driver")
                .setJdbcUsername("root")
                .setJdbcPassword("数据库密码")
                .setDatabaseSchemaUpdate("true")
                .setActivityFontName("宋体")
                .setAnnotationFontName("宋体")
                .setLabelFontName("宋体")
                .buildProcessEngine();
        return processEngine;

    }

.setDatabaseSchemaUpdate(“true”) 表示设置自动检索数据库是否存在activiti相关表,不存在相关表时会在服务启动时自动创建相关表。
一般情况下,考虑系统性能,参数传false。
二.获取流程图和bpmn文件

ProcessEngine processEngine=getProcessEngine();
        final String PROCESSID ="process01";
        final String PROCESSNAME ="测试01";
        // 得到流程定义
        List<ProcessDefinition> list = processEngine.getRepositoryService().createProcessDefinitionQuery().
                orderByProcessDefinitionVersion().asc().
                deploymentId(PROCESSID).list();
        ProcessDefinition processDefinition = list.get(0);
        //得到流程定义对应流程图
        InputStream processDiagram = processEngine.getRepositoryService().getProcessDiagram(processDefinition.getId());
        FileUtils.copyInputStreamToFile(processDiagram, new File("/deployments/"+PROCESSID+".png"));

        // 得到部署
        InputStream processBpmn = processEngine.getRepositoryService().getResourceAsStream(processDefinition.getDeploymentId(), PROCESSID+".bpmn");
        FileUtils.copyInputStreamToFile(processBpmn,new File("/deployments/"+PROCESSID+".bpmn"));

代码运行以后的文件在项目所在系统盘下面deployments文件夹下。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值