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,并引用存在的目标元素:

<sequenceflow id="flow1" sourceRef="theStart" targetRef="theTask" />

条件顺序流: 可以通过设置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)用于对需要人工执行的任务进行建模。当流程执行到达用户任务时,会为指派至该任务的用户或组的任务列表创建一个新任务。

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

  1. java中bpmn流程图_工作流-bpmn流程图说明

    process process表示一整个流程,其中有两个主要属性: id:必填属性,将映射为FlowableProcessDefinition对象的key参数.可以使用RuntimeService中的 ...

  2. java中bpmn流程图_Java学习之BPMN知识以及Activiti的流程部署

    BPMN的介绍 Activiti项目是一项新的基于Apache许可的开源BPM平台,从基础开始构建,旨在提供支持新的BPMN 2.0标准,包括支持对象管理组(OMG),面对新技术的机遇,诸如互操作性和 ...

  3. BPMN流程图在线制作-支持flowable,activit,camunda三种工作流引擎

    项目背景 在后端开发领域,工作流算一块难点. 在实际业务当中.比如OA,CRM 等各种系统.都需要和工作流打交道. 市面上现在主要流程Activit,Flowable, Camunda 三款工作流引擎 ...

  4. BPMN 入门:BPMN 流程图结构

    Visual Paradigm是包含设计共享.线框图和数据库设计新特性的企业项目设计工具.Visual Paradigm公司在其核心产品Visual Paradigm for UML更新到v11.1的 ...

  5. Web工作流(流程图)设计器的方案研究及功能实现之bpmn-js简易教程

    前言 本文以2020年10月为时间节点,功能早就做了,但文章一直没有写 研究过程 根据项目需求,需要实现一个工作流/流程图设计器,并且可配置流转.活动节点.流程的各项属性,也是研究了多个方案 自研方案 ...

  6. 工作流Activiti流程图各元素介绍

    我们常见的工作流流程图,通过各元素的拖拽生成,如下图: 要想生成根据业务需求制定的流程图,首先要知道这些构成元素代表的是什么,这篇就来将一下这些元素的作用.通过activiti集成eclipse,会在 ...

  7. flowable工作流-BPMN流程部署

    BPMN相关基础 在画流程图之前,首先需要了解BPMN的一些基础知识:开始.结束事件.用户任务.任务受让人.任务审核人.网关等一些基础知识,具体可以参考官方文档,介绍的很详细,也比较容易理解.BPMN ...

  8. 绘制一个 Activiti BPMN 流程图

    文章目录 1 摘要 2 流程绘制 2.1 流程绘制 2.2 指定代理人 2.3 保存与导出 2.4 流程图配置文件 3 推荐参考资料 4 Github 源码 ​ ​ 1 摘要 BPMN 的全称是: B ...

  9. bpmn流程图_流程图怎么做?金舟在线流程图教你高逼格制作

    什么是流程图? 流程图(Flow Chart),顾名思义,就是用来直观地描述一个工作过程的具体步骤图,使用图形表示算法的思路是一种极好的方法,因为千言万语不如一张图. 对于我们这样的职场人来说,流程图 ...

最新文章

  1. 8g ubuntu 树莓派4b_3D 打印制造树莓派 4B 平板电脑
  2. Python 中名词
  3. LiveVideoStackCon讲师热身分享 ( 十四 ) —— HEVC标准在客户端上的快速实现方法的研究...
  4. Copycat - 状态
  5. 对于全连接层的理解 全连接层的推导
  6. 无人驾驶三 卡尔曼滤波及无迹卡尔曼滤波的几何意义
  7. mysql中having的例子_有关mysql中having子句对组记录进行筛选的例子
  8. 『免费+批量』英文论文下载神器
  9. 关于2022年电改政策的解读
  10. TSRC挑战赛:WAF之SQL注入绕过挑战实录
  11. centos 开发套件_替代的Laravel套件开发工作流程
  12. 2021SC@SDUSC山东大学软件学院软件工程应用与实践--Ebiten代码分析 源码分析(三)
  13. 异贝,通过移动互联网技术,为中小微实体企业联盟、线上链接、线上线下自定义营销方案推送。案例69
  14. RGBA 编码为 YUV420SP【NEON】
  15. python数据的存储结构是指_python数据结构
  16. 搭建Spark On YARN集群
  17. 我是深圳南山的集体户口,要将我老婆的户口随迁入深圳?没有房产,可以办深圳人才中心的集体户口吗?
  18. Application生命周期
  19. vue实现带文字switch切换简化版
  20. 测试的五个小分类--功能、界面、安全性、兼容性、易用性

热门文章

  1. 浅识K2 blackpearl中SmartObject
  2. 互联网发展从红利到实力,行业内卷“升级”
  3. 计算机五种快捷键,5种常用的电脑截图技巧,你都知道吗?学会赶紧收藏
  4. 用WsysCheck进行手工杀毒/木马
  5. Arduino编译器及环境安装
  6. 五大税种,你知道多少?
  7. ASEMI电磁炉整流桥KBPC2510怎么测量好坏
  8. ios--时间格式化--NSDateFormatter
  9. iOS - 时间日期格式化
  10. python自动批量获取IP地址