cancel
Showing results for 
Search instead for 
Did you mean: 

Issue querying for Signal

jpgouin
Champ on-the-rise
Champ on-the-rise

Hi,

I have a problem regarding the query of signal.

I'm trying to use signalEventReceived(signalName,executionId) to trigger a boundary signal. However it does not work, it says that Execution xx has not subscribed to a signal event with name xx.

And when I query for the active execution , there is no eventSubscription, the list is empty.

But when I inspect the execution (in Java , in debug mode)   I can access the executions object which contains the ScopeExecution and this scope contains the SignalEventSubscriptionEntity of the correct signal.

Is it possible to access the ScopeExecution  through the runtimeService , if so how can I get the proper ScopeExecution  id and which query shall I use?

Maybe there is something wrong with my bpmn , because the request

runtimeService.createExecutionQuery().signalEventSubscriptionName(signalName) should be returning the execution that has the signal register but it return null instead.

I'm using Activiti 5.19.0.2 integrated into ServiceMix and Camel.

Thanks for the help,

Jean-Philippe.

Here is my BPMN

<?xml version="1.0" encoding="UTF-8"?>

<!-- origin at X=0.0 Y=0.0 -->

<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:activiti="http://activiti.org/bpmn" xmlns:camunda="http://activiti.org/bpmn" xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:drools="http://www.jboss.org/drools" xmlns="http://www.jboss.org/drools" xmlns:xs="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd http://www.jboss.org/drools drools.xsd http://www.bpsim.org/schemas/1.0 bpsim.xsd" id="_EiNnUCRfEeO2cYCcDeOX2w" exporter="org.eclipse.bpmn2.modeler.core" exporterVersion="1.3.2.Final-v20161020-1541-B59" targetNamespace="http://activiti.org/bpmn">

<bpmn2:itemDefinition id="ItemDefinition_1" isCollection="false" structureRef="xs:string"/>

<bpmn2:error id="Error_1" errorCode="camel.error" name="camel.error"/>

<bpmn2:signal id="Message_3" name="camel.signal"/>

<bpmn2:signal id="alertSignal" name="alert"/>

<bpmn2:message id="Message_1" name="camel.answer"/>

<bpmn2:message id="Message_2" name="camel.start"/>

<bpmn2:message id="Message_4" name="cameltest"/>

<bpmn2:collaboration id="_Collaboration_3">

<bpmn2Smiley Tonguearticipant id="camel-participant" name="Camel" processRef="Camel"/>

<bpmn2Smiley Tonguearticipant id="Participant_1" name="Process Engine" processRef="camel-use-cases"/>

<bpmn2:messageFlow id="MessageFlow_1" name="" sourceRef="syncTask" targetRef="camel-participant"/>

<bpmn2:messageFlow id="MessageFlow_2" name="" sourceRef="camel-participant" targetRef="syncTask"/>

<bpmn2:messageFlow id="MessageFlow_4" name="" sourceRef="camel-participant" targetRef="IntermediateCatchEvent_1"/>

<bpmn2:messageFlow id="MessageFlow_5" name="" sourceRef="camel-participant" targetRef="StartEvent_1"/>

<bpmn2:messageFlow id="MessageFlow_6" name="" sourceRef="camel-participant" targetRef="StartEvent_2"/>

<bpmn2:messageFlow id="MessageFlow_3" sourceRef="asyncTask" targetRef="camel-participant"/>

</bpmn2:collaboration>

<bpmn2Smiley Tonguerocess id="Camel" isExecutable="false"/>

<bpmn2Smiley Tonguerocess id="camel-use-cases" name="Camel Use Cases" isExecutable="true">

<bpmn2:startEvent id="StartEvent_1" name="message&#xD;&#xA;'start'&#xD;&#xA;received">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[message

'start'

received]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_2</bpmn2Smiley Surprisedutgoing>

<bpmn2:messageEventDefinition id="MessageEventDefinition_1" messageRef="Message_2"/>

</bpmn2:startEvent>

<bpmn2:startEvent id="StartEvent_2" name="default&#xD;&#xA;start&#xD;&#xA;event">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[default

start

event]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_1</bpmn2Smiley Surprisedutgoing>

</bpmn2:startEvent>

<bpmn2:sequenceFlow id="SequenceFlow_1" sourceRef="StartEvent_2" targetRef="ScriptTask_2"/>

<bpmn2:sequenceFlow id="SequenceFlow_2" sourceRef="StartEvent_1" targetRef="ScriptTask_1"/>

<bpmn2:sequenceFlow id="SequenceFlow_4" name="" sourceRef="ScriptTask_1" targetRef="ExclusiveGateway_2"/>

<bpmn2:serviceTask id="syncTask" activiti:delegateExpression="${camel}" name="call some service">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[call some service]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_6</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_7</bpmn2Smiley Surprisedutgoing>

<bpmn2:ioSpecification id="InputOutputSpecification_4">

<bpmn2:inputSet id="InputSet_4" name="Input Set 4"/>

<bpmn2Smiley SurprisedutputSet id="OutputSet_4" name="Output Set 4"/>

</bpmn2:ioSpecification>

</bpmn2:serviceTask>

<bpmn2:serviceTask id="asyncTask" activiti:delegateExpression="${camel}" name="call some async service">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[call some async service]]></drools:metaValue>

</drools:metaData>

<drools:metaData name="customAsync">

<drools:metaValue><![CDATA[true]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_7</bpmn2:incoming>

<bpmn2:incoming>SequenceFlow_16</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_8</bpmn2Smiley Surprisedutgoing>

</bpmn2:serviceTask>

<bpmn2:sequenceFlow id="SequenceFlow_7" name="" sourceRef="syncTask" targetRef="asyncTask"/>

<bpmn2:eventBasedGateway id="EventBasedGateway_1" gatewayDirection="Diverging">

<bpmn2:incoming>SequenceFlow_8</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_9</bpmn2Smiley Surprisedutgoing>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_22</bpmn2Smiley Surprisedutgoing>

</bpmn2:eventBasedGateway>

<bpmn2:sequenceFlow id="SequenceFlow_8" sourceRef="asyncTask" targetRef="EventBasedGateway_1"/>

<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_1" name="message&#xD;&#xA;'answer'&#xD;&#xA;received">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[message

'answer'

received]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_9</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_12</bpmn2Smiley Surprisedutgoing>

<bpmn2:messageEventDefinition id="MessageEventDefinition_2" messageRef="Message_1"/>

</bpmn2:intermediateCatchEvent>

<bpmn2:intermediateCatchEvent id="IntermediateCatchEvent_2" name="1 minute">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[1 minute]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_22</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_11</bpmn2Smiley Surprisedutgoing>

<bpmn2:timerEventDefinition id="TimerEventDefinition_1">

<bpmn2:timeDuration xsi:type="bpmn2:tFormalExpression" id="FormalExpression_1">PT1M</bpmn2:timeDuration>

</bpmn2:timerEventDefinition>

</bpmn2:intermediateCatchEvent>

<bpmn2:sequenceFlow id="SequenceFlow_9" name="" sourceRef="EventBasedGateway_1" targetRef="IntermediateCatchEvent_1"/>

<bpmn2:sequenceFlow id="SequenceFlow_11" sourceRef="IntermediateCatchEvent_2" targetRef="ScriptTask_5"/>

<bpmn2:endEvent id="EndEvent_2" name="cancelled">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[cancelled]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_13</bpmn2:incoming>

</bpmn2:endEvent>

<bpmn2:sequenceFlow id="SequenceFlow_13" sourceRef="ScriptTask_5" targetRef="EndEvent_2"/>

<bpmn2:endEvent id="EndEvent_3" name="processed">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[processed]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_15</bpmn2:incoming>

</bpmn2:endEvent>

<bpmn2:sequenceFlow id="SequenceFlow_15" sourceRef="SubProcess_2" targetRef="EndEvent_3"/>

<bpmn2:sequenceFlow id="SequenceFlow_16" name="" sourceRef="ScriptTask_3" targetRef="asyncTask"/>

<bpmn2:scriptTask id="ScriptTask_1" name="acknowledge message 'start'" scriptFormat="JavaScript">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[acknowledge message 'start']]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_2</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_4</bpmn2Smiley Surprisedutgoing>

<bpmn2:script>var demoId = execution.getVariable(&quot;demoId&quot;);

java.util.logging.Logger.getLogger(&quot;SCRIPT&quot;).info(&quot;Message Start ::: demoId &quot;+demoId);</bpmn2:script>

</bpmn2:scriptTask>

<bpmn2:scriptTask id="ScriptTask_2" name="acknowledge default start" scriptFormat="JavaScript">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[acknowledge default start]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_1</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_20</bpmn2Smiley Surprisedutgoing>

<bpmn2:script>var demoId = execution.getVariable(&quot;demoId&quot;);

java.util.logging.Logger.getLogger(&quot;SCRIPT&quot;).info(&quot;Default Start ::: demoId &quot;+demoId);

</bpmn2:script>

</bpmn2:scriptTask>

<bpmn2:scriptTask id="ScriptTask_3" name="acknowledge signal" scriptFormat="JavaScript">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[acknowledge signal]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_3</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_16</bpmn2Smiley Surprisedutgoing>

<bpmn2:script>var demoId = execution.getVariable(&quot;demoId&quot;);

java.util.logging.Logger.getLogger(&quot;SCRIPT&quot;).info(&quot;Signal received ::: demoId &quot;+demoId);</bpmn2:script>

</bpmn2:scriptTask>

<bpmn2:scriptTask id="ScriptTask_5" name="acknowledge timeout" scriptFormat="JavaScript">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[acknowledge timeout]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_11</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_13</bpmn2Smiley Surprisedutgoing>

<bpmn2:script>var demoId = execution.getVariable(&quot;demoId&quot;);

java.util.logging.Logger.getLogger(&quot;SCRIPT&quot;).info(&quot;Acknowledge Timeout&quot;)</bpmn2:script>

</bpmn2:scriptTask>

<bpmn2:subProcess id="SubProcess_2" name="Sub Process 2">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[Sub Process 2]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_17</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_15</bpmn2Smiley Surprisedutgoing>

<bpmn2:startEvent id="StartEvent_3" name="Start Event 3">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[Start Event 3]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_18</bpmn2Smiley Surprisedutgoing>

</bpmn2:startEvent>

<bpmn2:scriptTask id="ScriptTask_6" name="acknowledge answer script" scriptFormat="JavaScript">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[acknowledge answer script]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_18</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_19</bpmn2Smiley Surprisedutgoing>

<bpmn2:script>var demoId = execution.getVariable(&quot;demoId&quot;);

java.util.logging.Logger.getLogger(&quot;SCRIPT&quot;).info(&quot;Acknowledge Answer ::: demoId &quot;+demoId);</bpmn2:script>

</bpmn2:scriptTask>

<bpmn2:endEvent id="EndEvent_1" name="End Event 1">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[End Event 1]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_19</bpmn2:incoming>

</bpmn2:endEvent>

<bpmn2:sequenceFlow id="SequenceFlow_18" droolsSmiley Tongueriority="1" sourceRef="StartEvent_3" targetRef="ScriptTask_6"/>

<bpmn2:sequenceFlow id="SequenceFlow_19" droolsSmiley Tongueriority="1" sourceRef="ScriptTask_6" targetRef="EndEvent_1"/>

</bpmn2:subProcess>

<bpmn2:scriptTask id="ScriptTask_4" name="Script Task 4" scriptFormat="JavaScript">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[Script Task 4]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_12</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_17</bpmn2Smiley Surprisedutgoing>

<bpmn2:script>var demoId = execution.getVariable(&quot;demoId&quot;);

java.util.logging.Logger.getLogger(&quot;SCRIPT&quot;).info(&quot;signal received for message &quot;+demoId);</bpmn2:script>

</bpmn2:scriptTask>

<bpmn2:sequenceFlow id="SequenceFlow_12" droolsSmiley Tongueriority="1" sourceRef="IntermediateCatchEvent_1" targetRef="ScriptTask_4"/>

<bpmn2:sequenceFlow id="SequenceFlow_17" droolsSmiley Tongueriority="1" sourceRef="ScriptTask_4" targetRef="SubProcess_2"/>

<bpmn2:sequenceFlow id="SequenceFlow_22" droolsSmiley Tongueriority="1" sourceRef="EventBasedGateway_1" targetRef="IntermediateCatchEvent_2"/>

<bpmn2:scriptTask id="ScriptTask_8" activiti:async="true" name="setVariables" scriptFormat="JavaScript">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[setVariables]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2:incoming>SequenceFlow_23</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_6</bpmn2Smiley Surprisedutgoing>

<bpmn2:script>execution.setVariable(&quot;executionId&quot;, execution.getId());

java.util.logging.Logger.getLogger(&quot;SCRIPT&quot;).info(execution);

java.util.logging.Logger.getLogger(&quot;SCRIPT&quot;).info(this);</bpmn2:script>

</bpmn2:scriptTask>

<bpmn2:sequenceFlow id="SequenceFlow_23" droolsSmiley Tongueriority="1" sourceRef="ExclusiveGateway_2" targetRef="ScriptTask_8"/>

<bpmn2:sequenceFlow id="SequenceFlow_20" droolsSmiley Tongueriority="1" sourceRef="ScriptTask_2" targetRef="ExclusiveGateway_2"/>

<bpmn2:exclusiveGateway id="ExclusiveGateway_2" gatewayDirection="Converging">

<bpmn2:incoming>SequenceFlow_4</bpmn2:incoming>

<bpmn2:incoming>SequenceFlow_20</bpmn2:incoming>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_23</bpmn2Smiley Surprisedutgoing>

</bpmn2:exclusiveGateway>

<bpmn2:sequenceFlow id="SequenceFlow_6" droolsSmiley Tongueriority="1" sourceRef="ScriptTask_8" targetRef="syncTask"/>

<bpmn2:boundaryEvent id="BoundaryEvent_1" attachedToRef="syncTask">

<bpmn2:extensionElements>

<drools:metaData name="elementname">

<drools:metaValue><![CDATA[]]></drools:metaValue>

</drools:metaData>

</bpmn2:extensionElements>

<bpmn2Smiley Surprisedutgoing>SequenceFlow_3</bpmn2Smiley Surprisedutgoing>

<bpmn2:signalEventDefinition id="SignalEventDefinition_1" signalRef="alertSignal"/>

</bpmn2:boundaryEvent>

<bpmn2:sequenceFlow id="SequenceFlow_3" droolsSmiley Tongueriority="1" sourceRef="BoundaryEvent_1" targetRef="ScriptTask_3"/>

</bpmn2Smiley Tonguerocess>

<bpmndi:BPMNDiagram id="BPMNDiagram_1">

<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="_Collaboration_3">

<bpmndi:BPMNShape id="_BPMNShape_Participant_7" bpmnElement="camel-participant" isHorizontal="true">

<dc:Bounds height="73.0" width="1675.0" x="36.0" y="24.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_31" labelStyle="BPMNLabelStyle_1">

<dc:Bounds height="43.0" width="17.0" x="42.0" y="39.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="_BPMNShape_Participant_8" bpmnElement="Participant_1" isHorizontal="true">

<dc:Bounds height="471.0" width="1675.0" x="36.0" y="120.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_32" labelStyle="BPMNLabelStyle_1">

<dc:Bounds height="104.0" width="17.0" x="42.0" y="303.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="BPMNShape_SubProcess_2" bpmnElement="SubProcess_2" isExpanded="true">

<dc:Bounds height="150.0" width="371.0" x="1156.0" y="155.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_101">

<dc:Bounds height="15.0" width="81.0" x="1162.0" y="158.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="_BPMNShape_StartEvent_6" bpmnElement="StartEvent_1">

<dc:Bounds height="36.0" width="36.0" x="100.0" y="485.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_1" labelStyle="BPMNLabelStyle_1">

<dc:Bounds height="51.0" width="72.0" x="82.0" y="521.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="_BPMNShape_StartEvent_7" bpmnElement="StartEvent_2">

<dc:Bounds height="36.0" width="36.0" x="120.0" y="168.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_2" labelStyle="BPMNLabelStyle_1">

<dc:Bounds height="51.0" width="54.0" x="111.0" y="204.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="_BPMNShape_ServiceTask_9" bpmnElement="syncTask">

<dc:Bounds height="80.0" width="100.0" x="520.0" y="305.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_35" labelStyle="BPMNLabelStyle_1">

<dc:Bounds height="15.0" width="96.0" x="522.0" y="337.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="_BPMNShape_SendTask_2" bpmnElement="asyncTask">

<dc:Bounds height="80.0" width="100.0" x="720.0" y="305.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_36" labelStyle="BPMNLabelStyle_1">

<dc:Bounds height="30.0" width="96.0" x="722.0" y="330.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="_BPMNShape_EventBasedGateway_2" bpmnElement="EventBasedGateway_1" isMarkerVisible="true">

<dc:Bounds height="50.0" width="50.0" x="874.0" y="320.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_12" labelStyle="BPMNLabelStyle_1"/>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="_BPMNShape_IntermediateCatchEvent_2" bpmnElement="IntermediateCatchEvent_1">

<dc:Bounds height="36.0" width="36.0" x="937.0" y="211.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_14" labelStyle="BPMNLabelStyle_1">

<dc:Bounds height="51.0" width="72.0" x="919.0" y="247.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="_BPMNShape_IntermediateCatchEvent_3" bpmnElement="IntermediateCatchEvent_2">

<dc:Bounds height="36.0" width="36.0" x="881.0" y="417.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_15" labelStyle="BPMNLabelStyle_1">

<dc:Bounds height="17.0" width="56.0" x="871.0" y="453.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="_BPMNShape_EndEvent_20" bpmnElement="EndEvent_2">

<dc:Bounds height="36.0" width="36.0" x="1620.0" y="417.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_19" labelStyle="BPMNLabelStyle_1">

<dc:Bounds height="17.0" width="62.0" x="1607.0" y="453.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="_BPMNShape_EndEvent_21" bpmnElement="EndEvent_3">

<dc:Bounds height="36.0" width="36.0" x="1608.0" y="211.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_22" labelStyle="BPMNLabelStyle_1">

<dc:Bounds height="17.0" width="69.0" x="1592.0" y="247.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="BPMNShape_ScriptTask_1" bpmnElement="ScriptTask_1">

<dc:Bounds height="50.0" width="110.0" x="191.0" y="480.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_3">

<dc:Bounds height="34.0" width="102.0" x="195.0" y="488.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="BPMNShape_ScriptTask_2" bpmnElement="ScriptTask_2">

<dc:Bounds height="50.0" width="110.0" x="201.0" y="161.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_4">

<dc:Bounds height="34.0" width="90.0" x="211.0" y="169.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="BPMNShape_ScriptTask_3" bpmnElement="ScriptTask_3">

<dc:Bounds height="50.0" width="110.0" x="619.0" y="480.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_6">

<dc:Bounds height="15.0" width="110.0" x="619.0" y="497.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="BPMNShape_ScriptTask_5" bpmnElement="ScriptTask_5">

<dc:Bounds height="50.0" width="110.0" x="1264.0" y="410.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_8">

<dc:Bounds height="34.0" width="90.0" x="1274.0" y="418.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="BPMNShape_StartEvent_1" bpmnElement="StartEvent_3">

<dc:Bounds height="36.0" width="36.0" x="1186.0" y="217.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_7">

<dc:Bounds height="15.0" width="68.0" x="1170.0" y="253.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="BPMNShape_ScriptTask_6" bpmnElement="ScriptTask_6" isExpanded="true">

<dc:Bounds height="50.0" width="110.0" x="1276.0" y="210.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_9">

<dc:Bounds height="30.0" width="76.0" x="1293.0" y="220.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="BPMNShape_EndEvent_1" bpmnElement="EndEvent_1">

<dc:Bounds height="36.0" width="36.0" x="1436.0" y="217.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_10">

<dc:Bounds height="15.0" width="65.0" x="1422.0" y="253.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="BPMNShape_ScriptTask_4" bpmnElement="ScriptTask_4" isExpanded="true">

<dc:Bounds height="50.0" width="110.0" x="1011.0" y="205.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_11">

<dc:Bounds height="17.0" width="86.0" x="1023.0" y="221.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="BPMNShape_ScriptTask_8" bpmnElement="ScriptTask_8" isExpanded="true">

<dc:Bounds height="50.0" width="110.0" x="360.0" y="328.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_13">

<dc:Bounds height="17.0" width="80.0" x="375.0" y="344.0"/>

</bpmndi:BPMNLabel>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="BPMNShape_ExclusiveGateway_1" bpmnElement="ExclusiveGateway_2" isMarkerVisible="true">

<dc:Bounds height="50.0" width="50.0" x="280.0" y="328.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_5"/>

</bpmndi:BPMNShape>

<bpmndi:BPMNShape id="BPMNShape_BoundaryEvent_1" bpmnElement="BoundaryEvent_1">

<dc:Bounds height="36.0" width="36.0" x="552.0" y="369.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_16"/>

</bpmndi:BPMNShape>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_1" bpmnElement="SequenceFlow_1" sourceElement="_BPMNShape_StartEvent_7" targetElement="BPMNShape_ScriptTask_2">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="156.0" y="186.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="178.0" y="186.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="201.0" y="186.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_18"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_2" bpmnElement="SequenceFlow_2" sourceElement="_BPMNShape_StartEvent_6" targetElement="BPMNShape_ScriptTask_1">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="136.0" y="503.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="163.0" y="503.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="163.0" y="505.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="191.0" y="505.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_20"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_4" bpmnElement="SequenceFlow_4" sourceElement="BPMNShape_ScriptTask_1" targetElement="BPMNShape_ExclusiveGateway_1">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="301.0" y="505.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="305.0" y="505.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="305.0" y="378.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_21"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_7" bpmnElement="SequenceFlow_7" sourceElement="_BPMNShape_ServiceTask_9" targetElement="_BPMNShape_SendTask_2">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="620.0" y="345.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="670.0" y="345.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="720.0" y="345.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_23"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_8" bpmnElement="SequenceFlow_8" sourceElement="_BPMNShape_SendTask_2" targetElement="_BPMNShape_EventBasedGateway_2">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="820.0" y="345.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="847.0" y="345.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="874.0" y="345.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_24"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_9" bpmnElement="SequenceFlow_9" sourceElement="_BPMNShape_EventBasedGateway_2" targetElement="_BPMNShape_IntermediateCatchEvent_2">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="899.0" y="320.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="899.0" y="229.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="937.0" y="229.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_25"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_11" bpmnElement="SequenceFlow_11" sourceElement="_BPMNShape_IntermediateCatchEvent_3" targetElement="BPMNShape_ScriptTask_5">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="917.0" y="435.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1090.0" y="435.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1264.0" y="435.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_26"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_13" bpmnElement="SequenceFlow_13" sourceElement="BPMNShape_ScriptTask_5" targetElement="_BPMNShape_EndEvent_20">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1374.0" y="435.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1497.0" y="435.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1620.0" y="435.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_27"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_15" bpmnElement="SequenceFlow_15" sourceElement="BPMNShape_SubProcess_2" targetElement="_BPMNShape_EndEvent_21">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1527.0" y="230.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1567.0" y="230.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1608.0" y="229.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_28"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_16" bpmnElement="SequenceFlow_16" sourceElement="BPMNShape_ScriptTask_3" targetElement="_BPMNShape_SendTask_2">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="729.0" y="505.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="770.0" y="505.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="770.0" y="385.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_29"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_MessageFlow_1" bpmnElement="MessageFlow_1" sourceElement="_BPMNShape_ServiceTask_9" targetElement="_BPMNShape_Participant_7">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="520.0" y="331.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="520.0" y="97.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_30"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_MessageFlow_2" bpmnElement="MessageFlow_2" sourceElement="_BPMNShape_Participant_7" targetElement="_BPMNShape_ServiceTask_9">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="528.0" y="97.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="528.0" y="201.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="570.0" y="201.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="570.0" y="305.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_33"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_MessageFlow_4" bpmnElement="MessageFlow_4" sourceElement="_BPMNShape_Participant_7" targetElement="_BPMNShape_IntermediateCatchEvent_2">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="813.0" y="97.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="813.0" y="154.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="955.0" y="154.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="955.0" y="211.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_34"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_MessageFlow_5" bpmnElement="MessageFlow_5" sourceElement="_BPMNShape_Participant_7" targetElement="_BPMNShape_StartEvent_6">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="118.0" y="97.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="118.0" y="485.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_37"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_MessageFlow_6" bpmnElement="MessageFlow_6" sourceElement="_BPMNShape_Participant_7" targetElement="_BPMNShape_StartEvent_7">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="138.0" y="97.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="138.0" y="168.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_38"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_MessageFlow_3" bpmnElement="MessageFlow_3" sourceElement="_BPMNShape_SendTask_2" targetElement="_BPMNShape_Participant_7">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="770.0" y="305.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="770.0" y="201.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="770.0" y="97.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_39"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_18" bpmnElement="SequenceFlow_18" sourceElement="BPMNShape_StartEvent_1" targetElement="BPMNShape_ScriptTask_6">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1222.0" y="235.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1249.0" y="235.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1276.0" y="235.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_40"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_19" bpmnElement="SequenceFlow_19" sourceElement="BPMNShape_ScriptTask_6" targetElement="BPMNShape_EndEvent_1">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1386.0" y="235.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1411.0" y="235.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1436.0" y="235.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_41"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_12" bpmnElement="SequenceFlow_12" sourceElement="_BPMNShape_IntermediateCatchEvent_2" targetElement="BPMNShape_ScriptTask_4">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="973.0" y="229.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="992.0" y="229.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1011.0" y="230.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_42"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_17" bpmnElement="SequenceFlow_17" sourceElement="BPMNShape_ScriptTask_4" targetElement="BPMNShape_SubProcess_2">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1121.0" y="230.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1138.0" y="230.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="1156.0" y="230.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_43"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_22" bpmnElement="SequenceFlow_22" sourceElement="_BPMNShape_EventBasedGateway_2" targetElement="_BPMNShape_IntermediateCatchEvent_3">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="899.0" y="370.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="899.0" y="393.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="899.0" y="417.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_44"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_23" bpmnElement="SequenceFlow_23" sourceElement="BPMNShape_ExclusiveGateway_1" targetElement="BPMNShape_ScriptTask_8">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="330.0" y="353.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="345.0" y="353.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="360.0" y="353.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_45"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_20" bpmnElement="SequenceFlow_20" sourceElement="BPMNShape_ScriptTask_2" targetElement="BPMNShape_ExclusiveGateway_1">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="256.0" y="211.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="256.0" y="353.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="280.0" y="353.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_46"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_6" bpmnElement="SequenceFlow_6" sourceElement="BPMNShape_ScriptTask_8" targetElement="_BPMNShape_ServiceTask_9">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="470.0" y="353.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="495.0" y="353.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="495.0" y="358.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="520.0" y="358.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_17"/>

</bpmndi:BPMNEdge>

<bpmndi:BPMNEdge id="BPMNEdge_SequenceFlow_3" bpmnElement="SequenceFlow_3" sourceElement="BPMNShape_BoundaryEvent_1" targetElement="BPMNShape_ScriptTask_3">

<di:waypoint xsi:type="dcSmiley Tongueoint" x="570.0" y="405.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="570.0" y="505.0"/>

<di:waypoint xsi:type="dcSmiley Tongueoint" x="619.0" y="505.0"/>

<bpmndi:BPMNLabel id="BPMNLabel_47"/>

</bpmndi:BPMNEdge>

</bpmndi:BPMNPlane>

<bpmndi:BPMNLabelStyle id="BPMNLabelStyle_1">

<dc:Font name="arial" size="9.0"/>

</bpmndi:BPMNLabelStyle>

</bpmndi:BPMNDiagram>

</bpmn2:definitions>

1 ACCEPTED ANSWER

cjose
Elite Collaborator
Elite Collaborator

Hi,

I had a detailed look at your post today.
I don't think timer, event and signal boundary events work on script/services/camel tasks in Activiti...not sure if it is by design or a defect! Feel free to raise an issue or even a contribution (which would be great!) assuming it is valid as per BPMN 2.0 spec. This is probably the main reason why you not able to trigger a signal attached to your Camel task.

Regarding the async setting I mentioned, assume that Activiti supported boundary signals/messages on Camel task, then I would expect those message/signal subscription to work only after the activity it is attached to is persisted to database (which is essentially controlled by the setting of async flag explained at https://activiti.github.io/userguide/5.19.0/index.html#asyncContinuations).

Is your camel task a very long running task? If that is the only reason for a boundary event, you can achieve that using a Camel + Receive Task pattern as explained in the user guide https://activiti.github.io/userguide/5.19.0/index.html#bpmnCamelTask.

A normal Camel + Receive Task pattern that is used in the following test cases in Activiti are working fine
https://github.com/Activiti/Activiti/blob/5.x/modules/activiti-camel/src/test/java/org/activiti/came... 
https://github.com/Activiti/Activiti/blob/5.x/modules/activiti-camel/src/test/java/org/activiti/came... 
With the above pattern, I was hoping that I can include a boundary signal on the receive task if I want to terminate it using external signals...However there appears an issue when there are boundary events on those receive tasks. Looks like the Camel Behavior in Activiti is not completing the boundary events when Receive Tasks are completed...

Feel free to raise an issue on this in Activiti. Btw, until this issue is fixed, you might be able to achieve similar external signaling + camel signaling functionality by altering the process model a bit. Please find attached the project I used to test these behaviors. Hope this helps!

View answer in original post

5 REPLIES 5

cjose
Elite Collaborator
Elite Collaborator

Hi,

I had a detailed look at your post today.
I don't think timer, event and signal boundary events work on script/services/camel tasks in Activiti...not sure if it is by design or a defect! Feel free to raise an issue or even a contribution (which would be great!) assuming it is valid as per BPMN 2.0 spec. This is probably the main reason why you not able to trigger a signal attached to your Camel task.

Regarding the async setting I mentioned, assume that Activiti supported boundary signals/messages on Camel task, then I would expect those message/signal subscription to work only after the activity it is attached to is persisted to database (which is essentially controlled by the setting of async flag explained at https://activiti.github.io/userguide/5.19.0/index.html#asyncContinuations).

Is your camel task a very long running task? If that is the only reason for a boundary event, you can achieve that using a Camel + Receive Task pattern as explained in the user guide https://activiti.github.io/userguide/5.19.0/index.html#bpmnCamelTask.

A normal Camel + Receive Task pattern that is used in the following test cases in Activiti are working fine
https://github.com/Activiti/Activiti/blob/5.x/modules/activiti-camel/src/test/java/org/activiti/came... 
https://github.com/Activiti/Activiti/blob/5.x/modules/activiti-camel/src/test/java/org/activiti/came... 
With the above pattern, I was hoping that I can include a boundary signal on the receive task if I want to terminate it using external signals...However there appears an issue when there are boundary events on those receive tasks. Looks like the Camel Behavior in Activiti is not completing the boundary events when Receive Tasks are completed...

Feel free to raise an issue on this in Activiti. Btw, until this issue is fixed, you might be able to achieve similar external signaling + camel signaling functionality by altering the process model a bit. Please find attached the project I used to test these behaviors. Hope this helps!