Flowable学习笔记(二、BPMN 2,高级Java程序员需要掌握的技能

4.1.1.2、定时器启动事件
  • 描述:定时器启动事件(timer start event)在指定时间创建流程实例。在流程只需要启动一次,或者流程需要在特定的时间间隔重复启动时,可以使用定时器启动事件。

请注意:子流程不能有定时器启动事件。

请注意:定时器启动事件,在流程部署的同时就开始计时。不需要调用startProcessInstanceByXXX就会在时间启动。调用startProcessInstanceByXXX时会在定时启动之外额外启动一个流程。

请注意:当部署带有定时器启动事件的流程的更新版本时,上一版本的定时器作业会被移除。这是因为通常并不希望旧版本的流程仍然自动启动新的流程实例。

  • 图示:定时器启动事件,用其中有一个钟表图标的圆圈来表示。

在这里插入图片描述

  • XML表示:定时器启动事件的XML表示格式,是普通的启动事件声明加上定时器定义子元素。

示例:流程会启动4次,间隔5分钟,从2011年3月11日,12:13开始

R4/2011-03-11T12:13/PT5M

示例:流程会在设定的时间启动一次

2011-03-11T12:13:14

4.1.1.3、消息启动事件
  • 描述:

消息启动事件(message start event)使用具名消息启动流程实例。消息名用于选择正确的启动事件。

当部署具有一个或多个消息启动事件的流程定义时,会做如下判断:

>> 给定流程定义中,消息启动事件的名字必须是唯一的。一个流程定义不得包含多个同名的消息启动事件。如果流程定义中有两个或多个消息启动事件引用同一个消息,或者两个或多个消息启动事件引用了具有相同消息名字的消息,则Flowable会在部署这个流程定义时抛出异常。

>> 在所有已部署的流程定义中,消息启动事件的名字必须是唯一的。如果在流程定义中,一个或多个消息启动事件引用了已经部署的另一流程定义中消息启动事件的消息名,则Flowable会在部署这个流程定义时抛出异常。

>> 流程版本:在部署流程定义的新版本时,会取消上一版本的消息订阅,即使新版本中并没有这个消息事件)。

  • 图示:消息启动事件用其中有一个消息事件标志的圆圈表示。这个标志并未填充,用以表示捕获(接收)行为。

在这里插入图片描述

  • XML表示:

消息启动事件的XML表示格式,为普通启动事件声明加上messageEventDefinition子元素:

<definitions id=“definitions”

xmlns=“http://www.omg.org/spec/BPMN/20100524/MODEL”

xmlns:flowable=“http://flowable.org/bpmn”

targetNamespace=“Examples”

xmlns:tns=“Examples”>

4.1.1.4、信号启动事件
  • 描述:

信号启动事件(signal start event),使用具名信号启动流程实例。这个信号可以由流程实例中的信号抛出中间事件(intermediary signal throw event),或者API(runtimeService.signalEventReceivedXXX方法)触发。两种方式都会启动所有拥有相同名字信号启动事件的流程定义。

请注意可以选择异步还是同步启动流程实例。

需要为API传递的signalName,是由signal元素的name属性决定的名字。signal元素由signalEventDefinition的signalRef属性引用。

  • 图示:

信号启动事件用其中有一个信号事件标志的圆圈表示。这个标志并未填充,用以表示捕获(接收)行为。

在这里插入图片描述

  • XML表示:

信号启动事件的XML表示格式,为普通启动事件声明,加上signalEventDefinition子元素:

4.1.1.5、错误启动事件
  • 描述:

错误启动事件(error start event),可用于触发事件子流程(Event Sub-Process)。错误启动事件不能用于启动流程实例。

错误启动事件总是中断。

  • 图示:

错误启动事件用其中有一个错误事件标志的圆圈表示。这个标志并未填充,用以表示捕获(接收)行为。

在这里插入图片描述

  • XML表示:

错误启动事件的XML表示格式,为普通启动事件声明加上errorEventDefinition子元素:

4.1.2、结束事件

结束事件(end event)标志着流程或子流程中一个分支的结束。结束事件总是抛出(型)事件。这意味着当流程执行到达结束事件时,会抛出一个结果。结果的类型由事件内部的黑色图标表示。在XML表示中,类型由子元素声明给出。

4.1.2.1、空结束事件
  • 描述:

“空”结束事件(none end event),意味着当到达这个事件时,没有特别指定抛出的结果。因此,引擎除了结束当前执行分支之外,不会多做任何事情。

  • 图示:

空结束事件,用其中没有图标(没有结果类型)的粗圆圈表示。

在这里插入图片描述

  • xml表示:

空事件的XML表示格式为普通结束事件声明,没有任何子元素(其它种类的结束事件都有子元素,用于声明其类型)。

4.1.2.2、错误结束事件
  • 描述:

当流程执行到达错误结束事件(error end event)时,结束执行的当前分支,并抛出错误。这个错误可以由匹配的错误边界中间事件捕获。如果找不到匹配的错误边界事件,将会抛出异常。

  • 图示:

错误结束事件事件用内部有一个错误图标的标准结束事件(粗圆圈)表示。错误图标是全黑的,代表抛出的含义。

在这里插入图片描述

  • XML表示:

错误结束事件表示为结束事件,加上errorEventDefinition子元素:

errorRef属性可以引用在流程外定义的error元素:

4.1.2.3、终止结束事件
  • 描述:

当到达终止结束事件(terminate end event)时,当前的流程实例或子流程会被终止。也就是说,当执行到达终止结束事件时,会判断第一个范围 scope(流程或子流程)并终止它。在BPMN 2.0中,子流程可以是嵌入式子流程,调用活动,事件子流程,或事务子流程。有一条通用规则:当存在多实例的调用过程或嵌入式子流程时,只会终止一个实例,其他的实例与流程实例不会受影响。

可以添加一个可选属性terminateAll。当其为true时,无论该终止结束事件在流程定义中的位置,也无论它是否在子流程(甚至是嵌套子流程)中,都会终止(根)流程实例。

  • 图示:

终止结束事件用内部有一个全黑圆的标准结束事件(粗圆圈)表示。

在这里插入图片描述

  • xml表示:

终止结束事件,表示为结束事件,加上terminateEventDefinition子元素。

terminateAll属性是可选的(默认为false)。

<endEvent id="myEndEvent >

4.1.2.4、取消结束事件
  • 描述:

取消结束事件(cancel end event)只能与BPMN事务子流程(BPMN transaction subprocess)一起使用。

  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用\[1\],在新版的IDEA 2020及以上版本中,actiBPM插件已经不再支持。而Activiti BPMN visualizer是一款支持编辑和浏览工作流设计图的IDEA插件,但对于工作流设计中的网关设计支持不太友好。所以,如果你想绘制bpmn文件,可以考虑使用Camunda Modeler软件来协助设计整体工作流程图,根据引用\[2\],你可以在文件的任意位置点击右键,选择"view bpmn(Activiti)Diagram"来查看和编辑bpmn文件。另,根据引用\[3\],如果你想通过模型id查找并获取xml流程图,可以使用repositoryService.getModelEditorSource(id)接口,但是这种方法只能获取最新流程定义的版本图。如果你需要查看每个流程版本的流程图,你需要通过流程定义id获取对应的BpmnModel,然后使用BpmnXMLConverter进行转换。 #### 引用[.reference_title] - *1* *2* [【idea中Activiti BPMN visualizer插件和Camunda Modeler工作流设计器的简单使用】](https://blog.csdn.net/weixin_43025151/article/details/125967784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [bpmn-js显示FlowableBpmnModel转换为xml文档的流程图排他网关丢失中间“X”](https://blog.csdn.net/honor_zhang/article/details/129891089)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值