<?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 How to get process instance variables on event ACTIVITY_START  in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/how-to-get-process-instance-variables-on-event-activity-start/m-p/187932#M141062</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I use an event listener on event ACTIVITY_START to detect when a service task starts. In my event listener implementation, I query Activiti engine to get variables of the associated process instance. This works fine only if, in my process definition, a user task exists between the start event and the service task. Otherwise (the service task is just after the start event) my query returns null:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @Override&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public void onEvent(final ActivitiEvent event) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; final ActivitiActivityEvent eventImpl = (ActivitiActivityEvent) event;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if ("serviceTask".equals(eventImpl.getActivityType())) {&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; final ProcessInstanceQuery processInstanceQuery = event.getEngineServices().getRuntimeService()&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .createProcessInstanceQuery().processInstanceId(event.getProcessInstanceId())&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .includeProcessVariables();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; final ProcessInstance processInstance = processInstanceQuery.singleResult();&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (processInstance == null) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; this.log.warning("Unable to retrieve the process instance for which a service task starts.");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } else {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; final Map&amp;lt;String, Object&amp;gt; processVariables = processInstance.getProcessVariables();&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; …&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I think that the query returns null because the process instance creation is flushed into database when the Activiti engine ends its processing. When the event ACTIVITY_START for my service task is fired, nothing has been flushed in database, except if a user task was previously executed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is there another solution to get my process instance variables from the event ACTIVITY_START ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In my mind, process instance variables could be included into the event fired. So this solve the problem and improve performances removing the querying.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What do you think about this ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Christophe DENEUX&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 20 May 2015 08:55:18 GMT</pubDate>
    <dc:creator>cdeneux</dc:creator>
    <dc:date>2015-05-20T08:55:18Z</dc:date>
    <item>
      <title>How to get process instance variables on event ACTIVITY_START</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-get-process-instance-variables-on-event-activity-start/m-p/187932#M141062</link>
      <description>Hi all,I use an event listener on event ACTIVITY_START to detect when a service task starts. In my event listener implementation, I query Activiti engine to get variables of the associated process instance. This works fine only if, in my process definition, a user task exists between the start event</description>
      <pubDate>Wed, 20 May 2015 08:55:18 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-get-process-instance-variables-on-event-activity-start/m-p/187932#M141062</guid>
      <dc:creator>cdeneux</dc:creator>
      <dc:date>2015-05-20T08:55:18Z</dc:date>
    </item>
    <item>
      <title>Re: How to get process instance variables on event ACTIVITY_START</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-get-process-instance-variables-on-event-activity-start/m-p/187933#M141063</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Christophe,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;make the first service task asynchronous.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Martin&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 21 May 2015 07:51:57 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-get-process-instance-variables-on-event-activity-start/m-p/187933#M141063</guid>
      <dc:creator>martin_grofcik</dc:creator>
      <dc:date>2015-05-21T07:51:57Z</dc:date>
    </item>
    <item>
      <title>Re: How to get process instance variables on event ACTIVITY_START</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-get-process-instance-variables-on-event-activity-start/m-p/187934#M141064</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Martin,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your reply. Adding &amp;lt;code&amp;gt;activiti:async="true"&amp;lt;/code&amp;gt; on the service task works fine but I think it is not usable in my particular use case.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm embedding Activiti engine into a component to be deployed on Petals ESB infrastructure to provide a process/service convergence to our users. Our users will develop their process definition or service orchestrations and deploy them into our Activiti component. So, it is not conceivable for us to force our users to set &amp;lt;code&amp;gt;activiti:async="true"&amp;lt;/code&amp;gt; in few cases to work around a technical issue. In a conceptual point of view, all services invoked by a process instance should be processed with the same manner.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So, except if another solution exists, I will investigate a contribution to include the process instance variables to the event.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Christophe&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 May 2015 14:19:17 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-get-process-instance-variables-on-event-activity-start/m-p/187934#M141064</guid>
      <dc:creator>cdeneux</dc:creator>
      <dc:date>2015-05-26T14:19:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to get process instance variables on event ACTIVITY_START</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-get-process-instance-variables-on-event-activity-start/m-p/187935#M141065</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;One way do solve this is to have a BpmnParseHandler that automatically sets async to true for your service tasks.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Jun 2015 19:02:09 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-get-process-instance-variables-on-event-activity-start/m-p/187935#M141065</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2015-06-02T19:02:09Z</dc:date>
    </item>
    <item>
      <title>Re: How to get process instance variables on event ACTIVITY_START</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-get-process-instance-variables-on-event-activity-start/m-p/187936#M141066</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks Joram, that works fine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I use your example CustomUserTaskBpmnParseHandler available into the Activiti user documentation as a post BpmnParseHandler.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Christophe&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 08 Jun 2015 10:09:14 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-get-process-instance-variables-on-event-activity-start/m-p/187936#M141066</guid>
      <dc:creator>cdeneux</dc:creator>
      <dc:date>2015-06-08T10:09:14Z</dc:date>
    </item>
  </channel>
</rss>

