cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Nintex Newbie

Calling Azure Function from Nintex Workflow

Hi folks,

 

Has anyone tried using a Web Request action to trigger an Azure Function app before? We have found that we can successfully call the function, but the workflow ends up going into a suspended state because it times out waiting for the Function app to respond (it can take up to 5 minutes to run).

 

Thanks!

Labels: (1)
Tags (2)
0 Kudos
Reply
2 Replies
Highlighted
Nintex Newbie

Re: Calling Azure Function from Nintex Workflow

pinging @sean_fiene on this one....

0 Kudos
Reply
Highlighted
Nintex Employee
Nintex Employee

Re: Calling Azure Function from Nintex Workflow

I hope this isn't too late to be helpful.
 
HTTP requests from the SharePoint workflow engine can only be open for 60 seconds before they are closed automatically, which is likely the issue you're seeing here.
 
To have this processing work outside the workflow, you may need to alter the way your function works.
 
If your workflow doesn't need the result of the function, you could return quickly from it, instead of waiting for processing to finish.
 
If you need the result of the processing back in the workflow, you may need to alter the pattern you use a little.
 
The way that some of the long running actions are implemented by us involves sending an initial request for work to be processed, which returns an 'receipt' to the workflow. The actual processing is then completed separately (e.g. you could chain this function to a new one, or use a queue). 
 
After the work is queued, you can then poll a separate function with your Receipt Id, which would check whether the work is completed. If not it will tell the workflow so, and the workflow can sleep for a few minutes, then try again in a loop. If it's completed, then you can return the results to the workflow. This asynchronous process is much more in keeping with the workflow engine's design.
 
There's a few different permutations you could take with this, but ultimately to avoid the 60 second timeout, you'll need to move to a more asynchronous way of processing.
 
Callum

0 Kudos
Reply