@Override
public void recordActivityVariableUpdated(final String variableId, final Object variableValue,
final ActivityInstanceUUID activityUUID, final String userId) {
Misc.checkArgsNotNull(variableId, activityUUID, userId);
final ActivityInstance activityInst = getActivityInstance(activityUUID);
final Variable v = VariableUtil.createVariable(activityInst.getProcessDefinitionUUID(), variableId, variableValue);
final VariablesOptions variablesOptions = EnvTool.getVariablesOptions();
if (variablesOptions.isStoreHistory()) {
final VariableUpdate varUpdate = new InternalVariableUpdate(new Date(), userId, variableId, v);
((InternalActivityInstance) activityInst).addVariableUpdate(varUpdate);
((InternalActivityInstance) activityInst).updateLastUpdateDate();
} else {
((InternalActivityInstance) activityInst).setVariableValue(variableId, v);
}
}