activiti流程控制

2020-05-26  本文已影响0人  lv_shun

流程实例与执行流

启动流程,会产生一个流程实例,如果没有分支的情况下,会产生一个执行流,如果存在分支,activiti会生成一个主执行流和分支执行流.

流程实例和执行流对象

ProcessInstance是一个接口,一个ProcessInstance表示一个流程实例,同时ProcessInstance是执行流Execution的子接口,一个实例属于一个执行流,并且ProcessInstance有Execution没有的属性,比如流程定义和业务主键.
流程实例和执行流数据保存在ACT_RU_EXECUTION中,对应映射实体为ExecutionEntityImpl,主要属性包括:

启动流程

RuntimeService提供了几种启动流程方法,返回都是ProcessInstance对象:

startProcessInstanceId方法

startProcessInstanceByKey方法

这里面的key为流程定义文件中id.

startProcessInstanceMessage方法

在流程定义的时候,可以为启动事件添加自定义事件,通过自定义事件来启动流程实例.

流程实例参数

参数设置同任务参数.注意需要指定执行流的id,不是流程实例id,没有分支的情况两个id相同.

流程操作

RuntimeService提供了启动流程、发送信号、中断流程和激活流程等操作.

流程触发

UserTask使用complete来完成,对于receiveTask等流程节点,使用trigger方法来触发,使流程继续
RuntimeService.trigger方法:

此处第二个参数作用于整个流程

触发信号事件

事件节点是在流程中记录事件发生的流程元素.BPMN2.0规范中主要有两种类型的事件:

触发消息事件

除了信号事件节点外,还提供了消息事件节点.可以使用messageEventDefinition元素定义一个消息事件,该元素可以定义在startEvent和intermediateCatchEvent.

中断与激活流程

RuntimeService的suspendProcessInstanceById中断流程实例
RuntimeService的activateProcessInstanceById激活流程实例

删除流程实例

RuntimeService的deleteProcessInstance(String processInstanceId,String reason)

流程查询

RuntimeService的createExecutionQuery查询执行流相关数据
RuntimeService的createProcessInstanceQuery查询流程实例相关数据

上一篇下一篇

猜你喜欢

热点阅读