private String buildDefafultEmailSubject(TaskData taskData,Task task){ Map<String, Object> vars = new HashMap<String, Object>(); vars.put("taskName", task.getName()); vars.put("processId", taskData.getProcessId()); String body = (String) TemplateRuntime.eval(defaultEmailSubject, vars); return body; } }
private String buildDefafultEmailBody(TaskData taskData,Task task){ Map<String, Object> vars = new HashMap<String, Object>(); vars.put("taskName", task.getName()); vars.put("taskId", task.getId()); vars.put("deploymentId", taskData.getDeploymentId()); vars.put("processId", taskData.getProcessId()); vars.put("processInstanceId", taskData.getProcessInstanceId()); String body = (String) TemplateRuntime.eval(defaultEmailBody, vars); return body; }
protected void resolveTaskDetailsForTaskProperties(Task task) { Map<String, Object> parameters = new HashMap<String, Object>(); parameters.put("name", task.getName()); parameters.put("description", task.getDescription()); parameters.put("subject", task.getSubject()); parameters.put("formName", ((InternalTask)task).getFormName()); Map<String, Object> replacements = resolveTaskDetails(parameters, task); ((InternalTask)task).setName((String) replacements.get("name")); ((InternalTask)task).setDescription((String) replacements.get("description")); ((InternalTask)task).setSubject((String) replacements.get("subject")); ((InternalTask)task).setFormName((String) replacements.get("formName")); }
/** * Generates a queue name that is based on data retrieved from the task. The form of the generated queue name is: * Process ID + "_" + Deployment ID + " " + Task Name * @param task Source of the data used to generate the queue name * @return The generated queue name */ protected String getQueueName(Task task) { return task.getTaskData().getProcessId() + "_" + task.getTaskData().getDeploymentId() + "_" + task.getName(); }
@Override public void afterTaskForwardedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); StringBuilder message = new StringBuilder(); String entitiesAsString = (ti.getPeopleAssignments().getPotentialOwners()).stream().map(oe -> oe.getId()).collect(Collectors.joining(",")); message.append("Forward to [" + entitiesAsString + "]"); TaskEventImpl taskEvent = new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.FORWARDED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId, message.toString()); AuditTaskImpl auditTaskImpl = createAuditTask(ti, event.getEventDate()); auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setName(ti.getName()); auditTaskImpl.setActivationTime(ti.getTaskData().getActivationTime()); auditTaskImpl.setPriority(ti.getPriority()); auditTaskImpl.setDueDate(ti.getTaskData().getExpirationTime()); auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); sendMessage(new AuditTaskData(auditTaskImpl, taskEvent), 4); }
@Override public void afterTaskNominatedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskEventImpl taskEvent = new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.NOMINATED, userId, new Date()); AuditTaskImpl auditTaskImpl = createAuditTask(ti, event.getEventDate()); auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setName(ti.getName()); auditTaskImpl.setActivationTime(ti.getTaskData().getActivationTime()); auditTaskImpl.setPriority(ti.getPriority()); auditTaskImpl.setDueDate(ti.getTaskData().getExpirationTime()); auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); sendMessage(new AuditTaskData(auditTaskImpl, taskEvent), 4); }
@Override public void afterTaskFailedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.FAILED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); return; } auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl); } finally { cleanup(persistenceContext); } }
@Override public void afterTaskStartedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.STARTED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId )); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); return; } auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl); } finally { cleanup(persistenceContext); } }
@Override public void afterTaskCompletedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.COMPLETED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); return; } auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl); } finally { cleanup(persistenceContext); } }
@Override public void afterTaskStoppedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.STOPPED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); return; } auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl); } finally { cleanup(persistenceContext); } }
@Override public void afterTaskActivatedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.ACTIVATED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); return; } auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl); } finally { cleanup(persistenceContext); } }
@Override public void afterTaskSkippedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.SKIPPED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); return; } auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl); } finally { cleanup(persistenceContext); } }
@Override public void afterTaskClaimedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskPersistenceContext persistenceContext = getPersistenceContext(((TaskContext)event.getTaskContext()).getPersistenceContext()); try { persistenceContext.persist(new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.CLAIMED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId)); AuditTaskImpl auditTaskImpl = getAuditTask(event, persistenceContext, ti); if (auditTaskImpl == null) { logger.warn("Unable find audit task entry for task id {} '{}', skipping audit task update", ti.getId(), ti.getName()); return; } auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setLastModificationDate(event.getEventDate()); persistenceContext.merge(auditTaskImpl); } finally { cleanup(persistenceContext); } }
private void testTaskWithExpectedDescription(final Task task, final String expectedDescription) { assertEquals("TaskName " + task.getTaskData().getProcessInstanceId(), task.getName()); assertEquals(10, task.getPriority().intValue()); assertEquals(expectedDescription, task.getDescription()); assertEquals(Status.Reserved, task.getTaskData().getStatus()); assertEquals("Darth Vader", task.getTaskData().getActualOwner().getId()); assertEquals(10L, task.getTaskData().getProcessInstanceId()); }
@Override public void afterTaskReleasedEvent(TaskEvent event) { Task ti = event.getTask(); AuditTaskImpl auditTaskImpl = createAuditTask(ti, event.getEventDate()); auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setName(ti.getName()); auditTaskImpl.setActivationTime(ti.getTaskData().getActivationTime()); auditTaskImpl.setPriority(ti.getPriority()); auditTaskImpl.setDueDate(ti.getTaskData().getExpirationTime()); auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); sendMessage(new AuditTaskData(auditTaskImpl), 8); }
@Override public void afterTaskDelegatedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskEventImpl taskEvent = new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.DELEGATED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId); AuditTaskImpl auditTaskImpl = createAuditTask(ti, event.getEventDate()); auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setName(ti.getName()); auditTaskImpl.setActivationTime(ti.getTaskData().getActivationTime()); auditTaskImpl.setPriority(ti.getPriority()); auditTaskImpl.setDueDate(ti.getTaskData().getExpirationTime()); auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); sendMessage(new AuditTaskData(auditTaskImpl, taskEvent), 4); }
@Override public void afterTaskResumedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskEventImpl taskEvent = new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.RESUMED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId); AuditTaskImpl auditTaskImpl = createAuditTask(ti, event.getEventDate()); auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setName(ti.getName()); auditTaskImpl.setActivationTime(ti.getTaskData().getActivationTime()); auditTaskImpl.setPriority(ti.getPriority()); auditTaskImpl.setDueDate(ti.getTaskData().getExpirationTime()); auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); sendMessage(new AuditTaskData(auditTaskImpl, taskEvent), 6); }
@Override public void afterTaskExitedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskEventImpl taskEvent = new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.EXITED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId); AuditTaskImpl auditTaskImpl = createAuditTask(ti, event.getEventDate()); auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setName(ti.getName()); auditTaskImpl.setActivationTime(ti.getTaskData().getActivationTime()); auditTaskImpl.setPriority(ti.getPriority()); auditTaskImpl.setDueDate(ti.getTaskData().getExpirationTime()); auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); sendMessage(new AuditTaskData(auditTaskImpl, taskEvent), 2); }
@Override public void afterTaskSuspendedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskEventImpl taskEvent = new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.SUSPENDED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId); AuditTaskImpl auditTaskImpl = createAuditTask(ti, event.getEventDate()); auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setName(ti.getName()); auditTaskImpl.setActivationTime(ti.getTaskData().getActivationTime()); auditTaskImpl.setPriority(ti.getPriority()); auditTaskImpl.setDueDate(ti.getTaskData().getExpirationTime()); auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); sendMessage(new AuditTaskData(auditTaskImpl, taskEvent), 6); }
@Override public void afterTaskReassignedEvent(TaskEvent event) { String userId = event.getTaskContext().getUserId(); Task ti = event.getTask(); TaskEventImpl taskEvent = new TaskEventImpl(ti.getId(), org.kie.internal.task.api.model.TaskEvent.TaskEventType.DELEGATED, ti.getTaskData().getProcessInstanceId(), ti.getTaskData().getWorkItemId(), userId); AuditTaskImpl auditTaskImpl = createAuditTask(ti, event.getEventDate()); auditTaskImpl.setDescription(ti.getDescription()); auditTaskImpl.setName(ti.getName()); auditTaskImpl.setActivationTime(ti.getTaskData().getActivationTime()); auditTaskImpl.setPriority(ti.getPriority()); auditTaskImpl.setDueDate(ti.getTaskData().getExpirationTime()); auditTaskImpl.setStatus(ti.getTaskData().getStatus().name()); auditTaskImpl.setActualOwner(getActualOwner(ti)); auditTaskImpl.setLastModificationDate(event.getEventDate()); sendMessage(new AuditTaskData(auditTaskImpl, taskEvent), 4); }