danielgerlag / danielgerlag/workflow-core

An exception thrown when setting Step.Outputs from json

Open
#1,310 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C#
Stars
5.9k
Forks
1.3k
Avg merge
1d 1h
Merged PRs (30d)
5

Description

**Describe the bug**
I'm receiving this exception message when trying to use a Step with Outputs from json,
Here is my Json :

```
{
"Id": "RandomNumberWorkflow",
"Version": 1,
"Steps": [
{
"Id": "GenerateRandomNumber",
"StepType": "WorkflowCoreTestApp.GenerateRandomNumberStep, WorkflowCoreTestApp",
"Outputs": {
"GeneratedNumber": "GeneratedNumber"
}
}
]
}
```

Here is RandomNumberWorkflow code :

```
public class GenerateRandomNumberStep : StepBody
{
public int GeneratedNumber { get; set; } = 0;

public override ExecutionResult Run(IStepExecutionContext context)
{
var random = new Random();
GeneratedNumber = random.Next(1, 100); // Generate a random number between 1 and 100
Console.WriteLine($"Generated number: {GeneratedNumber}");
return ExecutionResult.Next();
}
}
```

And here is the Exception Message :

```
System.ArgumentNullException: 'Value cannot be null. (Parameter 'indexer')'

```

And here is the StackTrace :

```
at System.ArgumentNullException.Throw(String paramName)
at System.ArgumentNullException.ThrowIfNull(Object argument, String paramName)
at System.Linq.Expressions.Expression.ValidateIndexedProperty(Expression instance, PropertyInfo indexer, String paramName, ReadOnlyCollection`1& argList)
at System.Linq.Expressions.Expression.Property(Expression instance, PropertyInfo indexer, Expression[] arguments)
at WorkflowCore.Services.DefinitionStorage.DefinitionLoader.AttachDirectlyOutput(KeyValuePair`2 output, WorkflowStep step, Type dataType, LambdaExpression sourceExpr, ParameterExpression dataParameter)
at WorkflowCore.Services.DefinitionStorage.DefinitionLoader.AttachOutputs(StepSourceV1 source, Type dataType, Type stepType, WorkflowStep step)
at WorkflowCore.Services.DefinitionStorage.DefinitionLoader.ConvertSteps(ICollection`1 source, Type dataType)
at WorkflowCore.Services.DefinitionStorage.DefinitionLoader.Convert(DefinitionSourceV1 source)
at WorkflowCore.Services.DefinitionStorage.DefinitionLoader.LoadDefinition(String source, Func`2 deserializer)
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.