private void updateContextFromActivityInstance(final EngineExecutionContext ctx, final long activityInstanceId) throws SActivityReadException, SActivityInstanceNotFoundException { ctx.setActivityInstanceId(activityInstanceId); final SActivityInstance activityInstance = activityInstanceService.getActivityInstance(activityInstanceId); ctx.setProcessInstanceId(activityInstance.getParentProcessInstanceId()); ctx.setRootProcessInstanceId(activityInstance.getRootProcessInstanceId()); if (isHumanTask(activityInstance)) { ctx.setTaskAssigneeId(((SHumanTaskInstance) activityInstance).getAssigneeId()); } }
private void updateContextFromProcessInstance(final EngineExecutionContext ctx, final long processInstanceId) throws SProcessInstanceNotFoundException, SProcessInstanceReadException { final SProcessInstance processInstance = processInstanceService.getProcessInstance(processInstanceId); ctx.setProcessInstanceId(processInstance.getId()); ctx.setRootProcessInstanceId(processInstance.getRootProcessInstanceId()); }
private Serializable createContext(final Map<String, Object> context, final ContainerState containerState) throws SProcessInstanceNotFoundException, SProcessInstanceReadException, SActivityInstanceNotFoundException, SFlowNodeReadException, SBonitaReadException { final EngineExecutionContext ctx = new EngineExecutionContext(); if (context.containsKey(SExpressionContext.CONTAINER_TYPE_KEY) && context.containsKey(SExpressionContext.CONTAINER_ID_KEY)) { final String containerType = (String) context.get(SExpressionContext.CONTAINER_TYPE_KEY); final long containerId = (Long) context.get(SExpressionContext.CONTAINER_ID_KEY); if (ContainerState.ARCHIVED.equals(containerState)) { if (DataInstanceContainer.ACTIVITY_INSTANCE.toString().equals(containerType)) { updateContextFromArchivedActivityInstance(ctx, containerId); } else if (DataInstanceContainer.PROCESS_INSTANCE.toString().equals(containerType)) { updateContextFromArchivedProcessInstance(ctx, containerId); } } else { if (DataInstanceContainer.ACTIVITY_INSTANCE.toString().equals(containerType)) { updateContextFromActivityInstance(ctx, containerId); } else if (DataInstanceContainer.PROCESS_INSTANCE.toString().equals(containerType)) { updateContextFromProcessInstance(ctx, containerId); } } } if (context.containsKey(SExpressionContext.PROCESS_DEFINITION_ID_KEY)) { ctx.setProcessDefinitionId((Long) context.get(SExpressionContext.PROCESS_DEFINITION_ID_KEY)); } return ctx; }
public Serializable getFromContextOrEngineExecutionContext(final ExpressionConstants expressionConstant, final Map<String, Object> context, final ContainerState containerState) throws SBonitaException { final Object object = context.get(expressionConstant.getEngineConstantName()); if (object == null) { // try to get it from an already evaluated context final EngineExecutionContext engineContext = (EngineExecutionContext) context.get(ExpressionConstants.ENGINE_EXECUTION_CONTEXT .getEngineConstantName()); if (engineContext != null) { return engineContext.getExpressionConstant(expressionConstant); } return evaluate(expressionConstant, context, containerState); } // we have it already evaluated return (Serializable) object; }
@Override protected void executeBusinessLogic() { setOutputParameter(ExpressionConstants.TASK_ASSIGNEE_ID.getEngineConstantName(), getExecutionContext().getTaskAssigneeId()); }
private void updateContextFromArchivedProcessInstance(final EngineExecutionContext ctx, final long processInstanceId) throws SBonitaReadException { final SAProcessInstance processInstance = processInstanceService.getLastArchivedProcessInstance(processInstanceId); if (processInstance != null) { ctx.setProcessInstanceId(processInstance.getSourceObjectId()); ctx.setRootProcessInstanceId(processInstance.getRootProcessInstanceId()); } }
private Serializable createContext(final Map<String, Object> context, final ContainerState containerState) throws SProcessInstanceNotFoundException, SProcessInstanceReadException, SActivityInstanceNotFoundException, SFlowNodeReadException, SBonitaReadException { final EngineExecutionContext ctx = new EngineExecutionContext(); if (context.containsKey(SExpressionContext.CONTAINER_TYPE_KEY) && context.containsKey(SExpressionContext.CONTAINER_ID_KEY)) { final String containerType = (String) context.get(SExpressionContext.CONTAINER_TYPE_KEY); final long containerId = (Long) context.get(SExpressionContext.CONTAINER_ID_KEY); if (ContainerState.ARCHIVED.equals(containerState)) { if (DataInstanceContainer.ACTIVITY_INSTANCE.toString().equals(containerType)) { updateContextFromArchivedActivityInstance(ctx, containerId); } else if (DataInstanceContainer.PROCESS_INSTANCE.toString().equals(containerType)) { updateContextFromArchivedProcessInstance(ctx, containerId); } } else { if (DataInstanceContainer.ACTIVITY_INSTANCE.toString().equals(containerType)) { updateContextFromActivityInstance(ctx, containerId); } else if (DataInstanceContainer.PROCESS_INSTANCE.toString().equals(containerType)) { updateContextFromProcessInstance(ctx, containerId); } } } if (context.containsKey(SExpressionContext.PROCESS_DEFINITION_ID_KEY)) { ctx.setProcessDefinitionId((Long) context.get(SExpressionContext.PROCESS_DEFINITION_ID_KEY)); } return ctx; }
public Serializable getFromContextOrEngineExecutionContext(final ExpressionConstants expressionConstant, final Map<String, Object> context, final ContainerState containerState) throws SBonitaException { final Object object = context.get(expressionConstant.getEngineConstantName()); if (object == null) { // try to get it from an already evaluated context final EngineExecutionContext engineContext = (EngineExecutionContext) context.get(ExpressionConstants.ENGINE_EXECUTION_CONTEXT .getEngineConstantName()); if (engineContext != null) { return engineContext.getExpressionConstant(expressionConstant); } return evaluate(expressionConstant, context, containerState); } // we have it already evaluated return (Serializable) object; }
private void updateContextFromActivityInstance(final EngineExecutionContext ctx, final long activityInstanceId) throws SActivityReadException, SActivityInstanceNotFoundException { ctx.setActivityInstanceId(activityInstanceId); final SActivityInstance activityInstance = activityInstanceService.getActivityInstance(activityInstanceId); ctx.setProcessInstanceId(activityInstance.getParentProcessInstanceId()); ctx.setRootProcessInstanceId(activityInstance.getRootProcessInstanceId()); if (isHumanTask(activityInstance)) { ctx.setTaskAssigneeId(((SHumanTaskInstance) activityInstance).getAssigneeId()); } }
private void updateContextFromArchivedProcessInstance(final EngineExecutionContext ctx, final long processInstanceId) throws SBonitaReadException { final SAProcessInstance processInstance = processInstanceService.getLastArchivedProcessInstance(processInstanceId); if (processInstance != null) { ctx.setProcessInstanceId(processInstance.getSourceObjectId()); ctx.setRootProcessInstanceId(processInstance.getRootProcessInstanceId()); } }
private void updateContextFromArchivedActivityInstance(final EngineExecutionContext ctx, final long activityInstanceId) throws SBonitaReadException { final SAActivityInstance activityInstance = activityInstanceService.getLastArchivedFlowNodeInstance(SAActivityInstance.class, activityInstanceId); if (activityInstance != null) { ctx.setActivityInstanceId(activityInstance.getSourceObjectId()); ctx.setProcessInstanceId(activityInstance.getParentProcessInstanceId()); ctx.setRootProcessInstanceId(activityInstance.getRootProcessInstanceId()); if (isHumanTask(activityInstance)) { ctx.setTaskAssigneeId(((SAHumanTaskInstance) activityInstance).getAssigneeId()); } } }
private void updateContextFromProcessInstance(final EngineExecutionContext ctx, final long processInstanceId) throws SProcessInstanceNotFoundException, SProcessInstanceReadException { final SProcessInstance processInstance = processInstanceService.getProcessInstance(processInstanceId); ctx.setProcessInstanceId(processInstance.getId()); ctx.setRootProcessInstanceId(processInstance.getRootProcessInstanceId()); }
private void updateContextFromArchivedActivityInstance(final EngineExecutionContext ctx, final long activityInstanceId) throws SBonitaReadException { final SAActivityInstance activityInstance = activityInstanceService.getLastArchivedFlowNodeInstance(SAActivityInstance.class, activityInstanceId); if (activityInstance != null) { ctx.setActivityInstanceId(activityInstance.getSourceObjectId()); ctx.setProcessInstanceId(activityInstance.getParentProcessInstanceId()); ctx.setRootProcessInstanceId(activityInstance.getRootProcessInstanceId()); if (isHumanTask(activityInstance)) { ctx.setTaskAssigneeId(((SAHumanTaskInstance) activityInstance).getAssigneeId()); } } }