cancel
Showing results for 
Search instead for 
Did you mean: 

Signal Events

plehal
Champ in-the-making
Champ in-the-making
I am trying to use and test Signal Events in the workflow but for some reason it does not seem to work. My bpmn is pasted here as it did not get uploaded. After competing first task  the process just gets closed. I expect the process to follow either signal 1 or signal 2 path depending upon the decision variable set in first task. Please, advise where I may be screwing up…..

<?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:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlnsSmiley Surprisedmgdc="http://www.omg.org/spec/DD/20100524/DC" xmlnsSmiley Surprisedmgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://activiti.org/bpmn20">
  <signal id="signal1" name="Signal1" />
  <signal id="signal2" name="Signal2" />
- <process id="EventTestProcess" name="EventTestProcess">
- <userTask id="usertask1" name="task1" activiti:candidateGroups="ddgdegdfg">
- <extensionElements>
  <activiti:formProperty id="decision" name="decision" />
  </extensionElements>
  </userTask>
  <exclusiveGateway id="exclusivegateway1" name="Exclusive Gateway" />
- <intermediateThrowEvent id="signalevent1" name="SignalEvent 1">
  <signalEventDefinition signalRef="signal1" />
  </intermediateThrowEvent>
- <intermediateCatchEvent id="signalcevent1" name="SignalCatchEvent 1">
  <signalEventDefinition signalRef="signal1" />
  </intermediateCatchEvent>
  <userTask id="usertask2" name="Signal 1 caught task" activiti:candidateGroups="cbxfg" />
  <endEvent id="endevent2" name="End" />
- <intermediateThrowEvent id="signalintermediatethrowevent1" name="SignalEvent 2">
  <signalEventDefinition signalRef="signal2" />
  </intermediateThrowEvent>
- <intermediateCatchEvent id="signalintermediatecatchevent1" name="SignalCatchEvent 2">
  <signalEventDefinition signalRef="signal2" />
  </intermediateCatchEvent>
  <userTask id="usertask3" name="signal 2 task" activiti:candidateGroups="cbcvbcccvb" />
  <startEvent id="startevent1" name="Start" />
  <sequenceFlow id="flow2" name="" sourceRef="usertask1" targetRef="exclusivegateway1" />
- <sequenceFlow id="flow3" name="" sourceRef="exclusivegateway1" targetRef="signalevent1">
- <conditionExpression xsi:type="tFormalExpression">
- <![CDATA[ ${decision=="1"}
  ]]>
  </conditionExpression>
  </sequenceFlow>
  <sequenceFlow id="flow5" name="" sourceRef="signalcevent1" targetRef="usertask2" />
  <sequenceFlow id="flow6" name="" sourceRef="usertask2" targetRef="endevent2" />
- <sequenceFlow id="flow8" name="" sourceRef="exclusivegateway1" targetRef="signalintermediatethrowevent1">
- <conditionExpression xsi:type="tFormalExpression">
- <![CDATA[ ${decision=="2"}
  ]]>
  </conditionExpression>
  </sequenceFlow>
  <sequenceFlow id="flow10" name="" sourceRef="signalintermediatecatchevent1" targetRef="usertask3" />
  <sequenceFlow id="flow11" name="" sourceRef="usertask3" targetRef="endevent2" />
  <sequenceFlow id="flow12" name="" sourceRef="startevent1" targetRef="usertask1" />
  </process>
- <bpmndi:BPMNDiagram id="BPMNDiagram_EventTestProcess">
- <bpmndi:BPMNPlane bpmnElement="EventTestProcess" id="BPMNPlane_EventTestProcess">
- <bpmndi:BPMNShape bpmnElement="usertask1" id="BPMNShape_usertask1">
  <omgdc:Bounds height="55" width="105" x="110" y="190" />
  </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="exclusivegateway1" id="BPMNShape_exclusivegateway1">
  <omgdc:Bounds height="40" width="40" x="270" y="197" />
  </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="signalevent1" id="BPMNShape_signalevent1">
  <omgdc:Bounds height="35" width="35" x="342" y="200" />
  </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="signalcevent1" id="BPMNShape_signalcevent1">
  <omgdc:Bounds height="35" width="35" x="180" y="340" />
  </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="usertask2" id="BPMNShape_usertask2">
  <omgdc:Bounds height="55" width="105" x="300" y="330" />
  </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="endevent2" id="BPMNShape_endevent2">
  <omgdc:Bounds height="35" width="35" x="570" y="340" />
  </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="signalintermediatethrowevent1" id="BPMNShape_signalintermediatethrowevent1">
  <omgdc:Bounds height="35" width="35" x="320" y="120" />
  </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="signalintermediatecatchevent1" id="BPMNShape_signalintermediatecatchevent1">
  <omgdc:Bounds height="35" width="35" x="180" y="420" />
  </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="usertask3" id="BPMNShape_usertask3">
  <omgdc:Bounds height="55" width="105" x="300" y="410" />
  </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="startevent1" id="BPMNShape_startevent1">
  <omgdc:Bounds height="35" width="35" x="20" y="200" />
  </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge bpmnElement="flow2" id="BPMNEdge_flow2">
  <omgdi:waypoint x="215" y="217" />
  <omgdi:waypoint x="270" y="217" />
  </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow3" id="BPMNEdge_flow3">
  <omgdi:waypoint x="310" y="217" />
  <omgdi:waypoint x="342" y="217" />
  </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow5" id="BPMNEdge_flow5">
  <omgdi:waypoint x="215" y="357" />
  <omgdi:waypoint x="300" y="357" />
  </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow6" id="BPMNEdge_flow6">
  <omgdi:waypoint x="405" y="357" />
  <omgdi:waypoint x="570" y="357" />
  </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow8" id="BPMNEdge_flow8">
  <omgdi:waypoint x="290" y="197" />
  <omgdi:waypoint x="290" y="137" />
  <omgdi:waypoint x="320" y="137" />
  </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow10" id="BPMNEdge_flow10">
  <omgdi:waypoint x="215" y="437" />
  <omgdi:waypoint x="300" y="437" />
  </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow11" id="BPMNEdge_flow11">
  <omgdi:waypoint x="405" y="437" />
  <omgdi:waypoint x="587" y="437" />
  <omgdi:waypoint x="587" y="375" />
  </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="flow12" id="BPMNEdge_flow12">
  <omgdi:waypoint x="55" y="217" />
  <omgdi:waypoint x="110" y="217" />
  </bpmndi:BPMNEdge>
  </bpmndi:BPMNPlane>
  </bpmndi:BPMNDiagram>
  </definitions>
4 REPLIES 4

jbarrez
Star Contributor
Star Contributor
Looking at the process, it should work.
Could you create a jira with a simple unit test?

plehal
Champ in-the-making
Champ in-the-making
http://jira.codehaus.org/browse/ACT-1446 has been created for this.

meyerd
Champ on-the-rise
Champ on-the-rise
Hi plehal,

your process is not valid. You have two intermediate catching signal events (signalcevent1 and signalintermediatecatchevent1) that have no incoming sequence flows. Intermediate catching signal events are only "activated" (meaning that they wait for a signal, ie. a signal event subscription is created) if an execution enters the event. Since in your case the events have no incoming sequence flows, they will never be activated.

plehal
Champ in-the-making
Champ in-the-making
Thanks, I got it working now.