<?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 Programmatic process definition and deployment (without xml) in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72230#M46910</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi everyone&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm new to Activiti and wanted to see if it will work for a project we're migrating.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I couldn't find a good example of creating a processDefinition and deploying it programatically.&amp;nbsp; I took point from ProcessDefinitionsTest, and a few others, but they seem to be deploying a process by reading from an existing xml resource or from a process string. (ie. DeploymentBuilder.addClasspathResource and addString)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a requirement where I am reading from external sources (ie. lists from db and flat files).&amp;nbsp; I want to avoid having to preprocess and convert them all to bpmn xml files.&amp;nbsp; I have List objects created from them, and would like to see if I can create a process definition from it, using something similar to the following&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder(someName);&lt;BR /&gt;&lt;BR /&gt;processDefinitionBuilder = processDefinitionBuilder.createActivity(top.getName())&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .initial()&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .behavior(new BaseServiceTaskHandler("start node"))&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .transition(startName)&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .endActivity();&lt;BR /&gt;&lt;BR /&gt;for (int i = 0; i &amp;lt; myChecklist.size(); i++) {&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; if(i&amp;lt;myChecklist.size() - 1) {&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; processDefinitionBuilder = processDefinitionBuilder.createActivity(myChecklist.get(i).getName())&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; .behavior(new ReminderActivityHandler())&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; .transition(myChecklist.get(i + 1).getName())&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; .endActivity();&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; } 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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; processDefinitionBuilder = processDefinitionBuilder.createActivity(top.getRoutine().get(i).getName())&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;&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; .endActivity();&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; }&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;&lt;BR /&gt;PvmProcessDefinition processDefinition = processDefinitionBuilder.buildProcessDefinition();&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;/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;How do I deploy this now?&amp;nbsp; Would this be the best way to do this?&amp;nbsp; Is there an example you can point me to?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 01 Aug 2011 16:41:09 GMT</pubDate>
    <dc:creator>hieu_ho</dc:creator>
    <dc:date>2011-08-01T16:41:09Z</dc:date>
    <item>
      <title>Programmatic process definition and deployment (without xml)</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72230#M46910</link>
      <description>Hi everyoneI'm new to Activiti and wanted to see if it will work for a project we're migrating.I couldn't find a good example of creating a processDefinition and deploying it programatically.&amp;nbsp; I took point from ProcessDefinitionsTest, and a few others, but they seem to be deploying a process by read</description>
      <pubDate>Mon, 01 Aug 2011 16:41:09 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72230#M46910</guid>
      <dc:creator>hieu_ho</dc:creator>
      <dc:date>2011-08-01T16:41:09Z</dc:date>
    </item>
    <item>
      <title>Re: Programmatic process definition and deployment (without xml)</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72231#M46911</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;So, not sure if this is correct usage, but as it turns out, if I do the folllowing, I'm able to start my process for specific objects.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;PvmProcessInstance processInstance = processDefinition.createProcessInstance();&lt;BR /&gt;processInstance.setVariable("userId", "myTest");&lt;BR /&gt;processInstance.start();&lt;BR /&gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;BR /&gt;&lt;SPAN&gt;To test it, I went ahead and looked up the activities that I ended up with.&amp;nbsp; I got the expected activity.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;List activeIds = processInstance.findActiveActivityIds();&lt;BR /&gt;Assert.assertNotNull(activeIds);&lt;BR /&gt;&lt;BR /&gt;PvmActivity activity = processInstance.getActivity();&lt;BR /&gt;&lt;/CODE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Aug 2011 16:26:05 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72231#M46911</guid>
      <dc:creator>hieu_ho</dc:creator>
      <dc:date>2011-08-02T16:26:05Z</dc:date>
    </item>
    <item>
      <title>Re: Programmatic process definition and deployment (without xml)</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72232#M46912</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;If it works, it is technically correct usage, but the 'api's us use are not public, so they might change without any notice and things stop working. In that regard it is bad practice.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 02 Aug 2011 17:47:35 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72232#M46912</guid>
      <dc:creator>ronald_van_kuij</dc:creator>
      <dc:date>2011-08-02T17:47:35Z</dc:date>
    </item>
    <item>
      <title>Re: Programmatic process definition and deployment (without xml)</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72233#M46913</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks Ronald&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;can you clarify what you mean by not public?&amp;nbsp; I took these examples from PvmTest and ProcessDefinitionTest in the examples project.&amp;nbsp; Do you mean these methods are not part of services api?&amp;nbsp; Are there "public" ones I should be using?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hieu&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Aug 2011 17:19:02 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72233#M46913</guid>
      <dc:creator>hieu_ho</dc:creator>
      <dc:date>2011-08-03T17:19:02Z</dc:date>
    </item>
    <item>
      <title>Re: Programmatic process definition and deployment (without xml)</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72234#M46914</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;They are in the impl package…&amp;nbsp; And afaik, there are no public classes/interfaces that you can use to achieve what you want. So either accept that things can change between releases or look at other ways to achieve what you want.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 03 Aug 2011 21:40:34 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72234#M46914</guid>
      <dc:creator>ronald_van_kuij</dc:creator>
      <dc:date>2011-08-03T21:40:34Z</dc:date>
    </item>
    <item>
      <title>Re: Programmatic process definition and deployment (without xml)</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72235#M46915</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I try to create a process definition without using the bpmn20.xml resource file, since I need to generate process definitions in my application dynamically. After creating process definition with ProcessDefinitionBuilder object and starting a process instance, I try to query for a task from the created process instance, but it fails. Could you point me out what I'm doing wrong, or show me any example of such dynamic process definition generation and execution as mentioned above?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the source code I'm writing, the assertion at the bottom of the code fails, since no tasks are being found:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;@Test&lt;BR /&gt;public void createProcessDefinition() {&lt;BR /&gt; ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder();&lt;BR /&gt; &lt;BR /&gt; //a map with tasks descriptions&lt;BR /&gt; List&amp;lt;Map&amp;lt;String, String&amp;gt;&amp;gt; activities = new ArrayList&amp;lt;Map&amp;lt;String, String&amp;gt;&amp;gt;();&lt;BR /&gt; Map&amp;lt;String, String&amp;gt; activity;&lt;BR /&gt; &lt;BR /&gt; activity = new HashMap&amp;lt;String, String&amp;gt;();&lt;BR /&gt; activity.put("id", "UT1");&lt;BR /&gt; activity.put("name", "User task 1");&lt;BR /&gt; activities.add(activity);&lt;BR /&gt; &lt;BR /&gt; activity = new HashMap&amp;lt;String, String&amp;gt;();&lt;BR /&gt; activity.put("id", "UT2");&lt;BR /&gt; activity.put("name", "User task 2");&lt;BR /&gt; activities.add(activity);&lt;BR /&gt; &lt;BR /&gt; activity = new HashMap&amp;lt;String, String&amp;gt;();&lt;BR /&gt; activity.put("id", "UT3");&lt;BR /&gt; activity.put("name", "User task 3");&lt;BR /&gt; activities.add(activity);&lt;BR /&gt; &lt;BR /&gt; &lt;BR /&gt; // creating process definition&lt;BR /&gt; int len = activities.size();&lt;BR /&gt; for (int i = 0; i &amp;lt; len; i++) {&lt;BR /&gt;&amp;nbsp; processDefinitionBuilder.createActivity(activities.get(i).get("id"));&lt;BR /&gt;&amp;nbsp; if (i == 0) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; processDefinitionBuilder.initial();&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; processDefinitionBuilder.behavior(new ActivitiWaitState());&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; if (i + 1 &amp;lt; len) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; processDefinitionBuilder.transition(activities.get(i+1).get("id"));&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt; }&lt;BR /&gt; PvmProcessDefinition processDefinition = processDefinitionBuilder.buildProcessDefinition();&lt;BR /&gt; &lt;BR /&gt; PvmProcessInstance processInstance = processDefinition.createProcessInstance();&lt;BR /&gt; processInstance.start();&lt;BR /&gt; &lt;BR /&gt; TaskQuery taskQuery = activitiTaskService.createTaskQuery();&lt;BR /&gt; List&amp;lt;Task&amp;gt; tasks = taskQuery.list();&lt;BR /&gt; Assert.assertTrue(tasks.size() &amp;gt; 0);&lt;BR /&gt;}&lt;BR /&gt;&lt;/CODE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Oct 2011 10:21:32 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72235#M46915</guid>
      <dc:creator>artur_karczmarc</dc:creator>
      <dc:date>2011-10-03T10:21:32Z</dc:date>
    </item>
    <item>
      <title>Re: Programmatic process definition and deployment (without xml)</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72236#M46916</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Processes need to be 'deployed' to be really useful. Why not create xml via java and deploy that?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Oct 2011 19:45:24 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72236#M46916</guid>
      <dc:creator>ronald_van_kuij</dc:creator>
      <dc:date>2011-10-03T19:45:24Z</dc:date>
    </item>
    <item>
      <title>Re: Programmatic process definition and deployment (without xml)</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72237#M46917</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thank you for your answer. I just wondered if it is posible to create, deploy and run a process without creating xml file, since I have a group of objects in my app, which then I will have to transform to XML only to transform it back to some objects.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried creating the xml file in java and then deploying it from String in memory, everything works fine &lt;img id="smileywink" class="emoticon emoticon-smileywink" src="https://connect.hyland.com/i/smilies/16x16_smiley-wink.png" alt="Smiley Wink" title="Smiley Wink" /&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 03 Oct 2011 20:44:24 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72237#M46917</guid>
      <dc:creator>artur_karczmarc</dc:creator>
      <dc:date>2011-10-03T20:44:24Z</dc:date>
    </item>
    <item>
      <title>Re: Programmatic process definition and deployment (without xml)</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72238#M46918</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I doubt you have all activiti objects, so what is the difference?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Oct 2011 06:03:58 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72238#M46918</guid>
      <dc:creator>ronald_van_kuij</dc:creator>
      <dc:date>2011-10-04T06:03:58Z</dc:date>
    </item>
    <item>
      <title>Re: Programmatic process definition and deployment (without xml)</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72239#M46919</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Okay, thanks, I'll do it the xml-way &lt;img id="smileywink" class="emoticon emoticon-smileywink" src="https://connect.hyland.com/i/smilies/16x16_smiley-wink.png" alt="Smiley Wink" title="Smiley Wink" /&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Oct 2011 06:12:29 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72239#M46919</guid>
      <dc:creator>artur_karczmarc</dc:creator>
      <dc:date>2011-10-04T06:12:29Z</dc:date>
    </item>
    <item>
      <title>Re: Programmatic process definition and deployment (without xml)</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72240#M46920</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;That is at least 'guaranteed' to be stable &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Oct 2011 16:05:52 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72240#M46920</guid>
      <dc:creator>ronald_van_kuij</dc:creator>
      <dc:date>2011-10-04T16:05:52Z</dc:date>
    </item>
    <item>
      <title>Re: Programmatic process definition and deployment (without xml)</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72241#M46921</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Is it a joke… /:/&amp;nbsp;&amp;nbsp; to generate xml from my object/PvmProcessDefinition&amp;nbsp; then re-import&amp;nbsp; in the ProcessEngine via stream resource reading ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PvmProcessDefinition should not be the centric language/model/template of work of the process engine ?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 01 Mar 2012 16:45:08 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72241#M46921</guid>
      <dc:creator>vincentbonnet</dc:creator>
      <dc:date>2012-03-01T16:45:08Z</dc:date>
    </item>
    <item>
      <title>Re: Programmatic process definition and deployment (without xml)</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72242#M46922</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I had a need for this and since 5.9 (thanks to &lt;/SPAN&gt;&lt;A href="http://jira.codehaus.org/browse/ACT-831" rel="nofollow noopener noreferrer"&gt;http://jira.codehaus.org/browse/ACT-831&lt;/A&gt;&lt;SPAN&gt;)&amp;nbsp; you can generate and execute a subprocess dynamically. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;- your base (non dynamic) processdefinition should have a callActivity with a variable as calledElement&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;lt;callActivity id="callCheckCreditProcess" name="Check credit" calledElement="${dynamicProcess}" /&amp;gt;&lt;BR /&gt;&lt;/CODE&gt;&lt;SPAN&gt;- just before this callactivity you put a service task to generate and deploy the processdefinition&lt;/SPAN&gt;&lt;BR /&gt;&lt;CODE&gt;&lt;BR /&gt;&amp;nbsp; String processXml = generateMyProcessDefinitionXml();&lt;BR /&gt;&amp;nbsp; String processId = …. ; // the process id referenced in processXml&lt;BR /&gt;&amp;nbsp; DeploymentBuilder deploymentBuilder = processEngine.getRepositoryService().createDeployment().name(..);&lt;BR /&gt;&amp;nbsp; // make sure that the name ends with .bpmn20.xml otherwise it won't deploy&lt;BR /&gt;&amp;nbsp; deploymentBuilder.addString("dynamicprocess.bpmn20.xml",processXml);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; deploymentBuilder.deploy();&lt;BR /&gt;&amp;nbsp; execution.setVariable("dynamicProcess", processId);&lt;BR /&gt;&lt;/CODE&gt;&lt;SPAN&gt;- then when the callActivity kicks in it will lookup the newly deployed process and execute it&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 02 Mar 2012 06:33:30 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/programmatic-process-definition-and-deployment-without-xml/m-p/72242#M46922</guid>
      <dc:creator>heymjo</dc:creator>
      <dc:date>2012-03-02T06:33:30Z</dc:date>
    </item>
  </channel>
</rss>

