Example usage for com.liferay.portal.workflow.kaleo.model KaleoNode getKaleoTransition

List of usage examples for com.liferay.portal.workflow.kaleo.model KaleoNode getKaleoTransition

Introduction

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

Prototype

public KaleoTransition getKaleoTransition(String name)
            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 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 w w w  .j  a  v a  2  s.c om

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

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

License:Open Source License

@Override
public WorkflowInstance signalWorkflowInstance(long workflowInstanceId, final String transitionName,
        Map<String, Serializable> workflowContext, ServiceContext serviceContext) throws WorkflowException {

    try {/*from   w  w  w  . j  ava2s . com*/

        fLogger.println("WorkflowEngine.signalWorkflowInstance");
        fLogger.println("\tworkflowInstanceId: " + workflowInstanceId);
        fLogger.println("\ttransitionName: " + transitionName);
        fLogger.println("\tworkflowContext:");
        logMap(workflowContext, "\t\t");
        fLogger.println("\tserviceContext:");
        logServiceContext(serviceContext, "\t\t");

        KaleoInstance kaleoInstance = doUpdateContext(workflowInstanceId, workflowContext, serviceContext);

        KaleoInstanceToken kaleoInstanceToken = kaleoInstance.getRootKaleoInstanceToken(serviceContext);

        if (Validator.isNotNull(transitionName)) {

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

            KaleoNode currentKaleoNode = kaleoInstanceToken.getCurrentKaleoNode();

            currentKaleoNode.getKaleoTransition(transitionName);
        }

        serviceContext.setScopeGroupId(kaleoInstanceToken.getGroupId());

        final ExecutionContext executionContext = new ExecutionContext(kaleoInstanceToken, workflowContext,
                serviceContext);

        TransactionCommitCallbackUtil.registerCallback(new Callable<Void>() {

            @Override
            public Void call() throws Exception {
                try {
                    _kaleoSignaler.signalExit(transitionName, executionContext);
                } catch (Exception e) {
                    throw new WorkflowException("Unable to signal next transition", e);
                }

                return null;
            }

        });

        WorkflowInstance instance = _kaleoWorkflowModelConverter.toWorkflowInstance(kaleoInstance,
                kaleoInstanceToken, workflowContext);

        fLogger.println("\tRETURN instance:");
        logWfInstance(instance, "\t\t");

        fLogger.flush();

        return instance;
    } catch (Exception e) {
        throw new WorkflowException(e);
    }
}

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

License:Open Source License

@Override
public WorkflowInstance startWorkflowInstance(String workflowDefinitionName, Integer workflowDefinitionVersion,
        final String transitionName, Map<String, Serializable> workflowContext, ServiceContext serviceContext)
        throws WorkflowException {

    fLogger.println("WorkflowEngine.startWorkflowInstance");
    fLogger.println("\tworkflowDefinitionName: " + workflowDefinitionName);
    fLogger.println("\tworkflowDefinitionVersion: " + workflowDefinitionVersion);
    fLogger.println("\ttransitionName: " + transitionName);
    fLogger.println("\tworkflowContext:");
    logMap(workflowContext, "\t\t");
    fLogger.println("\tserviceContext:");
    logServiceContext(serviceContext, "\t\t");

    try {/*  ww  w . j a  v a  2 s.c o m*/
        KaleoDefinition kaleoDefinition = kaleoDefinitionLocalService.getKaleoDefinition(workflowDefinitionName,
                workflowDefinitionVersion, serviceContext);

        if (!kaleoDefinition.isActive()) {
            throw new WorkflowException("Inactive workflow definition with name " + workflowDefinitionName
                    + " and version " + workflowDefinitionVersion);
        }

        KaleoNode kaleoStartNode = kaleoDefinition.getKaleoStartNode();

        if (Validator.isNotNull(transitionName)) {

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

            kaleoStartNode.getKaleoTransition(transitionName);
        }

        long scopeGroupId = serviceContext.getScopeGroupId();

        if (scopeGroupId != WorkflowConstants.DEFAULT_GROUP_ID) {
            Group group = _groupLocalService.getGroup(scopeGroupId);

            if (group.isLayout()) {
                group = _groupLocalService.getGroup(group.getParentGroupId());

                serviceContext.setScopeGroupId(group.getGroupId());
            }
        }

        KaleoInstance kaleoInstance = kaleoInstanceLocalService.addKaleoInstance(
                kaleoDefinition.getKaleoDefinitionId(), kaleoDefinition.getName(), kaleoDefinition.getVersion(),
                workflowContext, serviceContext);

        KaleoInstanceToken rootKaleoInstanceToken = kaleoInstance.getRootKaleoInstanceToken(workflowContext,
                serviceContext);

        rootKaleoInstanceToken.setCurrentKaleoNode(kaleoStartNode);

        kaleoLogLocalService.addWorkflowInstanceStartKaleoLog(rootKaleoInstanceToken, serviceContext);

        final ExecutionContext executionContext = new ExecutionContext(rootKaleoInstanceToken, workflowContext,
                serviceContext);

        TransactionCommitCallbackUtil.registerCallback(new Callable<Void>() {

            @Override
            public Void call() throws Exception {
                try {
                    _kaleoSignaler.signalEntry(transitionName, executionContext);
                } catch (Exception e) {
                    throw new WorkflowException("Unable to start workflow", e);
                }

                return null;
            }

        });

        WorkflowInstance instance = _kaleoWorkflowModelConverter.toWorkflowInstance(kaleoInstance,
                rootKaleoInstanceToken, workflowContext);

        fLogger.println("\tRETURN instance:");
        logWfInstance(instance, "\t\t");

        fLogger.flush();

        return instance;
    } catch (Exception e) {
        throw new WorkflowException(e);
    }
}