Search in sources :

Example 81 with TaskSummary

use of org.kie.api.task.model.TaskSummary in project jbpm by kiegroup.

the class TaskQueryServiceBaseTest method testGetTasksOwnedByExpirationDateWithUserStatusDateNoTask.

// getTasksOwnedByExpirationDate(String userId, List<Status> status, Date expirationDate);
@Test
public void testGetTasksOwnedByExpirationDateWithUserStatusDateNoTask() {
    List<Status> statuses = new ArrayList<Status>();
    statuses.add(Status.Created);
    statuses.add(Status.Ready);
    Date date = new Date();
    List<TaskSummary> tasks = taskService.getTasksOwnedByExpirationDate("Darth Vader", statuses, date);
    assertEquals(0, tasks.size());
}
Also used : Status(org.kie.api.task.model.Status) ArrayList(java.util.ArrayList) TaskSummary(org.kie.api.task.model.TaskSummary) Date(java.util.Date) Test(org.junit.Test)

Example 82 with TaskSummary

use of org.kie.api.task.model.TaskSummary in project jbpm by kiegroup.

the class TaskQueryServiceBaseTest method testGetTasksOwnedByExpirationDateBeforeSpecifiedDateNoTask.

@Test
public void testGetTasksOwnedByExpirationDateBeforeSpecifiedDateNoTask() {
    List<Status> statuses = new ArrayList<Status>();
    statuses.addAll(Arrays.asList(new Status[] { Status.Created, Status.Ready, Status.Reserved, Status.InProgress }));
    List<TaskSummary> tasks = taskService.getTasksOwnedByExpirationDateBeforeSpecifiedDate("Bobba Fet", statuses, new Date(100000005));
    assertEquals("Expecting empty list when no task available!", 0, tasks.size());
}
Also used : Status(org.kie.api.task.model.Status) ArrayList(java.util.ArrayList) TaskSummary(org.kie.api.task.model.TaskSummary) Date(java.util.Date) Test(org.junit.Test)

Example 83 with TaskSummary

use of org.kie.api.task.model.TaskSummary in project jbpm by kiegroup.

the class ParentChildMarshallingJpaTest method testProcess.

@Test
public void testProcess() throws Exception {
    emfDomain = Persistence.createEntityManagerFactory("org.jbpm.persistence.parent-child");
    addEnvironmentEntry(EnvironmentName.OBJECT_MARSHALLING_STRATEGIES, new ObjectMarshallingStrategy[] { new JPAPlaceholderResolverStrategy(emfDomain), new SerializablePlaceholderResolverStrategy(ClassObjectMarshallingStrategyAcceptor.DEFAULT) });
    RuntimeManager manager = createRuntimeManager(Strategy.PROCESS_INSTANCE, "manager", "org/jbpm/test/functional/jpa/parent-child.bpmn");
    RuntimeEngine runtime = manager.getRuntimeEngine(ProcessInstanceIdContext.get());
    KieSession ksession = runtime.getKieSession();
    // start a new process instance
    Map<String, Object> params = new HashMap<String, Object>();
    Application application = new Application();
    application.setType("A");
    params.put("application", application);
    ProcessInstance pi = ksession.startProcess("com.sample.bpmn.hello", params);
    System.out.println("A process instance started : pid = " + pi.getId());
    TaskService taskService = runtime.getTaskService();
    assertTrue(taskService instanceof CommandBasedTaskService);
    assertTrue(((CommandBasedTaskService) taskService).getEnvironment().get(EnvironmentName.OBJECT_MARSHALLING_STRATEGIES) != null);
    List<TaskSummary> list = taskService.getTasksAssignedAsPotentialOwner("john", "en-UK");
    for (TaskSummary taskSummary : list) {
        System.out.println("john starts a task : taskId = " + taskSummary.getId());
        Task task = taskService.getTaskById(taskSummary.getId());
        long documentContentId = task.getTaskData().getDocumentContentId();
        Content content = taskService.getContentById(documentContentId);
        HashMap<String, Object> contents = (HashMap<String, Object>) ContentMarshallerHelper.unmarshall(content.getContent(), ksession.getEnvironment());
        Application outputApplication = (Application) contents.get("input1_application");
        Person person = new Person();
        person.setFullName("John Doe");
        outputApplication.setPerson(person);
        Map<String, Object> results = new LinkedHashMap<String, Object>();
        results.put("output1_application", outputApplication);
        taskService.start(taskSummary.getId(), "john");
        taskService.complete(taskSummary.getId(), "john", results);
    }
    list = taskService.getTasksAssignedAsPotentialOwner("mary", "en-UK");
    for (TaskSummary taskSummary : list) {
        System.out.println("mary starts a task : taskId = " + taskSummary.getId());
        taskService.start(taskSummary.getId(), "mary");
        taskService.complete(taskSummary.getId(), "mary", null);
    }
    manager.disposeRuntimeEngine(runtime);
    // Check!
    EntityManager em = emfDomain.createEntityManager();
    int size = em.createQuery("select i from Person i").getResultList().size();
    assertEquals(1, size);
}
Also used : SerializablePlaceholderResolverStrategy(org.drools.core.marshalling.impl.SerializablePlaceholderResolverStrategy) JPAPlaceholderResolverStrategy(org.drools.persistence.jpa.marshaller.JPAPlaceholderResolverStrategy) RuntimeEngine(org.kie.api.runtime.manager.RuntimeEngine) Task(org.kie.api.task.model.Task) HashMap(java.util.HashMap) LinkedHashMap(java.util.LinkedHashMap) TaskService(org.kie.api.task.TaskService) CommandBasedTaskService(org.jbpm.services.task.impl.command.CommandBasedTaskService) RuntimeManager(org.kie.api.runtime.manager.RuntimeManager) CommandBasedTaskService(org.jbpm.services.task.impl.command.CommandBasedTaskService) LinkedHashMap(java.util.LinkedHashMap) EntityManager(javax.persistence.EntityManager) Content(org.kie.api.task.model.Content) TaskSummary(org.kie.api.task.model.TaskSummary) KieSession(org.kie.api.runtime.KieSession) ProcessInstance(org.kie.api.runtime.process.ProcessInstance) Application(org.jbpm.test.entity.Application) Person(org.jbpm.test.entity.Person) Test(org.junit.Test)

Example 84 with TaskSummary

use of org.kie.api.task.model.TaskSummary in project jbpm by kiegroup.

the class PatientVariablePersistenceStrategyTest method simplePatientMedicalRecordTest.

@Test
public void simplePatientMedicalRecordTest() throws Exception {
    Patient salaboy = new Patient("salaboy");
    MedicalRecord medicalRecord = new MedicalRecord("Last Three Years Medical Hisotry", salaboy);
    emfDomain = Persistence.createEntityManagerFactory("org.jbpm.persistence.patient.example");
    addEnvironmentEntry(EnvironmentName.OBJECT_MARSHALLING_STRATEGIES, new ObjectMarshallingStrategy[] { new JPAPlaceholderResolverStrategy(emfDomain), new SerializablePlaceholderResolverStrategy(ClassObjectMarshallingStrategyAcceptor.DEFAULT) });
    EntityManager em = emfDomain.createEntityManager();
    createRuntimeManager("org/jbpm/test/functional/jpa/patient-appointment.bpmn");
    RuntimeEngine runtimeEngine = getRuntimeEngine();
    KieSession ksession = runtimeEngine.getKieSession();
    TaskService taskService = runtimeEngine.getTaskService();
    logger.info("### Starting process ###");
    Map<String, Object> parameters = new HashMap<String, Object>();
    parameters.put("medicalRecord", medicalRecord);
    ProcessInstance process = ksession.startProcess("org.jbpm.PatientAppointment", parameters);
    long processInstanceId = process.getId();
    // The process is in the first Human Task waiting for its completion
    Assert.assertEquals(ProcessInstance.STATE_ACTIVE, process.getState());
    List<? extends VariableInstanceLog> varLogs = runtimeEngine.getAuditService().findVariableInstances(processInstanceId, "medicalRecord");
    assertNotNull(varLogs);
    assertEquals(1, varLogs.size());
    // gets frontDesk's tasks
    List<TaskSummary> frontDeskTasks = taskService.getTasksAssignedAsPotentialOwner("frontDesk", "en-UK");
    Assert.assertEquals(1, frontDeskTasks.size());
    // doctor doesn't have any task
    List<TaskSummary> doctorTasks = taskService.getTasksAssignedAsPotentialOwner("doctor", "en-UK");
    Assert.assertTrue(doctorTasks.isEmpty());
    // manager doesn't have any task
    List<TaskSummary> managerTasks = taskService.getTasksAssignedAsPotentialOwner("manager", "en-UK");
    Assert.assertTrue(managerTasks.isEmpty());
    taskService.start(frontDeskTasks.get(0).getId(), "frontDesk");
    // frontDesk completes its task
    MedicalRecord taskMedicalRecord = getTaskContent(runtimeEngine, frontDeskTasks.get(0));
    assertNotNull(taskMedicalRecord.getId());
    taskMedicalRecord.setDescription("Initial Description of the Medical Record");
    Map<String, Object> output = new HashMap<String, Object>();
    output.put("output1", taskMedicalRecord);
    taskService.complete(frontDeskTasks.get(0).getId(), "frontDesk", output);
    varLogs = runtimeEngine.getAuditService().findVariableInstances(processInstanceId, "medicalRecord");
    assertNotNull(varLogs);
    assertEquals(2, varLogs.size());
    assertTrue(varLogs.get(0).getValue().contains("Last Three Years Medical Hisotry"));
    assertTrue(varLogs.get(1).getValue().contains("Initial Description of the Medical Record"));
    // Now doctor has 1 task
    doctorTasks = taskService.getTasksAssignedAsPotentialOwner("doctor", "en-UK");
    Assert.assertEquals(1, doctorTasks.size());
    // No tasks for manager yet
    managerTasks = taskService.getTasksAssignedAsPotentialOwner("manager", "en-UK");
    Assert.assertTrue(managerTasks.isEmpty());
    // modify the entity from outside
    taskMedicalRecord.setDescription("Initial Description of the Medical Record - Updated");
    UserTransaction ut = InitialContext.doLookup("java:comp/UserTransaction");
    try {
        ut.begin();
        em.merge(taskMedicalRecord);
        ut.commit();
    } catch (Exception ex) {
        ut.rollback();
        throw ex;
    }
    taskMedicalRecord = getTaskContent(runtimeEngine, doctorTasks.get(0));
    assertNotNull(taskMedicalRecord.getId());
    taskMedicalRecord.setDescription("Initial Description of the Medical Record - Updated");
    taskService.start(doctorTasks.get(0).getId(), "doctor");
    // Check that we have the Modified Document
    taskMedicalRecord = em.find(MedicalRecord.class, taskMedicalRecord.getId());
    Assert.assertEquals("Initial Description of the Medical Record - Updated", taskMedicalRecord.getDescription());
    taskMedicalRecord.setDescription("Medical Record Validated by Doctor");
    List<RecordRow> rows = new ArrayList<RecordRow>();
    RecordRow recordRow = new RecordRow("CODE-999", "Just a regular Cold");
    recordRow.setMedicalRecord(medicalRecord);
    rows.add(recordRow);
    taskMedicalRecord.setRows(rows);
    taskMedicalRecord.setPriority(1);
    output = new HashMap<String, Object>();
    output.put("output2", taskMedicalRecord);
    taskService.complete(doctorTasks.get(0).getId(), "doctor", output);
    // tasks for manager
    managerTasks = taskService.getTasksAssignedAsPotentialOwner("manager", "en-UK");
    Assert.assertEquals(1, managerTasks.size());
    taskService.start(managerTasks.get(0).getId(), "manager");
    Patient patient = taskMedicalRecord.getPatient();
    patient.setNextAppointment(new Date());
    output = new HashMap<String, Object>();
    output.put("output3", taskMedicalRecord);
    // ksession.getWorkItemManager().registerWorkItemHandler("Human Task", htHandler);
    taskService.complete(managerTasks.get(0).getId(), "manager", output);
    // since persisted process instance is completed it should be null
    process = ksession.getProcessInstance(process.getId());
    Assert.assertNull(process);
}
Also used : SerializablePlaceholderResolverStrategy(org.drools.core.marshalling.impl.SerializablePlaceholderResolverStrategy) UserTransaction(javax.transaction.UserTransaction) JPAPlaceholderResolverStrategy(org.drools.persistence.jpa.marshaller.JPAPlaceholderResolverStrategy) RuntimeEngine(org.kie.api.runtime.manager.RuntimeEngine) RecordRow(org.jbpm.test.entity.RecordRow) HashMap(java.util.HashMap) TaskService(org.kie.api.task.TaskService) ArrayList(java.util.ArrayList) Patient(org.jbpm.test.entity.Patient) MedicalRecord(org.jbpm.test.entity.MedicalRecord) IOException(java.io.IOException) Date(java.util.Date) EntityManager(javax.persistence.EntityManager) TaskSummary(org.kie.api.task.model.TaskSummary) KieSession(org.kie.api.runtime.KieSession) ProcessInstance(org.kie.api.runtime.process.ProcessInstance) Test(org.junit.Test)

Example 85 with TaskSummary

use of org.kie.api.task.model.TaskSummary in project jbpm by kiegroup.

the class ProcessInstanceMigrationTest method testProcessInstanceMigrationImplicitSubprocess.

@Test
public void testProcessInstanceMigrationImplicitSubprocess() throws Exception {
    ProcessInstance p = ksession.startProcess("com.sample.bpmn.migration.subprocess1");
    long pid = p.getId();
    assertEquals("com.sample.bpmn.migration.subprocess1", ksession.getProcessInstance(pid).getProcessId());
    List<TaskSummary> list = assertTaskAssignedTo("john");
    // upgrade to version to of the process
    UpgradeCommand c = new UpgradeCommand(pid, null, "com.sample.bpmn.migration.subprocess2");
    ksession.execute(c);
    completeTask(list.get(0));
    // in second version of the process second user task is for mary while
    // for first version it's for john
    list = assertTaskAssignedTo("mary");
    assertDefinitionChanged(pid, "com.sample.bpmn.migration.subprocess2", false);
}
Also used : TaskSummary(org.kie.api.task.model.TaskSummary) WorkflowProcessInstance(org.jbpm.workflow.instance.WorkflowProcessInstance) ProcessInstance(org.kie.api.runtime.process.ProcessInstance) Test(org.junit.Test)

Aggregations

TaskSummary (org.kie.api.task.model.TaskSummary)371 Test (org.junit.Test)327 HashMap (java.util.HashMap)132 QueryFilter (org.kie.internal.query.QueryFilter)126 ProcessInstance (org.kie.api.runtime.process.ProcessInstance)100 Task (org.kie.api.task.model.Task)91 ArrayList (java.util.ArrayList)87 RuntimeEngine (org.kie.api.runtime.manager.RuntimeEngine)86 KieSession (org.kie.api.runtime.KieSession)84 TaskService (org.kie.api.task.TaskService)66 AbstractKieServicesBaseTest (org.jbpm.kie.test.util.AbstractKieServicesBaseTest)58 StringReader (java.io.StringReader)55 AbstractCaseServicesBaseTest (org.jbpm.casemgmt.impl.util.AbstractCaseServicesBaseTest)49 QueryContext (org.kie.api.runtime.query.QueryContext)49 Status (org.kie.api.task.model.Status)47 InternalTask (org.kie.internal.task.api.model.InternalTask)47 AbstractBaseTest (org.jbpm.test.util.AbstractBaseTest)41 CaseInstance (org.jbpm.casemgmt.api.model.instance.CaseInstance)38 CaseFileInstance (org.jbpm.casemgmt.api.model.instance.CaseFileInstance)36 ProcessInstanceDesc (org.jbpm.services.api.model.ProcessInstanceDesc)28