List of usage examples for com.liferay.portal.workflow.kaleo.runtime ExecutionContext ExecutionContext
public ExecutionContext(KaleoInstanceToken kaleoInstanceToken, KaleoTimerInstanceToken kaleoTimerInstanceToken,
Map<String, Serializable> workflowContext, ServiceContext serviceContext)
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 ww . j av 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.LoggingWorkflowEngine.java
License:Open Source License
@Override public ExecutionContext executeTimerWorkflowInstance(long kaleoTimerInstanceTokenId, ServiceContext serviceContext, Map<String, Serializable> workflowContext) throws WorkflowException { try {/* w w w . j a v a2s .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); } }