protected virtual void InitializeProcessContext(ProcessInstance processInstance, IList <ValuedDataObject> dataObjects) { var dataObjectsMap = dataObjects.ToDictionary(x => x.Id); IVariableType type = null; foreach (var dataObject in dataObjects) { var value = dataObject.Value; type = Variables.VariableType.Resolve(value); var variable = new Variable(); variable.Name = dataObject.Id; variable.Type = type.Name; type.SetValue(variable, value); processInstance.Variables.Add(variable); } if (variables != null && variables.Count > 0) { var em = variables.GetEnumerator(); while (em.MoveNext()) { processInstance.SetVariable(em.Current.Key, em.Current.Value); } } }