<?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: bpmnParse.getCurrentProcessDefinition().getId() returns null in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/bpmnparse-getcurrentprocessdefinition-getid-returns-null/m-p/178676#M131806</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The process definition id is not yet known in the parsing phase of the deployment.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So that's why it still has a value of null.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 20 Sep 2015 18:55:35 GMT</pubDate>
    <dc:creator>trademak</dc:creator>
    <dc:date>2015-09-20T18:55:35Z</dc:date>
    <item>
      <title>bpmnParse.getCurrentProcessDefinition().getId() returns null</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/bpmnparse-getcurrentprocessdefinition-getid-returns-null/m-p/178675#M131805</link>
      <description>I'm trying to hook into UserTaskBPMNParsePre to set some UserTask properties overriding bpmn.xml definition.I store those custom properties in external db table and want to connect them with specific UserTask basing on processDefinitionId (it's very convenient in others part of application to use pr</description>
      <pubDate>Sun, 20 Sep 2015 10:15:42 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/bpmnparse-getcurrentprocessdefinition-getid-returns-null/m-p/178675#M131805</guid>
      <dc:creator>lmazurk</dc:creator>
      <dc:date>2015-09-20T10:15:42Z</dc:date>
    </item>
    <item>
      <title>Re: bpmnParse.getCurrentProcessDefinition().getId() returns null</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/bpmnparse-getcurrentprocessdefinition-getid-returns-null/m-p/178676#M131806</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The process definition id is not yet known in the parsing phase of the deployment.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So that's why it still has a value of null.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Best regards,&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 20 Sep 2015 18:55:35 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/bpmnparse-getcurrentprocessdefinition-getid-returns-null/m-p/178676#M131806</guid>
      <dc:creator>trademak</dc:creator>
      <dc:date>2015-09-20T18:55:35Z</dc:date>
    </item>
    <item>
      <title>Re: bpmnParse.getCurrentProcessDefinition().getId() returns null</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/bpmnparse-getcurrentprocessdefinition-getid-returns-null/m-p/178677#M131807</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;But this is true only for first time deployment as I understand deployment process.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Later when given process definition is out of process definitions cache parsing is executed to put it back.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;At this moment process definition id is perfectly known - look at org.activiti.engine.impl.bpmn.deployer.deploy:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if (deployment.isNew()) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; …&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{…&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; persistedProcessDefinition = processDefinitionManager.findProcessDefinitionByDeploymentAndKey&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; …&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; processDefinition.setId(persistedProcessDefinition.getId());&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; …&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So, at first time deploy you are rigth - id is not known (maybe in next releases it can be generated before parsing).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But on following deploys (when procDef must be put back into cache) shouldn't be procDef.id set at start (from DB)&amp;nbsp; and passed to parser?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Understand it's not an option for now.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;So I'm trying to hook in with custom deployer (public class CustomDeployerAfter implements Deployer{ …)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;and something like:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;@Override&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; public void deploy(DeploymentEntity deployment, Map&amp;lt;String, Object&amp;gt; deploymentSettings) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; // TODO Auto-generated method stub&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; System.out.println("DeployerAfter");&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; List&amp;lt;ProcessDefinitionEntity&amp;gt; proc_defs=deployment.getDeployedArtifacts(ProcessDefinitionEntity.class);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; for(ProcessDefinitionEntity proc_def: proc_defs){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; System.out.println(proc_def.getId());&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Map&amp;lt;String,TaskDefinition&amp;gt; tasks=proc_def.getTaskDefinitions();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; Set&amp;lt;String&amp;gt; tasks_key=tasks.keySet();&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; for(String key:tasks_key){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; TaskDefinition task=tasks.get(key);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(task.getKey());&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I wonder if Map&amp;lt;String,TaskDefinition&amp;gt; tasks=proc_def.getTaskDefinitions(); returns only UserTasks&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;… or maybe it returns all kind of tasks (HumanTask, scriptTask, receiveTask, …)?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In such case how can I distinguish between task types?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Also - how to convert TaskDefinition to UserTask?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Luke &lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 22 Sep 2015 19:17:45 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/bpmnparse-getcurrentprocessdefinition-getid-returns-null/m-p/178677#M131807</guid>
      <dc:creator>lmazurk</dc:creator>
      <dc:date>2015-09-22T19:17:45Z</dc:date>
    </item>
  </channel>
</rss>

