List of usage examples for com.liferay.portal.workflow.kaleo.model KaleoInstanceToken getCurrentKaleoNode
public KaleoNode getCurrentKaleoNode() throws com.liferay.portal.kernel.exception.PortalException;
From source file:de.hofuniversity.iisys.liferay.workflows.LoggingWorkflowEngine.java
License:Open Source License
@Override public ExecutionContext executeTimerWorkflowInstance(long kaleoTimerInstanceTokenId, ServiceContext serviceContext, Map<String, Serializable> workflowContext) throws WorkflowException { try {/*from w ww. j ava2 s.com*/ fLogger.println("WorkflowEngine.executeTimerWorkflowInstance"); fLogger.println("\tkaleoTimerInstanceTokenId: " + kaleoTimerInstanceTokenId); fLogger.println("\tserviceContext:"); logServiceContext(serviceContext, "\t\t"); fLogger.println("\tworkflowContext:"); logMap(workflowContext, "\t\t"); KaleoTimerInstanceToken kaleoTimerInstanceToken = kaleoTimerInstanceTokenLocalService .getKaleoTimerInstanceToken(kaleoTimerInstanceTokenId); KaleoInstanceToken kaleoInstanceToken = kaleoTimerInstanceToken.getKaleoInstanceToken(); final ExecutionContext executionContext = new ExecutionContext(kaleoInstanceToken, kaleoTimerInstanceToken, workflowContext, serviceContext); KaleoTaskInstanceToken kaleoTaskInstanceToken = kaleoTimerInstanceToken.getKaleoTaskInstanceToken(); executionContext.setKaleoTaskInstanceToken(kaleoTaskInstanceToken); final KaleoNode currentKaleoNode = kaleoInstanceToken.getCurrentKaleoNode(); NodeExecutor nodeExecutor = _nodeExecutorFactory.getNodeExecutor(currentKaleoNode.getType()); nodeExecutor.executeTimer(currentKaleoNode, executionContext); TransactionCommitCallbackUtil.registerCallback(new Callable<Void>() { @Override public Void call() throws Exception { _kaleoSignaler.signalExecute(currentKaleoNode, executionContext); return null; } }); fLogger.println("\tRETURN executionContext:"); logExecContext(executionContext, "\t\t"); fLogger.flush(); return executionContext; } catch (Exception e) { throw new WorkflowException(e); } }
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 {/*ww w.jav a 2 s .c om*/ 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
protected void getNextTransitionNames(KaleoInstanceToken kaleoInstanceToken, List<String> transitionNames) throws Exception { if (kaleoInstanceToken.hasIncompleteChildrenKaleoInstanceToken()) { List<KaleoInstanceToken> incompleteChildrenKaleoInstanceTokens = kaleoInstanceToken .getIncompleteChildrenKaleoInstanceTokens(); for (KaleoInstanceToken incompleteChildrenKaleoInstanceToken : incompleteChildrenKaleoInstanceTokens) { getNextTransitionNames(incompleteChildrenKaleoInstanceToken, transitionNames); }//from w w w . java2 s. c o m } else { KaleoNode kaleoNode = kaleoInstanceToken.getCurrentKaleoNode(); List<KaleoTransition> kaleoTransitions = kaleoNode.getKaleoTransitions(); for (KaleoTransition kaleoTransition : kaleoTransitions) { transitionNames.add(kaleoTransition.getName()); } } }