1

We are currently trying to build an approval workflow for employees to request training.

The idea is to first have the employee's supervisor approve (or reject) the training, and if the supervisor approves, to ask the HR department for approval.

It all seemed so simple, until my supervisor came up with the idea to have the entire workflow run with a deadline, so if the supervisor or HR department forgets to approve (or e.g. the supervisor is on vacation or something), the workflow terminates and sends an email to the employee to re-submit the request (possibly naming a different person as the supervisor).

Unfortunately, due to the more convenient approval process in 2010 workflows, we pretty much have to implement this in a SharePoint 2010 workflow. (With a 2010 approval task, you get two Yes/No buttons in Outlook and can approve or reject the request by clicking on them, in 2013 you get a Link to the Task item, then need to click on "Edit", and then click on Approve/Reject, which for some reason our users cannot be bothered with...)

In a 2013 workflow, we could use a parallel block with a CompletionCondition to assign the approval task (and wait for its completion) and wait for a given timeout in parallel. But in 2010 Workflows, Parallel blocks apparently block until all parallel steps have completed.

My next idea was to use a loop, waiting for a short time (an hour or so), check if the task has been completed (and terminate the task) or the deadline has passed (and terminate the workflow). But again, I am out of luck - apparently SharePoint 2010 workflows don't support loops of this kind.

My next idea was to write a small-ish program running outside the SharePoint that regularly (again, once an hour or so) goes through all items in the request lists, checks if any of them are past their deadline without having been approved (or rejected) and if so, terminates the associated workflow(s) and sends emails to the employees that requested training.
Unfortunately, my boss does not like "custom" solutions (as if a workflow was somehow "off-the-shelf"), so I can only use this approach if I can show that no other solution will do. (It is a rather crude hack, too, so I would be reasonably happy if there was a more elegant solution.)

So is there any other way to have a task or a list workflow time out in a SharePoint 2010 workflow?

Thank you very much in advance for any ideas you might be able to share,
Benjamin

2
  • Maybe there's a way to finish a workflow, once due date is reached. At least there are options for due dates in 2010, but I don't know how Designer can interact with it.
    – wheeler
    Sep 8, 2015 at 8:23
  • 1
    I found a way. As usual with SharePoint, it is very, very, ugly, but it works. I wait for task to complete in a parallel block. The second activity in the parallel block waits for the timeout. You can set a parallel block to complete once the first activity finishes.
    – krylon
    Jan 26, 2016 at 7:53

1 Answer 1

1

you can create a workflow on the task list that will do as follows:

  1. create a variable 'timeoutdate' using 'Today' plus iDaysToWait
  2. wait until timeoutdate is reached
  3. if task is not completed, then set to
  4. whatever else you like

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.