List of usage examples for com.liferay.portal.workflow.kaleo.model KaleoNode getKaleoTransition
public KaleoTransition getKaleoTransition(String name) throws com.liferay.portal.kernel.exception.PortalException;
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); } }