08-01-2008 09:07 AM
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="ipwf:moderatorSubmissionWorkflow">
<swimlane name="submitter" />
<start-state name="start">
<task name="ipwf:submitModification" swimlane="submitter" />
<transition name="" to="split">
<action class="fr.openwide.gwt.alfresco.server.workflow.ModeratorSubmissionWorkflowAction" />
</transition>
</start-state>
<fork name="split">
<transition name="to moderator approval" to="moderator approval" />
<transition name="to admin approval" to="admin approval" />
</fork>
<swimlane name="moderator">
<assignment actor-id="#{ipwf_moderator.properties['cm:userName']}" />
</swimlane>
<swimlane name="admin">
<assignment actor-id="#{ipwf_administrator.properties['cm:userName']}" />
</swimlane>
<task-node name="moderator approval">
<task name="ipwf:moderatorApprobation" swimlane="moderator" />
<transition name="modoApprovedOrRefused" to="end" >
<action class="fr.openwide.gwt.alfresco.server.workflow.ModeratorApprovalWorkflowAction" />
</transition>
</task-node>
<task-node name="admin approval" >
<task name="ipwf:administratorApprobation" swimlane="admin" />
<transition name="adminApprovedOrRefused" to="end" >
<action class="fr.openwide.gwt.alfresco.server.workflow.AdministratorApprovalWorkflowAction" />
</transition>
</task-node>
<end-state name="end" />
</process-definition>
// prepare nodes, properties & co…
// In this example, user with name in "authority" has the role of moderator and administrator
WorkflowDefinition workflowDef = workflowService.getDefinitionByName(…);
workflowService.startWorkflow(workflowDef.id, properties);
List<String> newTasksId = getNewTasks(authority, beforeTasks); // returns the list of tasks "IN PROGRESS" created by this workflow
workflowService.endTask(newTasksId.get(0), null); // ends start-task
newTasksId = getNewTasks(authority, beforeTasks); // get lastly created "IN PROGRESS" tasks
// Task for moderator and admin (that are the same person in that test)
assertEquals(2, newTasksId.size()); // OK, tasks are the one I expect
workflowService.endTask(newTasksId.get(0), null); // Complete one of those tasks
// Then the workflow should be ended
WorkflowTask otherTask = workflowService.getTaskById(newTasksId.get(1));
assertFalse(otherTask.path.instance.active); // Error: workflow instance is still active (endDate still null)
assertEquals(WorkflowTaskState.IN_PROGESS, otherTask.state); // Error: other task is still IN_PROGRESS whereas the first one should have reached the end
08-04-2008 04:51 AM
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1"
name="ipwf:moderatorSubmissionWorkflow">
<swimlane name="submitter" />
<start-state name="start">
<task name="ipwf:submitModification" swimlane="submitter" />
<transition name="" to="review">
<action
class="fr.openwide.gwt.alfresco.server.workflow.SubmissionWorkflowAction" />
</transition>
</start-state>
<swimlane name="reviewer">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment">
<pooledactors>#{new Array(ipwf_moderator, ipwf_administrator)}</pooledactors>
</assignment>
</swimlane>
<task-node name="review">
<task name="ipwf:approval" swimlane="reviewer" />
<transition name="adminApprovedOrRefused" to="end">
<action
class="fr.openwide.gwt.alfresco.server.workflow.ApprovalWorkflowAction" />
</transition>
</task-node>
<end-state name="end" />
</process-definition>
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.