I have an out of the box SharePoint 2010 Tasks List setup using predecessors (a lookup column back to same task list, allows multiple selections) and I have a requirement to send an email alert to the person assigned to the task as soon as all predecessors have a status of complete. I've been searching for a few days and keep hitting dead-ends. I do not have access to Visual Studio and I am not allowed to deploy Visual Studio solutions to our farm. Any suggestions on how to accomplish this task would be greatly appreciated.
Since you cannot use a Visual Studio solution, your only other option would be to use SharePoint Designer workflows. You can make you predecessor column only accept a single value and then in your workflow update list items that match the current item.
I have the same problem in front of me. It looks like the Sandbox solution requires Visual Studio, so here is an alternative that truly doesn't require VS.
The problem in a nutshell is that for whatever reason, SharePoint cannot handle multiple values being returned in a lookup. Therefore, the solution is to ensure that each lookup only returns a single value. Rather than perform 1 lookup that returns 3 values, you'll have to perform 3 separate lookups, each returning 1 value.
In short - my proposed solution simply involves creating 3 different "Predecessor" columns (Predecessor1, Pred2, Pred3). This is exactly the opposite of an "elegant" solution, but until SharePoint accommodates multiple values being returned by a lookup, I think it's the only option that would allow multiple predecessors without requiring custom programming.
if it would help, I could outline my workflow steps. Here they are in a nutshell:
workflow is initiated by updating any task status to "Complete".
Identify the CurrentList item that has the CurrentItem.ID as either Predecessor1, Pred2, or Pred3. Once you find that task, you'll probably want to store the Predecessor values into separate workflow variables (var1, var2, var3).
evaluate the status of each task where ID in (var1, var2, var3)
If every task evaluated has a status of "Complete" then [open next task].
Hope this helps! It's not a great solution, but again, is probably the only solution available to those of us that can't program or don't have access to VS.