Start events indicate where a process begins. They are always 'catching' events.
None Start Event:
Used when the process is started manually via the API (e.g., startProcessInstanceByXXX()). It has no sub-elements in XML.
- Extension:
activiti:formKey can be used to reference a form template.
Timer Start Event:
Used to start a process at a specific time or on intervals. These are scheduled as soon as the process is deployed.
Message Start Event:
Starts a process when a specific named message is received.
- Constraint: Message names must be unique across a process definition and across all deployed process definitions.
- Constraint: Message start events are only supported on top-level processes (not embedded sub-processes).
Signal Start Event:
Starts a process when a named signal is fired. All process definitions with a signal start event matching the signal name will be started.
Error Start Event:
Used to trigger an Event Sub-Process. It cannot be used to start a standard process instance.
<!-- None Start Event with formKey extension -->
<startEvent id="request" activiti:formKey="org/activiti/examples/taskforms/request.form" />
<!-- Timer Start Event (repeating cycle) -->
<startEvent id="theStart">
<timerEventDefinition>
<timeCycle>R4/2011-03-11T12:13/PT5M</timeCycle>
</timerEventDefinition>
</startEvent>
<!-- Message Start Event -->
<startEvent id="messageStart" >
<messageEventDefinition messageRef="tns:newInvoice" />
</startEvent>
<!-- Signal Start Event -->
<startEvent id="theStart">
<signalEventDefinition id="theSignalEventDefinition" signalRef="theSignal" />
</startEvent>