12 | Start Event must be of type Message, Timer, Rule, Link or Multiple Event or NONE (MUST not be Error, Compensation or Terminate) | |
13 | Intermediate Event must not be a Terminate Event | |
14 | End Event must NOT be a Timer or a Rule Event | |
15 | If the EndEvent is of type "ERROR" the ErrorID attribute must be maintained | (an error end event throws the error – therefore the errorID must be maintained) |
16 | If the result is of type "Link" the linkID must be maintained | |
17 | If an event is of type Rule the RuleExpression must be maintained | |
18 | For intermediate/start Timer Events TimeDate OR TimeCycle MUST be maintained (only one of both, not both together) |
19 | An intermediate compensation event must have an connection of type can trigger from an Activity towards the Intermediate Event and exactly one connection of type activates from the Event towards a Compensation Task | AT_BPMN_COMPENSATION_ACTIVITY |
20 | An intermediate error/cancel event must have a connection of type can trigger from a Transaction sub process towards the Intermediate Event. | |
21 | if a start event is of type "message" an incoming message MUST BE supplied. | |
22 | A can trigger connection MUST NOT have Intermediate Events of type none and link as their targets | |
23 | if a start event has one incoming message flows it MUST BE of type "message" or of type "multiple". | |
24 | if a start event has more than one incoming message flow it MUST BE of type "multiple" | |
25 | A start event MUST be the source of a sequence flow | |
26 | ||
27 | The Cancel Result (end event) MUST NOT be used unless it is placed inside a SubProcess of type "Transaction" | Superior object has to be a transaction, or it has to be placed inside a (expanded) transaction |
28 | if there is an start event inside a BPD which is not placed inside a sub-process there MUST BE at least one end event (which is also not placed inside a sub-process) | |
29 | if an end event is used there MUST NOT be other activities that have no outgoing sequence flow connection (exception: compensation activities/compensation sub-processes (which MUST NOT have an outgoing sequence flow (see separate check))) | (this rule does not consider events which are embedded in sub-processes) |
30 | end events of type "message" MUST have an outgoing message connection | |
31 | End events MUST have an incoming sequence flow | |
32 | Intermediate events of type "NONE" and "LINK" must not be attached to the border of a sub process | (no incoming can trigger connection) |
33 | Intermediate Events of type "MULTIPLE" and "CANCEL" MUST NOT be used in normal sequence flow | (no incoming leads to ,creates and occurs before connection) |
34 | for intermediate events of type "Message" an incoming Message MUST be provided | (incoming message flow, direct or via a message object mandatory) |
35 | Intermediate Events of Type Error which doesn’t have an incoming can trigger connection MUST HAVE the ErrorID Attribute maintained | |
36 | Intermediate events which have an incoming can trigger connection MUST NOT have other incoming sequence flow connections AT THE SAME OCCURENCE. (they may have one other incoming sequence flows at their second occurrences) | leads to ,creates or occurs before connection |
37 | All intermediate events may have a maximum of 1 incoming sequence flows (leads to, creates and occurs before connections), Intermediate Events of type None and Error MUST have exactly one incoming sequence flow | leads to ,creates or occurs before connection |
38 | An intermediate event MUST have exactly one outgoing sequence flow (at least at definition level) | |
38b | Compensation and Link Event must have exactly 2 occurrences | (the flow is transferred from one occurrence towards the other one) |