private String getTaskOwnerValue(WorkflowTask task) { String owner = (String) task.getProperties().get(ContentModel.PROP_OWNER); if (owner == null || owner.length() == 0) { return null; } return buildTaskOwnerString(owner); }
public void testStartWorkflowParameters() { WorkflowDefinition workflowDef = getTestDefinition(); Map<QName, Serializable> params = new HashMap<QName, Serializable>(); params.put(WorkflowModel.PROP_TASK_ID, 3); // protected - shouldn't be written params.put(WorkflowModel.PROP_DUE_DATE, new Date()); // task instance field params.put(WorkflowModel.PROP_PRIORITY, 1); // task instance field params.put(WorkflowModel.PROP_PERCENT_COMPLETE, 10); // context variable params.put( QName.createQName("", "Message"), "Hello World"); // context variable outside of task definition params.put( QName.createQName("", "Array"), new String[] {"one", "two"}); // context variable outside of task definition params.put( QName.createQName("", "NodeRef"), new NodeRef("workspace://1/1001")); // context variable outside of task definition params.put(ContentModel.PROP_OWNER, AuthenticationUtil.getAdminUserName()); // task assignment WorkflowPath path = workflowComponent.startWorkflow(workflowDef.getId(), params); assertNotNull(path); assertTrue(path.getId().endsWith("-@")); assertNotNull(path.getNode()); assertNotNull(path.getInstance()); assertEquals(workflowDef.getId(), path.getInstance().getDefinition().getId()); List<WorkflowTask> tasks1 = workflowComponent.getTasksForWorkflowPath(path.getId()); assertNotNull(tasks1); assertEquals(1, tasks1.size()); WorkflowTask task = tasks1.get(0); assertTrue(task.getProperties().containsKey(WorkflowModel.PROP_TASK_ID)); assertTrue(task.getProperties().containsKey(WorkflowModel.PROP_DUE_DATE)); assertTrue(task.getProperties().containsKey(WorkflowModel.PROP_PRIORITY)); assertTrue(task.getProperties().containsKey(WorkflowModel.PROP_PERCENT_COMPLETE)); assertTrue(task.getProperties().containsKey(ContentModel.PROP_OWNER)); NodeRef initiator = path.getInstance().getInitiator(); String initiatorUsername = (String) nodeService.getProperty(initiator, ContentModel.PROP_USERNAME); assertEquals(AuthenticationUtil.getAdminUserName(), initiatorUsername); }
@SuppressWarnings("unchecked") private List<String> getHiddenTransitions(WorkflowTask task) { Serializable hiddenValues = task.getProperties().get(WorkflowModel.PROP_HIDDEN_TRANSITIONS); if (hiddenValues != null) { if (hiddenValues instanceof List<?>) { return (List<String>) hiddenValues; } else if (hiddenValues instanceof String && ((String) hiddenValues).length() > 0) { return Arrays.asList(((String) hiddenValues).split(",")); } } return Collections.emptyList(); }
private String getMessageValue(WorkflowTask task) { String message = I18NUtil.getMessage(MessageFieldProcessor.MSG_VALUE_NONE); String description = (String) task.getProperties().get(WorkflowModel.PROP_DESCRIPTION); if (description != null) { String taskTitle = task.getTitle(); if (taskTitle == null || !taskTitle.equals(description)) { message = description; } } return message; }
public void testUpdateTask() { WorkflowDefinition workflowDef = getTestDefinition(); Map<QName, Serializable> params = new HashMap<QName, Serializable>(); params.put(WorkflowModel.PROP_TASK_ID, 3); // protected - shouldn't be written params.put(WorkflowModel.PROP_DUE_DATE, new Date()); // task instance field params.put(WorkflowModel.PROP_PRIORITY, 1); // task instance field params.put(WorkflowModel.PROP_PERCENT_COMPLETE, 10); // context variable params.put( QName.createQName("", "Message"), "Hello World"); // context variable outside of task definition params.put( QName.createQName("", "Array"), new String[] {"one", "two"}); // context variable outside of task definition params.put( QName.createQName("", "NodeRef"), new NodeRef("workspace://1/1001")); // context variable outside of task definition params.put(ContentModel.PROP_OWNER, AuthenticationUtil.getAdminUserName()); // task assignment WorkflowPath path = workflowComponent.startWorkflow(workflowDef.getId(), params); assertNotNull(path); assertTrue(path.getId().endsWith("-@")); assertNotNull(path.getNode()); assertNotNull(path.getInstance()); assertEquals(workflowDef.getId(), path.getInstance().getDefinition().getId()); List<WorkflowTask> tasks1 = workflowComponent.getTasksForWorkflowPath(path.getId()); assertNotNull(tasks1); assertEquals(1, tasks1.size()); WorkflowTask task = tasks1.get(0); assertTrue(task.getProperties().containsKey(WorkflowModel.PROP_TASK_ID)); assertTrue(task.getProperties().containsKey(WorkflowModel.PROP_DUE_DATE)); assertTrue(task.getProperties().containsKey(WorkflowModel.PROP_PRIORITY)); assertTrue(task.getProperties().containsKey(WorkflowModel.PROP_PERCENT_COMPLETE)); assertTrue(task.getProperties().containsKey(ContentModel.PROP_OWNER)); // update with null parameters try { WorkflowTask taskU1 = taskComponent.updateTask(task.getId(), null, null, null); assertNotNull(taskU1); } catch (Throwable e) { fail("Task update failed with null parameters"); } // update property value Map<QName, Serializable> updateProperties2 = new HashMap<QName, Serializable>(); updateProperties2.put(WorkflowModel.PROP_PERCENT_COMPLETE, 100); WorkflowTask taskU2 = taskComponent.updateTask(task.getId(), updateProperties2, null, null); assertEquals(100, taskU2.getProperties().get(WorkflowModel.PROP_PERCENT_COMPLETE)); // add to assocation QName assocName = QName.createQName("", "TestAssoc"); List<NodeRef> toAdd = new ArrayList<NodeRef>(); toAdd.add(new NodeRef("workspace://1/1001")); toAdd.add(new NodeRef("workspace://1/1002")); toAdd.add(new NodeRef("workspace://1/1003")); Map<QName, List<NodeRef>> addAssocs = new HashMap<QName, List<NodeRef>>(); addAssocs.put(assocName, toAdd); WorkflowTask taskU3 = taskComponent.updateTask(task.getId(), null, addAssocs, null); assertNotNull(taskU3.getProperties().get(assocName)); assertEquals(3, ((List<?>) taskU3.getProperties().get(assocName)).size()); // add to assocation again List<NodeRef> toAddAgain = new ArrayList<NodeRef>(); toAddAgain.add(new NodeRef("workspace://1/1004")); toAddAgain.add(new NodeRef("workspace://1/1005")); Map<QName, List<NodeRef>> addAssocsAgain = new HashMap<QName, List<NodeRef>>(); addAssocsAgain.put(assocName, toAddAgain); WorkflowTask taskU4 = taskComponent.updateTask(task.getId(), null, addAssocsAgain, null); assertNotNull(taskU4.getProperties().get(assocName)); assertEquals(5, ((List<?>) taskU4.getProperties().get(assocName)).size()); // remove assocation List<NodeRef> toRemove = new ArrayList<NodeRef>(); toRemove.add(new NodeRef("workspace://1/1002")); toRemove.add(new NodeRef("workspace://1/1003")); Map<QName, List<NodeRef>> removeAssocs = new HashMap<QName, List<NodeRef>>(); removeAssocs.put(assocName, toRemove); WorkflowTask taskU5 = taskComponent.updateTask(task.getId(), null, null, removeAssocs); assertNotNull(taskU5.getProperties().get(assocName)); assertEquals(3, ((List<?>) taskU5.getProperties().get(assocName)).size()); }
@Override protected Map<QName, Serializable> getAssociationValues(WorkflowTask item) { return item.getProperties(); }
@Override protected Map<QName, Serializable> getPropertyValues(WorkflowTask task) { return task.getProperties(); }