/** * Sets the properties on the underlying {@link WorkflowTask}. * * @param properties * the properties to set */ public void setProperties(ScriptableQNameMap<String, Serializable> properties) { Map<QName, Serializable> qNameProps = properties.getMapOfQNames(); this.task = workflowService.updateTask(task.getId(), qNameProps, null, null); }
/** * Sets the properties on the underlying {@link WorkflowTask}. * * @param properties * the properties to set */ public void setProperties(ScriptableQNameMap<String, Serializable> properties) { Map<QName, Serializable> qNameProps = properties.getMapOfQNames(); this.task = workflowService.updateTask(task.getId(), qNameProps, null, null); }
public WorkflowTask update() { WorkflowTask task = workflowService.getTaskById(taskId); NodeRef packageNode = task.getPath().getInstance().getWorkflowPackage(); packageMgr.update(packageNode); WorkflowTask result = workflowService.updateTask(taskId, properties, add, remove); properties.clear(); add.clear(); remove.clear(); return result; }
public WorkflowTask update() { WorkflowTask task = workflowService.getTaskById(taskId); NodeRef packageNode = task.getPath().getInstance().getWorkflowPackage(); packageMgr.update(packageNode); WorkflowTask result = workflowService.updateTask(taskId, properties, add, remove); properties.clear(); add.clear(); remove.clear(); return result; }
@Override public ModeratedInvitation updateModeratedInvitation(String inviteeId, String siteShortName, String inviteeComments) { ModeratedInvitation ret = null; // find and update the review task with the new property values WorkflowTask reviewTask = getModeratedInvitationReviewTask(inviteeId, siteShortName); if(reviewTask == null) { Object objs[] = { siteShortName, inviteeId }; throw new InvitationExceptionNotFound("invitation.error.not_found_by_invitee", objs); } else { String invitationId = reviewTask.getPath().getInstance().getId(); if(inviteeComments != null) { // update the properties on the review task Map<QName, Serializable> properties = new HashMap<QName, Serializable>(); properties.put(WorkflowModelModeratedInvitation.WF_PROP_INVITEE_COMMENTS, inviteeComments); Date time = new Date(); properties.put(WorkflowModelModeratedInvitation.WF_PROP_MODIFIED_AT, time); reviewTask = workflowService.updateTask(reviewTask.getId(), properties, null, null); } ret = getModeratedInvitation(invitationId, reviewTask); } return ret; }
@Override public ModeratedInvitation updateModeratedInvitation(String inviteeId, String siteShortName, String inviteeComments) { ModeratedInvitation ret = null; // find and update the review task with the new property values WorkflowTask reviewTask = getModeratedInvitationReviewTask(inviteeId, siteShortName); if(reviewTask == null) { Object objs[] = { siteShortName, inviteeId }; throw new InvitationExceptionNotFound("invitation.error.not_found_by_invitee", objs); } else { String invitationId = reviewTask.getPath().getInstance().getId(); if(inviteeComments != null) { // update the properties on the review task Map<QName, Serializable> properties = new HashMap<QName, Serializable>(); properties.put(WorkflowModelModeratedInvitation.WF_PROP_INVITEE_COMMENTS, inviteeComments); Date time = new Date(); properties.put(WorkflowModelModeratedInvitation.WF_PROP_MODIFIED_AT, time); reviewTask = workflowService.updateTask(reviewTask.getId(), properties, null, null); } ret = getModeratedInvitation(invitationId, reviewTask); } return ret; }
private void endInvitation(WorkflowTask startTask, String transition, Map<QName, Serializable> properties, QName... taskTypes ) { // Deleting a person can cancel their invitations. Cancelling invitations can delete inactive persons! So prevent infinite looping here if (TransactionalResourceHelper.getSet(getClass().getName()).add(startTask.getPath().getInstance().getId())) { List<WorkflowTask> tasks = workflowService.getTasksForWorkflowPath(startTask.getPath().getId()); if(tasks.size()==1) { WorkflowTask task = tasks.get(0); if(taskTypeMatches(task, taskTypes)) { if(properties != null) { workflowService.updateTask(task.getId(), properties, null, null); } workflowService.endTask(task.getId(), transition); return; } } // Throw exception if the task not found. Object objs[] = { startTask.getPath().getInstance().getId() }; throw new InvitationExceptionUserError("invitation.invite.already_finished", objs); } }
workflowService.updateTask(taskId, props, null, null); workflowService.endTask(taskId, null);
@SuppressWarnings("unchecked") public void testPersistTransitions() throws Exception { // Check updates but doesn't transition if no transition prop set. processPersist("prop_bpm_foo", "foo"); // Check endTask is never called. verify(workflowService, times(1)).updateTask(eq(TASK_ID), anyMap(), anyMap(), anyMap()); verify(workflowService, never()).endTask(eq(TASK_ID), anyString()); // Check default transition. String dataKey = makeDataKeyName(TransitionFieldProcessor.KEY); processPersist(dataKey, null); verify(workflowService, times(1)).endTask(TASK_ID, null); // Check specific transition. processPersist(dataKey, "foo"); verify(workflowService, times(1)).endTask(TASK_ID, "foo"); }
private void endInvitation(WorkflowTask startTask, String transition, Map<QName, Serializable> properties, QName... taskTypes ) { // Deleting a person can cancel their invitations. Cancelling invitations can delete inactive persons! So prevent infinite looping here if (TransactionalResourceHelper.getSet(getClass().getName()).add(startTask.getPath().getInstance().getId())) { List<WorkflowTask> tasks = workflowService.getTasksForWorkflowPath(startTask.getPath().getId()); if(tasks.size()==1) { WorkflowTask task = tasks.get(0); if(taskTypeMatches(task, taskTypes)) { if(properties != null) { workflowService.updateTask(task.getId(), properties, null, null); } workflowService.endTask(task.getId(), transition); return; } } // Throw exception if the task not found. Object objs[] = { startTask.getPath().getInstance().getId() }; throw new InvitationExceptionUserError("invitation.invite.already_finished", objs); } }
workflowService.updateTask(taskId, props, null, null); workflowService.endTask(taskId, null);
when(service.updateTask(anyString(), anyMap(), anyMap(), anyMap())) .thenAnswer(new Answer<WorkflowTask>()
@SuppressWarnings("unchecked") public void testPersistPropertyAndTransition() throws Exception { FormData data = new FormData(); data.addFieldData("prop_bpm_foo", "bar"); String dataKey = makeDataKeyName(TransitionFieldProcessor.KEY); data.addFieldData(dataKey, "foo"); WorkflowTask persistedItem = (WorkflowTask) processor.persist(item, data); // make sure task is correct and update and endTask were called assertEquals(newTask, persistedItem); verify(workflowService, times(1)).updateTask(eq(TASK_ID), anyMap(), anyMap(), anyMap()); verify(workflowService, times(1)).endTask(TASK_ID, "foo"); }
WorkflowTask task = workflowService.updateTask(command[2], params, null, null); out.println("updated task id: " + command[2] + ", properties: " + task.getProperties().size());
/** * Test for MNT-11247 */ @Test public void testAssignmentListener() { WorkflowDefinition definition = deployDefinition(getAssignmentListenerDefinitionPath()); Map<QName, Serializable> params = new HashMap<QName, Serializable>(); params.put(ContentModel.PROP_OWNER, USER1); NodeRef assignee = personManager.get(USER1); params.put(WorkflowModel.ASSOC_ASSIGNEE, assignee); WorkflowPath path = workflowService.startWorkflow(definition.getId(), params); // end start task List<WorkflowTask> tasks = workflowService.getTasksForWorkflowPath(path.getId()); workflowService.endTask(tasks.get(0).getId(), null); // end user task 1 tasks = workflowService.getTasksForWorkflowPath(path.getId()); workflowService.updateTask(tasks.get(0).getId(), params, null, null); workflowService.endTask(tasks.get(0).getId(), null); WorkflowTask result = workflowService.getTaskById(tasks.get(0).getId()); Map<QName, Serializable> props = result.getProperties(); Double create1 = (Double) props.get(QName.createQName("http://www.alfresco.org/model/bpm/1.0", "create1")); assertEquals("Create listener was not triggered", new Double(1), create1); Double complete1 = (Double) props.get(QName.createQName("http://www.alfresco.org/model/bpm/1.0", "complete1")); assertEquals("Complete listener was not triggered", new Double(1), complete1); Double assignment1 = (Double) props.get(QName.createQName("http://www.alfresco.org/model/bpm/1.0", "assignment1")); assertEquals("Assign listener was not triggered", new Double(1), assignment1); }
Map<QName, Serializable> props = new HashMap<QName, Serializable>(); props.put(outcomePropName, "Approve"); workflowService.updateTask(reviewTask.getId(), props, null, null);
workflowService.updateTask(tasks.get(0).getId(), Collections.singletonMap(WorkflowModel.ASSOC_ASSIGNEE, (Serializable) personManager.get(USER3)), null, null);
workflowService.updateTask(theTask.getId(), params, null, null);
workflowService.updateTask(currentTask.getId(), properties, null, null); currentTask = workflowService.getTaskById(currentTask.getId()); workflowService.updateTask(currentTask.getId(), properties, null, null); currentTask = workflowService.getTaskById(currentTask.getId()); assertTrue(workflowService.isTaskClaimable(currentTask, USER1)); List<NodeRef> actors = Arrays.asList(person2, person3); properties.put(WorkflowModel.ASSOC_POOLED_ACTORS, (Serializable) actors); currentTask = workflowService.updateTask(currentTask.getId(), properties, null, null); taskProperties = currentTask.getProperties(); Collection<?> newActors = (Collection<?>) taskProperties.get(WorkflowModel.ASSOC_POOLED_ACTORS); currentTask = workflowService.updateTask(currentTask.getId(), properties, null, null); taskProperties = currentTask.getProperties();
workflowService.updateTask(theTask.getId(), params, null, null); fail(); workflowService.updateTask(theTask.getId(), params, null, null);