@Test public void testExpirationDate() { String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { businessAdministrators = [new User('Bobba Fet')], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<TaskSummary> tasks = taskService.getTasksAssignedAsBusinessAdministrator("Bobba Fet", "en-UK"); assertEquals(1, tasks.size()); TaskSummary taskSum = tasks.get(0); assertNull(taskService.getExpirationDate(taskSum.getId())); taskService.setExpirationDate(taskSum.getId(), TODAY); Date date = taskService.getExpirationDate(taskSum.getId()); assertNotNull(date); Assertions.assertThat(date).isCloseTo(TODAY, 1000); } }
@Test public void testTaskWithoutCreatedBy() throws Exception { TestWorkItemManager manager = new TestWorkItemManager(); ksession.setWorkItemManager(manager); WorkItemImpl workItem = new WorkItemImpl(); workItem.setName("Human Task"); workItem.setParameter("NodeName", "TaskName"); workItem.setParameter("Comment", "Comment"); workItem.setParameter("Priority", "10"); workItem.setParameter("ActorId", "Darth Vader"); workItem.setProcessInstanceId(10); handler.executeWorkItem(workItem, manager); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK"); assertEquals(1, tasks.size()); TaskSummary task = tasks.get(0); assertEquals("TaskName", task.getName()); assertEquals(10, task.getPriority().intValue()); assertEquals("Comment", task.getDescription()); assertEquals(Status.Reserved, task.getStatus()); assertEquals("Darth Vader", task.getActualOwner().getId()); assertEquals("Darth Vader", task.getCreatedBy().getId()); assertEquals(10, task.getProcessInstanceId().intValue()); taskService.start(task.getId(), "Darth Vader"); taskService.complete(task.getId(), "Darth Vader", null); assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME)); }
@Test public void testGetTasksAssignedAsPotentialOwnerWithUserGroupsLangStatus() { String str = "(with (new Task()) { priority = 55, taskData = (with( new TaskData()) { } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet'), new Group('Crusaders'), ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<Status> status = new ArrayList<Status>(); status.add(Status.Ready); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwnerByStatusByGroup("Bobba Fet", groupIds, status); assertEquals(1, tasks.size()); assertNull(tasks.get(0).getActualOwner()); assertNull(tasks.get(0).getActualOwnerId()); assertEquals(Status.Ready, tasks.get(0).getStatus()); }
protected void assertMigratedTaskAndComplete(TaskService taskService, String processId, Long processInstanceId, String taskName) { List<TaskSummary> tasks = taskService.getTasksByStatusByProcessInstanceId(processInstanceId, Arrays.asList(Status.Reserved), "en-UK"); assertNotNull(tasks); assertEquals(1, tasks.size()); TaskSummary task = tasks.get(0); assertNotNull(task); assertEquals(processId, task.getProcessId()); assertEquals(DEPLOYMENT_ID_V2, task.getDeploymentId()); assertEquals(taskName, task.getName()); taskService.start(task.getId(), USER_JOHN); taskService.complete(task.getId(), USER_JOHN, null); }
@Test public void testGetTasksAssignedAsPotentialOwnerCheckSubject() { // One potential owner, should go straight to state Reserved String str = "(with (new Task()) { subject = 'test subject', priority = 55, taskData = (with( new TaskData()) {skipable=true } ), "; str += "peopleAssignments = (with ( new PeopleAssignments() ) { potentialOwners = [new User('Bobba Fet') ],businessAdministrators = [ new User('Administrator') ], }),"; str += "name = 'This is my task name' })"; Task task = TaskFactory.evalTask(new StringReader(str)); taskService.addTask(task, new HashMap<String, Object>()); List<String> groupIds = new ArrayList<String>(); groupIds.add("Crusaders"); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Bobba Fet", groupIds); assertEquals(1, tasks.size()); assertEquals("Bobba Fet", tasks.get(0).getActualOwnerId()); assertEquals(true, tasks.get(0).isSkipable()); assertEquals("test subject", tasks.get(0).getSubject()); } }
ProcessInstance processInstance = engine.getKieSession().startProcess("UserTask", params); List<TaskSummary> tasks = engine.getTaskService().getTasksAssignedAsPotentialOwner("john", "en-UK"); assertNotNull(tasks); assertEquals(1, tasks.size()); long taskId = tasks.get(0).getId(); engine.getTaskService().start(taskId, "john"); engine.getTaskService().complete(taskId, "john", null); processInstance = engine.getKieSession().getProcessInstance(processInstance.getId()); assertNull(processInstance);
KieSession ksession = runtime.getKieSession(); assertNotNull(ksession); params.put("s", "test"); ProcessInstance pi1 = ksession.startProcess(ADDTASKAFTERACTIVE_EXPR_ID_V1, params); assertNotNull(pi1); assertEquals(ProcessInstance.STATE_ACTIVE, pi1.getState()); TaskService taskService = runtime.getTaskService(); List<TaskSummary> tasks = taskService.getTasksByStatusByProcessInstanceId(pi1.getId(), Arrays.asList(Status.Reserved), "en-UK"); assertNotNull(tasks); assertEquals(1, tasks.size()); assertEquals(ADDTASKAFTERACTIVE_EXPR_ID_V1, task.getProcessId()); assertEquals(DEPLOYMENT_ID_V1, task.getDeploymentId()); assertEquals("Active Task test", task.getName()); managerV1.disposeRuntimeEngine(runtime); MigrationSpec migrationSpec = new MigrationSpec(DEPLOYMENT_ID_V1, pi1.getId(), DEPLOYMENT_ID_V2, ADDTASKAFTERACTIVE_EXPR_ID_V2); MigrationManager migrationManager = new MigrationManager(migrationSpec); MigrationReport report = migrationManager.migrate(); taskService = runtime.getTaskService(); assertMigratedTaskAndComplete(taskService, ADDTASKAFTERACTIVE_EXPR_ID_V2, pi1.getId(), "Active Task test");
KieSession kieSession = engine.getKieSession(); assertEquals(((SessionConfiguration) kieSession.getSessionConfiguration()).getSignalManagerFactory(), DefaultSignalManagerFactory.class.getName()); BusinessCalendar bc = (BusinessCalendar) kieSession.getEnvironment().get("jbpm.business.calendar"); assertNotNull(bc); assertTrue(bc instanceof TestBusinessCalendar); Object service = kieSession.getGlobal("service"); assertNotNull(service); assertTrue(service instanceof ArrayList); kieSession = engine.getKieSession(); kieSession = engine.getKieSession(); processInstance = kieSession.startProcess("UserTask"); processInstanceId = processInstance.getId(); assertNotNull(kieSession.getProcessInstance(processInstanceId)); TaskService taskService = engine.getTaskService(); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("john", "en-UK"); long taskId = tasks.get(0).getId(); taskService.start(taskId, "john"); taskService.complete(taskId, "john", null); ProcessInstance pi = kieSession.getProcessInstance(processInstanceId);
KieSession ksession = engine.getKieSession(); TaskService taskService = engine.getTaskService(); = ksession.startProcess("com.burns.reactor.maintenance.cycle"); long procId = processInstance.getId(); taskService = engine.getTaskService(); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner(user, "en-UK"); if (task.getProcessInstanceId() == procId) { taskId = task.getId(); taskService.start(taskId, taskUserId);
public static final void main(String[] args) { try { RuntimeManager manager = getRuntimeManager("multipleinstance/multipleinstance.bpmn"); RuntimeEngine runtime = manager.getRuntimeEngine(null); KieSession ksession = runtime.getKieSession(); // start a new process instance Map<String, Object> params = new HashMap<String, Object>(); List<String> list = new ArrayList<String>(); list.add("krisv"); list.add("john doe"); list.add("superman"); params.put("list", list); ksession.startProcess("com.sample.multipleinstance", params); TaskService taskService = runtime.getTaskService(); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("sales-rep", "en-UK"); for (TaskSummary task: tasks) { System.out.println("Sales-rep executing task " + task.getName() + "(" + task.getId() + ": " + task.getDescription() + ")"); taskService.start(task.getId(), "sales-rep"); taskService.complete(task.getId(), "sales-rep", null); } manager.disposeRuntimeEngine(runtime); } catch (Throwable t) { t.printStackTrace(); } System.exit(0); }
@Test public void testCompleteTaskInSwimlane() throws Exception{ KieSession ksession = getKieSession(); TaskService taskService = getTaskService(); Map<String,Object> params = new HashMap<String,Object>(); params.put("userid", USER_MAX); ProcessInstance processInstance = ksession.startProcess(AGU_SAMPLE_PROCESS_ID, params); ProcessInstanceLog log = getLogService().findProcessInstance(processInstance.getId()); assertNotNull(log); List<TaskSummary> tasks = taskService.getTasksOwned(USER_MAX, "en-UK"); System.out.println("Found " + tasks.size() + " task(s) for user '"+USER_MAX+"'"); long taskId = tasks.get(0).getId(); taskService.start(taskId, USER_MAX); taskService.complete(taskId, USER_MAX, null); tasks = taskService.getTasksAssignedAsPotentialOwner(USER_MAX, "en-UK"); System.out.println("Found " + tasks.size() + " task(s) for user '"+USER_MAX+"'"); taskId = tasks.get(0).getId(); taskService.start(taskId, USER_MAX); taskService.complete(taskId, USER_MAX, null); processInstance = ksession.getProcessInstance(processInstance.getId()); assertNull(processInstance); System.out.println("Process instance completed"); }
public static TaskSummary adapt(org.kie.api.task.model.TaskSummary taskSum,boolean isForAdmin) { return new TaskSummary( taskSum.getId(), taskSum.getName(), taskSum.getDescription(), taskSum.getStatusId(), taskSum.getPriority(), taskSum.getActualOwnerId(), taskSum.getCreatedById(), taskSum.getCreatedOn(), taskSum.getActivationTime(), taskSum.getExpirationTime(), taskSum.getProcessId(), taskSum.getProcessSessionId(), taskSum.getProcessInstanceId(), taskSum.getDeploymentId(), taskSum.getParentId(), isForAdmin, false); }
processParams.put("otherStr", "proc-" + numTestProcesses + "-" + initValue ); processParams.put("secondStr", numTestProcesses + "-second-" + RandomUtil.nextInt(Integer.MAX_VALUE)); org.kie.api.runtime.process.ProcessInstance processInstance = ksession.startProcess(PROCESS_STRING_VAR_ID, processParams); assertTrue( processInstance != null && processInstance.getState() == ProcessInstance.STATE_ACTIVE); long procInstId = processInstance.getId(); List<Long> taskIds = taskService.getTasksByProcessInstanceId(procInstId); assertFalse( "No tasks found!", taskIds.isEmpty() ); long taskId = taskIds.get(0); taskService.start(taskId, USER_ID); assertEquals( "Incorrect process instance id on task summary", procInstId, taskSum.getProcessInstanceId().longValue() ); Task task = taskService.getTaskById(taskSumList.get(0).getId()); assertNotNull( "Null task returned", task ); assertNotNull( "Null actual owner on task " + task.getId() + " [status: " + task.getTaskData().getStatus().toString() + "]", assertNotNull( "Null actual owner in task summary " + taskSum.getId() + " [status: " + taskSum.getStatus() + "]" , taskSum.getActualOwner() ); assertNotNull( "Null actual owner id in task summary " + taskSum.getId() + " [status: " + taskSum.getStatus() + "]", taskSum.getActualOwner().getId() ); assertEquals( "Incorrect actual owner on task summary" , actualOwnerId, taskSum.getActualOwnerId() );
KieSession ksession1 = runtime1.getKieSession(); ProcessInstance processInstance = ksession1.startProcess("UserTask"); TaskService taskService2 = runtime2.getTaskService(); List<TaskSummary> taskList = taskService2.getTasksAssignedAsPotentialOwner("john", "en-UK"); assertEquals(1, taskList.size()); Long taskId = taskList.get(0).getId(); Task task = taskService2.getTaskById(taskId); assertEquals("id-1", task.getTaskData().getDeploymentId()); try { taskService2.start(taskId, "john"); taskService2.complete(taskId, "john", null);
KieSession ksession1 = runtime1.getKieSession(); assertNotNull(ksession1); ksession1.startProcess("UserTaskWithRollback"); TaskService taskService = runtime1.getTaskService(); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("john", "en-UK"); assertEquals(1, tasks.size()); long taskId = tasks.get(0).getId(); taskService.start(taskId, "john"); fail("Start task should fail due to broken script"); } catch (Throwable e) {
getHandler().executeWorkItem(workItem, manager); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK"); assertEquals(1, tasks.size()); TaskSummary taskSummary = tasks.get(0); assertEquals("TaskName", taskSummary.getName()); assertEquals(10, taskSummary.getPriority().intValue()); assertEquals("Comment", taskSummary.getDescription()); assertEquals(Status.Reserved, taskSummary.getStatus()); assertEquals("Darth Vader", taskSummary.getActualOwner().getId()); Task task = taskService.getTaskById(taskSummary.getId()); assertEquals(AccessType.Inline, ((InternalTaskData) task.getTaskData()).getDocumentAccessType()); assertEquals(task.getTaskData().getProcessSessionId(), TestStatefulKnowledgeSession.testSessionId.intValue()); taskService.getContentById(contentId).getContent(), ksession.getEnvironment()); assertEquals("This is the content", data);
public JaxbTaskSummary(TaskSummary taskSum) { this.id = taskSum.getId(); this.processInstanceId = taskSum.getProcessInstanceId(); this.name = taskSum.getName(); this.subject = taskSum.getSubject(); this.description = taskSum.getDescription(); this.status = taskSum.getStatus(); this.priority = taskSum.getPriority(); this.skipable = taskSum.isSkipable(); User actual = taskSum.getActualOwner(); if( actual != null ) { this.actualOwnerId = actual.getId(); } else { this.actualOwnerId = taskSum.getActualOwnerId(); User created = taskSum.getCreatedBy(); if( created != null ) { this.createdById = created.getId(); } else { this.createdById = taskSum.getCreatedById(); this.createdOn = taskSum.getCreatedOn(); this.activationTime = taskSum.getActivationTime(); this.expirationTime = taskSum.getExpirationTime(); this.processId = taskSum.getProcessId(); this.processSessionId = taskSum.getProcessSessionId(); this.deploymentId = taskSum.getDeploymentId(); this.quickTaskSummary = false; this.parentId = taskSum.getParentId();
@Test public void testTaskFail() throws Exception { TestWorkItemManager manager = new TestWorkItemManager(); ksession.setWorkItemManager(manager); WorkItemImpl workItem = new WorkItemImpl(); workItem.setName("Human Task"); workItem.setParameter("NodeName", "TaskName"); workItem.setParameter("Comment", "Comment"); workItem.setParameter("Priority", "10"); workItem.setParameter("ActorId", "Darth Vader"); workItem.setProcessInstanceId(10); getHandler().executeWorkItem(workItem, manager); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK"); assertEquals(1, tasks.size()); TaskSummary task = tasks.get(0); assertEquals("TaskName", task.getName()); assertEquals(10, task.getPriority().intValue()); assertEquals("Comment", task.getDescription()); assertEquals(Status.Reserved, task.getStatus()); assertEquals("Darth Vader", task.getActualOwner().getId()); taskService.start(task.getId(), "Darth Vader"); taskService.fail(task.getId(), "Darth Vader", null); assertTrue(manager.waitTillAborted(MANAGER_ABORT_WAIT_TIME)); } @Test
@Test public void testTaskSkip() throws Exception { TestWorkItemManager manager = new TestWorkItemManager(); ksession.setWorkItemManager(manager); WorkItemImpl workItem = new WorkItemImpl(); workItem.setName("Human Task"); workItem.setParameter("NodeName", "TaskName"); workItem.setParameter("Comment", "Comment"); workItem.setParameter("Priority", "10"); workItem.setParameter("ActorId", "Darth Vader"); workItem.setProcessInstanceId(10); getHandler().executeWorkItem(workItem, manager); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK"); assertEquals(1, tasks.size()); TaskSummary task = tasks.get(0); assertEquals("TaskName", task.getName()); assertEquals(10, task.getPriority().intValue()); assertEquals("Comment", task.getDescription()); assertEquals(Status.Reserved, task.getStatus()); assertEquals("Darth Vader", task.getActualOwner().getId()); taskService.skip(task.getId(), "Darth Vader"); assertTrue(manager.waitTillAborted(MANAGER_ABORT_WAIT_TIME)); }
getHandler().executeWorkItem(workItem, manager); List<TaskSummary> tasks = taskService.getTasksAssignedAsPotentialOwner("Luke Cage", "en-UK"); assertEquals(1, tasks.size()); TaskSummary taskSummary = tasks.get(0); assertEquals("TaskName", taskSummary.getName()); assertEquals(10, taskSummary.getPriority().intValue()); assertEquals("Comment", taskSummary.getDescription()); assertEquals(Status.Ready, taskSummary.getStatus()); taskService.claim(taskSummary.getId(), "nocrusadaer"); } catch (PermissionDeniedException e) { denied = e; Task task = taskService.getTaskById(taskSummary.getId()); assertEquals(Status.Ready, task.getTaskData().getStatus());