BPMN-I Validation
111801
|
Message
|
Action
|
|
The attribute ‘startEvent/@isInterrupting’ is NOT PART of the Analytic subclass. |
Reset the Start Event to its default ‘Interrupting’ state. |
|
|
|
123801
|
Message
|
Action
|
|
The attribute ‘callActivity/@calledElement’ MUST point to either a process or global task. |
Call a process or global task. |
|
|
|
191801
|
Message
|
Action
|
|
Only ‘flowNodes’ in the Analytic subclass are allowed in models conforming to the BPMN-I Profile. |
Remove the non conforming element. |
|
|
|
211801
|
Message
|
Action
|
|
A Start Event MAY NOT have incoming sequence flows. |
Remove incoming sequence flows. |
|
|
|
211802
|
Message
|
Action
|
|
A Start Event MAY NOT have outgoing message flows. |
Remove outgoing sequence flows. |
|
|
|
211803
|
Message
|
Action
|
|
A Start Event in a Sub-Process MUST have ‘None’ trigger. |
Set the event type to ‘None’. |
|
|
|
213801
|
Message
|
Action
|
|
A Boundary Event MUST have exactly one outgoing Sequence Flow. |
Remove unnecessary outgoing sequence flows. |
|
|
|
213802
|
Message
|
Action
|
|
A Boundary Event MAY NOT have incoming sequence flows. |
Remove all incoming sequence flows. |
|
|
|
213803
|
Message
|
Action
|
|
Link pair off-page connectors are NOT SUPPORTED by the BPMN-I Profile. |
Move the Link Events to the same page. |
|
|
|
380801
|
Message
|
Action
|
|
A model MAY NOT contain two or more participants in the same ‘targetNamespace’ with the same ‘name’. |
Rename the participants or use the re-use function to make them identical. |
|
|
|
391801
|
Message
|
Action
|
|
If a process level uses lanes, all its ‘flowNodes’ MUST be referenced by one lane or another. |
Move all ‘flowNodes’ into a lane. |
|
|
|
BPMN 2.0 Violation
100601
|
Message
|
Action
|
|
This element’s label has not yet been localized in every language. |
Complete localization for the missing languages. |
|
|
|
100602
|
Message
|
Action
|
|
This element is not part of the BPMN Descriptive Conformance Sub-Class (Level 1). |
Remove the element or change the conformance sub-class in the document properties. |
|
|
|
100603
|
Message
|
Action
|
|
This element is not part of the BPMN Analytic Conformance Sub-Class (Level 2). |
Remove the element or change the conformance sub-class in the document properties. |
|
|
|
100604
|
Message
|
Action
|
|
This element is not part of the BPMN Common Executable Conformance Sub-Class. |
Remove the element or change the conformance sub-class in the document properties. |
|
|
|
100605
|
Message
|
Action
|
|
In order to support Diagram Interchange, identicals should not be placed on the same page. |
If you are interested in Diagram Interchange, remove identicals on the same page. |
|
|
|
113603
|
Message
|
Action
|
|
If the Trigger is a Link, then the LinkName MUST be entered. |
Enter a LinkName for the Link Event. |
|
|
|
113604
|
Message
|
Action
|
|
An Error Boundary Event cannot be non-interrupting. |
Set the attribute to interrupting. |
|
|
|
123601
|
Message
|
Action
|
|
A Call Activity SHOULD call a Global Element. |
Call a Global Element. |
|
|
|
154601
|
Message
|
Action
|
|
A Data Store SHOULD be referenced. |
Reference a Data Store. |
|
|
|
155601
|
Message
|
Action
|
|
A Data Object SHOULD be referenced. |
Reference a Data Object. |
|
|
|
160601
|
Message
|
Action
|
|
Target and Source MUST NOT be the same. |
Verify the connection. |
|
|
|
161603
|
Message
|
Action
|
|
A Sequence Flow MUST have a Target and a Source. |
Add both a Target and a Source. |
|
|
|
162601
|
Message
|
Action
|
|
A Message Flow MUST have a Target and a Source. |
Add both a Target and a Source. |
|
|
|
163601
|
Message
|
Action
|
|
An Association MUST have a Target and a Source. |
Add both a Target and a Source. |
|
|
|
164601
|
Message
|
Action
|
|
A Data Association MUST have a Target and a Source. |
Add both a Target and a Source. |
|
|
|
172601
|
Message
|
Action
|
|
A Conversation Link MUST have a Target and a Source |
Add both a Target and a Source. |
|
|
|
211601
|
Message
|
Action
|
|
A Start Event MUST NOT be a target for a Sequence Flow. It MUST NOT have incoming Sequence Flow. |
Remove any incoming Sequence Flow. |
Detail |
An exception to this is when a Start Event is used in an Expanded Sub-Process and is attachd to the boundary of that Sub-Process. |
|
211602
|
Message
|
Action
|
|
The Condition attribute for all outgoing Sequence Flow MUST be set to None. |
Set the Condition attribute for all outgoing Sequence Flow to “None”. |
|
|
|
211603
|
Message
|
Action
|
|
The Trigger attribute of the Start Event MUST be set to “Message” or “Multiple” if there are any incoming Message Flow. |
Set the Trigger to “Message” or “Multiple”. |
|
|
|
211604
|
Message
|
Action
|
|
The Start Event MUST be set to “Multiple” if there are more than one incoming Message Flow. |
Set the Trigger to “Multiple”. |
|
|
|
211605
|
Message
|
Action
|
|
A Start Event MUST NOT be a source for Message Flow. |
Remove any outgoing Message Flow. |
|
|
|
211606
|
Message
|
Action
|
|
A Start Event MUST be a source for Sequence Flow. |
Add an outgoing Sequence Flow. |
|
|
|
211607
|
Message
|
Action
|
|
An Interrupting Start Event of an Event Sub-Process MUST be of the following type: Message, Timer, Escalation, Error, Cancel, Compensation, Conditional, Signal, Multiple, Parallel Multiple. |
Use a different Start Event. |
|
|
|
211608
|
Message
|
Action
|
|
The Compensation Start Event MAY NOT be used in a Top-Level Process. |
Use a different Start Event. |
|
|
|
211609
|
Message
|
Action
|
|
A Non-Interrupting Start Event of an Event Sub-Process MUST be of the following type: Message, Timer, Escalation, Conditional, Signal, Multiple, Parallel Multiple. |
Use a different Start Event. |
|
|
|
211610
|
Message
|
Action
|
|
The Error Start Event MAY NOT be used in a Top-Level Process. |
Use a different Start Event. |
|
|
|
211611
|
Message
|
Action
|
|
The Escalation Start Event MAY NOT be used in a Top-Level Process. |
Use a different Start Event. |
|
|
|
211613
|
Message
|
Action
|
|
A Start Event in a Sub-Process MUST have a None trigger. |
Set the trigger to None or consider using an Event Sub-Process instead. |
|
|
|
212601
|
Message
|
Action
|
|
The Cancel End Event MUST only be used within a Transaction Sub-Process and, thus, MAY NOT be used in any other type of Sub-Process or Process. |
Use a different End Event. |
|
|
|
212602
|
Message
|
Action
|
|
An End Event MUST be a target for Sequence Flow. |
Add an incoming Sequence Flow. |
|
|
|
212603
|
Message
|
Action
|
|
An End Event MUST NOT be a source for Sequence Flow; that is, there MUST NOT be outgoing Sequence Flow. |
Remove any outgoing Sequence Flow. |
Detail |
An exception to this is when an End Event is used in an Expanded Sub-Process and is attached to the boundary of that Sub-Process. In this case, a Sequence Flow from the higher-level Process MAY connect from that End Event in lieu of connecting from the actual boundary of the Sub-Process. |
|
212604
|
Message
|
Action
|
|
An End Event MUST NOT be the target for Message Flow. |
Remove any incoming Message Flow. |
|
|
|
212606
|
Message
|
Action
|
|
An End Event with outgoing Message Flow must have “Message” result. |
Set the result to “Message”. |
|
|
|
212607
|
Message
|
Action
|
|
The Error End Event MUST only be used within a Sub-Process and, thus, MAY NOT be used in a top level process. |
Use a different End Event. |
|
|
|
212608
|
Message
|
Action
|
|
The Escalation End Event MUST only be used within a Sub-Process and, thus, MAY NOT be used in a top level process. |
Use a different End Event. |
|
|
|
213601
|
Message
|
Action
|
|
The catch Cancel Intermediate Event MUST only be attached to the boundary of a Transaction Sub-Process. |
Use a different Event or convert the Sub-Process to a Transaction Sub-Process. |
|
|
|
213604
|
Message
|
Action
|
|
An Intermediate Event MUST be a source of a Sequence Flow. |
Add an outgoing Sequence Flow. |
Detail |
Exceptions are Source Link Intermediate Events and Boundary Compensation Intermediate Events. |
|
213605
|
Message
|
Action
|
|
A Boundary Intermediate Event MUST NOT be a target for Sequence Flow. |
Remove any incoming Sequence Flow. |
|
|
|
213606
|
Message
|
Action
|
|
An Intermediate Event MUST be a target of a Sequence Flow. |
Add an incoming Sequence Flow. |
Detail |
Only if used in normal flow and the Trigger is None, Message, Timer, Compensation, Conditional, Link or Signal. |
|
213607
|
Message
|
Action
|
|
Cancel, Error, Multiple, and Parallel Multiple Intermediate Events MUST NOT be used in normal flow. |
Use the Intermediate Event on the boundary of an Activity. |
|
|
|
213609
|
Message
|
Action
|
|
The Catch None Intermediate Event MUST only be used in Normal Flow and, thus, MAY NOT be attached to the boundary of an Activity. |
Use a different Intermediate Event. |
|
|
|
213615
|
Message
|
Action
|
|
None and Link Intermediate Events MUST NOT be attached to the boundary of an Activity. |
Use a different Intermediate Event. |
|
|
|
213616
|
Message
|
Action
|
|
The Catch Cancel Intermediate Event MUST only be attached to the boundary of a Transaction Sub-Process and, thus, MAY NOT be used in Normal Flow. |
Use the Catch Cancel Intermediate Event on the boundary of a Transaction Sub-Process. |
|
|
|
213617
|
Message
|
Action
|
|
The catch Compensation Intermediate Event MUST only be attached to the boundary of an Activity and, thus, MAY NOT be used in Normal Flow. |
Use a different Intermediate Event. |
|
|
|
213618
|
Message
|
Action
|
|
A Link Intermediate Catch Event MUST NOT be the target of a Sequence Flow. |
Remove any incoming Sequence Flow. |
|
|
|
213619
|
Message
|
Action
|
|
A Link Intermediate Throw Event MUST NOT be the source of a Sequence Flow. |
Remove any outgoing Sequence Flow. |
|
|
|
213620
|
Message
|
Action
|
|
A Link Intermediate Throw Event MUST be a target of a Sequence Flow. |
Add an incoming Sequence Flow. |
|
|
|
213621
|
Message
|
Action
|
|
A Message Intermediate Catch Event MUST NOT be a source of a Message Flow. |
Remove any outgoing Message Flow. |
|
|
|
213622
|
Message
|
Action
|
|
A Message Intermediate Throw Event MUST NOT be a target of a Message Flow. |
Remove any incoming Message Flow. |
|
|
|
213623
|
Message
|
Action
|
|
A Link Intermediate Catch Event MUST be a source of a Sequence Flow. |
Add an outgoing Sequence Flow. |
|
|
|
213626
|
Message
|
Action
|
|
The Trigger attribute of the Intermediate Catch Event MUST be set to “Message” or “Multiple” if there are any incoming Message Flow. |
Set the trigger to “Message” or “Multiple”. |
|
|
|
213627
|
Message
|
Action
|
|
The Trigger attribute of the Intermediate Throw Event MUST be set to “Message” or “Multiple” if there are any outgoing Message Flow. |
Set the trigger to “Message” or “Multiple”. |
|
|
|
213628
|
Message
|
Action
|
|
An Intermediate Event with incoming Message Flow must be catching type with Message or Multiple trigger. |
Make catching type and set the trigger to “Message” or “Multiple”. |
|
|
|
213629
|
Message
|
Action
|
|
An Intermediate Event with outgoing Message Flow must be throwing type with Message or Multiple trigger. |
Make throwing type and set the trigger to “Message” or “Multiple”. |
|
|
|
220601
|
Message
|
Action
|
|
If a conditional Sequence Flow is used from a source Activity, then there MUST be at least one other outgoing Sequence Flow from that Activity. |
Add an additional outgoing Sequence Flow. |
|
|
|
220602
|
Message
|
Action
|
|
Compensation Activities MUST NOT be a source or a target for Sequence Flow. |
Remove any incoming or outgoing Sequence Flow. |
|
|
|
221603
|
Message
|
Action
|
|
An Event Sub-Process MUST NOT have any incoming or outgoing Sequence Flow. |
Remove any incoming or outgoing Sequence Flow. |
|
|
|
221604
|
Message
|
Action
|
|
The None Start Event MAY NOT be used for an Event Sub-Process. |
Use a different Start Event. |
|
|
|
221605
|
Message
|
Action
|
|
A Message Flow SHOULD NOT connect to the border of an expanded Sub-Process. |
Remove any Message Flow or connect it to a different element. |
|
|
|
221606
|
Message
|
Action
|
|
An Event Sub-Process CANNOT have attached Boundary Events. |
Remove any attached Boundary Events. |
|
|
|
222601
|
Message
|
Action
|
|
A Receive Task MUST NOT have an outgoing Message Flow. |
Remove any outgoing Message Flow. |
|
|
|
222602
|
Message
|
Action
|
|
A Send Task MUST NOT have an incoming Message Flow. |
Remove any incoming Message Flow. |
|
|
|
222603
|
Message
|
Action
|
|
A Script Task or Manual Task MUST NOT have an incoming or an outgoing Message Flow. |
Remove any incoming or outgoing Message Flow. |
|
|
|
222604
|
Message
|
Action
|
|
An Instantiating Receive Task MUST NOT have any incoming Sequence Flows. |
Remove any incoming Sequence Flows. |
|
|
|
230601
|
Message
|
Action
|
|
A Gateway MUST NOT be a target for Message Flow. |
Remove any incoming Message Flow. |
|
|
|
230602
|
Message
|
Action
|
|
A Gateway MUST NOT be a source for Message Flow. |
Remove any outgoing Message Flow. |
|
|
|
230603
|
Message
|
Action
|
|
A Gateway MUST have either multiple incoming Sequence Flow or multiple outgoing Sequence Flow (i.e., it must merge or split the flow). |
Add additional incoming Sequence Flow or outgoing Sequence Flow. |
|
|
|
230604
|
Message
|
Action
|
|
An instantiating Event Gateway MUST not have any incoming Sequence Flows. |
Use a ‘regular’ Event Gateway if used within the process flow. |
Detail |
Instantiating Event Gatways are used to instantiate a Process. |
|
230605
|
Message
|
Action
|
|
A Gateway with a gatewayDirection of converging MUST have multiple incoming Sequence Flow, but MUST NOT have multiple outgoing Sequence Flow. |
Add additional incoming Sequence Flow, remove any extra outgoing Sequence Flow or use a different Gateway. |
|
|
|
230606
|
Message
|
Action
|
|
A Gateway with a gatewayDirection of diverging MUST have multiple outgoing Sequence Flow, but MUST NOT have multiple incoming Sequence Flow. |
Add additional outgoing Sequence Flow, remove any extra incoming Sequence Flow or use a different Gateway. |
|
|
|
232601
|
Message
|
Action
|
|
An Event Gateway MUST have two (2) or more outgoing Sequence Flow. |
Add additional outgoing Sequence Flow. |
|
|
|
241601
|
Message
|
Action
|
|
Pools SHOULD NOT be nested within other Pools. |
Avoid nested Pools. Use Lanes instead or remove unnecessary “parent” Pools. |
Detail |
Nested Pools can result in ambiguous or incorrect diagrams. |
|
242601
|
Message
|
Action
|
|
A lane MAY NOT be neither source nor target of a Sequence Flow. |
Remove any incoming or outgoing Sequence Flow. |
|
|
|
242602
|
Message
|
Action
|
|
A lane MAY NOT be neither source nor target of a Message Flow. |
Remove any incoming or outgoing Message Flow. |
|
|
|
250601
|
Message
|
Action
|
|
An Artifact MUST NOT be a target for Sequence Flow. |
Remove any incoming Sequence Flow. Use Association instead. |
|
|
|
250602
|
Message
|
Action
|
|
An Artifact MUST NOT be a source for Sequence Flow. |
Remove any outgoing Sequence Flow. |
|
|
|
250603
|
Message
|
Action
|
|
An Artifact MUST NOT be a target for Message Flow. |
Remove any incoming Message Flow. Use Association instead. |
|
|
|
250604
|
Message
|
Action
|
|
An Artifact MUST NOT be a source for Message Flow. |
Remove any outgoing Message Flow. |
|
|
|
261601
|
Message
|
Action
|
|
A condition Expression MUST NOT be used if the Source of the Sequence Flow is a Start Event or an Intermediate Event. |
Set the Sequence Flow type to normal flow. |
|
|
|
261602
|
Message
|
Action
|
|
Sequence Flows cannot cross process boundaries. |
Verify the connection. |
|
|
|
261603
|
Message
|
Action
|
|
A Conditional Sequence Flow MUST NOT be used if the source Gateway is of type Parallel or Event-Based. |
Verify the connection. |
|
|
|
261604
|
Message
|
Action
|
|
A Sequence Flow can only connect to Flow Objects. |
Connect the Sequence Flow to a different object. |
|
|
|
261605
|
Message
|
Action
|
|
A condition Expression MUST be defined if the Source of the Sequence Flow is an Exclusive or Inclusive Gateway. |
Define a condition Expression. |
|
|
|
261606
|
Message
|
Action
|
|
A Sequence Flow MUST NOT be conditional if the source Gateway is converging. |
Remove the Condition Expression. |
|
|
|
262601
|
Message
|
Action
|
|
A Message Flow can only connect to a Pool, an Activity or a Message Event. |
Verify the connection. |
Detail |
Exception: Multiple Events containing a MessageEventDefinition. |
|
262602
|
Message
|
Action
|
|
A Message Flow CANNOT connect two objects within the same Pool. |
Connect to a different Pool. |
Detail |
A Message Flow MUST connect two separate Pools. They connect either to the Pool boundary or to Flow Objects within the Pool boundary. |
|
263601
|
Message
|
Action
|
|
An Association that is connected to a Text Annotation SHOULD have a None Direction. |
Change the Direction Type. |
|
|
|
263602
|
Message
|
Action
|
|
An Association SHOULD NOT connect two Text Annotations. |
Verify the connection. |
|
|
|
263603
|
Message
|
Action
|
|
An Association MUST connect to a Text Annotation or a Message. |
Verify the connection. |
Detail |
Exception: Compensation. |
|
263604
|
Message
|
Action
|
|
An Association MUST connect to a Text Annotation or a Message. Use Data Associations instead for Data Objects or Data Stores. |
Use Data Associations for Data Objects or Data Stores. |
|
|
|
264601
|
Message
|
Action
|
|
A Data Association MUST NOT connect two Data Objects or Data Stores. |
Verify the connection. |
|
|
|
264602
|
Message
|
Action
|
|
A Data Association CAN only connect to a Data Object, Data Store, Activity, or Event. |
Verify the connection. |
|
|
|
264603
|
Message
|
Action
|
|
A Data Association that connects to an Activity or Event MUST be directed. |
Set the Direction Type. |
|
|
|
264604
|
Message
|
Action
|
|
A Data Association MUST connect to a Data Object or a Data Store. |
Connect the Data Association to a Data Object or a Data Store. |
|
|
|
264605
|
Message
|
Action
|
|
A Catch Event CANNOT be the target of a Data Association. |
Flip or remove the Data Association. |
|
|
|
264606
|
Message
|
Action
|
|
A Throw Event CANNOT be the source of a Data Association. |
Flip or remove the Data Association. |
|
|
|
270601
|
Message
|
Action
|
|
A Data Object MUST have at least one connected Data Association. |
Add a Data Association. |
|
|
|
270602
|
Message
|
Action
|
|
A Data Object MAY NOT be neither source nor target of Sequence Flows. |
Remove any outgoing or incoming Sequence Flow. |
|
|
|
270603
|
Message
|
Action
|
|
A Data Object MAY NOT be neither source nor target of Message Flows. |
Remove any outgoing or incoming Message Flow. |
|
|
|
270604
|
Message
|
Action
|
|
A Data Input MUST NOT have incoming Data Associations. |
Change the direction of the Association. |
|
|
|
270605
|
Message
|
Action
|
|
A Data Output MUST NOT have outgoing Data Associations. |
Change the direction of the Association. |
|
|
|
280601
|
Message
|
Action
|
|
A Data Store MAY NOT be neither source nor target of Sequence Flows. |
Remove any outgoing or incoming Sequence Flow. |
|
|
|
280602
|
Message
|
Action
|
|
A Data Store MAY NOT be neither source nor target of Message Flows. |
Remove any outgoing or incoming Message Flow. |
|
|
|
280603
|
Message
|
Action
|
|
A Data Store MUST have at least one connected Data Association. |
Add a Data Association. |
|
|
|
291601
|
Message
|
Action
|
|
A Conversation Node MUST connect to 2 or more Conversation Links. |
Connect 2 or more Conversation Links. |
|
|
|
292601
|
Message
|
Action
|
|
A Conversation Link MUST connect to exactly one Conversation Node. |
Connect exactly one Conversation Node. |
|
|
|
292602
|
Message
|
Action
|
|
A Conversation Link MUST connect to an Interaction Node (Activity, Event, Participant). |
Connect an Interaction Node. |
|
|
|
380601
|
Message
|
Action
|
|
If there is a Start Event, then there MUST be at least one End Event. |
Add an End Event. |
|
|
|
380602
|
Message
|
Action
|
|
If there is an End Event, then there MUST be at least one Start Event |
Add a Start Event. |
|
|
|
380603
|
Message
|
Action
|
|
It is RECOMMENDED that a Start Event be used. |
Add a Start Event. |
Detail |
If a Process is complex and/or the starting conditions are not obvious, then it is RECOMMENDED that a Start Event be used. |
|
380604
|
Message
|
Action
|
|
It is RECOMMENDED that multiple start events be used sparingly. |
Remove additional Start Events. |
Detail |
The behavior of a Process may be harder to understand if there are multiple Start Events. |
|
380605
|
Message
|
Action
|
|
If the Start Event is used, then there MUST NOT be other flow elements that do not have incoming Sequence Flow. |
Add incoming Sequence Flow to all other flow elements. |
Detail |
Exceptions are Compensations Activities, Event Subprocesses, Boundary Events and Link Events. |
|
380606
|
Message
|
Action
|
|
If an End Event is used, then there MUST NOT be other flow elements that do not have any outgoing Sequence Flow. |
Add an outgoing Sequence Flow to all other flow elements. |
Detail |
Exceptions are Compensations Activities, Event Subprocesses, Boundary Events and Link Events. |
|
321602
|
Message
|
Action
|
|
If there is a Start Event, then there MUST be at least one End Event. |
Add an End Event. |
|
|
|
321603
|
Message
|
Action
|
|
If there is an End Event, then there MUST be at least one Start Event |
Add a Start Event. |
|
|
|
321604
|
Message
|
Action
|
|
It is RECOMMENDED that a Start Event be used. |
Add a Start Event. |
Detail |
If a Process is complex and/or the starting conditions are not obvious, then it is RECOMMENDED that a Start Event be used. |
|
321605
|
Message
|
Action
|
|
It is RECOMMENDED that only one Start Event be used. |
Remove additional Start Events. |
Detail |
The behavior of a Process may be harder to understand if there are multiple Start Events. It is RECOMMENDED that this feature be used sparingly. |
|
321606
|
Message
|
Action
|
|
An Event Sub-Process MUST have a single Start Event. |
Remove additional Start Events. |
|
|
|
321607
|
Message
|
Action
|
|
If the Start Event is used, then there MUST NOT be other flow elements that do not have incoming Sequence Flow. |
Add incoming Sequence Flow to all other flow elements. |
Detail |
Exceptions are Compensations Activities, Event Subprocesses, Boundary Events and Link Events. |
|
321608
|
Message
|
Action
|
|
If an End Event is used, then there MUST NOT be other flow elements that do not have any outgoing Sequence Flow. |
Add an outgoing Sequence Flow to all other flow elements. |
Detail |
Exceptions are Compensations Activities, Event Subprocesses, Boundary Events and Link Events. |
|
321609
|
Message
|
Action
|
|
There is an unreferenced Process Level with the same name as the Sub-Process. |
Consider attaching the Process Level to the Sub-Process. |
|
|
|
321610
|
Message
|
Action
|
|
The Sub-Process is emtpy even though the referenced Process Level contains elements. This may be the result of nested or wrongly labeled pools. |
Make sure pools are not nested. Remove unnecessary pools in the child level or make them identical to the corresponding parent level pools. |
|
|
|
321611
|
Message
|
Action
|
|
A Sub-Process MUST NOT define Data Inputs or Data Outputs. |
Remove the connected Data Inputs and Data Outputs. |
|
|
|
321612
|
Message
|
Action
|
|
A spec. inconsistency suggests that a Sub-Process MUST NOT define Data Inputs or Data Outputs. While PM supports this, other tools may see this as an error. |
Use this feature carefully if you intend to validate your XML with other tools. |
|
|
|
300601
|
Message
|
Action
|
|
There is another element with the same name. It is RECOMMENDED that names be unique. |
Consider making the elements identical. |
|
|
|
312601
|
Message
|
Action
|
|
An Error Throw Event SHOULD be caught by a matching Error Boundary Event on the enclosing Sub-Process. |
Add an Error Boundary Event on the enclosing Sub-Process. |
Detail |
The behavior of the Process is unspecified if no Activity in the hierarchy has such an Error Intermediate Event. |
|
312602
|
Message
|
Action
|
|
An Escalation Throw Event SHOULD be caught by a matching Escalation Boundary Event on the enclosing Sub-Process. |
Add an Escalation Boundary Event on the enclosing Sub-Process. |
Detail |
The behavior of the Process is unspecified if no Activity in the hierarchy has such an Escalation Intermediate Event. |
|
313601
|
Message
|
Action
|
|
If there is a Source Link, there MUST be a matching Target Link. |
Attach a Target Link. |
|
|
|
313602
|
Message
|
Action
|
|
There MUST NOT be multiple Target Links for a single Source Link. |
Detach multiple Target Links. |
|
|
|
313603
|
Message
|
Action
|
|
Partner Links SHOULD have the same name. |
Give the same name to all Partner Links. |
|
|
|
313604
|
Message
|
Action
|
|
If there is a Target Link, there MUST be a matching Source Link. |
Attach a Source Link. |
|
|
|
313605
|
Message
|
Action
|
|
An Error Boundary Event on a Sub-Process requires a matching Error Throw Event. |
Add a matching Error Throw Event. |
|
|
|
313606
|
Message
|
Action
|
|
An Escalation Boundary Event on a Sub-Process requires a matching Escalation Throw Event. |
Add a matching Escalation Throw Event. |
|
|
|
313607
|
Message
|
Action
|
|
Paired Link Events MAY NOT cross a Process or a Sub-Process boundary. |
Verify the paired Link Events and make sure they reside within the same process level. |
|
|
|
320601
|
Message
|
Action
|
|
There is another Activity with the same name. It is RECOMMENDED that names be unique. |
Rename the Activity. |
|
|
|
332602
|
Message
|
Action
|
|
Invalid Target for the Gateway’s outgoing Sequence Flow. |
Connect only valid Targets to the outgoing Sequence Flow. |
Detail |
The Target of the Gateway’s outgoing Sequence Flow MUST be one of the following elements: A Receive Task, an Intermediate Catch Event with the Trigger attribute set to Message, Timer, Signal, Conditional or Multiple. Exception: Choreography Activities |
|
332603
|
Message
|
Action
|
|
If Message Intermediate Catch Events are used as a Target for the Gateway’s outgoing Sequence Flow, then Receive Tasks MUST NOT be used and vice versa. |
Either use Message Intermediate Catch Events OR Receive Tasks. |
|
|
|
332604
|
Message
|
Action
|
|
Receive Tasks used in an Event Based Gateway configuration MUST NOT have any attached Boundary Event. |
Remove any attached Boundary Event. |
|
|
|
332605
|
Message
|
Action
|
|
Target elements in an Event Gateway configuration MUST NOT have any additional incoming Sequence Flow (other than that from the Event Gateway). |
Remove any additional incoming Sequence Flow. |
|
|
|
354601
|
Message
|
Action
|
|
The source or the target of the Data Association connected to the Data Store MUST be an Activity. |
Connect the other end of the Association to an Activity. |
|
|
|
355601
|
Message
|
Action
|
|
The Data Object referenced is not accessible. Data Object References can only access Data Objects residing in the same container or their parents. |
Move the Data Object Reference or reference a different Data Object. |
|
|
|
362601
|
Message
|
Action
|
|
A Message Flow SHOULD NOT connect to the border of a “White Box” Pool. |
Connect the Message Flow to an Activity or Event within the Pool. |
|
|
|
390601
|
Message
|
Action
|
|
A Message MUST be attached to a Message Flow or MUST be connected to an Association connecting to a Message Flow, a Send Task or a Receive Task. |
Attach the Message to a Message Flow or connect to Association connecting to a Message Flow, a Send Task or a Receive Task. |
Detail |
Exception: Choreography Activities |
|
390611
|
Message
|
Action
|
|
The Element this Activity is calling does not exist. |
Call a different Element. |
|
|
|
390612
|
Message
|
Action
|
|
The Element this Activity is calling cannot be found. |
Call a different Element or verify the imported files. |
|
|
|
Method & Style Validation
111701
|
Message
|
Action
|
|
A Timer Start Event should be labeled to indicate the process schedule. |
Label the Timer Start Event. |
|
Wrong: |
Right: |
|
 |
 |
111702
|
Message
|
Action
|
|
A Signal start event should be labeled to indicate the Signal name. |
Label Signal start event. |
|
Wrong: |
Right: |
|
 |
 |
111703
|
Message
|
Action
|
|
A Conditional start event should be labeled to indicate the condition. |
Label Conditional start event. |
|
Wrong: |
Right: |
|
 |
 |
111704
|
Message
|
Action
|
|
A Message start event should be labeled “Receive {message name}”. The trigger has to be specified (message or multiple). |
Label start event(s) and specify trigger. |
|
Wrong: |
Right: |
|
 |
 |
113701
|
Message
|
Action
|
|
A Boundary event should be labeled. |
Label Boundary event. |
|
Wrong: |
Right: |
|
 |
 |
113702
|
Message
|
Action
|
|
A Throwing Intermediate event should be labeled. |
Label Throwing Intermediate event. |
|
Wrong: |
Right: |
|
 |
 |
113703
|
Message
|
Action
|
|
A Catching Intermediate event should be labeled. |
Label Catching Intermediate event. |
|
Wrong: |
Right: |
|
 |
 |
120701
|
Message
|
Action
|
|
Activities should be labeled. |
Label the Activity. |
|
Wrong: |
Right: |
|
 |
 |
123601
|
Message
|
Action
|
|
A Call Activity SHOULD call a Global Element. |
Label the Activity. |
|
Wrong: |
Right: |
|
IMAGE |
IMAGE |
161701
|
Message
|
Action
|
|
A conditional Sequence Flow should be labeled. |
Label conditional Sequence Flow. |
|
Wrong: |
Right: |
|
IMAGE |
IMAGE |
161702
|
Message
|
Action
|
|
An unconditional Sequence Flow should not be labeled. |
Do not label unconditional Sequence Flow. |
|
Wrong: |
Right: |
|
IMAGE |
IMAGE |
162701
|
Message
|
Action
|
|
A message flow should be labeled with the name of the message. |
Label message flow. |
|
Wrong: |
Right: |
|
 |
 |
190701
|
Message
|
Action
|
|
A Message should be labeled. |
Label the Message. |
|
Wrong: |
Right: |
|
 |
 |
211701
|
Message
|
Action
|
|
A Message Start Event should have an incoming Message Flow. |
Add an incoming Message Flow. |
|
Wrong: |
Right: |
|
 |
 |
213701
|
Message
|
Action
|
|
A Catching message event should have an incoming Message flow. |
Add incoming Message flow. |
|
Wrong: |
Right: |
|
 |
 |
213702
|
Message
|
Action
|
|
A Throwing Message event should have an outgoing Message flow. |
Add outgoing Message flow. |
|
Wrong: |
Right: |
|
 |
 |
222701
|
Message
|
Action
|
|
A Send Task should have an outgoing Message Flow. |
Add an outoing Message Flow. |
|
Wrong: |
Right: |
|
 |
 |
222702
|
Message
|
Action
|
|
A Receive task should have an incoming message flow. |
Add an incoming Message Flow. |
|
Wrong: |
Right: |
|
 |
 |
230701
|
Message
|
Action
|
|
An Exclusive gateway should have at most one unlabeled gate. |
Label the gates. |
|
Wrong: |
Right: |
|
 |
 |
230702
|
Message
|
Action
|
|
An Exclusive or Inclusive gateway with an unlabeled gate should be labeled. |
Label the gates. |
|
Wrong: |
Right: |
|
 |
 |
231604
|
Message
|
Action
|
|
A Sequence Flow can only connect to an Activity, a Gateway or an Event. |
TEXT |
|
Wrong: |
Right: |
|
IMAGE |
IMAGE |
231701
|
Message
|
Action
|
|
TEXT Prüfen (engl. Übersetzung)
If an exclusive gateway is labeled with a question, there are exactly two gates, labeled with ‘yes’ and ‘no’.Falls ein exklusives Gateway mit einer Frage beschriftet ist, dann sollte es genau zwei (2) Gates haben, die mit ‘ja’ und ‘nein’ beschriftet sind. |
Label the gates with ‘yes’ and ‘no’. |
|
Wrong: |
Right: |
|
IMAGE |
IMAGE |
311701
|
Message
|
Action
|
|
A start event in a top-level process should be labeled. If a top-level process contains more than one start event, all should be labeled to identify the alternative start conditions. |
Label every single start event. |
|
Wrong: |
Right: |
|
 |
 |
312701
|
Message
|
Action
|
|
Two end events in a process level should not have the same name. |
If they mean the same end state, combine them; otherwise give them different names. |
|
Wrong: |
|
|
 |
|
Right: |
|
|
OR: |
312702
|
Message
|
Action
|
|
If there is more than one End Event in a process level, all should be labeled with the name of the end state. |
Label all End Events. |
|
Wrong: |
Right: |
|
 |
 |
313701
|
Message
|
Action
|
|
An Error Boundary event on an sub-process should be labeled to match the throwing Error event. |
Label the Error Boundary event to match the throwing Error event. |
|
Wrong: |
|
|
 |
|
Right: |
|
|
 |
313702
|
Message
|
Action
|
|
An Escalation Boundary event on a sub-process should be labeled to match the throwing Escalation event. |
Label the Escalation Boundary event to match the throwing escalation event. |
|
Wrong: |
|
|
 |
|
Right: |
|
|
 |
320701
|
Message
|
Action
|
|
Two activities in the same process should not have the same name. |
Use global activity to reuse a single activity in a process. |
|
Wrong: |
|
|
 |
|
Right: |
|
|
 |
321701
|
Message
|
Action
|
|
The label of a child-level page should match the name of the subprocess. |
Rename the child-level page. |
|
Wrong: |
|
|
 |
|
Right: |
|
|
 |
321702
|
Message
|
Action
|
|
Only one start event should be used in a subprocess. |
Remove additional start events. |
|
Wrong: |
Right: |
|
 |
 |
321703
|
Message
|
Action
|
|
If a sub-process is followed by a yes/no gateway, at least one end event of the sub-process should be labeled to match the gateway label. |
Label one end event of the sub-process according to gateway label. |
|
Wrong: |
|
|
 |
|
Right: |
|
|
 |
321704
|
Message
|
Action
|
|
A child level diagram should not be enclosed in an expanded sub-process shape. |
|
|
Wrong: |
|
 |
|
Right: |
|
|
 |
321705
|
Message
|
Action
|
|
If a subprocess is followed by a gateway labeled as a question, it must have more than one end event. |
Add additional end events. |
|
Wrong: |
Right: |
|
 |
 |
321706
|
Message
|
Action
|
|
The child-level expansion should not be enclosed in a pool if the top-level process is not enclosed in a pool. |
Remove the enclosing pool on the child-level page. |
321707
|
Message
|
Detail
|
Action
|
|
The process pool on the child-level page should have the same name as the corresponding pool on the top-level page, i.e. they must be identical. |
If the ‘Auto-make identical pools’ is turned on in the options, pools with the same name will automatically be identified to be the same. Alternatively, use the ‘reuse’ function in the context menu. |
Use the ‘reuse’ function to make the two pools identical. |
321708
|
Message
|
Action
|
|
Structure error: All flow elements on a child-level page must belong to the parent-level subprocess. |
Remove any flow elements that do not belong to the subprocess. |
321709
|
Message
|
Action
|
|
Structure error: If a pool is used in the child-level, all flow elements on the child-level page must be drawn within the pool boundaries. |
Move all flow elements inside the pool boundary. |
362701
|
Message
|
Action
|
|
A Message flow from a collapsed sub-process should be replicated in the child level diagram. |
Replicate Message flow in the child level diagram. |
|
Parent level: |
|
|
 |
|
Child level: |
|
|
 |
362702
|
Message
|
Action
|
|
A Message flow to a collapsed sub-process should be replicated in the child level diagram. |
Replicate Message flow in the child level diagram. |
|
Wrong: |
|
|
 |
|
Right: |
|
|
 |
362703
|
Message
|
Action
|
|
An incoming message flow in child level diagram should be replicated in the parent level. |
Replicate the message flow in the parent level. |
|
Wrong: |
|
|
 |
|
Right: |
|
|
 |
362704
|
Message
|
Action
|
|
An outgoing message flow in child level diagram should be replicated in the parent level. |
Replicate the message flow in the parent level. |
|
Wrong: |
|
|
 |
|
Right: |
|
|
 |
eCH Validation
121901
|
Message
|
Action
|
|
Sub-processes must be collapsed and described in a separate diagram. |
Model the sub-process on a new process level. |
|
|
|
130901
|
Message
|
Action
|
|
Merging gateways should not be labeled. |
Remove the label. |
|
|
|
132901
|
Message
|
Action
|
|
Event-based gateways should not be labeled. |
Remove the label. |
|
|
|
135901
|
Message
|
Action
|
|
AND-gateways should not be labeled. |
Remove the label. |
|
|
|
161901
|
Message
|
Action
|
|
Sequence flows are generally not labeled. |
Remove the label. |
Detail |
Exception: Sequence flows after XOR and OR gateways must be labeled with the corresponding decision. |
|
191901
|
Message
|
Action
|
|
This element is not supported in the eCH standard. |
Remove the element. |
|
|
|
211901
|
Message
|
Action
|
|
A none start event should not be labeled. |
Remove the label. |
Detail |
The sub-process is started by a call to the parent process level. |
|
211902
|
Message
|
Action
|
|
A message start event should not be labeled if the incoming message on the (mandatory) message flow is evident. |
Remove the label. |
|
|
|
211903
|
Message
|
Action
|
|
None start events can be used only when the process is started by a call to the parent process level. |
Change the type of event. |
|
|
|
211904
|
Message
|
Action
|
|
A message start event must have an incoming message flow. |
Draw an incoming message flow. |
|
|
|
213901
|
Message
|
Action
|
|
A receiving intermediate message event should not be labeled if the incoming message on the (mandatory) message flow is evident. |
Remove the label. |
|
|
|
213902
|
Message
|
Action
|
|
Outgoing messages must be sent by the appropriate activity, not by a throwing message event. |
Remove the throwing message event. |
|
|
|
213903
|
Message
|
Action
|
|
A receiving intermediate message event must have an incoming message flow. |
Draw an incoming message flow. |
|
|
|
220901
|
Message
|
Action
|
|
An activity must always be followed by exactly one sequence flow. |
Remove additional sequence flows. |
|
|
|
220902
|
Message
|
Action
|
|
Sequence flow branching should not happen directly from an activity but from a gateway. |
Use a gateway. |
|
|
|
241901
|
Message
|
Action
|
|
Collapsed pools must contain at least one incoming or outgoing message flow. |
Connect at least one message flow. |
|
|
|
241902
|
Message
|
Action
|
|
A process must have at least one start event. |
Add a start event. |
|
|
|
241903
|
Message
|
Action
|
|
A process must have at least one end event. |
Add an end event. |
|
|
|
242901
|
Message
|
Action
|
|
Lanes must be drawn one above the other across the entire length of the pool. |
Adjust the lane. |
|
|
|
252901
|
Message
|
Action
|
|
Text annotations must be connected to the corresponding BPMN element via a dotted association. |
Connect the text annotation with the help of an association. |
|
|
|
261901
|
Message
|
Action
|
|
Sequence flows from XOR and OR gateways must be labeled with the corresponding decision. |
Label the sequence flows with the corresponding decision. |
|
|
|
331901
|
Message
|
Action
|
|
An activity is mandatory before an XOR gateway. The activity determines the branching based on a business rule. |
Insert an activity before the gateway. |
Detail |
Exception: gateways may follow each other. This should be used with caution, as the readability suffers. |
|
332901
|
Message
|
Action
|
|
Two event-based gateways may not be consecutive. |
Remove one of the two gateways. |
|
|
|
333901
|
Message
|
Action
|
|
An activity is mandatory before an OR gateway. The activity determines the branching based on a business rule. |
Insert an activity before the gateway. |
Detail |
Exception: gateways may follow each other. This should be used with caution, as the readability suffers. |
|
335901
|
Message
|
Action
|
|
Two AND-gateways may not be consecutive. |
Remove one of the two gateways. |
|
|
|
391901
|
Message
|
Action
|
|
A maximum of 15 activities per process level should be used. |
Remove unnecessary activities or move them into a new sub-process. |
|
|
|