process

process表示一整个流程,其中有两个主要属性:

id:必填属性,将映射为FlowableProcessDefinition对象的key参数。可以使用RuntimeService中的startProcessInstanceByKey方法,使用id来启动这个流程定义的新流程实例。这个方法总会使用流程定义的最新部署版本。 1ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("myProcess");

请注意这与调用startProcessInstanceById方法不同。startProcessInstanceById方法的参数为Flowable引擎在部署时生成的字符串ID(可以通过调用processDefinition.getId()方法获取)。生成ID的格式为 key:version,长度限制为64字符。请注意限制流程_key_的长度,否则会抛出FlowableException异常,提示生成的ID过长。

name:可选属性,将映射为ProcessDefinition的_name_参数。引擎本身不会使用这个参数。可以用于在用户界面上显示更友好的名字。

startEvent(开始事件)

sequenceFlow(顺序流)

定义: 顺序流(sequence flow)是流程中两个元素间的连接器。在流程执行过程中,一个元素被访问后,会沿着其所有出口顺序流继续执行。这意味着BPMN 2.0的默认是并行执行的:两个出口顺序流就会创建两个独立的、并行的执行路径。

顺序流需要有流程唯一的id,并引用存在的源与目标元素:

条件顺序流: 可以通过设置condition表达式,来决定下一步流出的目标。默认行为是计算其每个出口顺序流上的条件。当条件计算为 **true**时,选择该出口顺序流。如果该方法选择了多条顺序流,则会生成多个 执行,流程会以并行方式继续

网关

网关(gateway)用于控制执行的流向(或者按BPMN 2.0的用词:执行的_“标志(token)”_)。网关可以_消费(consuming)_与_生成(generating)_标志。

网关用其中带有图标的菱形表示。该图标显示了网关的类型。

排他网关

描述 排他网关(exclusive gateway)(也叫异或网关 XOR gateway,或者更专业的,基于数据的排他网关 exclusive data-based gateway),用于对流程中的决策建模。当执行到达这个网关时,会按照所有出口顺序流定义的顺序对它们进行计算。选择第一个条件计算为true的顺序流(当没有设置条件时,认为顺序流为true)继续流程。 > 注 : 在Flowable中出口顺序流的含义与BPMN 2.0中的一般情况不一样。一般情况下,会选择所有条件计算为true的顺序流,并行执行。而使用排他网关时,只会选择一条顺序流。当多条顺序流的条件都计算为true时,会且仅会选择在XML中最先定义的顺序流继续流程。如果没有可选的顺序流,会抛出异常

图示

排他网关用内部带有’X’图标的标准网关(菱形)表示,'X’图标代表_异或_的含义。请注意内部没有图标的网关默认为排他网关。BPMN 2.0规范不允许在同一个流程中混合使用有及没有X的菱形标志。

并行网关

8.4.2. 并行网关

描述

网关也可以建模流程中的并行执行。在流程模型中引入并行的最简单的网关,就是并行网关(parallel gateway)。它可以将执行_分支(fork)_为多条路径,也可以_合并(join)_多条入口路径的执行。

并行网关的功能取决于其入口与出口顺序流:

分支: 所有的出口顺序流都并行执行,为每一条顺序流创建一个并行执行。

合并: 所有到达并行网关的并行执行都会在网关处等待,直到每一条入口顺序流都到达了有个执行。然后流程经过该合并网关继续。

> 请注意,如果并行网关同时具有多条入口与出口顺序流,可以同时具有分支与合并的行为。在这种情况下,网关首先合并所有入口顺序流,然后分裂为多条并行执行路径。

与其他网关类型有一个重要区别:并行网关不计算条件。如果连接到并行网关的顺序流上定义了条件,会直接忽略该条件。

图示

并行网关,用内部带有’加号’图标的网关(菱形)表示,代表_与(AND)_的含义。

包容网关

可以把 包容网关(inclusive gateway) 看做排他网关与并行网关的组合。与排他网关一样,可以在包容网关的出口顺序流上定义条件,包容网关会计算条件。然而主要的区别是,包容网关与并行网关一样,可以同时选择多于一条出口顺序流。

包容网关的功能取决于其入口与出口顺序流:

分支: 流程会计算所有出口顺序流的条件。对于每一条计算为true的顺序流,流程都会创建一个并行执行。

合并: 所有到达包容网关的并行执行,都会在网关处等待。直到每一条具有流程标志(process token)的入口顺序流,都有一个执行到达。这是与并行网关的重要区别。换句话说,包容网关只会等待可以被执行的入口顺序流。在合并后,流程穿过合并并行网关继续。

请注意,如果包容网关同时具有多条入口与出口顺序流,可以同时具有分支与合并的行为。在这种情况下,网关首先合并所有具有流程标志的入口顺序流,然后为每一个条件计算为true的出口顺序流分裂出并行执行路径。 > 包容网关的汇聚行为比并行网关更复杂。所有到达包容网关的并行执行,都会在网关等待,直到所有“可以到达”包容网关的执行都“到达”包容网关。 判断方法为:计算当前流程实例中的所有执行,检查从其位置是否有一条到达包容网关的路径(忽略顺序流上的任何条件)。如果存在这样的执行(可到达但尚未到达),则不会触发包容网关的汇聚行为。

基于事件的网关

基于事件的网关(event-based gateway)提供了根据事件做选择的方式。网关的每一条出口顺序流都需要连接至一个捕获中间事件。当流程执行到达基于事件的网关时,与等待状态类似,网关会暂停执行,并且为每一条出口顺序流创建一个事件订阅。

请注意:基于事件的网关的出口顺序流与一般的顺序流不同。这些顺序流从不实际 执行。相反,它们用于告知流程引擎:当执行到达一个基于事件的网关时,需要订阅什么事件。有以下限制:

userTask(用户任务)

用户任务(user task)用于对需要人工执行的任务进行建模。当流程执行到达用户任务时,会为指派至该任务的用户或组的任务列表创建一个新任务。

java中bpmn流程图_工作流-bpmn流程图说明相关推荐

  1. java中override快捷键_【基础回溯1】面试又被 Java 基础难住了?推荐你看看这篇文章。...

    本文已经收录自 https://github.com/Snailclimb/JavaGuide  (59k+ Star):[Java学习+面试指南] 一份涵盖大部分Java程序员所需要掌握的核心知识. ...

  2. 在JAVA中 以下程序_在Java中,以下程序的输出结果是()_学小易找答案

    [单选题]运行以下Java代码,说法正确的是( ). [单选题]在Java中,以下程序的输出结果是() [单选题]利用"出声"的方式向学生展示教师分析问题的过程与方法的教学方法是_ ...

  3. confluence 制作流程图_软件需求分析流程图绘制方法

    怎么利用软件绘制结构化程序流程图呢?下面小编就与大家分享一下借助流程图工具绘制编程语言结构化流程图的具体方法步骤,希望能帮助大家. ​ 方法/步骤 1 如果想借助流程图工具绘制结构化程序流程图,我们需 ...

  4. java 中阿拉伯语_电子游戏中的阿拉伯代表

    java 中阿拉伯语 表示 (REPRESENTATION) Growing up in the Middle East, video games played a significant role ...

  5. ppt如何旋转流程图_几种流程图详解.ppt

    几种流程图详解 业务流程图 数据流程图 功能结构图 信息系统流程图 系统分析 --管理业务流程图 系统分析 --管理业务流程图 例:招生业务流程图示例 例:招生录取业务流程图示例 系统分析 --数据流 ...

  6. confluence 制作流程图_什么叫做流程图?如何制作规范的流程图?

    一开始,小编对于流程图可以说也是一脸懵逼的.但是呢对于不了解的东西总是有一种执念想要去"追究到底"的,从搜索流程这个词开始了解它的标准意思.再进一步去搜索不少流程图,就觉得其实还是 ...

  7. java 中的单元测试_浅谈Java 中的单元测试

    单元测试编写 Junit 单元测试框架 对于Java语言而言,其单元测试框架,有Junit和TestNG这两种, 下面是一个典型的JUnit测试类的结构 package com.example.dem ...

  8. java中char类型_【考点】JAVA中的char类型

    写在前面: 本周,在我们同学的刷题群里,一位同学上传了一道关于char的题,引起的不少同学的热议.热议的同时,我们也发现近乎一半的同学对char的基础知识一知半解,今天我们给大家一个浅显易懂的解释,赶 ...

  9. java中的缩小_在Java中,加宽转换(隐式)和缩小转换(显式)之间有什么区别?...

    Java中的类型转换用于将一种类型的对象或变量转换为另一种类型.当我们将一种数据类型转换或分配给另一种数据类型时,它们可能不兼容.如果合适的话,它将顺利进行,否则会丢失数据. Java中的类型转换类型 ...

最新文章

  1. SkyWalking之高级玩法
  2. java多数据源事务管理_Spring中实现多数据源事务管理 - CSDN博客
  3. NIST发布企业移动应用安全建议参考指南
  4. 上市开放式基金(LOF)
  5. 图片高亮处理编程_GMT语法高亮-智能提示-代码补全插件
  6. beyond compare类似软件_你用过最好用的截图软件是哪一款
  7. Android 获取系统或SDCARD剩余空间信息(转)
  8. 惊喜不止小米9!小米又一4800万新机确认:不给友商机会?
  9. 计算机科学与量子信息处理,量子计算交叉学科
  10. Linux操作系统使用基础05:Linux磁盘与文件系统管理
  11. [Luogu1216][USACO1.5]数字三角形 Number Triangles
  12. Linux没有可用软件包 p7zip、 p7zip-plugins
  13. 淘宝母婴商品分析-Python
  14. 【机器学习】信息熵基础学习
  15. 英语词根学习笔记(前六章)——《英语词根与单词的说文解字》李平武
  16. five86-1靶机渗透攻略
  17. 欧姆龙NX1P2编程学习(1)-编写功能块注意事项
  18. STM32片内FLASH烧写错误导致ST-LINK烧录不进程序的问题解决过程
  19. 为什么调用Dao层会报空指针异常
  20. graphpad分组百分比柱状图_Graphpad Prism 8.0绘制分组散点图与柱状图共存图

热门文章

  1. android 行为采集,android自定义(无埋点)收集用户行为统计 (非常方便 可以自己拓展)...
  2. 安卓系统属性 ro、persist、net
  3. 关于伟大的计算机的作文600字,伟大的科技作文600字
  4. 2022 世界青年科学家峰会——开放与创新的青年元宇宙|AI TIME 35
  5. css鼠标经过样式记录
  6. 大厂架构经验之谈:支付系统高可用架构设计实战,可用性高达99.999!
  7. 环保数采仪 数据主动上报
  8. 快速性分析 一阶、二阶系统响应
  9. 通过爬取微博评论,发现好看的小姐姐...
  10. 神经网络算法有哪些模型,神经网络算法通俗解释