Fix that JS handler overwrites activity output with other props

This commit is contained in:
Sipke Schoorstra 2021-06-05 15:35:50 +02:00
parent 9b9366028e
commit a64675817a

View file

@ -82,19 +82,18 @@ namespace Elsa.Scripting.JavaScript.Handlers
foreach (var variable in variables.Data)
engine.SetValue(variable.Key, variable.Value);
// TODO: Deprecated. Remove with next breaking version.
// Activity outputs.
foreach (var activity in workflowBlueprint.Activities.Where(x => x.Name is not null and not "" && workflowInstance.ActivityOutput.ContainsKey(x.Id)))
{
var output = new { Output = workflowInstance.ActivityOutput[activity.Id!] };
engine.SetValue(activity.Name, output);
}
// Named activities.
foreach (var activity in workflowBlueprint.Activities.Where(x => !string.IsNullOrWhiteSpace(x.Name)))
{
var state = activityExecutionContext.GetActivityData(activity.Id);
var dictionary = state.ToDictionary();
// Output.
if (workflowInstance.ActivityOutput.ContainsKey(activity.Id))
{
var output = workflowInstance.ActivityOutput[activity.Id];
dictionary["Output"] = output;
}
engine.SetValue(activity.Name, dictionary);
}