As we transition to the new Hyland Community, some post links may be temporarily disrupted as we finalize redirects. We apologize for the inconvenience and are working to resolve this as quickly as possible. Details.
ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder(someName); processDefinitionBuilder = processDefinitionBuilder.createActivity(top.getName()) .initial() .behavior(new BaseServiceTaskHandler("start node")) .transition(startName) .endActivity(); for (int i = 0; i < myChecklist.size(); i++) { if(i<myChecklist.size() - 1) { processDefinitionBuilder = processDefinitionBuilder.createActivity(myChecklist.get(i).getName()) .behavior(new ReminderActivityHandler()) .transition(myChecklist.get(i + 1).getName()) .endActivity(); } else { processDefinitionBuilder = processDefinitionBuilder.createActivity(top.getRoutine().get(i).getName()) .endActivity(); } } PvmProcessDefinition processDefinition = processDefinitionBuilder.buildProcessDefinition();
<br>PvmProcessInstance processInstance = processDefinition.createProcessInstance();<br>processInstance.setVariable("userId", "myTest");<br>processInstance.start();<br><br>
<br>List activeIds = processInstance.findActiveActivityIds();<br>Assert.assertNotNull(activeIds);<br><br>PvmActivity activity = processInstance.getActivity();<br>
<br>@Test<br>public void createProcessDefinition() {<br> ProcessDefinitionBuilder processDefinitionBuilder = new ProcessDefinitionBuilder();<br> <br> //a map with tasks descriptions<br> List<Map<String, String>> activities = new ArrayList<Map<String, String>>();<br> Map<String, String> activity;<br> <br> activity = new HashMap<String, String>();<br> activity.put("id", "UT1");<br> activity.put("name", "User task 1");<br> activities.add(activity);<br> <br> activity = new HashMap<String, String>();<br> activity.put("id", "UT2");<br> activity.put("name", "User task 2");<br> activities.add(activity);<br> <br> activity = new HashMap<String, String>();<br> activity.put("id", "UT3");<br> activity.put("name", "User task 3");<br> activities.add(activity);<br> <br> <br> // creating process definition<br> int len = activities.size();<br> for (int i = 0; i < len; i++) {<br> processDefinitionBuilder.createActivity(activities.get(i).get("id"));<br> if (i == 0) {<br> processDefinitionBuilder.initial();<br> }<br> <br> processDefinitionBuilder.behavior(new ActivitiWaitState());<br> <br> if (i + 1 < len) {<br> processDefinitionBuilder.transition(activities.get(i+1).get("id"));<br> }<br> }<br> PvmProcessDefinition processDefinition = processDefinitionBuilder.buildProcessDefinition();<br> <br> PvmProcessInstance processInstance = processDefinition.createProcessInstance();<br> processInstance.start();<br> <br> TaskQuery taskQuery = activitiTaskService.createTaskQuery();<br> List<Task> tasks = taskQuery.list();<br> Assert.assertTrue(tasks.size() > 0);<br>}<br>
<br><callActivity id="callCheckCreditProcess" name="Check credit" calledElement="${dynamicProcess}" /><br>
<br> String processXml = generateMyProcessDefinitionXml();<br> String processId = …. ; // the process id referenced in processXml<br> DeploymentBuilder deploymentBuilder = processEngine.getRepositoryService().createDeployment().name(..);<br> // make sure that the name ends with .bpmn20.xml otherwise it won't deploy<br> deploymentBuilder.addString("dynamicprocess.bpmn20.xml",processXml); <br> deploymentBuilder.deploy();<br> execution.setVariable("dynamicProcess", processId);<br>