如上图在保存步骤中添加获取节点信息方法nodes();

方法如下:

  //获取所有节点
    JsonNode modelNode = new ObjectMapper().readTree(repositoryService.getModelEditorSource(model.getId()));
    BpmnModel model1 = new BpmnJsonConverter().convertToBpmnModel(modelNode);
    if(model1 != null) {
       Process process = model1.getProcesses().get(0);//process对象封装了全部的节点、连线、以及关口等信息
       Collection<FlowElement> flowElements = process.getFlowElements();//获得所有节点
       for(FlowElement flowElement : flowElements) {
          if(flowElement instanceof SequenceFlow){return;}//此处判断如果是“连线节点”,则跳过处理。
          System.out.println("flowelement id:" + flowElement.getId() + "  name:" + flowElement.getName() + "   class:" + flowElement.getClass().toString());
          if(flowElement instanceof EndEvent){//此处判断是否为结束节点,对应还有StartEvent开始节点
              String idd = "";
                List<SequenceFlow> alowList = ((org.activiti.bpmn.model.FlowNode) flowElement).getIncomingFlows();//获取入线信息-->获取所有上级节点
                List<SequenceFlow> sequenceFlowList = ((org.activiti.bpmn.model.FlowNode) flowElement).getOutgoingFlows();//获取出线信息-->获取所有下级节点
                for (SequenceFlow sequenceFlow : alowList) {//循环并可以获得所有上级节点id(父节点id),用于存储本地数据库
      sequenceFlow.getSourceRef();//对应父节点和子节点的id

      //其余属性可根据自己的需求来进行查看获取
                }

activiti官网实例项目activiti-explorer之获取流程节点的更多相关文章

  1. activiti官网实例项目activiti-explorer之扩展流程节点属性2

    情景需求:需要查找activiti-explorer项目中获取流程id的方法,然后根据流程id获取相应字段在节点属性中添加内容. 大致流程:拿取整个流程id获取对应表单属性,在页面节点属性中展示对应表 ...

  2. activiti官网实例项目activiti-explorer实操详情

    参考链接:https://www.xuchuruo.cn/Activiti-modeler%E6%95%B4%E5%90%88%E5%88%B0Spring.html 按照链接文章提示操作完成之后,启 ...

  3. activiti官网实例项目activiti-explorer之扩展流程节点属性

    节点中添加“关联表单”属性 1,stencilset.json中加入如下代码 , {    "name" : "approveTypepackage",    ...

  4. activiti官网实例项目activiti-explorer之扩展多选框回显功能

    相关参考链接:https://blog.csdn.net/murongxuesheng/article/details/76147380 回显:确认选中属性ng-model,循环属性ng-repeat ...

  5. Knockout官网实例在MVC下的实现-02,实现计次

    本篇使用Knockout在MVC下实现"Hello World",对应的官网实例在这里. 当次数达到3: View视图 页面包含三个部分:1.显示点击按钮的次数2.button按钮 ...

  6. Knockout官网实例在MVC下的实现-01,实现Hello world

    本篇使用Knockout在MVC下实现"Hello World",对应的官网实例在这里. View视图 Knockout的一个特点是:声明式绑定,即Declarative bind ...

  7. 官网实例详解-目录和实例简介-keras学习笔记四

    官网实例详解-目录和实例简介-keras学习笔记四 2018-06-11 10:36:18 wyx100 阅读数 4193更多 分类专栏: 人工智能 python 深度学习 keras   版权声明: ...

  8. [ActionScript 3.0] Away3D 官网实例

    /* Dynamic tree generation and placement in a night-time scene Demonstrates: How to create a height ...

  9. Android自动化学习笔记之Robotium:学习官网实例

    ---------------------------------------------------------------------------------------------------- ...

随机推荐

  1. Python实例之抓取网易云课堂搜索数据(post方式json型数据)并保存到数据库

    本实例实现了抓取网易云课堂中以‘java’为关键字的搜索结果,经详细查看请求的方式为post,请求的结果为JSON数据 具体实现代码如下: import requests import json im ...

  2. MySQL1-安装

    MySQL 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库, 每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索和复制所保存的数据. 我们也可以将数据 ...

  3. Spring BOOT的学习笔记

    1,静态文件夹src/main/resources/static下的,图片必须放在images文件夹下才能访问,直接放在static下不能访问 2,配置热部署,否则修改下Html,图片都得重启 htt ...

  4. vue- 项目之前端页面搭建1

    项目分析 首页 导航.登录注册栏.轮播图.地板导航登录注册 选项卡免费课 课程分类.筛选.课程列表免费课详情 课程封面视频.优惠活动倒计时.选项卡我的购物车 全选.商品价格统计购买结算 购买成功 我的 ...

  5. 原生JS实现选中的radio变为未选中

    需求如下,radio已经选中,再点击,取消选中状态. 效果如链接:演示地址 直接上代码: <!DOCTYPE html> <html> <head> <met ...

  6. [转]C#调用C++dll

    本文转载至http://www.cnblogs.com/ysharp/archive/2012/05/25/2517803.html 在合作开发时,C#时常需要调用C++DLL,当传递参数时时常遇到问 ...

  7. 关于library cache lock和row cache lock产生的常见原因

    这两个等待事件其实很少出现在top5列表中,一般都没什么印象,在此整理记录以便以后查阅. 常见的library cache lock产生的原因在<高级OWI与Oracle性能调查>这本书和 ...

  8. VS2015 使用GIT同步到github

    https://www.cnblogs.com/newP/p/5732431.html(参考) 拉取(Pull):将远程版本库合并到本地版本库,相当于(Fetch+Meger) 获取(Fetch):从 ...

  9. soapui的简单使用

    工具下载地址:https://www.soapui.org/downloads/soapui.html 名词解释 https://www.cnblogs.com/fcfblog/p/5830205.h ...

  10. servlet下载文件

    package myjava.cn; import java.io.FileInputStream; import java.io.IOException; import java.io.InputS ...