Activiti Modeler WebEditor 和 BPMN参照对比

259 阅读5分钟

Activiti Modeler WebEditor(v5?)

image.png 网上文档较少,也都很古老,经过考古整理如下:

这版应该是界面布局:上(工具区)、左(组件类目)、右(工作区)、右下(属性区)

Activiti Modeler内部的实现上还是以oryx为图形组件为内核,用angular.js作为界面基本元素的基础组件以及调度oryx的API。

下面开始正文

1️⃣ 流对象(Flow Objects)

流对象是最为基础的概念了,十分重要。

1.1 事件(Events)

事件都是用一个圆圈来代表,影响流程的流动,一般有一个原因(trigger)或者一个影响(result)。标准定义了三种事件:开始,中间和结束。从定义和分类名称上来看也能猜到事件的作用了,控制流程的开始,中间流转和结束,这些控制可能采取触发器(trigger)来完成,或者是导致一个结果(结束或抛出)。

开始事件

Activiti

image.png

BPMN

image.png

中间事件 Intermediate event

中间事件的使用有两种方式:

1.出于两种目的在一个正常的工作流中放置中间事件:中间事件可以用于“catch”事件触发器,或者是“throw”事件触发器。

2.一个中间事件放置于一个活动(Activity)中间,仅能够用于“catch”事件触发器,也就是捕获一个事件,做相应的处理。

Activiti

image.png

BPMN

image.png

结束事件 End Event

结束事件必须是一个顺序流的目标,不能是源头,可以有多个顺序流指向同一个结束流。一个流程可以有多个结束事件,也可以没有结束事件,但是如果存在开始事件,就必须有至少一个结束事件。如果不使用结束事件,那么所有流对象没有任何流出序列(顺序)流(即不同为一个源序列流)来标志流程过程结束。流程不会结束,直到所有的并行路径完成了。

Activiti

image.png

BPMN

image.png

1.2 活动(Activities)

Tasks 任务

task在流程流中是一个原子性的活动,当流程中的作业不能被打断时task被用作一个更细级别的细节。通常,一个终端用户或者应用其执行操作表现为task的形式。task对象在子流程中具有相同的形状,都是长方形有着圆角。

有三种特殊的task图标:循环、多重实例和补偿,一个task可能会有一个或两个这类图标。

image.png

这些任务中,需要人参与自身完成的有Manual Task和User Task。Manual Task是一个不受任何商业流程引擎管理的任务,User Task是。不受管理意味着流程引擎无法追踪其任务的开始和完成。

Sub-Processes 子流程

子流程是一个活动的内部细节建模,使用活动、事件和网关以及序列流。子流程是流程内部的一个图形对象,但是它也能够被打开来展现更低一层的流程。子流程定义了一个上下文范围,可用于属性可见性、事务的范围,异常处理,事件或者是补偿。

Call Activity 调用活动

调用活动确定使用了全局流程或者全局任务的流程中的一点。调用过程用作为包装器来调用全局流程或全局任务执行中。激活调用活动将导致称为全局流程或者全局任务的控制转移。

调用活动必须满足数据要求,同时调用CallableElement返回数据。这意味着在活动的InputOutputSpecification中需要包含这些元素,并且必须精确的和CallableElement的元素匹配。这些元素包括:DataInputs、DataOutputs、InputSets、OutputSets。

Activiti

image.png

BPMN

image.png

1.3网关(Gateways)

网关用于控制序列流如何在一个流程中收敛和发散的交互。如果一个流程不需要控制,那么网关就是非必需的。“网关”一词意味着有一个门机制。允许或不允许通过网关——也就是说,执行到网关的时候,当网关机制被调用,输入可以被合并在一起,或者输出分离成若干部分。

Activiti

image.png

BPMN

image.png

2️⃣数据(Data)

传统的流程建模要求能够模拟物品(物理或信息的)在流程中的创建、操作和执行过程。重要的方面就是能够捕获数据的结构,并且查询或者操作结构。

BPMN

image.png

3️⃣ 连接对象(Connecting Objects)

类型含义3
序列流(SequenceFlow)序列流定义了活动的执行顺序。─────》
联系(Association)将一个文本注释与一个元素联系起来。----------->

4️⃣ 泳道(Swimlanes)

4.1 池子(Pools)

池是一个容器,与其他的池相隔离。通常用在交互流程中。池主要作用于两个独立的实体或者参与者之间的物理划分。各个池中的活动通常是有自身的流程的。因此,顺序流通常不会越过多个池,而消息流是可以的。

4.2 泳道(Lanes)

Pool的子划分,可以垂直或者水平,用来对活动的组织和分类。Lane更加接近我们传统的泳道的概念。Lane常用来将活动按照角色划分,流程可以在一个pool中跨Lane流转,但是在一个pool中一般不会这样(出处与上面相同)。

Activiti

image.png

BPMN

image.png

5️⃣ 工件(Artifacts)

5.1 组(Group)

将一部分元素按逻辑或特定目的进行分组,便于查看和管理,用于解释和描述目的,不会影响流程的流转(出处同上)。

5.2 文字注释(Text Annotation)

提供一些附加性的文本信息给流程图的阅读者。

Activiti

image.png

image.png

BPMN

image.png

image.png

-------------------------我是分割线-----------------------

属性配置相关

上面是一些基础功能的介绍(参考某些大佬们的文档),下面是也很重要的属性配置相关简单的介绍。

Activiti

image.png

BPMN

image.png