Example usage for com.liferay.portal.workflow.kaleo.model KaleoTaskInstanceToken getKaleoTaskAssignmentInstances

List of usage examples for com.liferay.portal.workflow.kaleo.model KaleoTaskInstanceToken getKaleoTaskAssignmentInstances

Introduction

In this page you can find the example usage for com.liferay.portal.workflow.kaleo.model KaleoTaskInstanceToken getKaleoTaskAssignmentInstances.

Prototype

public java.util.List<KaleoTaskAssignmentInstance> getKaleoTaskAssignmentInstances();

Source Link

Usage

From source file:de.hofuniversity.iisys.liferay.workflows.LoggingTaskManager.java

License:Open Source License

protected WorkflowTask assignWorkflowTask(long workflowTaskInstanceId, String assigneeClassName,
        long assigneeClassPK, String comment, Date dueDate, Map<String, Serializable> workflowContext,
        ServiceContext serviceContext) throws Exception {

    KaleoTaskInstanceToken kaleoTaskInstanceToken = kaleoTaskInstanceTokenLocalService
            .getKaleoTaskInstanceToken(workflowTaskInstanceId);

    List<KaleoTaskAssignmentInstance> previousTaskAssignmentInstances = kaleoTaskInstanceToken
            .getKaleoTaskAssignmentInstances();

    workflowContext = updateWorkflowContext(workflowContext, kaleoTaskInstanceToken);

    if (kaleoTaskInstanceToken.isCompleted()) {
        throw new WorkflowException("Cannot reassign a completed task " + workflowTaskInstanceId);
    }/*from w  w w . ja  v a  2 s .  c  o m*/

    if (dueDate != null) {
        kaleoTaskInstanceTokenLocalService.updateDueDate(workflowTaskInstanceId, dueDate, serviceContext);
    }

    kaleoTaskInstanceToken = kaleoTaskInstanceTokenLocalService.assignKaleoTaskInstanceToken(
            kaleoTaskInstanceToken.getKaleoTaskInstanceTokenId(), assigneeClassName, assigneeClassPK,
            workflowContext, serviceContext);

    workflowContext.put(WorkflowConstants.CONTEXT_TASK_COMMENTS, comment);

    ExecutionContext executionContext = new ExecutionContext(kaleoTaskInstanceToken.getKaleoInstanceToken(),
            kaleoTaskInstanceToken, workflowContext, serviceContext);

    KaleoTask kaleoTask = kaleoTaskInstanceToken.getKaleoTask();

    _kaleoActionExecutor.executeKaleoActions(KaleoNode.class.getName(), kaleoTask.getKaleoNodeId(),
            ExecutionType.ON_ASSIGNMENT, executionContext);

    boolean selfAssignment = false;

    if (assigneeClassName.equals(User.class.getName()) && (assigneeClassPK == serviceContext.getUserId())) {

        selfAssignment = true;
    }

    if (!selfAssignment) {
        _notificationHelper.sendKaleoNotifications(KaleoNode.class.getName(), kaleoTask.getKaleoNodeId(),
                ExecutionType.ON_ASSIGNMENT, executionContext);
    }

    kaleoLogLocalService.addTaskAssignmentKaleoLog(previousTaskAssignmentInstances, kaleoTaskInstanceToken,
            comment, workflowContext, serviceContext);

    return _kaleoWorkflowModelConverter.toWorkflowTask(kaleoTaskInstanceToken, workflowContext);
}