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

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

Introduction

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

Prototype

public KaleoTask getKaleoTask() throws com.liferay.portal.kernel.exception.PortalException;

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 . jav  a2  s.c om

    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);
}

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

License:Open Source License

protected WorkflowTask doCompleteWorkflowTask(long workflowTaskInstanceId, String transitionName,
        String comment, Map<String, Serializable> workflowContext, ServiceContext serviceContext)
        throws Exception {

    KaleoTaskInstanceToken kaleoTaskInstanceToken = kaleoTaskInstanceTokenLocalService
            .getKaleoTaskInstanceToken(workflowTaskInstanceId);

    if (Validator.isNotNull(transitionName)) {

        // Validate that the transition actually exists before moving
        // forward

        KaleoTask kaleoTask = kaleoTaskInstanceToken.getKaleoTask();

        KaleoNode currentKaleoNode = kaleoTask.getKaleoNode();

        currentKaleoNode.getKaleoTransition(transitionName);
    }//from   www . ja v  a  2s .co  m

    workflowContext = updateWorkflowContext(workflowContext, kaleoTaskInstanceToken);

    if (kaleoTaskInstanceToken.isCompleted()) {
        throw new WorkflowException("Cannot complete an already completed task " + workflowTaskInstanceId
                + " for user " + serviceContext.getUserId());
    }

    serviceContext.setScopeGroupId(kaleoTaskInstanceToken.getGroupId());

    kaleoTaskInstanceToken = kaleoTaskInstanceTokenLocalService.completeKaleoTaskInstanceToken(
            kaleoTaskInstanceToken.getKaleoTaskInstanceTokenId(), serviceContext);

    kaleoLogLocalService.addTaskCompletionKaleoLog(kaleoTaskInstanceToken, comment, workflowContext,
            serviceContext);

    return _kaleoWorkflowModelConverter.toWorkflowTask(kaleoTaskInstanceToken, workflowContext);
}