Visio Rules Tools RuleSets Report

IDNameUNameDescription
1BPMNBPMNVerify a Visio BPMN diagram against the graphical aspects of the BPMN 1.2 standard.
IDNameUCategoryDescriptionRuleTargetRuleFilterRuleTest
1ImproperAssociationAssociationAn Association must not connect two Data Objects.AND(HASCATEGORY("Connecting Object"),Actions.Association.Checked)AGGCOUNT(FILTERSET(GLUEDSHAPES(3), "HASCATEGORY(""Data Object"")") ) <2
2CancelOutsideOfTransactionIntermediate EventsAn Intermediate Cancel Event must be attached to the boundary of a Transaction.AND(HASCATEGORY("Event"),Actions.Cancel.Checked, Actions.Intermediate.Checked)OR(AGGCOUNT(FILTERSET(OnBoundaryOf(),"Prop.BpmnIsATransaction")) > 0,AGGCOUNT(FILTERSET(GLUEDSHAPES(5),"Prop.BpmnIsATransaction")) > 0)
3SequenceFlowCrossingPoolBoundarySequence FlowSequence Flow must not cross a Pool boundary.AND(HASCATEGORY("Connecting Object"),Actions.SequenceFlow.Checked)IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""CFF List"")"))=0,AGGCOUNT(FILTERSET(GLUEDSHAPES(3), "AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""CFF List"""")""))>0"))=0 , TRUE)
4MessageFlowSamePoolMessage FlowMessage Flow must not connect elements that are in the same Pool.AND(HASCATEGORY("Connecting Object"),Actions.MessageFlow.Checked)AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""CFF List"")"))=0
5StartEventTargetStart EventsA Start Event must not have incoming Sequence Flow unless it is on the boundary of an Expanded Sub-Process.AND(HASCATEGORY("Event"),Actions.Start.Checked)OR(AGGCOUNT(FILTERSET(GLUEDSHAPES(1),"Actions.SequenceFlow.Checked"))=0,AGGCOUNT(FILTERSET(OnBoundaryOf(),"HASCATEGORY(""Expanded Sub-Process"")")) > 0)
6MissingEndEventEnd EventsIf a Start Event is used in the top-level Process, then an End Event must also be used in the top-level Process.AGGCOUNT(FILTERSET(ThePage!SHAPESONPAGE(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))>0AGGCOUNT(FILTERSET(ThePage!SHAPESONPAGE(),"AND(Actions.End.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))>0
7MissingEndEventInTaskEnd EventsIf a Start Event is used in an Expanded Sub-Process, then an End Event must also be used in the Expanded Sub-Process.HASCATEGORY("Expanded Sub-Process")IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=0, OR(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=1,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))=0, AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.End.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=1,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))>0),IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=1, OR(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=2,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))=0, AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.End.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=2,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))>0),IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=2, OR(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=3,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))=0, AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.End.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=3,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))>0), TRUE)))
8MissingEndEventOnBoundaryEnd EventsIf a Start Event is attached to an Expanded Sub-Process boundary, then an End Event must also be attached to the boundary.HASCATEGORY("Expanded Sub-Process")IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=0, OR(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=1,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))>0)"))=0, AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.End.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=1,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))>0)"))>0),IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=1, OR(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=2,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))>0)"))=0, AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.End.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=2,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))>0)"))>0),IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=2, OR(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=3,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))>0)"))=0, AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.End.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=3,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))>0)"))>0), TRUE)))
9MissingStartEventStart EventsIf an End Event is used in the top-level Process, then at least one Start Event must also be used in the top-level Process.AGGCOUNT(FILTERSET(ThePage!SHAPESONPAGE(),"AND(HASCATEGORY(""Event""),Actions.End.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))>0AGGCOUNT(FILTERSET(ThePage!SHAPESONPAGE(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))>0
10MissingStartEventInTaskStart EventsIf an End Event is used in an Expanded Sub-Process, then a Start Event must also be used in the Expanded Sub-Process.HASCATEGORY("Expanded Sub-Process")IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=0, OR(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.End.Checked, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=1,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))=0, AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=1,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))>0),IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=1, OR(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.End.Checked, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=2,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))=0, AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=2,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))>0),IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=2, OR(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.End.Checked, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=3,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))=0, AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=3,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))>0), TRUE)))
11MissingStartEventOnBoundaryStart EventsIf an End Event is attached to an Expanded Sub-Process boundary, then an Start Event must also be attached to the boundary.HASCATEGORY("Expanded Sub-Process")IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=0, OR(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.End.Checked, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=1,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))>0)"))=0, AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=1,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))>0)"))>0),IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=1, OR(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.End.Checked, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=2,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))>0)"))=0, AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=2,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))>0)"))>0),IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=2, OR(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.End.Checked, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=3,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))>0)"))=0, AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),"AND(HASCATEGORY(""Event""),Actions.Start.Checked,AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=3,AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))>0)"))>0), TRUE)))
12SequenceFlowCrossingSubProcessBoundarySequence FlowSequence Flow must not cross an Expanded Sub-Process boundary.AND(HASCATEGORY("Connecting Object"),Actions.SequenceFlow.Checked)IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=0,AGGCOUNT(FILTERSET(GLUEDSHAPES(3), "AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))<>AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")""))"))=0 , IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=1,AGGCOUNT(FILTERSET(GLUEDSHAPES(3), "AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")"")) - AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")"")) > 1"))=0 , IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=2,AGGCOUNT(FILTERSET(GLUEDSHAPES(3), "OR(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")"")) - AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")"")) > 2, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")"")) - AGGCOUNT(FILTERSET(ONBOUNDARYOF(),""HASCATEGORY(""""Expanded Sub-Process"""")"")) = 0)"))=0 , TRUE)))
13SequenceFlowFromGatewaysGatewaysWhen Start and End Events are used, a Gateway must have outgoing Sequence Flow.HASCATEGORY("Gateway")IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(2),"Actions.SequenceFlow.Checked"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=0, AGGCOUNT(FILTERSET(ThePage!SHAPESONPAGE(),"AND(HASCATEGORY(""Event""),OR(Actions.Start.Checked,Actions.End.Checked), AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=1, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(HASCATEGORY(""""Event""""),OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=1)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=2, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(HASCATEGORY(""""Event""""),OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=2)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=3, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(HASCATEGORY(""""Event""""),OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=3)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,TRUE)))),TRUE)
14SequenceFlowToGatewaysGatewaysWhen Start and End Events are used, a Gateway must have incoming Sequence Flow.HASCATEGORY("Gateway")IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(1),"Actions.SequenceFlow.Checked"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=0, AGGCOUNT(FILTERSET(ThePage!SHAPESONPAGE(),"AND(HASCATEGORY(""Event""),OR(Actions.Start.Checked,Actions.End.Checked), AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=1, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(HASCATEGORY(""""Event""""),OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=1)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=2, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(HASCATEGORY(""""Event""""),OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=2)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=3, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(HASCATEGORY(""""Event""""),OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=3)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,TRUE)))),TRUE)
15SequenceFlowFromActivitiesActivitiesWhen Start and End Events are used, a Task or Collapsed Sub-Process must have outgoing Sequence Flow unless it is a Compensation Activity.AND(NOT(Prop.BpmnIsForCompensation),NOT(HASCATEGORY("Expanded Sub-Process")))IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(2),"Actions.SequenceFlow.Checked"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=0, AGGCOUNT(FILTERSET(ThePage!SHAPESONPAGE(),"AND(HASCATEGORY(""Event""),OR(Actions.Start.Checked,Actions.End.Checked), AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=1, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(HASCATEGORY(""""Event""""),OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=1)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=2, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(HASCATEGORY(""""Event""""),OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=2)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=3, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(HASCATEGORY(""""Event""""),OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=3)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,TRUE)))),TRUE)
16WrongNumberOfOutgoingSequenceFlowsIntermediate EventsAn Intermediate Event must have exactly one outgoing Sequence Flow unless it has the Compensation Trigger/Result.AND(HASCATEGORY("Event"),Actions.Intermediate.Checked,NOT(Actions.Compensation.Checked))AGGCOUNT(FILTERSET(GLUEDSHAPES(2), "Actions.SequenceFlow.Checked")) = 1
17WrongNumberOfOutgoingSequenceFlows2Intermediate EventsAn Intermediate (Throwing) Event must have exactly one outgoing Sequence Flow unless it has the Link Trigger/Result.AND(HASCATEGORY("Event"),Actions.IntermediateThrowing.Checked,NOT(Actions.Link.Checked))AGGCOUNT(FILTERSET(GLUEDSHAPES(2), "Actions.SequenceFlow.Checked")) = 1
18NoSequenceFlowFromStartEventStart EventsA Start Event must have outgoing Sequence Flow.AND(HASCATEGORY("Event"),Actions.Start.Checked)AGGCOUNT(FILTERSET(GLUEDSHAPES(2),"Actions.SequenceFlow.Checked"))>0
19SequenceFlowToActivitiesActivitiesWhen Start and End Events are used, a Task or Collapsed Sub-Process must have incoming Sequence Flow unless it is a Compensation Activity.AND(NOT(Prop.BpmnIsForCompensation), NOT(HASCATEGORY("Expanded Sub-Process")))IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(1),"Actions.SequenceFlow.Checked"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=0, AGGCOUNT(FILTERSET(ThePage!SHAPESONPAGE(),"AND(HASCATEGORY(""Event""),OR(Actions.Start.Checked,Actions.End.Checked), AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=1, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(HASCATEGORY(""""Event""""),OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=1)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=2, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(HASCATEGORY(""""Event""""),OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=2)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=3, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(HASCATEGORY(""""Event""""),OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=3)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,TRUE)))),TRUE)
20SequenceFlowToEventsIntermediate EventsWhen Start and End Events are used, an Intermediate Event must have incoming Sequence Flow unless it is attached to the boundary of an Activity or has the Link Trigger/Result.AND(HASCATEGORY("Event"),Actions.Intermediate.Checked,NOT(OR(Actions.Link.Checked,Actions.NoTriggerResult.Checked, Actions.Compensation.Checked,Actions.Error.Checked,Actions.Cancel.Checked)),AND(AGGCOUNT(FILTERSET(OnBoundaryOf(),"HASCATEGORY(""Expanded Sub-Process"")")) = 0, AGGCOUNT(FILTERSET(GLUEDSHAPES(5),"OR(HASCATEGORY(""Task""),HASCATEGORY(""Collapsed Sub-Process""))")) = 0))IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(1),"Actions.SequenceFlow.Checked"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=0, AGGCOUNT(FILTERSET(ThePage!SHAPESONPAGE(),"AND(OR(Actions.Start.Checked,Actions.End.Checked), AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=1, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=1)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=2, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=2)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=3, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=3)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,TRUE)))),TRUE)
21SequenceFlowToEvents2Intermediate EventsWhen Start and End Events are used, an Intermediate (Throwing) Event must have incoming Sequence Flow.AND(HASCATEGORY("Event"),Actions.IntermediateThrowing.Checked, NOT(OR(Actions.NoTriggerResult.Checked, Actions.Compensation.Checked)))IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(1),"Actions.SequenceFlow.Checked"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=0, AGGCOUNT(FILTERSET(ThePage!SHAPESONPAGE(),"AND(OR(Actions.Start.Checked,Actions.End.Checked), AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""HASCATEGORY(""""Expanded Sub-Process"""")""))=0)"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=1, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=1)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=2, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=2)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,IF(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"HASCATEGORY(""Expanded Sub-Process"")"))=3, AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(AGGCOUNT(FILTERSET(CONTAINERMEMBERS(),""AND(OR(Actions.Start.Checked,Actions.End.Checked),AGGCOUNT(FILTERSET(PARENTCONTAINERS(),""""HASCATEGORY(""""""""Expanded Sub-Process"""""""")""""))=3)""))>0, HASCATEGORY(""Expanded Sub-Process""))"))=0,TRUE)))),TRUE)
22NoSequenceFlowToEndEventEnd EventsAn End Event must have incoming Sequence Flow.AND(HASCATEGORY("Event"),Actions.End.Checked)AGGCOUNT(FILTERSET(GLUEDSHAPES(1),"Actions.SequenceFlow.Checked"))>0
23WrongNumberOfIncomingSequenceFlowsIntermediateThrowingIntermediate EventsAn Intermediate (Throwing) Event with the None or Compensation Trigger/Result must have exactly one incoming Sequence Flow.AND(HASCATEGORY("Event"),Actions.IntermediateThrowing.Checked,OR(Actions.NoTriggerResult.Checked, Actions.Compensation.Checked))AGGCOUNT(FILTERSET(GLUEDSHAPES(1), "Actions.SequenceFlow.Checked")) = 1
24WrongNumberOfIncomingSequenceFlowsIntermediate1Intermediate EventsAn Intermediate Compensation Event must have exactly one incoming Sequence Flow unless it is on the boundary of an Activity.AND(HASCATEGORY("Event"),Actions.Intermediate.Checked,Actions.Compensation.Checked)IF(AND(AGGCOUNT(FILTERSET(OnBoundaryOf(),"HASCATEGORY(""Expanded Sub-Process"")"))=0,AGGCOUNT(FILTERSET(GLUEDSHAPES(5), "OR(HASCATEGORY(""Task""),HASCATEGORY(""Collapsed Sub-Process""))"))=0),AGGCOUNT(FILTERSET(GLUEDSHAPES(1), "Actions.SequenceFlow.Checked")) = 1, TRUE)
25WrongNumberOfIncomingSequenceFlowsIntermediate2Intermediate EventsAn Intermediate Event with the None Trigger/Result must have exactly one incoming Sequence Flow.AND(HASCATEGORY("Event"),Actions.Intermediate.Checked,Actions.NoTriggerResult.Checked)AGGCOUNT(FILTERSET(GLUEDSHAPES(1), "Actions.SequenceFlow.Checked")) = 1
26MoreThanOneIncomingSequenceFlowIntermediate EventsAn Intermediate or Intermediate (Throwing) Event with the Message, Timer, Conditional, Link or Signal Trigger/Result must not have more than one incoming Sequence Flow.AND(HASCATEGORY("Event"),OR(Actions.Intermediate.Checked, Actions.IntermediateThrowing.Checked),OR(Actions.Message.Checked,Actions.Timer.Checked,Actions.Conditional.Checked,Actions.Link.Checked,Actions.Signal.Checked))IF(AGGCOUNT(FILTERSET(OnBoundaryOf(),"HASCATEGORY(""Expanded Sub-Process"")"))=0,AGGCOUNT(FILTERSET(GLUEDSHAPES(1), "Actions.SequenceFlow.Checked")) < 2, TRUE)
27CompensationOutgoingFlowIntermediate EventsAn Intermediate Compensation Event must not have outgoing Sequence Flow if it is on the boundary of an Activity.AND(HASCATEGORY("Event"),Actions.Intermediate.Checked,Actions.Compensation.Checked)IF(OR(AGGCOUNT(FILTERSET(OnBoundaryOf(),"HASCATEGORY(""Expanded Sub-Process"")"))>0,AGGCOUNT(FILTERSET(GLUEDSHAPES(5), "OR(HASCATEGORY(""Task""),HASCATEGORY(""Collapsed Sub-Process""))"))>0),AGGCOUNT(FILTERSET(GLUEDSHAPES(2), "Actions.SequenceFlow.Checked")) = 0,TRUE)
28SequenceFlowToBoundaryEventIntermediate EventsAn Intermediate Event on an Activity boundary must not have incoming Sequence Flow.AND(HASCATEGORY("Event"),Actions.Intermediate.Checked)IF(OR(AGGCOUNT(FILTERSET(OnBoundaryOf(),"HASCATEGORY(""Expanded Sub-Process"")"))>0,AGGCOUNT(FILTERSET(GLUEDSHAPES(5), "OR(HASCATEGORY(""Task""),HASCATEGORY(""Collapsed Sub-Process""))"))>0),AGGCOUNT(FILTERSET(GLUEDSHAPES(1), "Actions.SequenceFlow.Checked")) = 0,TRUE)
29CancelButNoTransactionEnd EventsAn End Cancel Event must not occur outside a Transaction Expanded Sub-Process.AND(HASCATEGORY("Event"),Actions.End.Checked, Actions.Cancel.Checked)AND(AGGCOUNT(FILTERSET(PARENTCONTAINERS(),"AND(HASCATEGORY(""Expanded Sub-Process""),Prop.BpmnIsATransaction)"))>0, AGGCOUNT(FILTERSET(OnBoundaryOf(),"AND(HASCATEGORY(""Expanded Sub-Process""),Prop.BpmnIsATransaction)"))=0)
30SequenceFlowFromEndEventEnd EventsAn End Event must not have outgoing Sequence Flow unless it is on the boundary of an Expanded Sub-Process.AND(HASCATEGORY("Event"),Actions.End.Checked)IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(2), "Actions.SequenceFlow.Checked"))>0,OR(AGGCOUNT(FILTERSET(OnBoundaryOf(),"HASCATEGORY(""Expanded Sub-Process"")")) > 0, AGGCOUNT(FILTERSET(GLUEDSHAPES(5),"HASCATEGORY(""Expanded Sub-Process"")")) > 0), TRUE)
31LinkOrNoneOnBoundaryIntermediate EventsAn Intermediate Event attached to the boundary of an Activity must not have the None or Link Trigger/Result.AND(HASCATEGORY("Event"),Actions.Intermediate.Checked,OR(Actions.NoTriggerResult.Checked, Actions.Link.Checked))AND(AGGCOUNT(FILTERSET(OnBoundaryOf(),"HASCATEGORY(""Expanded Sub-Process"")")) = 0,AGGCOUNT(FILTERSET(GLUEDSHAPES(5),"OR(HASCATEGORY(""Task""),HASCATEGORY(""Collapsed Sub-Process""))")) = 0)
32LinkTargetAndSourceIntermediate EventsA Link Event must not have both incoming and outgoing Sequence Flow.AND(HASCATEGORY("Event"),Actions.Link.Checked,OR(Actions.Intermediate.Checked, Actions.IntermediateThrowing.Checked))IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(1), "Actions.SequenceFlow.Checked")) >0, AGGCOUNT(FILTERSET(GLUEDSHAPES(2), "Actions.SequenceFlow.Checked")) =0,TRUE)
33ReceiveTaskOutgoingFlowTasksA Receive Task must not have outgoing Message Flow.AND(HASCATEGORY("Task"), Actions.Receive.Checked)AGGCOUNT(FILTERSET(GLUEDSHAPES(2), "Actions.MessageFlow.Checked")) = 0
34SendIncomingMessageFlowTasksA Send Task must not have incoming Message Flow.AND(HASCATEGORY("Task"), Actions.Send.Checked)AGGCOUNT(FILTERSET(GLUEDSHAPES(1), "Actions.MessageFlow.Checked")) = 0
35ScriptManualMessageFlowTasksA Script or Manual Task must not have incoming or outgoing Message Flow.AND(HASCATEGORY("Task"),OR(Actions.Script.Checked,STRSAME(Prop.BpmnTaskType,INDEX(7,Prop.BpmnTaskType.Format))))AGGCOUNT(FILTERSET(GLUEDSHAPES(0), "Actions.MessageFlow.Checked")) = 0
36TooFewGatesGatewaysA Gateway with fewer than two incoming Sequence Flows must have at least two outgoing Sequence Flows.HASCATEGORY("Gateway")IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(1),"Actions.SequenceFlow.Checked")) < 2,AGGCOUNT(FILTERSET(GLUEDSHAPES(2), "Actions.SequenceFlow.Checked")) >1,TRUE)
37InconsistentGateIndicatorGatewaysA diagram should be consistent in the use of the "X" internal indicator on Exclusive Data Gateways.AGGCOUNT(FILTERSET(SHAPESONPAGE(),"AND(HASCATEGORY(""Gateway""),Actions.ExclusiveDataWithMarker.Checked)"))>0AGGCOUNT(FILTERSET(SHAPESONPAGE(),"AND(HASCATEGORY(""Gateway""), Actions.ExclusiveData.Checked)"))=0
38InvalidGatewayTargetGatewaysThe outgoing Sequence Flow of an Exclusive Event Gateway must connect to a Receive Task or an Intermediate Event with the Message, Timer, or Signal Trigger/Result.AND(HASCATEGORY("Connecting Object"),Actions.SequenceFlow.Checked)IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(4),"AND(HASCATEGORY(""Gateway""), Actions.ExclusiveEvent.Checked)"))>0,OR(AGGCOUNT(FILTERSET(GLUEDSHAPES(5), "Actions.Receive.Checked"))>0,AGGCOUNT(FILTERSET(GLUEDSHAPES(5),"AND(OR(Actions.Intermediate.Checked, Actions.IntermediateThrowing.Checked),OR(Actions.Message.Checked, Actions.Timer.Checked, Actions.Signal.Checked))"))>0),TRUE)
39InconsistentGatewayTargetsGatewaysAn Exclusive Event Gateway must not have outgoing Sequence Flow to both Tasks and Intermediate Events with the Message Trigger/Result.AND(HASCATEGORY("Gateway"), Actions.ExclusiveEvent.Checked)IF(AGGCOUNT(FILTERSET(CONNECTEDSHAPES(2), "HASCATEGORY(""Task"")"))>0,AGGCOUNT(FILTERSET(CONNECTEDSHAPES(2),"AND(OR(Actions.Intermediate.Checked, Actions.IntermediateThrowing.Checked),Actions.Message.Checked)"))=0,TRUE)
40OutgoingConditionalSequenceFlowActivitiesIf an Activity has outgoing Conditional Sequence Flow, then it must have at least one other outgoing Sequence Flow.OR(HASCATEGORY("Expanded Sub-Process"),HASCATEGORY("Task"),HASCATEGORY("Collapsed Sub-Process"))IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(2),"AND(Actions.SequenceFlow.Checked, Actions.ConditionExpression.Checked)")) >0,AGGCOUNT(FILTERSET(GLUEDSHAPES(2), "Actions.SequenceFlow.Checked")) >1,TRUE)
41DataObjectNoAssociationArtifactsA Data Object must be connected to at least one Association.HASCATEGORY("Data Object")AGGCOUNT(FILTERSET(GLUEDSHAPES(0),"Actions.Association.Checked"))>0
42ImproperAssociation2AssociationAn Association must connect to a Data Object or a Text Annotation, unless it connects a Compensation Event to a Compensation Activity.AND(HASCATEGORY("Connecting Object"),Actions.Association.Checked)IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(3), "OR(HASCATEGORY(""Data Object""),HASCATEGORY(""Text Annotation""))"))=0, OR(AND(AGGCOUNT(FILTERSET(GLUEDSHAPES(4),"Actions.Compensation.Checked"))>0,AGGCOUNT(FILTERSET(GLUEDSHAPES(5),"Prop.BpmnIsForCompensation"))>0),AND(AGGCOUNT(FILTERSET(GLUEDSHAPES(5),"AND(HASCATEGORY(""Event""),Actions.Compensation.Checked)"))>0,AGGCOUNT(FILTERSET(GLUEDSHAPES(4),"Prop.BpmnIsForCompensation"))>0)),TRUE)
43CompensationActivitySequenceFlowActivitiesA Compensation Activity must not have incoming or outgoing Sequence Flow.Prop.BpmnIsForCompensationAGGCOUNT(FILTERSET(GLUEDSHAPES(0),"Actions.SequenceFlow.Checked"))=0
44SameSourceAndTargetSequence Flow, Message FlowThe source and target must not be the same.OR(Actions.MessageFlow.Checked, Actions.SequenceFlow.Checked)NOT(AND(AGGCOUNT(GLUEDSHAPES(3))=1,AGGCOUNT(GLUEDSHAPES(4))=1, AGGCOUNT(GLUEDSHAPES(5))=1))
45NoTargetOrSourceSequence Flow, Message FlowThe flow must have a source and target.OR(Actions.MessageFlow.Checked, Actions.SequenceFlow.Checked)AND(AGGCOUNT(GLUEDSHAPES(4))=1,AGGCOUNT(GLUEDSHAPES(5))=1)
46NoTargetOrSourceAssociationAssociationAn Association must have a source and a target.AND(HASCATEGORY("Connecting Object"),Actions.Association.Checked)AND(AGGCOUNT(GLUEDSHAPES(4))=1,AGGCOUNT(GLUEDSHAPES(5))=1)
47SequenceFlowBetweenNonFlowObjectsSequence FlowA Data Object, Lane, Pool, Text Annotation or Group must not have incoming or outgoing Sequence Flow.OR(HASCATEGORY("Text Annotation"), HASCATEGORY("Data Object"), HASCATEGORY("Group"),HASCATEGORY("Swimlane"), HASCATEGORY("Pool"))AGGCOUNT(FILTERSET(GLUEDSHAPES(0),"Actions.SequenceFlow.Checked"))=0
48ImproperMessageFlowConnectionMessage FlowA Gateway, Data Object, Lane, Text Annotation or Group must not have incoming or outgoing Message Flow.OR(HASCATEGORY("Gateway"), HASCATEGORY("Text Annotation"), HASCATEGORY("Data Object"), HASCATEGORY("Group"),HASCATEGORY("Swimlane"))AGGCOUNT(FILTERSET(GLUEDSHAPES(0), "Actions.MessageFlow.Checked"))=0
49MessageFlowToStartEventStart EventsA Start Event with incoming Message Flow must have the Message or Multiple Trigger/Result.AND(HASCATEGORY("Event"),Actions.Start.Checked)IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(1),"Actions.MessageFlow.Checked"))> 0,OR(Actions.Message.Checked, Actions.Multiple.Checked), TRUE)
50MessageFlowFromStartEventStart EventsA Start Event must not have outgoing Message Flow.AND(HASCATEGORY("Event"),Actions.Start.Checked)AGGCOUNT(FILTERSET(GLUEDSHAPES(2), "Actions.MessageFlow.Checked"))=0
51MessageFlowToIntermediateEventIntermediate EventsAn Intermediate Event with incoming Message Flow must have the Message or Multiple Trigger/Result.AND(HASCATEGORY("Event"),Actions.Intermediate.Checked)IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(1),"Actions.MessageFlow.Checked"))> 0,OR(Actions.Message.Checked, Actions.Multiple.Checked), TRUE)
52MessageFlowFromIntermediateEventIntermediate EventsAn Intermediate Event must not have outgoing Message Flow.AND(HASCATEGORY("Event"),Actions.Intermediate.Checked)AGGCOUNT(FILTERSET(GLUEDSHAPES(2),"Actions.MessageFlow.Checked"))=0
53MessageFlowToIntermediateThrowingEventIntermediate EventsAn Intermediate (Throwing) Event must not have incoming Message Flow.AND(HASCATEGORY("Event"),Actions.IntermediateThrowing.Checked)AGGCOUNT(FILTERSET(GLUEDSHAPES(1),"Actions.MessageFlow.Checked"))=0
54MessageFlowFromIntermediateThrowingEventIntermediate EventsAn Intermediate (Throwing) Event with outgoing Message Flow must have the Message or Multiple Trigger/Result.AND(HASCATEGORY("Event"),Actions.IntermediateThrowing.Checked)IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(2),"Actions.MessageFlow.Checked"))> 0,OR(Actions.Message.Checked, Actions.Multiple.Checked), TRUE)
55MessageFlowToEndEventEnd EventsAn End Event must not have incoming Message Flow.AND(HASCATEGORY("Event"),Actions.End.Checked)AGGCOUNT(FILTERSET(GLUEDSHAPES(1),"Actions.MessageFlow.Checked"))=0
56MessageFlowFromEndEventEnd EventsAn End Event with outgoing Message Flow must have the Message or Multiple Trigger/Result.AND(HASCATEGORY("Event"),Actions.End.Checked)IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(2),"Actions.MessageFlow.Checked"))> 0,OR(Actions.Message.Checked, Actions.Multiple.Checked), TRUE)
57TooManyIncomingMessageFlowsStart EventsA Start Event with more than one incoming Message Flow must have the Multiple Trigger/Result.AND(HASCATEGORY("Event"),Actions.Start.Checked)IF(AGGCOUNT(FILTERSET(GLUEDSHAPES(1),"Actions.MessageFlow.Checked"))>1,Actions.Multiple.Checked, TRUE)
58IntermediateThrowingOnBoundaryIntermediate EventsAn Intermediate (Throwing) Event must not be attached to the boundary of an Activity.AND(HASCATEGORY("Event"),Actions.IntermediateThrowing.Checked)AND(AGGCOUNT(FILTERSET(OnBoundaryOf(),"HASCATEGORY(""Expanded Sub-Process"")")) = 0, AGGCOUNT(FILTERSET(GLUEDSHAPES(5), "OR(HASCATEGORY(""Task""),HASCATEGORY(""Collapsed Sub-Process""))"))=0)
59IntermediateErrorOnBoundaryIntermediate EventsAn Intermediate Error Event must be attached to the boundary of an Activity.AND(HASCATEGORY("Event"),Actions.Intermediate.Checked, Actions.Error.Checked)OR(AGGCOUNT(FILTERSET(OnBoundaryOf(),"HASCATEGORY(""Expanded Sub-Process"")")) > 0, AGGCOUNT(FILTERSET(GLUEDSHAPES(5), "OR(HASCATEGORY(""Task""),HASCATEGORY(""Collapsed Sub-Process""))"))>0)
60ImproperConditionalSequenceFlowEventsAn Event must not have outgoing Conditional Sequence Flow.HASCATEGORY("Event")AGGCOUNT(FILTERSET(GLUEDSHAPES(2),"AND(Actions.SequenceFlow.Checked, Actions.ConditionExpression.Checked)")) = 0
61ImproperConditionalSequenceFlow2GatewaysA Parallel or Complex Gateway must not have outgoing Conditional Sequence Flow.AND(HASCATEGORY("Gateway"),OR(Actions.Parallel.Checked,Actions.Complex.Checked))AGGCOUNT(FILTERSET(GLUEDSHAPES(2),"AND(Actions.SequenceFlow.Checked, Actions.ConditionExpression.Checked)")) = 0