服务热线
135-6963-3175
activiti中主要有开始启动事件StartEvent,结束事件EndEvent
用于一个流程的开始节点
开始启动事件的四种类型:1.空启动事件 2.定时启动事件 3.消息、信号启动事件 4.异常启动事件
StartEvent
TimerStartEvent
MessageStartEvent
SignalStartEvent
一、StartEvent面板介绍
1.General面板
Asynchronous : 是否异步(默认否)表示是否能被异步执行。
Exclusive : 是否排他(默认是)表示同一个流程实例在同一时刻只能由一个人执行该步骤, 跟asynchronous互斥。
2.Main config主面板
Initiator:可以用来记录启动流程人的id(也可以是用户的名称)启动流程之后次属性指定的变量就会自动设置当前人的名称
Form key:可以用来指定空启动事件关联表单
3.Document面板
文档说明
4.Form properties
表单属性
这里的监听器和流程的执行监听器是一样的。
1.空开始事件:空开始事件意味着没有指定启动流程实例的触发条件。
2.消息开始事件:
仅在顶级流程上受支持。嵌入式子流程不支持消息启动事件。
<message id="msg" name="msg"></message> <process> <startEvent id="sid-015F02BE-1F2C-4F71-9C0F-3530DF654D01" activiti:isInterrupting="false"> <messageEventDefinition messageRef="msg"></messageEventDefinition> </startEvent> ... </process> runtimeService.startProcessInstanceByMessage("msg"); runtimeService.startProcessByMessage("abc");
信号开始事件:
类似一种广播模式
一般由信号中间件或后台执行方法发出信号,ref里面有该信号的所有组件将接收到信号,开始执行
<signal id="Signal" name="SignalPTM"></signal> <process id="myProcess" name="My process" isExecutable="true"> <startEvent id="signalstartevent1" name="Signal start"> <signalEventDefinition signalRef="Signal"></signalEventDefinition> </startEvent> .... </process>
3.定时器开始事件:
定时器开始事件当符合时间条件时触发。常用场景,例如:定时查看系统运行情况。
场景:系统每五秒执行一次任务。
<startEvent id="sid-9C504F6F-3405-4549-AA58-AAE4D66EC7E7" activiti:isInterrupting="false"> <timerEventDefinition> <timeCycle>0/5 * * * * ?</timeCycle> </timerEventDefinition> </startEvent>
4.错误开始事件:
错误开始事件可以用来触发一个事件子流程。
错误启动组件只能放在事件子流程中使用
场景:检查端口占用情况
当throw new BpmnError("error");
<startEvent id="sid-AB7EFCB2-C377-4A44-9C82-ACC740872D52" activiti:isInterrupting="false"> <errorEventDefinition errorRef="error"></errorEventDefinition> </startEvent>
二、EndEvent
用于流程的结束
EndEvent
ErrorEndEvent
TerminateEndEvent
CancelEndEvent
持续更新