<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to stop timer boundary event? in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206157#M159287</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;A timer end event doesn't exist. There is only a timer start event. &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 03 Nov 2015 14:22:24 GMT</pubDate>
    <dc:creator>jbarrez</dc:creator>
    <dc:date>2015-11-03T14:22:24Z</dc:date>
    <item>
      <title>How to stop timer boundary event?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206152#M159282</link>
      <description>Hello,&amp;nbsp; We have a requirement to send Escalation notification if sub-process workflow doesn't response by certain time duration. Here is implementation.&amp;nbsp; 1) Timer boundary event to attache to main workflow, and the 'cancelActivity="false"'.&amp;nbsp; 2) A Java service task which send escalation notification</description>
      <pubDate>Sat, 31 Oct 2015 22:29:02 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206152#M159282</guid>
      <dc:creator>neo1</dc:creator>
      <dc:date>2015-10-31T22:29:02Z</dc:date>
    </item>
    <item>
      <title>Re: How to stop timer boundary event?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206153#M159283</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;could you please upload here a unit test or at least a bpmn20.xml file for a better understanding of the problem?&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2015 15:13:16 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206153#M159283</guid>
      <dc:creator>vasile_dirla</dc:creator>
      <dc:date>2015-11-02T15:13:16Z</dc:date>
    </item>
    <item>
      <title>Re: How to stop timer boundary event?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206154#M159284</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;&amp;lt;?xml version="1.0" encoding="UTF-8"?&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;definitions id="definitions" targetNamespace="&lt;/SPAN&gt;&lt;A href="http://activiti.org/bpmn20" rel="nofollow noopener noreferrer"&gt;http://activiti.org/bpmn20&lt;/A&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; xmlns="&lt;/SPAN&gt;&lt;A href="http://www.omg.org/spec/BPMN/20100524/MODEL" rel="nofollow noopener noreferrer"&gt;http://www.omg.org/spec/BPMN/20100524/MODEL&lt;/A&gt;&lt;SPAN&gt;" xmlns:xsi="&lt;/SPAN&gt;&lt;A href="http://www.w3.org/2001/XMLSchema-instance" rel="nofollow noopener noreferrer"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/A&gt;&lt;SPAN&gt;"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; xmlns:activiti="&lt;/SPAN&gt;&lt;A href="http://activiti.org/bpmn" rel="nofollow noopener noreferrer"&gt;http://activiti.org/bpmn&lt;/A&gt;&lt;SPAN&gt;"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;process id="timerProcess" name="The Testing event Process"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;startEvent id="theStart" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;sequenceFlow id="flow01" sourceRef="theStart" targetRef="subProcess" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;boundaryEvent id="escalationUnresolvedTimer"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; cancelActivity="false" attachedToRef="subProcess"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;timerEventDefinition&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;timeDuration&amp;gt;PT15S&amp;lt;/timeDuration&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/timerEventDefinition&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;/boundaryEvent&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;subProcess id="subProcess"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;startEvent id="theSubStart" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow02" sourceRef="theSubStart"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; targetRef="StartSubProcessScript" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;scriptTask id="StartSubProcessScript" scriptFormat="JavaScript"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("Start sub process")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/scriptTask&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;receiveTask id="waitState" name="wait" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow03" sourceRef="StartSubProcessScript"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; targetRef="waitState" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;scriptTask id="EndSubProcessScript" scriptFormat="JavaScript"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("End sub process")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/scriptTask&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow04" sourceRef="waitState"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; targetRef="EndSubProcessScript" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;endEvent id="theSubEnd" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;sequenceFlow id="flow05" sourceRef="EndSubProcessScript"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; targetRef="theSubEnd" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;/subProcess&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;parallelGateway id="parallelGateway" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;scriptTask id="timerScript" scriptFormat="JavaScript"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;script&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("Reach escalation unresolved timer")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;/scriptTask&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;sequenceFlow id="flow06" sourceRef="escalationUnresolvedTimer"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; targetRef="timerScript" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;sequenceFlow id="flow07" sourceRef="timerScript"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; targetRef="parallelGateway" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;sequenceFlow id="flow08" sourceRef="subProcess"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; targetRef="parallelGateway" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;scriptTask id="successfulScript" scriptFormat="JavaScript"&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;script&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print("Successful complete workflow")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &amp;lt;/script&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;/scriptTask&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;sequenceFlow id="flow09" sourceRef="parallelGateway"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; targetRef="successfulScript" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;sequenceFlow id="flow10" sourceRef="successfulScript"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; targetRef="theEnd" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &amp;lt;endEvent id="theEnd" /&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &amp;lt;/process&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/definitions&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;there is a BPMN definition xml example I test it. Here is four use cases.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1) Sub-process is complete before timer reaches duration: we use REST API send signal to 'receiveTask'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console print results: Start sub process -&amp;gt; End sub process&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Conclusion: Parallel gateway is waiting for execution token from Timer boundary branch, but activity will be hang for ever, because the Sub-process already finished before timer duration, the timer job had been canceled.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Expected result: Once the Sub-process is complete, the Timer boundary event should be canceled, and workflow should be successfully complete.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2) Timer is triggered before the Sub-process completes: we don't send signal to 'receiveTask'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console print results: Start sub process -&amp;gt; Reach escalation unresolved timer&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Conclusion: Parallel gateway is waiting for execution token from Sub-process branch, but activity will be hang until system send signal to 'receiveTask' to complete the Sub-process&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Expected result: this use case is correct because we set cancelActivity="false", system has to wait for send signal to 'receiveTask'&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;3) Timer is triggered before the Sub-process completes, then we send signal to 'receiveTask'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console print results: Start sub process -&amp;gt; Reach escalation unresolved timer -&amp;gt; End sub process -&amp;gt; Successful complete workflow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Conclusion: workflow is successfully complete because both branch(Sub-process and Timer boundary) reach the parallel gateway&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Expected result: this use case is correct because we set cancelActivity="false", system has to wait for send signal to 'receiveTask' to complete the workflow&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;4) Sub-process completes before the timer is triggered, then wait for timer duration is done&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Console print results: Start sub process -&amp;gt;&amp;nbsp; End sub process -&amp;gt; Reach escalation unresolved timer -&amp;gt; Successful complete workflow&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Conclusion: workflow is successfully complete because both branch(Sub-process and Timer boundary) reach the parallel gateway&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Expected result: Once the Sub-process is complete, the Timer boundary event should be canceled, and workflow should be successfully complete, system should not wait for Timer boundary event done.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Or is there any other existing feature we can use to accomplish our requirement?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2015 23:22:42 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206154#M159284</guid>
      <dc:creator>neo1</dc:creator>
      <dc:date>2015-11-02T23:22:42Z</dc:date>
    </item>
    <item>
      <title>Re: How to stop timer boundary event?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206155#M159285</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Found out the BPMN2 xml format I pasted previous comment is not correct, and upload the workflow definition file again.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 02 Nov 2015 23:25:17 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206155#M159285</guid>
      <dc:creator>neo1</dc:creator>
      <dc:date>2015-11-02T23:25:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to stop timer boundary event?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206156#M159286</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Finally, I figured out by myself. I removed the parallel gateway, and timer connected to a separate end event. The new thing I learned is the timer end event doesn't end the main workflow, therefore, the main workflow is still in process. &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Nov 2015 01:23:04 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206156#M159286</guid>
      <dc:creator>neo1</dc:creator>
      <dc:date>2015-11-03T01:23:04Z</dc:date>
    </item>
    <item>
      <title>Re: How to stop timer boundary event?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206157#M159287</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;A timer end event doesn't exist. There is only a timer start event. &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Nov 2015 14:22:24 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206157#M159287</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2015-11-03T14:22:24Z</dc:date>
    </item>
    <item>
      <title>Re: How to stop timer boundary event?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206158#M159288</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Yes, you are right. Actually, we have a Escalation notification task between Timer boundary event and end event, that is why we add a separate end event for Timer boundary branch.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Btw, I am kind of misleading by Activiti User guide, the Timer Boundary Event section shows a&amp;nbsp; BPMN diagram of Escalation example, there is a parallel gateway, however, I think it is not quite correct for our requirement.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 03 Nov 2015 17:57:31 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-stop-timer-boundary-event/m-p/206158#M159288</guid>
      <dc:creator>neo1</dc:creator>
      <dc:date>2015-11-03T17:57:31Z</dc:date>
    </item>
  </channel>
</rss>

