0

I have an issue working on durable function 2.0.

First, I have the queueTrigger, who call the OrchestrationTrigger

 [FunctionName("StartOrchestration")]
        public static async Task Run([QueueTrigger("TestDurableFunction", Connection = "StorageConnectionString")] string queueItem,
                                 [DurableClient] IDurableOrchestrationClient starter)
        {
            await starter.StartNewAsync("Orchestration", queueItem);
        }

I pass a json string as param of Orchestration function, but the context.GetInput(); always return null

[FunctionName("Orchestration")]
public static async void Run([OrchestrationTrigger] IDurableOrchestrationContext context) 
        {
            var input = context.GetInput<string>();

            var orders = JsonConvert.DeserializeObject<List<OrdenTiendaFacturarModel>>(input);

            var parallelTasks = new List<Task<string>>();

            foreach (var order in orders)
            {
                var task = context.CallActivityAsync<string>("BillOrder", order);                
                parallelTasks.Add(task);
            }

            await Task.WhenAll(parallelTasks);
        }

any help?

1 Answers1

2

I solved this issue, for some reason the execution of StartNewAsync was to the overload who the 2nd parameter is for instanceId.

Task<string> StartNewAsync(string orchestratorFunctionName, string instanceId = null);

and I was expecting to execute this overload:

Task<string> StartNewAsync<T>(string orchestratorFunctionName, T input)

my queueItem was an string and for this f***ing reason the function took the first overload.