ZPY博客

Activiti7核心概念理解

BpmnModel

BpmnModel其实就是bpmn文件通过xml解析后得到的流程定义模型对象,这个对象里记录了流程定义的所有内容,可以得到每个节点和每个节点的入线和出线信息。

FlowNode

FlowNode即节点的父类,在activiti里节点分为三类,分别是Event(事件),Task(任务),Gateway(网关)。比如开始节点和结束节点就是start event和end event。而任务和网关好理解,就不多说了。简而言之,FlowNode是所有的节点的抽象。这个对象里可以取得节点的基本信息,还包括该节点从哪个节点过来(入线信息IncomingFlows),到哪个节点去(出线信息OutgoingFlows)。

SequenceFlow

SequenceFlow就是流程图的线的相关信息,定义一根线,必须要知道是从哪个节点通过这根线到哪个节点,即源节点到目标节点的信息,而SequenceFlow这个对象可以取到这些信息。而上面提到的IncomingFlows和OutgoingFlows都属于SequenceFlow。

Execution

Execution这个概念一开始比较难以理解。在activiti中,如果没有分支,那么整个流程走下来就是一个Execution。如果有分支,则会存在多个Execution,我的理解是,Execution就是一小块执行的路径。比如分支1走的路径和分支2走的路径。

下面是根据我个人对activiti的理解画的一张概念图,如有不正,欢迎指正。