In my case, the SAP-out variable would return either “OK”, “locked”, or some error message.
When Biztalk received a “locked” message, I send the user an email asking them to exit the order so biztalk can perform the update. I then delay biztalk for 60 and retry. I use the counter to keep track of how many times I retried (after 5 trys, Biztalk sends an email to a user group telling them what biztalk was attempting to do)
here are Biztalk details
I use Decide shape to test for “locked”
I use Expresssion to assign loop count to 0 “loopcount = 0;”
I use Delay shape to Delay 60 seconds “system.DateTime.UtcNow.AddSeconds(60);
I use Loop Shape to loop upto 5 times “loopcount < 5”
I resend
I increment loopcount loopcount = loopcount + 1;”
use decide shape to see if locked, if not locked, set loopcount to # higher than 5 “loopcount = 6;
Now the loop ends and Biztalk continues on its way.
I hope this helps.