<?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 Persist data in subprocess in call activity from multi instance in Alfresco Forum</title>
    <link>https://connect.hyland.com/t5/alfresco-forum/persist-data-in-subprocess-in-call-activity-from-multi-instance/m-p/37777#M15922</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I have a process where I call another subprocess in a loop.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;lt;code&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;callActivity id="callactivity_PickArticle" name="Pick article" calledElement="pickArticleSubProcess"&amp;gt;&lt;BR /&gt;&amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;lt;activiti:in source="OrderLine" target="CurrentOrderLine"/&amp;gt;&lt;BR /&gt;&amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;lt;multiInstanceLoopCharacteristics isSequential="true" activiti:collection="${Order.orderLines}" activiti:elementVariable="OrderLine"&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;/multiInstanceLoopCharacteristics&amp;gt;&lt;BR /&gt;&amp;lt;/callActivity&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;code&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This subprocess should update the passed element variable and in the end persist the changes to the database.&lt;/P&gt;&lt;P&gt;&amp;lt;code&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;process id="pickArticleSubProcess" name="Pick article process" isExecutable="true"&amp;gt;&lt;BR /&gt;&amp;lt;startEvent id="startevent1" name="Start"&amp;gt;&amp;lt;/startEvent&amp;gt;&lt;BR /&gt;&amp;lt;endEvent id="endevent1" name="End"&amp;gt;&amp;lt;/endEvent&amp;gt;&lt;BR /&gt;&amp;lt;userTask id="usertask_ConfirmLocation" name="Go to location"&amp;gt;&lt;BR /&gt;&amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;lt;activiti:formProperty id="locationCode" name="locationCode" required="true"&amp;gt;&amp;lt;/activiti:formProperty&amp;gt;&lt;BR /&gt;&amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;lt;/userTask&amp;gt;&lt;BR /&gt;&amp;lt;userTask id="usertask_ConfirmQuantity" name="Confirm Quantity"&amp;gt;&lt;BR /&gt;&amp;lt;extensionElements&amp;gt;&lt;BR /&gt;&amp;lt;activiti:formProperty id="quantity" name="quantity" required="true"&amp;gt;&amp;lt;/activiti:formProperty&amp;gt;&lt;BR /&gt;&amp;lt;activiti:formProperty id="reasonCode" name="reasonCode"&amp;gt;&amp;lt;/activiti:formProperty&amp;gt;&lt;BR /&gt;&amp;lt;/extensionElements&amp;gt;&lt;BR /&gt;&amp;lt;/userTask&amp;gt;&lt;BR /&gt;&amp;lt;sequenceFlow id="flow2" sourceRef="usertask_ConfirmLocation" targetRef="usertask_ConfirmQuantity"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;lt;serviceTask id="servicetask_BookArticle" name="Book article" activiti:delegateExpression="${BookArticleDelegate}"&amp;gt;&amp;lt;/serviceTask&amp;gt;&lt;BR /&gt;&amp;lt;sequenceFlow id="flow3" sourceRef="usertask_ConfirmQuantity" targetRef="servicetask_BookArticle"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;lt;sequenceFlow id="flow4" sourceRef="servicetask_BookArticle" targetRef="endevent1"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;lt;sequenceFlow id="flow5" sourceRef="startevent1" targetRef="usertask_ConfirmLocation"&amp;gt;&amp;lt;/sequenceFlow&amp;gt;&lt;BR /&gt;&amp;lt;/process&amp;gt;&lt;/P&gt;&lt;P&gt;&amp;lt;code&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When I save the current orderline with: orderLineService.saveOrderLine(orderLine);, directly after the delegate the orderline is persisted. But when I complete the last orderline in the multi instance, all the orderlines, except the last one, are changed back to all the values null.&lt;/P&gt;&lt;P&gt;&amp;lt;code&amp;gt;&lt;/P&gt;&lt;P&gt;@Component("BookArticleDelegate")&lt;BR /&gt;public class BookArticleDelegate implements JavaDelegate {&lt;/P&gt;&lt;P&gt;@Autowired&lt;BR /&gt;private OrderLineService orderLineService;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;@Override&lt;BR /&gt;public void execute(DelegateExecution de) {&lt;BR /&gt;OrderLine orderLine = (OrderLine) de.getVariable("CurrentOrderLine");&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;String sQuantity = (String) de.getVariable("quantity");&lt;BR /&gt;int quantity = Integer.parseInt(sQuantity);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;String reason;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;try {&lt;BR /&gt;reason = (String) de.getVariable("reasonCode");&lt;BR /&gt;orderLine.setReasonCode(reason);&lt;BR /&gt;} catch (Exception ex) {&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;orderLine.setPickedAmount(quantity);&lt;BR /&gt;orderLine.setHandled(true);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;orderLineService.saveOrderLine(orderLine);&lt;BR /&gt;}&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&amp;lt;code&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Something is going wrong, but I can't figure out what.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-- EDIT&lt;/P&gt;&lt;P&gt;I made the collection Order transient, because I believe it has something to do with managed entities that overwrite my own commits. Now after the first iteration through the multi instance call activity I get the following error:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;lt;code&amp;gt;&lt;/P&gt;&lt;P&gt;Exception in thread "Thread-12" org.activiti.engine.ActivitiException: Could not execute inner activity behavior of multi instance behavior&lt;BR /&gt; at org.activiti.engine.impl.bpmn.behavior.SequentialMultiInstanceBehavior.leave(SequentialMultiInstanceBehavior.java:117)&lt;BR /&gt; at org.activiti.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior.completed(MultiInstanceActivityBehavior.java:172)&lt;BR /&gt; at org.activiti.engine.impl.agenda.EndExecutionOperation.handleProcessInstanceExecution(EndExecutionOperation.java:98)&lt;BR /&gt; at org.activiti.engine.impl.agenda.EndExecutionOperation.handleRegularExecution(EndExecutionOperation.java:166)&lt;BR /&gt; at org.activiti.engine.impl.agenda.EndExecutionOperation.run(EndExecutionOperation.java:48)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandInvoker.executeOperation(CommandInvoker.java:73)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandInvoker.executeOperations(CommandInvoker.java:57)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandInvoker.execute(CommandInvoker.java:42)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:48)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:63)&lt;BR /&gt; at org.activiti.spring.SpringTransactionInterceptor$1.doInTransaction(SpringTransactionInterceptor.java:47)&lt;BR /&gt; at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)&lt;BR /&gt; at org.activiti.spring.SpringTransactionInterceptor.execute(SpringTransactionInterceptor.java:45)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:29)&lt;BR /&gt; at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:44)&lt;BR /&gt; at org.activiti.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:39)&lt;BR /&gt; at org.activiti.engine.impl.TaskServiceImpl.complete(TaskServiceImpl.java:186)&lt;BR /&gt; at com.mycompany.poc.inther.lc.workflow.workstation.engine.WorkflowEngineCore.completeTask(WorkflowEngineCore.java:102)&lt;BR /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;BR /&gt; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)&lt;BR /&gt; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)&lt;BR /&gt; at java.lang.reflect.Method.invoke(Method.java:498)&lt;BR /&gt; at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)&lt;BR /&gt; at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)&lt;BR /&gt; at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)&lt;BR /&gt; at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)&lt;BR /&gt; at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:282)&lt;BR /&gt; at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)&lt;BR /&gt; at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)&lt;BR /&gt; at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)&lt;BR /&gt; at com.sun.proxy.$Proxy83.completeTask(Unknown Source)&lt;BR /&gt; at com.mycompany.poc.inther.lc.workflow.workstation.WorkstationCore.handleTerminalTaskResponse(WorkstationCore.java:133)&lt;BR /&gt; at com.mycompany.poc.inther.lc.workflow.workstation.WorkstationCore$1.run(WorkstationCore.java:74)&lt;BR /&gt;Caused by: java.lang.NullPointerException&lt;BR /&gt; at org.activiti.engine.impl.bpmn.behavior.MultiInstanceActivityBehavior.executeOriginalBehavior(MultiInstanceActivityBehavior.java:199)&lt;BR /&gt; at org.activiti.engine.impl.bpmn.behavior.SequentialMultiInstanceBehavior.leave(SequentialMultiInstanceBehavior.java:109)&lt;BR /&gt; ... 32 more&lt;/P&gt;&lt;P&gt;&amp;lt;/code&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I found a JIRA issue which I believe covers the same problem, but I can't find the solution.&lt;/P&gt;&lt;P&gt;&lt;A href="https://issues.alfresco.com/jira/browse/ACTIVITI-921" rel="nofollow noopener noreferrer"&gt;Activiti: Multi Instance Collapsed Sub Process - NullPointerException&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 07 Nov 2017 09:32:14 GMT</pubDate>
    <dc:creator>wkoonings</dc:creator>
    <dc:date>2017-11-07T09:32:14Z</dc:date>
    <item>
      <title>Persist data in subprocess in call activity from multi instance</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/persist-data-in-subprocess-in-call-activity-from-multi-instance/m-p/37777#M15922</link>
      <description>I have a process where I call another subprocess in a loop.&amp;nbsp;&amp;lt;code&amp;gt;&amp;lt;callActivity id="callactivity_PickArticle" name="Pick article" calledElement="pickArticleSubProcess"&amp;gt;&amp;lt;extensionElements&amp;gt;&amp;lt;activiti:in source="OrderLine" target="CurrentOrderLine"/&amp;gt;&amp;lt;/extensionElements&amp;gt;&amp;lt;</description>
      <pubDate>Tue, 07 Nov 2017 09:32:14 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/persist-data-in-subprocess-in-call-activity-from-multi-instance/m-p/37777#M15922</guid>
      <dc:creator>wkoonings</dc:creator>
      <dc:date>2017-11-07T09:32:14Z</dc:date>
    </item>
    <item>
      <title>Re: Persist data in subprocess in call activity from multi instance</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/persist-data-in-subprocess-in-call-activity-from-multi-instance/m-p/37778#M15923</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;A _jive_internal="true" href="https://community.alfresco.com/thread/234175-i-cant-persist-data-in-a-call-activity-in-multi-instance-loop" rel="nofollow noopener noreferrer"&gt;Double post&lt;/A&gt;...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Nov 2017 09:38:56 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/persist-data-in-subprocess-in-call-activity-from-multi-instance/m-p/37778#M15923</guid>
      <dc:creator>afaust</dc:creator>
      <dc:date>2017-11-07T09:38:56Z</dc:date>
    </item>
    <item>
      <title>Re: Persist data in subprocess in call activity from multi instance</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/persist-data-in-subprocess-in-call-activity-from-multi-instance/m-p/37779#M15924</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;you're right, i'm sorry, i'm new to this forum, i removed the other post&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Nov 2017 09:44:35 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/persist-data-in-subprocess-in-call-activity-from-multi-instance/m-p/37779#M15924</guid>
      <dc:creator>wkoonings</dc:creator>
      <dc:date>2017-11-07T09:44:35Z</dc:date>
    </item>
    <item>
      <title>Re: Persist data in subprocess in call activity from multi instance</title>
      <link>https://connect.hyland.com/t5/alfresco-forum/persist-data-in-subprocess-in-call-activity-from-multi-instance/m-p/37780#M15925</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Strange issue.&lt;/P&gt;&lt;P&gt;Can you try adding the attribute&amp;nbsp;&lt;SPAN class="" style="color: #7d9029; background-color: #f8f8f8;"&gt;activiti:async=&lt;/SPAN&gt;&lt;SPAN class="" style="color: #ba2121; background-color: #f8f8f8;"&gt;"true"&amp;nbsp;&lt;/SPAN&gt;to your call activity element and check if you see the same behaviour?&lt;/P&gt;&lt;P&gt;In the second part you mentioned that "&lt;SPAN style="color: #727174; background-color: #ffffff;"&gt;I made the collection Order transient"&lt;/SPAN&gt;. Does it mean&amp;nbsp;&lt;SPAN&gt;you tried the Transient Variable? If Transient Variable, I don't think it will work with your subprocess because you have a User Task in your subprocess and at that stage there is a wait state involved. Transient Variables do not survive beyond a wait state.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 07 Nov 2017 18:32:21 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-forum/persist-data-in-subprocess-in-call-activity-from-multi-instance/m-p/37780#M15925</guid>
      <dc:creator>cjose</dc:creator>
      <dc:date>2017-11-07T18:32:21Z</dc:date>
    </item>
  </channel>
</rss>

