@Override public Object getProcessInstanceVariable(final ProcessInstanceUUID instanceUUID, final String variableId) throws InstanceNotFoundException, VariableNotFoundException { final String variableName = Misc.getVariableName(variableId); final String xpath = Misc.getXPath(variableId); final Map<String, Object> variables = getProcessInstanceVariables(instanceUUID); if (variables == null || !variables.containsKey(variableName)) { throw new VariableNotFoundException("bai_QRAPII_10", instanceUUID, variableName); } final Object value = variables.get(variableName); if (xpath != null && xpath.length() > 0) { try { return evaluateXPath(xpath, (org.w3c.dom.Document) value); } catch (final Exception ex) { ex.printStackTrace(); throw new VariableNotFoundException("bai_QRAPII_17", instanceUUID, variableId); } } else { return value; } }
private Object getProcessInstanceVariable(final ProcessInstanceUUID instanceUUID, final String variableId, final Date maxDate) throws InstanceNotFoundException, VariableNotFoundException { final String variableName = Misc.getVariableName(variableId); final String xpath = Misc.getXPath(variableId); final Map<String, Object> variables = getProcessInstanceVariables(instanceUUID, maxDate); if (variables == null || !variables.containsKey(variableName)) { throw new VariableNotFoundException("bai_QRAPII_9", instanceUUID, variableName); } final Object value = variables.get(variableName); if (xpath != null && xpath.length() > 0) { try { return evaluateXPath(xpath, (org.w3c.dom.Document) value); } catch (final Exception ex) { throw new VariableNotFoundException("bai_QRAPII_17", instanceUUID, variableName); } } else { return value; } }
@Override public Object getActivityInstanceVariable(final ActivityInstanceUUID activityUUID, final String variableId) throws ActivityNotFoundException, VariableNotFoundException { // search in transient variables final Map<String, Object> transientVariables = TransientData.getActivityTransientVariables(activityUUID); if (transientVariables != null && transientVariables.containsKey(variableId)) { return transientVariables.get(variableId); } // search in the database persisted variables final String variableName = Misc.getVariableName(variableId); final String xpath = Misc.getXPath(variableId); final ActivityInstance activity = EnvTool.getAllQueriers().getActivityInstance(activityUUID); if (activity == null) { throw new ActivityNotFoundException("bai_QRAPII_11", activityUUID); } final Map<String, Object> variableValues = activity.getLastKnownVariableValues(); if (!variableValues.containsKey(variableName)) { throw new VariableNotFoundException("bai_QRAPII_12", activityUUID, variableName); } final Object value = activity.getLastKnownVariableValues().get(variableName); if (xpath != null && xpath.length() > 0) { try { return evaluateXPath(xpath, (org.w3c.dom.Document) value); } catch (final Exception ex) { throw new VariableNotFoundException("bai_QRAPII_16", activityUUID, variableName); } } else { return value; } }