欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Activiti 6.x【12】剩下的一些组件

程序员文章站 2022-06-20 12:18:13
...

剩下的一些组件


主要讲解Gateway,Connection,Artifacts以及Container部分的用法

Gateway

Activiti 6.x【12】剩下的一些组件

关于网关前面多多少少都有涉及。分为四种网关。下面将逐一描述。前三种网关主要以流程变量的方式做判断。

Activiti 6.x【12】剩下的一些组件

ExclusiveGateway

单行网关会执行第一个符合条件的

【官网典例】
Activiti 6.x【12】剩下的一些组件

ParallelGateway

并行网关所有通路都执行。类是java的fork join最后会聚合再执行后续步骤。

【官网典例】
Activiti 6.x【12】剩下的一些组件

InclusiveGateway

包容网关所有通路进行判断通过的话通路全部会执行。

【官网典例】
Activiti 6.x【12】剩下的一些组件

EventGateway

事件网关可以简单理解为与捕获中间事件为条件的单行网关。Activiti不支持基于事件的网关后接收任务。

  • 基于事件的网关必须具有两个或更多传出序列流。
  • 基于事件的网关只能连接到intermediateCatchEvent仅类型的元素。
  • 一个intermediateCatchEvent连接到一个基于事件的网关必须有一个单一的进入顺序流。

【官网典例】

Activiti 6.x【12】剩下的一些组件

Connection

Activiti 6.x【12】剩下的一些组件

SequenceFlow

简而言之就是普通的连接线

MessageFlow

简而言之就是跨泳池的连接线

Activiti 6.x【12】剩下的一些组件

Association

一般可以默认为是补偿的事件连接线或者注释的连接线,叫做关联。
Activiti 6.x【12】剩下的一些组件

Artifacts

Activiti 6.x【12】剩下的一些组件

Annotation

简单来说就是注释

Activiti 6.x【12】剩下的一些组件

Container

容器的意思

Activiti 6.x【12】剩下的一些组件

Pool+Lane

泳池与泳道,主要用于流程结构的划分。

Activiti 6.x【12】剩下的一些组件

EventSubProcess

简单说就是,由事件出发的子流程

Activiti 6.x【12】剩下的一些组件

SubProcess

BPMN 2.0区分了常规子流程(通常也称为嵌入式子流程)和呼叫活动(看起来非常相似)。从概念的角度来看,当流程执行到达活动时,两者都将调用子流程。

不同之处在于,调用活动引用了流程定义外部的流程,而子流程嵌入在原始流程定义中。调用活动的主要用例是具有可从多个其他流程定义调用的可重用流程定义。

当进程执行到达调用活动时,将创建一个新执行,该执行是到达调用活动的执行的子执行。然后,该子执行用于执行子进程,可能在常规进程中创建并行子执行。超级执行一直等到子进程完全结束,然后继续原始进程。

【子流程】

子流程只能有一个无启动事件,不允许其他启动事件类型。子流程必须至少有一个结束事件。请注意,BPMN 2.0规范允许省略子流程中的开始和结束事件,但当前的Activiti实现不支持此操作。

SequenceFlow不能跨越子流程边界。

Activiti 6.x【12】剩下的一些组件

【调用活动】

调用活动在Task中

Activiti 6.x【12】剩下的一些组件Activiti 6.x【12】剩下的一些组件

官网demo
Activiti 6.x【12】剩下的一些组件

Transaction

事务子流程是嵌入式子流程,可用于将多个活动分组到事务。事务是一个逻辑工作单元,它允许对一组单独的活动进行分组,从而使它们共同成功或失败。

执行的可能有三种不同的结果:

如果执行既未被取消也未被危险终止,则执行成功。如果事务子进程成功,则使用传出序列流保留它。如果在此过程中稍后抛出补偿事件,则可以补偿执行成功的事务。

事务是取消,如果执行到达取消结束事件。在这种情况下,所有执行都将被终止并删除。然后将单个剩余执行设置为取消边界事件,从而触发补偿。在补偿完成之后,使用取消边界事件的输出序列流来保留事务子过程。

如果抛出错误事件,则事务以危险结束,而不会在事务子流程的范围内捕获。(如果错误发生在事务子进程的边界上,这也适用。)在这种情况下,不执行补偿。

官网Demo

Activiti 6.x【12】剩下的一些组件

结语

虽然没有什么人看,也算是按照自己期望的把activiti知识都过了一遍,基本的常用Task都已经在帖子里面涉及到了,也都有提及。也算是告一段落了。
相关标签: activiti