<?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 Activiti Process Versioning: Best Practices in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/activiti-process-versioning-best-practices/m-p/58992#M36199</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Please redirect me to another post if this question has already been asked.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Context: We are using activiti in an environment that follows versioning. So when an application gets deployed for the first time, it will ship out with version 1.0 of business processes and rules. In the future, we may deploy version 1.1 and change our application configuration to use the new process (and rules). This works fine but I have some questions about best practices.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;i) A process has a processDefinitionKey and processDefinitionId (which by default is the {processDefinitionKey}:{version}:{generatedId}). It seems that to control the version of process being executed, we would have to use the processDefinitionId &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;runtimeService.startProcessInstanceById(processDefinitionId, paramMap);&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;The questions are, is there an easy way to set the processDefinitionId to something that is intelligible to the app instead of what activiti generates by default (using the BMPNDeployer)? I would not want to write a custom BPMNDeployer only to change the processDeploymentId. Also, can the processDeploymentId be updated after deployment.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Secondly, was there a reason a generatedId was added to the processDefinitionId. I would think that a combination of {processDefinitionKey}:{version} would have been unique enough.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;ii) The other approach that we thought was to have the processDefinitionKey have versioning build in. So for example OrderProcess version1 would have processDefinitionKey of "OrderProcessVersion1" and OrderProcess version2 would have processDefinitionKey of "OrderProcessVersion2". Then we could start the process by key&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;runtimeService.startProcessInstanceByKey(processDefinitionKey)&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;SPAN&gt;Is this approach preferable to approach i. How do these approaches compare in the maintainability of the apps as the number of versions increase?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;iii) Any other recommendations?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 14 Sep 2011 14:56:38 GMT</pubDate>
    <dc:creator>sangv</dc:creator>
    <dc:date>2011-09-14T14:56:38Z</dc:date>
    <item>
      <title>Activiti Process Versioning: Best Practices</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/activiti-process-versioning-best-practices/m-p/58992#M36199</link>
      <description>Please redirect me to another post if this question has already been asked.Context: We are using activiti in an environment that follows versioning. So when an application gets deployed for the first time, it will ship out with version 1.0 of business processes and rules. In the future, we may deplo</description>
      <pubDate>Wed, 14 Sep 2011 14:56:38 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/activiti-process-versioning-best-practices/m-p/58992#M36199</guid>
      <dc:creator>sangv</dc:creator>
      <dc:date>2011-09-14T14:56:38Z</dc:date>
    </item>
    <item>
      <title>Re: Activiti Process Versioning: Best Practices</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/activiti-process-versioning-best-practices/m-p/58993#M36200</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;It depends on your strategy with 'older' processes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;By default, when you deploy a process definition with the same key, this process will get the previous version + 1.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;All process started using the startProcessInstanceByKey() method will now use the latest version, while the 'old ones' are phased out.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The other approach is to do it yourself in the key … but that would also mean that you will have to change the code that calls these processes every time you do an update.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 15 Sep 2011 13:33:31 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/activiti-process-versioning-best-practices/m-p/58993#M36200</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2011-09-15T13:33:31Z</dc:date>
    </item>
    <item>
      <title>Re: Activiti Process Versioning: Best Practices</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/activiti-process-versioning-best-practices/m-p/58994#M36201</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks for the reply.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;We would be potentially working with long-running processes that can take more than a year to complete (our processes are in the banking/mortgage industry). So our approach for older process is to keep them running for users that have already started on them. For new users that are getting into the process, we will have a versioning strategy that determines if they are eligible for the new process or the old process. What this means for us is that we cannot 'phase old' older processes. With this being our usecase, is looking up the correct process definition version with processDefinitionId still the best approach?&amp;nbsp; Is there an injection point to custom create our processDefinitionId after deployment that is intelligible to the application (meaning can we inject a naming strategy/convention to the BPMNDeployer)?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Sang&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 16 Sep 2011 12:27:54 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/activiti-process-versioning-best-practices/m-p/58994#M36201</guid>
      <dc:creator>sangv</dc:creator>
      <dc:date>2011-09-16T12:27:54Z</dc:date>
    </item>
    <item>
      <title>Re: Activiti Process Versioning: Best Practices</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/activiti-process-versioning-best-practices/m-p/58995#M36202</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;If I understand it correctly, why can't you just use the key for the purpose you describe? &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Since you do the check which process to start at the beginning, the key is perfectly useable for that.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Sep 2011 08:54:43 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/activiti-process-versioning-best-practices/m-p/58995#M36202</guid>
      <dc:creator>jbarrez</dc:creator>
      <dc:date>2011-09-20T08:54:43Z</dc:date>
    </item>
  </channel>
</rss>

