工作流实战_02_flowable 流程模板导入

由于群里有些朋友对这个flowable还不是很熟悉,在群里的小伙伴的建议下,师傅(小学生05101)制作一个开源的项目源码,一共大家学习和交流,希望对有帮助,少走弯路 如果有不懂的问题可以入群:633168411 里面都是一些热心肠的人。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

项目地址https://gitee.com/lwj/flowable.git
代码分支flowable-base
视频讲解地址https://space.bilibili.com/485524575/channel/detail?cid=94579
用户名密码
0000001test
0000002test
0000003test
0000004test

文章目录

      • 1. 演示
      • 2. 导入模板的方法

1. 演示

在这里插入图片描述

2. 导入模板的方法

public ModelRepresentation importProcessModel(MultipartFile file, ModelRepresentation model) {String fileName = file.getOriginalFilename();if (fileName != null && (fileName.endsWith(".bpmn") || fileName.endsWith(".bpmn20.xml"))) {try {XMLInputFactory xif = XmlUtil.createSafeXmlInputFactory();InputStreamReader xmlIn = new InputStreamReader(file.getInputStream(), "UTF-8");XMLStreamReader xtr = xif.createXMLStreamReader(xmlIn);BpmnModel bpmnModel = bpmnXmlConverter.convertToBpmnModel(xtr);//模板验证ProcessValidator validator = new ProcessValidatorFactory().createDefaultProcessValidator();List<ValidationError> errors = validator.validate(bpmnModel);if (CollectionUtils.isNotEmpty(errors)){StringBuffer es = new StringBuffer();errors.forEach(ve -> es.append(ve.toString()).append("/n"));throw new BadRequestException("模板验证失败,原因: " + es.toString());}if (CollectionUtils.isEmpty(bpmnModel.getProcesses())) {throw new BadRequestException("No process found in definition " + fileName);}if (bpmnModel.getLocationMap().size() == 0) {BpmnAutoLayout bpmnLayout = new BpmnAutoLayout(bpmnModel);bpmnLayout.execute();}ObjectNode modelNode = bpmnJsonConverter.convertToJson(bpmnModel);org.flowable.bpmn.model.Process process = bpmnModel.getMainProcess();String name = process.getId();if (StringUtils.isNotEmpty(process.getName())) {name = process.getName();}String description = process.getDocumentation();model.setKey(process.getId());model.setName(name);model.setDescription(description);model.setModelType(AbstractModel.MODEL_TYPE_BPMN);User createdBy = SecurityUtils.getCurrentUserObject();//查询是否已经存在流程模板Model newModel = new Model();List<Model> models = modelRepository.findByKeyAndType(model.getKey(), model.getModelType());if (CollectionUtils.isNotEmpty(models)) {Model updateModel = models.get(0);newModel.setId(updateModel.getId());}newModel.setName(model.getName());newModel.setKey(model.getKey());newModel.setModelType(model.getModelType());newModel.setCreated(Calendar.getInstance().getTime());newModel.setCreatedBy(createdBy.getId());newModel.setDescription(model.getDescription());newModel.setModelEditorJson(modelNode.toString());newModel.setLastUpdated(Calendar.getInstance().getTime());newModel.setLastUpdatedBy(createdBy.getId());newModel.setTenantId(model.getTenantId());newModel = modelService.createModel(newModel, SecurityUtils.getCurrentUserObject());return new ModelRepresentation(newModel);} catch (BadRequestException e) {throw e;} catch (Exception e) {LOGGER.error("Import failed for {}", fileName, e);throw new BadRequestException("Import failed for " + fileName + ", error message " + e.getMessage());}} else {throw new BadRequestException("Invalid file name, only .bpmn and .bpmn20.xml files are supported not " + fileName);}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为服务器raid1装系统,服务器raid1系统安装

服务器raid1系统安装 内容精选换一换需要创建两台ECS&#xff0c;一台使用Linux系统安装SAP应用与DB2&#xff0c;另外一台用于安装SAP GUI和作为跳板机&#xff0c;两台ECS详情如下所示&#xff0c;下表均为示例&#xff0c;请根据实际情况购买Avago 3408iMR RAID卡不支持虚拟…

关于大数据你应该了解的五件事儿

摘要&#xff1a; 本文从基本概念、行业趋势、学习途径等几个方面介绍了大数据的相关内容&#xff0c;适合对大数据感兴趣的读者作为入门材料阅读。随着科技的发展&#xff0c;目前已经步入了大数据的时代&#xff0c;很多社交媒体和互联网公司也非常关注大数据这一行业。那么对…

当我们谈AI时,到底该谈什么?

报名倒计时仅剩1天&#xff0c;即刻扫描下方二维码&#xff0c;或者点击【阅读原文】免费报名&#xff0c;让我们不见不散。

前端电子表数字字体_爬虫:如何优雅应对字体反爬

目录THE BEGIN一 什么是字体反爬二 如何解密1.人工解密2.工具解密三 建立映射关系四 解密THE BEGIN网页数据爬取可以简单分为三步&#xff1a;抓取页面&#xff0c;分析页面&#xff0c;存储数据。其中第一二步最为头疼&#xff0c;因为每个站点各有特色&#xff0c;你要不断检…

ECS云资源可视化--资源概览

摘要&#xff1a; 随着越来越多的业务接入云计算&#xff0c;云上拥有的各类资源也越来越多&#xff0c;用户如何时时对其拥有的各类资源进行统计分析成为一个难题。ECS控制台针对这一问题&#xff0c;推出资源概览功能&#xff0c;目前支持实例和存储两种云资源的统计和分析功…

工作流实战_03_flowable 流程模板部署

由于群里有些朋友对这个flowable还不是 很熟悉&#xff0c;在群里的小伙伴的建议下&#xff0c;师傅(小学生05101)制作一个开源的项目源码&#xff0c;一共大家学习和交流&#xff0c;希望对有帮助&#xff0c;少走弯路 如果有不懂的问题可以入群&#xff1a;633168411 里面都是…

为物联网而生:高性能时间序列数据库HiTSDB商业化首发!

摘要&#xff1a; 近日&#xff0c;阿里云宣布高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 正式商业化。 近日&#xff0c;阿里云宣布高性能时间序列数据库 (High-Performance Time Series Database , 简称 HiTSDB) 正式商业化。 先跟大家聊一…

kafka系统设计开篇

戳蓝字“CSDN云计算”关注我们哦&#xff01;来源 | 靳刚同学MQ&#xff08;消息队列&#xff09;是跨进程通信的方式之一&#xff0c;可理解为异步rpc&#xff0c;上游系统对调用结果的态度往往是重要不紧急。使用消息队列有以下好处&#xff1a;业务解耦、流量削峰、灵活扩展…

工作流实战_04_flowable 流程的模板的图片和xml显示

由于群里有些朋友对这个flowable还不是 很熟悉&#xff0c;在群里的小伙伴的建议下&#xff0c;师傅(小学生05101)制作一个开源的项目源码&#xff0c;一共大家学习和交流&#xff0c;希望对有帮助&#xff0c;少走弯路 如果有不懂的问题可以入群&#xff1a;633168411 里面都是…

成功使用机器学习技术的3个技巧

摘要&#xff1a; 本文讲述了3个针对机器学习的小技巧&#xff0c;相信对正在学习机器学习的朋友有所帮助机器学习、自然语言处理(NLP)和认知搜索技术正以高速率被采用&#xff0c;这并不稀奇。随着组织努力创造价值&#xff0c;增强客户体验&#xff0c;遵守严格的规定并使自己…

Spring精华问答 | 如何集成Spring Boot?

Spring框架是一个开源的Java平台,它提供了非常容易,非常迅速地开发健壮的Java应用程序的全面的基础设施支持。今天就让我们一起来看看关于Spring的精华问答吧。1Q&#xff1a;如何在自定义端口上运行Spring Boot应用程序&#xff1f;A&#xff1a;为了在自定义端口上运行Spring…

Andrew Ng深度学习课程笔记

摘要&#xff1a; 本文对Andrew Ng深度学习课程进行了大体的介绍与总结&#xff0c;共包括21个课程。我最近在Coursera上完成了Andrew Ng导师关于新深度学习的所有课程。Ng在解释术语和概念方面做得非常出色。例如&#xff0c;Ng指出&#xff0c;监督深度学习只不过是一种多维曲…

工作流实战_05_flowable 流程定义的挂起与激活

由于群里有些朋友对这个flowable还不是 很熟悉&#xff0c;在群里的小伙伴的建议下&#xff0c;师傅(小学生05101)制作一个开源的项目源码&#xff0c;一共大家学习和交流&#xff0c;希望对有帮助&#xff0c;少走弯路 如果有不懂的问题可以入群&#xff1a;633168411 里面都是…

技嘉注入usb 3.0工具_技嘉怎么安装win10系统 技嘉安装win10系统步骤【图文介绍】...

技嘉笔记本性能配置高端&#xff0c;质量一流&#xff0c;技嘉科技在主板方面也及其出色&#xff0c;因此自身生产的电脑配置也相当专业。若要用技嘉 安装win10系统 要怎么做比较快呢?最简单的方法便是用u盘装系统了&#xff0c;u盘装系统可谓是傻瓜式一键装机&#xff0c;让装…

为什么深度学习没有取代传统的计算机视觉?

摘要&#xff1a; 深度学习大潮为什么淹没传统的计算机视觉技术&#xff1f;听听大牛怎么说~这篇文章是受到论坛中经常出现的问题所创作的&#xff1a;深度学习是否可以取代传统的计算机视觉&#xff1f;这明显是一个很好的问题&#xff0c;深度学习&#xff08;DL&#xff09;…

赋能网安生态通信服务器操作系统,紫光展锐打造操作系统生态,赋能万物互联智能时代...

本周&#xff0c;以“象由芯生科技服务人民”为主题的2020紫光展锐市场峰会重磅开启&#xff0c;广大生态合作伙伴共聚一堂&#xff0c;共话数字世界新未来。在今天举办的“操作系统OS研讨会”上&#xff0c;来自紫光展锐工程一线的架构师带来了一场整个操作系统领域的饕餮盛宴…

如何利用秒级监控进行mongodb故障排查

摘要&#xff1a; 在我们平时的数据库使用当中&#xff0c;监控系统&#xff0c;作为排查故障&#xff0c;告警故障的重要辅助系统&#xff0c;对dba、运维、业务开发同学进行问题诊断、排查、分析有着重要的作用。并且一个监控系统的好坏&#xff0c;也很大程度上影响了能否精…

工作流实战_06_flowable 流程定义的删除

List item 由于群里有些朋友对这个flowable还不是 很熟悉&#xff0c;在群里的小伙伴的建议下&#xff0c;我师傅(小学生05101)制作一个开源的项目源码&#xff0c;一共大家学习和交流&#xff0c;希望对有帮助&#xff0c;少走弯路 如果有不懂的问题可以入群&#xff1a;63316…

百度Q2智能云增长强劲;据悉史上最大 AI 芯片诞生!中兴与奇瑞成立合资公司一起加快开发5G汽车……...

关注并标星星CSDN云计算极客头条&#xff1a;速递、最新、绝对有料。这里有企业新动、这里有业界要闻&#xff0c;打起十二分精神&#xff0c;紧跟fashion你可以的&#xff01;每周三次&#xff0c;打卡即read更快、更全了解泛云圈精彩newsgo go go 华为推出旗下第一款可穿戴智…

python的简单程序代码_小白学编程?从一个简单的程序开始学习Python编程

笔者思虑再三还是决定选择图文&#xff08;因为百家的视频发布画质真不怎么样【囧】&#xff09;。 笔者学习编程的时间也挺长的&#xff0c;因为业余&#xff0c;因为时间不多&#xff0c;各种原因&#xff0c;自学编程的路特别难走。然后笔者发现&#xff0c;自己能为小白贡献…