public virtual void SetVariableLocal(string variableName, ITypedValue value, AbstractVariableScope sourceActivityExecution) { var variableStore = VariableStore; if (variableStore.ContainsKey(variableName)) { var existingInstance = variableStore.GetVariable(variableName); existingInstance.SetValue(value); InvokeVariableLifecycleListenersUpdate(existingInstance, sourceActivityExecution); } else { var variableValue = VariableInstanceFactory.Build(variableName, value, false); VariableStore.AddVariable(variableValue as VariableInstanceEntity); InvokeVariableLifecycleListenersCreate(variableValue, sourceActivityExecution); } }
/// <summary> /// Sets a variable in the local scope. In contrast to /// <seealso cref="#setVariableLocal(String, Object)" />, the variable is transient that /// means it will not be stored in the data base. For example, a transient /// variable can be used for a result variable that is only available for /// output mapping. /// </summary> public virtual void SetVariableLocalTransient(string variableName, object value) { ITypedValue typedValue = Engine.Variable.Variables.UnTypedValue(value); VariableStore.AddVariable(VariableInstanceFactory.Build(variableName, typedValue, true)); }