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

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

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文件夹下。

源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 "学成在线项目前端(涉及图片、源码、psd图片等资源)"所关联的知识要点主要分布在多个前端开发的核心范畴,涵盖了HTML、CSS、JavaScript以及设计素材的应用。该项目或许是一个在线教育体系完整界面的前端构建实例,整合了构建此类平台所需的所有核心构成部分。 1. **HTML**(HyperText Markup Language)作为一种结构化标记语言,用于网页内容的组织,定义了诸如头部、主体、段落、图像等网页组成部分。在具体项目中,HTML文档负责构建并展示页面的基础架构与内容,例如课程目录展示、用户身份验证模块、课程详细信息展示等单元。 2. **CSS**(Cascading Style Sheets)专注于网页的视觉表现与布局设计,涉及颜色方案、字体选择、尺寸设定、对齐模式等细节。在"学成在线"项目中,CSS技术可能被用于塑造统一的视觉体验,例如按钮外观设计、导航栏布局规划、页面自适应布局实现等,确保在不同设备环境下的兼容性。 3. **JavaScript** 作为一种客户端脚本语言,旨在增强网页的交互性与动态表现。在"学成在线"项目中,JavaScript技术可能应用于用户行为的响应处理,如点击事件触发更多课程内容加载、表单输入验证、页面动态效果呈现、视频播放器控制等操作。此外,它也可能用于实现如AJAX异步数据获取等高级功能,以优化用户使用体验。 4. **PSD图片**代表Photoshop文档格式,通常用于存储设计构思或网页原型设计。在该项目中,PSD文件可能包含了用户界面的设计草图,设计师通过这些文件来规划并预览界面的视觉形态,包括色彩协调、图标...
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值