Activiti工作流框架学习(十)

BPMN绘图控件的相关介绍:

  • 连线
  • 排他网关
  • 并行网关
  • 开始活动节点
  • 接收活动(receiveTask,即等待活动)
  • 用户任务(userTask,即用户操作的任务)

一、连线
1.1 流程图

注意:如果将流程图放置在和java类相同的路径,需要配置



1.2 部署流程定义+启动流程实例


1.3 查询我的个人任务


1.4 完成任务

说明:
1)使用流程变量,设置连线需要和流程变量的名称message,并设置流程变量的值
对应:
流程会按照指定的连线完成任务。

1.5 总结
1、一个活动中可以指定一个或多个SequenceFlow(Start中有一个,End中没有)。
* 开始活动中有一个SequenceFlow
* 结束活动中没有SequenceFlow
* 其他活动中有1条或多条SequenceFlow

2、如果只有一个,则可以不使用流程变量设置codition的名称
如果有多个,则需要使用流程变量设置codition的名称,message表示流程变量的名称,‘不重要’表示流程变量的值,${}中间的内容要使用boolean类型的表达式,
用来判断应该执行的连线。


二、排他网关(ExclusiveGateWay)

2.1 流程图

2.2 部署流程定义+启动流程实例

2.3 查询我的个人任务


2.4 完成我的个人任务

说明:
1)一个排他网关对应一个以上的顺序流

2)由排他网关流出的顺序流都有个conditionExpression元素,在内部维护返回boolean类型的决策结果

3)决策网关只会返回一条结果,当流程执行到排他网关时,流程引擎会自动检索网关出口,从上到下检索如果发现第一条决策结果true或者没有设置条件的(默认
为成立),则流出

4)如果没有任何一个出口符合条件,则抛出异常

5)使用流程变量,设置连线的条件,并按照连线的条件执行工作流,如果没有条件符合的条件,则以默认的连线离开,例如:
则执行连线:

如果使用流程变量设置

则执行连线:


三、并行网关(paralleGateWay)

3.1 流程图

3.2 部署流程定义+启动流程实例

3.3 查询我的个人任务


3.4 完成我的个人任务

说明:
1)一个流程中流程实例只有1个,执行对象有多个

2)并行网关的功能是基于进入和外出的顺序流的:
分支(fork):并行后的所有外出顺序流,为每个顺序流都创建一个并发分支。
汇聚(join):所有到达并行网关,在此等待的进入分支,直到所有进入顺序流的分支都到达以后,流程就会通过汇聚网关。

3)并行网关的进入和外出都是使用相同节点标识

4)如果同一个并行网关有多个进入和多个外出顺序流,它就同时具有分支和汇聚功能。这时,网关会先汇聚所有进入的顺序流,然后再切分成多个并行分支

5)并行网关不会解析条件。即使顺序流中定义了条件,也会被忽略。

6)并行网关不需要是“平衡的”(比如:对应并行网关的进入和外出节点数目不一定相等),如图:


四、开始活动节点

4.1 流程图

4.2 部署流程定义+启动流程实例+查询流程实例+查询历史流程实例


4.3 总结
1)结束节点没有出口
2)其他节点有一个或多个出口
如果有一个出口,则代表是一个单线流程;
如果有多个出口,则代表是开启并发流程;


五、接收活动(receiveTask,即等待活动)

5.1 流程图


5.2 部署流程定义+启动流程实例+执行流程实例+查询流程实例


说明:
1)当前任务(一般指机器自动完成,但需要耗费一定时间的工作)完成后,向后推移流程,可以调用runtimeService.signal(executionId),传递接收执行对象的id.


六、用户任务(userTask,即用户操作的任务)

6.1 个人任务
查看上一章节

6.2 组任务

查看上一章节

发布了436 篇原创文章 · 获赞 121 · 访问量 29万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章