flowable实战(二)flowable流程模型管理接口

文章目录

    • 一、流程模型资源
    • 二、流程模型资源的部署:
      • 2.1. 流程资源xml部署:
      • 2.2. zip/bar打包,多个流程资源文件部署:
      • 2.3. Model部署
    • 三、部署有关的数据库表
    • 四、流程模型的常见管理接口
      • 4.1. 部署api
      • 4.2.验证部署
      • 4.3.获取所有部署api
      • 4.4.删除部署api
      • 4.5.部署的挂起与激活

一、流程模型资源

流程定义文件:文件的命名必须是XXXXbpmn20.xml,注意命名规范,后面必须是bpmn20.xml。

流程定义图片:用BPMN2.0规范定义的各种图形描绘(BMPN2.0的符号及画布上的坐标信息),一般是PNG格式。

表单文件:把表单内容保存在一个文件中,扩展名为drl。
规则文件:扩展名为drl。

二、流程模型资源的部署:

用flowable Modeler设计好的流程图后,有多种资源部署方式,分别是

  • 1)导出xml,然后部署到flowable数据库中
  • 2) 多个流程模型定义文件,即xml打包成zip/bar,多个资源文件一起部署。
  • 3)Model方式部署,设计器中的发布就是用的此方法。
  • 4)其它方式部署

2.1. 流程资源xml部署:

/** @Description: 部署工作流程*** @Date: 2019/4/27 1:53* @Param: [filePath, flowName, flowKey]* @Param: [filePath, flowName, flowKey]* @return: com.zjm.gwork.utils.Result**/
public Deployment deployFlow(String filePath) {try {        DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().addClasspathResource(filePath);Deployment deployment = deploymentBuilder.deploy();logger.info("成功:部署工作流成:" + filePath);return deployment;} catch (Exception e) {logger.error("失败:部署工作流:" + e);return null;} // end catch
}

2.2. zip/bar打包,多个流程资源文件部署:

nputStream in = this.getClass().getClassLoader().getResourceAsStream("diagrams/approve.zip"); ZipInputStream zipInputStream = new ZipInputStream(in);  Deployment deployment = processEngine.getRepositoryService()//获取流程定义和部署对象相关的Service  .createDeployment()//创建部署对象 .addZipInputStream(zipInputStream)//使用zip方式部署,将approve.bpmn和approve.png压缩成zip格式的文件  .deploy();//完成部署System.out.println("部署ID:"+deployment.getId());System.out.println("部署时间:"+deployment.getDeploymentTime());  

2.3. Model部署

  通过act_de_model中存放的Modeler内容来部署,例如代码(此代码别人写的,作者不详,但在此感谢此作者):org.flowable.ui.modeler.domain.Model modelData =modelService.getModel(modelId);//获取模型byte[] bytes = modelService.getBpmnXML(modelData);if (bytes == null) {return (new PermissionResult()).getPermissionResult(500,"模型数据为空,请先设计流程并成功保存,再进行发布。");}BpmnModel model=modelService.getBpmnModel(modelData);if(model.getProcesses().size()==0){return (new PermissionResult()).getPermissionResult(500,"数据模型不符要求,请至少设计一条主线流程。");}byte[] bpmnBytes = new BpmnXMLConverter().convertToXML(model);//发布流程String processName = modelData.getName() + ".bpmn20.xml";Deployment  deploy=   repositoryService.createDeployment().name(modelData.getName()).addString(processName, new String(bpmnBytes, "UTF-8")).deploy();return (new PermissionResult()).getPermissionResult(200,"部署成功",deploy);

其它方式部署:
你也可以用代码创建bpmnModel模型,然后用以下代码进行部署: repositoryService.createDeployment().addBpmnModel("bpmnModel", bpmnModel).deploy();

三、部署有关的数据库表

  • act_re_deployment:流程模型部署对象表

    每部署一次生成一条记录,首先生成这条数据,它的id主键将会被act_re_procdef和act_ge_bytearray作为外键。

  • act_re_procdef(流程定义表)

    很多人不理解为什么还要这张表,需要这张表是因为有时候一次部署可能采用zip/bar进行部署,里面是有多份流程定义文件xml的,这时候act_re_deployment只有一条部署信息,但act_re_procdef有多个记录(一个流程定义对应一条),同时act_ge_bytearray也是每一个流程定义对应2条记录。这个表有DEPLOYMENT_ID_外键字段,用它关联act_re_deployment。

  • act_ge_bytearray(资源文件表)

    流程模型资源文件的真正存放地方,它每部署一次就会产生2条记录,一条是关于bpmn规范的文件内容存放在BYTES字段中,另一条是图片信息,采用二进制格式存储。提示:可以部署后解析bpmn文件的内容自动生成流程图,实现流程图的跟踪线路。

  • act_ge_property(主键生成表):部署主键的id生成规则。

  • act_re_model:这张表,在xml进行部署时,它没有内容(flowable应该是放弃了此表改用act_de_model)。

四、流程模型的常见管理接口

4.1. 部署api

4.2.验证部署

验证部署是否成功/可以用来验证部署是否存在 api

4.3.获取所有部署api

4.4.删除部署api

4.5.部署的挂起与激活

(以后还会讲到流程实例的挂起与激活,注意区分)

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

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

相关文章

玩转CocoaPods

摘要: 作者:阿里-移动云-大前端 CocoaPods作为iOS的依赖管理工具,已然成为iOS开发的标准工具(官方给出的数据,超过42W个库和300W个App使用了CocoaPods)。 本篇文章,非讲述CocoaPods的教学文章&a…

一张图看懂阿里云新发布的物联网设备上云神器——HiTSDB + IoT套件

近日,阿里云针对物联网企业遇到的设备认证困难、安全问题突出等问题,发布了HiTSDB IoT 套件的一体化解决方案,能够支持物联设备快速上云,高效设备管理,数据安全,低成本海量数据存储,实时掌握设备…

flowable实战(三)flowable流程实例管理接口

文章目录一、流程实例的管理接口常见功能:1.启动一个流程(即创建一个流程实例)2.本人发起的流程实例3.本人参与的流程实例4.挂起/激活流程实例5.提前终止流程实例(或又叫撤销流程)6.彻底删除流程实例7.流程图查看8.判断…

java jtable不可编辑_java – 使JTable单元不可编辑

当用户双击时,我试图使JTable的所有单元格都不可编辑.我已经阅读了很多论坛帖子,一般的共识是创建一个新的表模型类,扩展DefaultTableModel然后重写方法isCellEditable(int row,int column).我做了所有这些,现在当我运行我的程序(小程序)时,没有任何东西出现在单元格中.注意我这…

Spark精华问答 | 谈谈spark中的宽窄依赖

总的来说,Spark采用更先进的架构,使得灵活性、易用性、性能等方面都比Hadoop更有优势,有取代Hadoop的趋势,但其稳定性有待进一步提高。我总结,具体表现在如下几个方面。1Q:Spark RDD是什么?A&am…

阿里云产品头条(2017年12月刊)

摘要: 一、新产品发布1、云防火墙 商业化 发布云防火墙是一款云环境下的防火墙产品,首创了基于业务可视的结果,实现业务梳理和业务隔离的技术。适用于互联网/通用/游戏/金融/新零售/…

一张图解读阿里云数据管理DMS企业版

摘要: 阿里云数据管理DMS企业版,作为数据管理产品大家族里的新成员,于2017年11月开启公测,今年1月底正式发布商业化版本。 作为业界领先的面向企业的数据库DevOps解决方案,DMS企业版旨在帮助企业安全、高效的使用数据库…

flowable实战(四)flowable任务实例管理接口

文章目录1. 任务办理模式分两种1.1. 一种直接办理模式1.2. 一种需要签收后再办理2. 转办任务3. 委派任务与代办任务4. 待办任务列表5. 待办签收列表6. 抄送任务7. 终止任务(这个功能放到流程实例中)8. 催办任务9. 驳回10. 超时自动跳转完成11. 任务按业务…

架构设计之「 微服务入门 」

戳蓝字“CSDN云计算”关注我们哦!作者 | 奎哥来源 | 不止思考微服务这几年不可谓不火,很多技术团队都开始在自己的项目上引入了微服务。一方面这些团队确实很好的推动了微服务的应用和发展,另一方面也可以看到一些盲目追技术热点的行为所带来…

Java语言中提供了三个日期类_Java语言学习(5)-Java中基础封装类(日期、时间类)...

日期和时间封装类1、 Data类Java日期和时间采用Data类。Data类在java.util包中。Data类构造函数:1) Data() 采用当前时间初始化对象;2) Data(long millisec) 采用1970年1月1日起时间毫秒数来初始化对象。Data类的方法:1) …

提升研发效率 保障数据安全——阿里云宣布数据管理DMS企业版正式商业化

摘要: 阿里云数据管理DMS企业版,作为数据管理产品大家族里的新成员,于2017年11月开启公测,今年1月底正式发布商业化版本。 作为业界领先的面向企业的数据库DevOps解决方案,DMS企业版旨在帮助企业安全、高效的使用数据库…

flowable实战(五)flowable驳回/退回上一步/退回到

一、驳回/退回上一步/退回到(历史某一个节点) 我们经常需要工作流中退回上一步,或者退回历史某一个节点。但由于流程的场景是很复杂的,回退有以下一些场景:1.串行路线上的退回:流程中没有任何网关&#xff…

全链路压测一招搞定,阿里云性能测试铂金版发布

摘要: 阿里云性能测试(Performance Testing Service)是卓越的SaaS性能测试平台,具备强大的分布式压测能力,可模拟海量用户的真实业务场景,让所有性能问题无所遁形。近日,PTS宣布推出了基于阿里双…

老司机教你分析日志:分析用户的地理位置信息

摘要: 地理位置的需求 通常我们分析用户的需求,了解到用户当前位置在哪里非常重要,例如,可以根据用户的地理位置,针对性的推广本地广告。 通常,我们可以在客户端获取定位权限来获取GPS信息。但是如果用户关…

java中的switch的规则_细细讲述Java技术开发的那些不为人知的规则

本文介绍的Java规则的说明分为3个主要级别,中级是平时开发用的比较多的级别,在今后将陆续写出其他的规则。遵守了这些规则可以提高程序的效率、使代码又更好的可读性等。一、在finally方法里关掉input或者output资源方法体里面定义了input或者output流的…

华为,百度豪投,这类程序员要再次上榜了!

前不久百度AI开发者大会,李彦宏高调宣布百度AI技术;同时,AI测试权威软件AI Benchmark的测试数据显示,中国华为研发的7nm旗舰手机芯片麒麟810的AI分数,远远超过美国高通骁龙855了!早前华为就宣布&#xff1a…

认识阿里云的产品逻辑:基础设施必须必业务跑得快

摘要: (本文根据海峰姐与狒哥的E企播报的直播访谈中进行整理解读: 原文来源:E企播报:阿里云、华为存储重压全闪存,英特尔美光劳燕分飞 作者:海峰姐 狒哥 地址:https://mp.weixin.qq.…

flowable实战(六)flowable的意见表和附件表应用

一、act_hi_comment和act_hi_attachment两表表,前者意见表后者是附件表 意见表它里面有一个类型type字段,分别是comment代表意见(这个type可以自定义,例如自定义为:通过/退回/提前终止),缺省提供了comment&#xff0c…

Serverless在游戏、电商行业的一个运用场景示例

摘要: Serverless 是一种架构理念,具有自己的独特的优势和适用场景。本文以使用阿里云函数计算为例,构建一个简单具体的microservice为例,看看这种架构是如何达到快速开发和节约运维成本的。 点此查看原文:http://clic…

java没有这样的元素异常_java – 没有这样的元素异常?

所以这是我的代码:public static void getArmor(String treasure)throws FileNotFoundException{Random randnew Random();Scanner filenew Scanner(new File ("armor.txt"));while(!file.next().equals(treasure)){file.next(); //stack trace error her…