Flowable实战(四)BPMN2.0 启动与结束事件

本文详细介绍了BPMN2.0规范下的Flowable流程引擎中的启动事件和结束事件,包括空启动事件、定时器启动事件、消息启动事件、信号启动事件和异常启动事件,以及空结束事件、异常结束事件、终止结束事件和取消结束事件。文章阐述了各类事件的描述、图示、XML表示及其使用方法,强调了Flowable在标准基础上的扩展和自定义选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、BPMN2.0

  BPMN2.0规范是一个标准,开源框架和不同供应商都遵循这份标准,使得最终用户不会因为依赖专有解决方案,而被供应商“绑架”。有了BPMN2.0标准,不同解决方案之间的迁移,变得十分简单平滑。

  缺点则是标准通常是不同观点大量讨论与妥协的结果,有些结构或方法会十分笨重。Flowable在实现规范的基础上进行了功能和使用性扩展。

  • 自定义扩展是在标准方式的基础上进行简化。因此当你决定使用自定义扩展时,仍然可以用标准方式。
  • 使用自定义扩展时,总是通过**flowable:**命名空间前缀,明确标识出XML元素、属性等。
  • Flowable引擎也支持**activiti:**命名空间前缀。

  注:在官方文档中,启动和结束事件已有较详细的介绍,是英文版。启动和结束事件是流程里重要的内容,现在做个汇总整理。

二、启动事件

  启动事件(start event)是流程的起点。

  • 启动事件在XML中,类型由子元素声明来定义。
  • 启动事件保持等候状态,直到特定的触发器被触发。
  • 启动事件是细线图形。

2.1 空启动事件

2.1.1 描述

  空启动事件(none Start Event),指的是未指定触发器,由用户调用的启动事件。

2.1.2 图示

  空启动事件用空心圆圈表示,中间没有图标(也就是说,没有触发器)。

在这里插入图片描述

2.1.3 XML表示

  空启动事件的XML表示格式,就是普通的启动事件声明,而没有任何子元素(其他种类的启动事件都有用于声明其类型的子元素)。

	<startEvent id="start" name="my start event" />
2.1.4 使用方法:
	ProcessInstance processInstance = runtimeService.startProcessInstanceByXXX();
2.1.5 自定义扩展

  formKey: 引用表单定义,用户需要在启动时填写的表单。(目前只需了解到启动事件可以绑定表单即可,详细内容在表单章节中讲解。)

	<startEvent id="request" flowable:formKey="simpleForm" />

2.2 定时器启动事件

2.2.1 描述

  定时器启动事件(timer start event)在指定时间内创建一次或多次的流程实例。

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

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

2.2.2 图示

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

在这里插入图片描述

2.2.3 XML表示

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

定时器定义必须且只能包含下列的一种元素:

  • timeDate。这个元素指定了ISO 8601格式的固定时间。在这个时间就会触发触发器。例如:
    <timerEventDefinition>
        <timeDate>2022-01-11T12:13:14</timeDate>
    </timerEventDefinition>
  • timeDuration。要定义定时器需要等待多长时间再触发,同样使用ISO 8601格式(BPMN 2.0规范要求)。例如(等待10天):
    <timerEventDefinition>
        <timeDuration>P10D</timeDuration>
    </timerEventDefinition>
  • timeCycle。指定重复周期,可用于周期性启动流程。例如(重复三次启动,每次间隔为10小时,到指定时间时结束重复):

        <timerEventDefinition>
            <timeCycle>R3/PT10H/2022-01-12T23:59:59+00:00</timeCycle
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值