private Map<String, WorkflowTask> getInvitationTasks(List<String> invitationIds) { for (String invitationId: invitationIds) { validateInvitationId(invitationId); } // query for invite workflow task associate long start = (logger.isDebugEnabled()) ? System.currentTimeMillis() : 0; List<WorkflowTask> inviteStartTasks = workflowService.getStartTasks(invitationIds, true); if (logger.isDebugEnabled()) { logger.debug(" getInvitationTask("+invitationIds.size()+") in "+ (System.currentTimeMillis()-start) + " ms"); } Map<String, WorkflowTask> result = new HashMap<String, WorkflowTask>(inviteStartTasks.size() * 2); for(WorkflowTask inviteStartTask: inviteStartTasks) { String invitationId = inviteStartTask.getPath().getInstance().getId(); // The following does not work for moderated tasks // String invitationId = (String) // inviteStartTask.getProperties().get(WorkflowModel.PROP_WORKFLOW_INSTANCE_ID); result.put(invitationId, inviteStartTask); } return result; }
private Map<String, WorkflowTask> getInvitationTasks(List<String> invitationIds) { for (String invitationId: invitationIds) { validateInvitationId(invitationId); } // query for invite workflow task associate long start = (logger.isDebugEnabled()) ? System.currentTimeMillis() : 0; List<WorkflowTask> inviteStartTasks = workflowService.getStartTasks(invitationIds, true); if (logger.isDebugEnabled()) { logger.debug(" getInvitationTask("+invitationIds.size()+") in "+ (System.currentTimeMillis()-start) + " ms"); } Map<String, WorkflowTask> result = new HashMap<String, WorkflowTask>(inviteStartTasks.size() * 2); for(WorkflowTask inviteStartTask: inviteStartTasks) { String invitationId = inviteStartTask.getPath().getInstance().getId(); // The following does not work for moderated tasks // String invitationId = (String) // inviteStartTask.getProperties().get(WorkflowModel.PROP_WORKFLOW_INSTANCE_ID); result.put(invitationId, inviteStartTask); } return result; }
@Test public void testWorkflowVarious() throws Exception { WorkflowDefinition definition = deployDefinition(getTestDefinitionPath()); // Start the Workflow WorkflowPath path = workflowService.startWorkflow(definition.getId(), null); String instanceId = path.getInstance().getId(); List<WorkflowTask> workflowTasks = workflowService.getStartTasks(Arrays.asList(instanceId), true); assertNotNull(workflowTasks); assertEquals(1, workflowTasks.size()); assertFalse(workflowService.hasWorkflowImage(instanceId)); assertNull(workflowService.getWorkflowImage(instanceId)); List<WorkflowInstance> instances = workflowService.cancelWorkflows(null); assertTrue(instances.isEmpty()); WorkflowInstance wfi = workflowService.deleteWorkflow(instanceId); assertEquals(instanceId, wfi.getId()); try { byte[] image = workflowService.getDefinitionImage(definition.getId()); } catch (WorkflowException we ) { assertTrue(we.getMessage().contains("Failed to retrieve workflow definition")); } }