cancel
Showing results for 
Search instead for 
Did you mean: 

Validation errors when using multiple SignalStartEvents

jwestra
Champ in-the-making
Champ in-the-making
I thought in the BPMN 2.0 specification, it is possible to have multiple SignalStartEvents.  However, I get the following errors when attempting to deploy the attached BPMN XML.  I don't even have "None" Start nor "Timer" Start events defined??  I only have two SignalStartEvents. 


Validation errors are (1 for each SignalStartEvent Smiley Happy:
=========================================
error : Multiple none start events or timer start events not supported on process definition
error : Multiple none start events or timer start events not supported on process definition


Is there something else wrong with my model? 
If not, when will this be a supported feature?


<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:activity="http://activiti.org/bpmn" xmlns:klover="http://klover.io/bpmn" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://bpmn.io/schema/bpmn" id="Definitions_1">
  <signal id="Signal_0cmkmdg" name="StartSignal_1" activity:scope="global"></signal>
  <signal id="Signal_0zr18n0" name="StartSignal_2" activity:scope="global"></signal>
  <process id="multipleSignalStarts" name="Process" isExecutable="true">
    <documentation>Process Definition</documentation>
    <startEvent id="StartEvent_1il1onz" name="Signaled Start Event 1">
      <documentation>This element denotes the start of the process instance</documentation>
      <signalEventDefinition signalRef="Signal_0cmkmdg"></signalEventDefinition>
    </startEvent>
    <startEvent id="StartEvent_15wy1o8" name="Signaled Start Event 2">
      <documentation>This element denotes the start of the process instance</documentation>
      <signalEventDefinition signalRef="Signal_0zr18n0"></signalEventDefinition>
    </startEvent>
    <userTask id="UserTask_0d4wagj" name="UserTask">
      <documentation>Adhoc User Task</documentation>
    </userTask>
    <sequenceFlow id="SequenceFlow_011xomt" sourceRef="StartEvent_1il1onz" targetRef="UserTask_0d4wagj"></sequenceFlow>
    <sequenceFlow id="SequenceFlow_13a8ll7" sourceRef="StartEvent_15wy1o8" targetRef="UserTask_0d4wagj"></sequenceFlow>
    <endEvent id="EndEvent_17n0hzd"></endEvent>
    <sequenceFlow id="SequenceFlow_1h6xkos" sourceRef="UserTask_0d4wagj" targetRef="EndEvent_17n0hzd"></sequenceFlow>
  </process>
  <bpmndi:BPMNDiagram id="BPMNDiagram_Process_1">
    <bpmndi:BPMNPlane bpmnElement="Process_1" id="BPMNPlane_Process_1">
      <bpmndi:BPMNShape bpmnElement="StartEvent_1il1onz" id="BPMNShape_StartEvent_1il1onz">
        <omgdc:Bounds height="36.0" width="36.0" x="211.0" y="207.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="StartEvent_15wy1o8" id="BPMNShape_StartEvent_15wy1o8">
        <omgdc:Bounds height="36.0" width="36.0" x="201.0" y="313.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="UserTask_0d4wagj" id="BPMNShape_UserTask_0d4wagj">
        <omgdc:Bounds height="80.0" width="100.0" x="422.0" y="231.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNShape bpmnElement="EndEvent_17n0hzd" id="BPMNShape_EndEvent_17n0hzd">
        <omgdc:Bounds height="36.0" width="36.0" x="632.0" y="253.0"></omgdc:Bounds>
      </bpmndi:BPMNShape>
      <bpmndi:BPMNEdge bpmnElement="SequenceFlow_011xomt" id="BPMNEdge_SequenceFlow_011xomt">
        <omgdi:waypoint x="247.0" y="225.0"></omgdi:waypoint>
        <omgdi:waypoint x="335.0" y="225.0"></omgdi:waypoint>
        <omgdi:waypoint x="335.0" y="271.0"></omgdi:waypoint>
        <omgdi:waypoint x="422.0" y="271.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="SequenceFlow_13a8ll7" id="BPMNEdge_SequenceFlow_13a8ll7">
        <omgdi:waypoint x="237.0" y="331.0"></omgdi:waypoint>
        <omgdi:waypoint x="330.0" y="331.0"></omgdi:waypoint>
        <omgdi:waypoint x="330.0" y="271.0"></omgdi:waypoint>
        <omgdi:waypoint x="422.0" y="271.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
      <bpmndi:BPMNEdge bpmnElement="SequenceFlow_1h6xkos" id="BPMNEdge_SequenceFlow_1h6xkos">
        <omgdi:waypoint x="522.0" y="271.0"></omgdi:waypoint>
        <omgdi:waypoint x="632.0" y="271.0"></omgdi:waypoint>
      </bpmndi:BPMNEdge>
    </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
</definitions>
2 REPLIES 2

jbarrez
Star Contributor
Star Contributor
You are correct, the validator is too zealous.
I fixed it here: https://github.com/Activiti/Activiti/commit/e6ecf03f6bb11487a0a4388e76e2e5b0fee9cc79
Will port it to v6 tomorrow.

jwestra
Champ in-the-making
Champ in-the-making
Awesome!  Thanks Joram