<?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: Suspending process instance in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/suspending-process-instance/m-p/173635#M126770</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;We found out the solution. First of all in our scenario we have to implement ActivityBehavior interface, not JavaDelegate, precisely SignallableActivityBehavior interface. When execution of task implemented with this interface ends, process flow stops, so after our thread finishes its job, it can signal execution of this task and take appropriate transition ie.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. Service task execution method:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public void execute(ActivityExecution execution) throws CodeException, InterruptedException {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; new ProcessThread(execution).start();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. External example thread run method:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public void run() {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; try {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; sleep(10000);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; } catch (InterruptedException e) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; runtimeService.signal(execution.getId());&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;3. Service task implementation of SignallableActivityBehavior needs override signal method:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;@Override&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; public void signal(ActivityExecution execution, String signalEvent,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Object signalData) throws Exception {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; PvmTransition transition = execution.getActivity().getOutgoingTransitions().get(0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; execution.take(transition);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is more less simple way of making process suspend and then activate it from place it ended.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 28 Oct 2013 11:46:29 GMT</pubDate>
    <dc:creator>garuh</dc:creator>
    <dc:date>2013-10-28T11:46:29Z</dc:date>
    <item>
      <title>Suspending process instance</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/suspending-process-instance/m-p/173633#M126768</link>
      <description>&amp;lt;b&amp;gt;My scenario:&amp;lt;/b&amp;gt;Start -&amp;gt; Service task 1 -&amp;gt; Service task 2 -&amp;gt; EndService tasks have Java delegates which runs some long time logic (ie. file processing). Because we don't want task to block transaction and we don't want to use Receive tasks, for some reasons, so I thought that</description>
      <pubDate>Fri, 25 Oct 2013 12:17:25 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/suspending-process-instance/m-p/173633#M126768</guid>
      <dc:creator>garuh</dc:creator>
      <dc:date>2013-10-25T12:17:25Z</dc:date>
    </item>
    <item>
      <title>Re: Suspending process instance</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/suspending-process-instance/m-p/173634#M126769</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I was searching more through your forum and founded many disturbing topics saying that this scenario is not possible &lt;img id="smileysad" class="emoticon emoticon-smileysad" src="https://connect.hyland.com/i/smilies/16x16_smiley-sad.png" alt="Smiley Sad" title="Smiley Sad" /&gt; This is really strange cause this suspending method should work like this, that is intuitive. I founded also that there was bu in JIRA about that:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://jira.codehaus.org/browse/ACT-1401" rel="nofollow noopener noreferrer"&gt;http://jira.codehaus.org/browse/ACT-1401&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and it was fixed in 5.11 version. There was also new feature JIRA ticket for it:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://jira.codehaus.org/browse/ACT-1457" rel="nofollow noopener noreferrer"&gt;http://jira.codehaus.org/browse/ACT-1457&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So is this should work or not? I will try to modify your code to make it work, but if you will have some clues about that please write them.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 25 Oct 2013 13:51:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/suspending-process-instance/m-p/173634#M126769</guid>
      <dc:creator>garuh</dc:creator>
      <dc:date>2013-10-25T13:51:00Z</dc:date>
    </item>
    <item>
      <title>Re: Suspending process instance</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/suspending-process-instance/m-p/173635#M126770</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;We found out the solution. First of all in our scenario we have to implement ActivityBehavior interface, not JavaDelegate, precisely SignallableActivityBehavior interface. When execution of task implemented with this interface ends, process flow stops, so after our thread finishes its job, it can signal execution of this task and take appropriate transition ie.&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. Service task execution method:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public void execute(ActivityExecution execution) throws CodeException, InterruptedException {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; new ProcessThread(execution).start();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. External example thread run method:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;public void run() {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; try {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; sleep(10000);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; } catch (InterruptedException e) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; runtimeService.signal(execution.getId());&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;3. Service task implementation of SignallableActivityBehavior needs override signal method:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;@Override&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; public void signal(ActivityExecution execution, String signalEvent,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Object signalData) throws Exception {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; PvmTransition transition = execution.getActivity().getOutgoingTransitions().get(0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; execution.take(transition);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;lt;/code&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is more less simple way of making process suspend and then activate it from place it ended.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 28 Oct 2013 11:46:29 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/suspending-process-instance/m-p/173635#M126770</guid>
      <dc:creator>garuh</dc:creator>
      <dc:date>2013-10-28T11:46:29Z</dc:date>
    </item>
  </channel>
</rss>

