流程進入點,永遠處於「捕獲」狀態等待觸發器。圖標內部小圖示區分類型,XML 中以子元素區分。
<startEvent id="request" activiti:initiator="xxx" />
initiator 指定流程發起人,對應程式碼:
try {
identityService.setAuthenticatedUserId("bono");
runtimeService.startProcessInstanceByKey("someProcessKey");
} finally {
identityService.setAuthenticatedUserId(null);
}
<startEvent id="start" name="my start event" />activiti:formKey 關聯表單<startEvent id="theStart">
<timerEventDefinition>
<timeCycle>R4/2011-03-11T12:13/PT5M</timeCycle>
</timerEventDefinition>
</startEvent>
runtimeService.startProcessInstanceByMessage(...)<definitions> 宣告 <message>runtimeService.signalEventReceived() 觸發流程終點,永遠「拋出」結果。
<endEvent id="end" name="my end event" /><errorEventDefinition errorRef="myError" />errorRef 可直接引用 errorCode(Activiti 擴充)<terminateEventDefinition activiti:terminateAll="true" />熟悉各類事件適用場景,是設計靈活流程的關鍵。