<?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 commit DB changes before a call activity? in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/how-to-commit-db-changes-before-a-call-activity/m-p/50148#M29059</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;BR /&gt;&lt;SPAN&gt;Suppose I have a process like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[attachment=1]ss1.png[/attachment]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a method in a stateless session bean to start the process, like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;@TransactionAttribute(REQUIRED)&lt;BR /&gt;public void startProcess(JpaEntity entity) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; entityManager.persist(entity);&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; Map&amp;lt;String, Object&amp;gt; variables = new HashMap&amp;lt;String, Object&amp;gt;();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; variables.put("myEntity", entity);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; entityManager.flush();&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; getRuntimeService().startProcessInstanceById(definition.getId(), variables);&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;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;I’m trying to pass the “myEntity” var from the parent process to the call activity. However, since I don’t have a “wait state” before the call activity, the method above does not work, throwing an exception like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;BOM: select nextval(SEQ_GEN_SEQUENCE)&lt;BR /&gt;BOM: INSERT INTO (…)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;bind =&amp;gt; [8 parameters bound]&lt;BR /&gt;BOM: SELECT FIELDS FROM TABLE WHERE (ID = ?)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;bind =&amp;gt; [1 parameter bound]&lt;BR /&gt;GRAVE: Error while closing command context&lt;BR /&gt;org.activiti.engine.ActivitiException: Entity does not exist: br.com.allegrobg.process.MyEntity - 1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.variable.JPAEntityMappings.findEntity(JPAEntityMappings.java:130)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.variable.JPAEntityMappings.getJPAEntity(JPAEntityMappings.java:119)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.variable.JPAEntityVariableType.getValue(JPAEntityVariableType.java:77)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.getValue(VariableInstanceEntity.java:158)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.persistence.entity.VariableScopeImpl.getVariable(VariableScopeImpl.java:93)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.persistence.entity.VariableScopeImpl.getVariable(VariableScopeImpl.java:97)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;at org.activiti.engine.impl.bpmn.behavior.CallActivityBehavior.execute(CallActivityBehavior.java:67)&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;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;If I add a “blank” user task before the call activity (a user task without a form), the commit happens before the call activity, and then everything works:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;[attachment=0]ss2.png[/attachment]&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the question: how can I avoid that blank user task? I mean, how can I commit the JPA Entity in database before the execution enters in the call activity?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is my activiti.cfg.xml:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&amp;lt;!– glassfish transaction manager –&amp;gt;&lt;BR /&gt;&amp;lt;bean id="transactionManager" class="org.springframework.jndi.JndiObjectFactoryBean"&amp;gt;&lt;BR /&gt; &amp;lt;property name="jndiName" value="java:appserver/TransactionManager"&amp;gt;&amp;lt;/property&amp;gt;&lt;BR /&gt; &amp;lt;property name="resourceRef" value="true" /&amp;gt;&lt;BR /&gt;&amp;lt;/bean&amp;gt;&lt;BR /&gt;&lt;BR /&gt;&amp;lt;bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.JtaProcessEngineConfiguration"&amp;gt;&lt;BR /&gt; &amp;lt;property name="dataSourceJndiName" value="jdbc/process" /&amp;gt;&lt;BR /&gt; &amp;lt;property name="jpaPersistenceUnitName" value="process-pu" /&amp;gt;&lt;BR /&gt; &amp;lt;property name="jpaHandleTransaction" value="false" /&amp;gt; &amp;lt;!– it's JTA –&amp;gt;&lt;BR /&gt; &amp;lt;property name="jpaCloseEntityManager" value="false" /&amp;gt; &amp;lt;!– it's container-managed –&amp;gt;&lt;BR /&gt; &amp;lt;property name="transactionManager" ref="transactionManager" /&amp;gt;&lt;BR /&gt; &amp;lt;property name="databaseSchemaUpdate" value="true" /&amp;gt;&lt;BR /&gt; &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;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you please help me here? PS.: I need container-managed transactions.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 08 Sep 2011 20:19:05 GMT</pubDate>
    <dc:creator>andregs</dc:creator>
    <dc:date>2011-09-08T20:19:05Z</dc:date>
    <item>
      <title>How to commit DB changes before a call activity?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-commit-db-changes-before-a-call-activity/m-p/50148#M29059</link>
      <description>Hi,Suppose I have a process like this:[attachment=1]ss1.png[/attachment]I have a method in a stateless session bean to start the process, like this:@TransactionAttribute(REQUIRED)public void startProcess(JpaEntity entity) {&amp;nbsp;&amp;nbsp; entityManager.persist(entity);&amp;nbsp;&amp;nbsp; Map&amp;lt;String, Object&amp;gt; variables = new</description>
      <pubDate>Thu, 08 Sep 2011 20:19:05 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-commit-db-changes-before-a-call-activity/m-p/50148#M29059</guid>
      <dc:creator>andregs</dc:creator>
      <dc:date>2011-09-08T20:19:05Z</dc:date>
    </item>
    <item>
      <title>Re: How to commit DB changes before a call activity?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-commit-db-changes-before-a-call-activity/m-p/50149#M29060</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Wow… Such a long post and if you searched a little you might have found async continuatons and 'ACT-126'. That is what you need&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 08 Sep 2011 22:18:55 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-commit-db-changes-before-a-call-activity/m-p/50149#M29060</guid>
      <dc:creator>ronald_van_kuij</dc:creator>
      <dc:date>2011-09-08T22:18:55Z</dc:date>
    </item>
    <item>
      <title>Re: How to commit DB changes before a call activity?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-commit-db-changes-before-a-call-activity/m-p/50150#M29061</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you! That's really what I need. So I have to wait for the next version of Activiti, right? Meanwhile, I'm trying to do the commit via receive task + timeout, because it's better than my previous blank user task approach. However, this exception is thrown:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;BOM: INSERT INTO MYTABLE (FIELDS) VALUES (?)&lt;BR /&gt; bind =&amp;gt; [8 parameters bound]&lt;BR /&gt;&lt;BR /&gt;GRAVE: Error while closing command context&lt;BR /&gt;org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[13328] was updated by another transaction concurrently&lt;BR /&gt; at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:425)&lt;BR /&gt; at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:338)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:147)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:103)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:59)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt; at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:63)&lt;BR /&gt;&lt;BR /&gt;GRAVE: exception during job acquisition: TimerEntity[13328] was updated by another transaction concurrently&lt;BR /&gt;org.activiti.engine.ActivitiOptimisticLockingException: TimerEntity[13328] was updated by another transaction concurrently&lt;BR /&gt; at org.activiti.engine.impl.db.DbSqlSession.flushUpdates(DbSqlSession.java:425)&lt;BR /&gt; at org.activiti.engine.impl.db.DbSqlSession.flush(DbSqlSession.java:338)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContext.flushSessions(CommandContext.java:147)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContext.close(CommandContext.java:103)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:49)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.JtaTransactionInterceptor.execute(JtaTransactionInterceptor.java:59)&lt;BR /&gt; at org.activiti.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:33)&lt;BR /&gt; at org.activiti.engine.impl.jobexecutor.JobAcquisitionThread.run(JobAcquisitionThread.java:63)&lt;BR /&gt;&lt;BR /&gt;GRAVE: exception during timer execution&lt;BR /&gt;org.apache.ibatis.exceptions.PersistenceException: &lt;BR /&gt;### Error querying database.&amp;nbsp; Cause: org.activiti.engine.ActivitiException: unknown variable type name jpa-entity&lt;BR /&gt;### The error may involve org.activiti.engine.impl.persistence.entity.VariableInstanceEntity.selectVariablesByExecutionId-Inline&lt;BR /&gt;### The error occurred while setting parameters&lt;BR /&gt;### Cause: org.activiti.engine.ActivitiException: unknown variable type name jpa-entity&lt;BR /&gt; at org.apache.ibatis.exceptions.ExceptionFactory.wrapException(ExceptionFactory.java:8)&lt;BR /&gt; at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:77)&lt;BR /&gt; at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:69)&lt;BR /&gt; at org.activiti.engine.impl.db.DbSqlSession.selectList(DbSqlSession.java:172)&lt;BR /&gt; at org.activiti.engine.impl.persistence.entity.VariableInstanceManager.findVariableInstancesByExecutionId(VariableInstanceManager.java:47)&lt;BR /&gt; at org.activiti.engine.impl.persistence.entity.ExecutionEntity.loadVariableInstances(ExecutionEntity.java:876)&lt;BR /&gt; at org.activiti.engine.impl.persistence.entity.VariableScopeImpl.ensureVariableInstancesInitialized(VariableScopeImpl.java:57)&lt;BR /&gt; at org.activiti.engine.impl.persistence.entity.VariableScopeImpl.getVariable(VariableScopeImpl.java:90)&lt;BR /&gt; at org.activiti.engine.impl.persistence.entity.VariableScopeImpl.getVariable(VariableScopeImpl.java:97)&lt;BR /&gt; at org.activiti.engine.impl.bpmn.behavior.CallActivityBehavior.execute(CallActivityBehavior.java:67)&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;The same happens when I try to delete cascade my deployment on Activiti Probe: org.activiti.engine.ActivitiException: unknown variable type name jpa-entity&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm sorry about my long post. I did my best to make myself clear.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Could you help me again? I'm using Activiti 5.6 and I'm going to try 5.7 latter.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Sep 2011 12:35:36 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-commit-db-changes-before-a-call-activity/m-p/50150#M29061</guid>
      <dc:creator>andregs</dc:creator>
      <dc:date>2011-09-09T12:35:36Z</dc:date>
    </item>
    <item>
      <title>Re: How to commit DB changes before a call activity?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-commit-db-changes-before-a-call-activity/m-p/50151#M29062</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;hahha… your initial post was very clear, but if you had searched a little, you probably would not have had to write it &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regarding your second question, it is always better not to use the same topic since that can be confusing. And there have been posts with kind of the same issue, so please search a little first and use a new topic afterwards&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Sep 2011 13:21:13 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-commit-db-changes-before-a-call-activity/m-p/50151#M29062</guid>
      <dc:creator>ronald_van_kuij</dc:creator>
      <dc:date>2011-09-09T13:21:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to commit DB changes before a call activity?</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/how-to-commit-db-changes-before-a-call-activity/m-p/50152#M29063</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you, Ronald. I have created a new topic: &lt;/SPAN&gt;&lt;A href="http://forums.activiti.org/en/viewtopic.php?f=6&amp;amp;t=2373" rel="nofollow noopener noreferrer"&gt;http://forums.activiti.org/en/viewtopic.php?f=6&amp;amp;t=2373&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 09 Sep 2011 17:25:24 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/how-to-commit-db-changes-before-a-call-activity/m-p/50152#M29063</guid>
      <dc:creator>andregs</dc:creator>
      <dc:date>2011-09-09T17:25:24Z</dc:date>
    </item>
  </channel>
</rss>

