Activiti工作流始于开始任务,止于结束任务。结束事件标志着(子)流程的(分支的)结束。结束事件总是抛出(型)事件。这意味着当流程执行到达结束事件时,会抛出一个结果。结果的类型由事件内部的黑色图标描绘。在XML表示中,类型由子元素声明给出。流程终结又可以分为4种情况:空结束任务、错误结束任务、取消结束任务、终结任务,其中空结束任务是最常见的结束任务。

结束任务的类型:

1)空结束事件(none end event)

2)错误结束事件(error end event)

3)取消结束事件(terminate end event)

4)终结事件(Cancel end event)

空结束任务(none end event)

空结束任务是最常见的一种结束任务,也是最简单的一种结束任务,只要把结束任务置于流程的最后节点,流程实例运行到该节点的时候,流程引擎就会结束该流程实例。并没有太多复杂的技术。所以不作太多的介绍。空事件的XML表示格式,为普通结束事件声明,没有任何子元素(其它种类的结束事件都有子元素,用于声明其类型)。

错误结束事件(error end event)

错误结束事件会在流程到达错误结束事件的时候抛出错误,并结束当前的流程分支。错误可以使用匹配的错误边界中间事件 intermediate boundary error event 捕获。如果找不到匹配的错误边界事件,将会抛出异常。

错误结束事件就是自流程或者流程实例的错误结束事件抛出一个bpmn错误。然后被工作流的错误边界事件获取

Java Activiti删除流程实例 activiti 终止流程_Java Activiti删除流程实例

 

Java Activiti删除流程实例 activiti 终止流程_工作流_02

 

 取消结束任务(terminate end event)

取消结束事件可以取消一个事务子流程的执行,同事也只能在子流程中使用。当子流程执行过程中出现异常需要取消时,可以设置一个取消结束事件,当输出流指向到取消结束事件时流程将会中断执行。取消结束事件还可以和取消边界事件配合使用针对取消操作做后续处理。

Java Activiti删除流程实例 activiti 终止流程_XML_03

 

Java Activiti删除流程实例 activiti 终止流程_结束任务事件_04

 

 终止结束事件(terminate end event)

当到达终止结束事件时,当前的流程实例或子流程会被终止。概念上说,当执行到达终止结束事件时,会判断第一个范围 scope(流程或子流程)并终止它。请注意在BPMN 2.0中,子流程可以是嵌入式子流程,调用活动,事件子流程,或事务子流程。有一条通用规则:当存在多实例的调用过程或嵌入式子流程时,只会终止一个实例,其他的实例与流程实例不会受影响。可以添加一个可选属性terminateAll。当其为true时,无论该终止结束事件在流程定义中的位置,也无论它是否在子流程(甚至是嵌套子流程)中,都会终止(根)流程实例。

Java Activiti删除流程实例 activiti 终止流程_结束任务事件_05

 

Java Activiti删除流程实例 activiti 终止流程_工作流_06