9

You have a list with a Due Date column that is used to calculate a Reminder Date. That Reminder Date is used as the basis of a "Pause until Date" workflow named "Send Reminder".

Some user creates an item and the workflow initiates a long-running "Send Reminder" task during which no other instances can of that workflow can be initiated. The user later revisits the item and changes the Due Date. The workflow is not triggered due to the previous long-running task. The pending reminder from the prior workflow is now out of date.

Is the "Pause Until Date" feature broken when it comes to potential user changes as described? I can't see how this would be useful since we cannot know whether the source date will be changed at a later time and there is no way for the workflow to react to this change without some sophisticated hack for what seems like a standard use case.

2
  • 2013 or 2010 workflow?
    – eirikb
    Jun 9, 2015 at 19:28
  • What bothers me is the presence of the feature at all. With so many more reliable alternatives offered below, the Pause Until Date leads one down a bad path. It's ill-designed if it cannot handle dynamically changing dates. If it could it would be incredibly useful.
    – Mario
    Jan 11, 2017 at 15:22

4 Answers 4

6

If this is a 2013 workflow you could use the new loop feature to periodically check if a date is within range.

Something like this (short pause, for testing): enter image description here

3
  • I was looking for something like "loop". We only have 2010 workflow available though we've upgraded to 2013 already. I'll have the admins see about making 2013 workflows available. Thanks.
    – Mario
    Jun 9, 2015 at 19:47
  • We didn't have 2013 workflows installed (only 2010) until I saw this. Now we do and it looks like that does the trick. Thanks.
    – Mario
    Jun 11, 2015 at 20:11
  • It seems to me that if there is an idiomatic way of doing this that involves something other than "Pause Until Date" that "Pause Until Date" should not have been created in the first place. It leads users down a track that has too many edge cases.
    – Mario
    Jun 20, 2017 at 12:19
5

For 2010 workflows, I recommend using a parallel block with two steps.

The first step starts off as "Wait for field change" in your Due Date field. If it has changed, then you can restart the workflow from the top (I use a hidden boolean field as a flag).

The second step would have your "Pause until" action. In this block, add your condition to check whether your task has already been set. If it hasn't, continue to send your reminder.

1
  • 2
    This is the answer and it isn't well documented or described anywhere else. The workflow can both "Pause Until Date' and 'Wait for Field Change' in parallel - so it will continue upon either condition being met.
    – Sean
    Sep 28, 2016 at 12:36
4

By using parallel block it can achieve like this.

enter image description here

The variable EndParallel is set as the CompleteCondition property of the parallel block (Right click on the parallel block and go to Advanced Properties ). When the variable is set to true the two steps in the parallel block got cancelled and will come to transition stage.

0
0

Typically you need to put in a date check after the pause to check if the date is still valid, if it is you would send the notification, if it is past, you'd do nothing.

Third party workflow tools do allow for this though. With Nintex, I was able to schedule a nightly workflow that would look for items in a list, put them in a collection, then I could iterate through each one and send a notification to the listed users.

This isn't really a strong suit of the workflow engine and a scenario like this is best suited for a timer job or console application that polls the list looking for things due on the given day and send notifications.

3
  • I actually started by doing this and I would have expected success except for the fact that a second instance of the workflow isn't initiated on the update to the date. If that second instance did initiate, the original workflow would bow out (as you describe) and the second instance would handle the reminder correctly. Trouble is, no second workflow instance.
    – Mario
    Jun 9, 2015 at 19:13
  • If by timer jobs, you mean scheduled PowerShell scripts, we do that on one server but I was hoping for a more integrated SP solution since security red tape with our organization makes setting up PowerShell painful.
    – Mario
    Jun 9, 2015 at 19:14
  • Timer jobs could be scheduled powershell scripts/console applications or actual sharepoint timer jobs, ex andrewconnell.com/Creating-Custom-SharePoint-Timer-Jobs Jun 9, 2015 at 19:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.