It's Wild Theories Monday here as I track down possible explanations for a Web Service Call that ran but didn't work.
SharePoint 2016 on premises workflow in production that works and hasn't been changed in months. A web service call action in the workflow is copies a document from one library to another. It normally does this just fine. In one instance, the document simply doesn't copy. Looking at the workflow history flowchart, the call web service action is green, the error handling action didn't run (indicating no error) but the document didn't copy.
The error handling is configured thusly:
Several actions further down in the workflow I have another web service call that uses the same blnWebServiceError variable to capture an error.
Is it possible that Nintex is batching these two web service calls, both actions are running nearly simultaneously and setting the same variable before the Nintex workflow processing resumes, and that whichever web service call finished last set the variable? I.e. is it possible that my first web service call ran, experienced an error, set the variable "true" and then the second web service call ran successfully and set the variable "false" and that all happened before the next workflow action occurred here?
Should I be using different variables for concurrent web service calls?
@jeff ....instead of creating 2 variables for each web service call, it's better to create 1 variable slt_Blank and create action set for resetting 2 variables....just my 2 cents !!!
Thank you, I appreciate you taking the time to help me out.
I'm not sure I understand exactly what you're saying, to use one variable and then create action sets for resetting 2 variables.
I am currently using one variable and my question is whether it's possible that these two web service calls, which both use this variable, are running concurrently rather than consecutively and setting the one variable out of order before the subsequent actions which use that variable are able to run.
In other words, the sequence of actions I've programmed into the workflow is essentially this:
The question I'm asking is about concurrency in that sequence of events. E.g. is it at all possible that the workflow might actually be executing in this order:
If this is possible, then it's possible that Procedure 1 is reacting to the outcome of Web Service Call 2
It doesn't make sense to me to reset the common variable between web service calls because (unless I'm missing something...always a possibility) a web service call will definitively set the value of value of the variable true or false when it runs. It completely doesn't matter what the value of the variable was before the web service call set it. If I set the variable to true and the web service call fails, it will still be set to true by the web service call. If I set the variable to false and the web service call fails, it will set the variable to true. Makes no difference how I set the variable before running the web service call, the web service call will always set it.
So if I reset the variable before each web service call...
... and then if the two actions do run concurrently, I still have the same problem
I think if I use two variables instead of one common variable, then it wouldn't matter if the web service calls run concurrently:
I may be thinking about this all wrong of course, but it would be interesting to know if that concurrency problem might be possible. Thanks again for trying to help me out.
@jeff ...If you are actions are sequential then it's going to perform actions in that sequence. If you still have some doubts then try using commit pending changes action between procedure 1 and web service call 2.