I have a business scenario like this:
- A user uploads a document to a document library.
- She selects a content type and enters meta data as needed. One of the meta data fields is a flag, "Urgent".
- This triggers a SharePoint Designer workflow that, among other things, uses the "Collect Data from a User" action.
"Collect Data from a User" creates an item in a task list requesting approval for that document.
I needed to create a view of the task list that showed urgent requests for approval.
Solution: Put the word "URGENT:" into the title of these tasks.
I would have preferred to specify the priority field directly. However, I was unable to do that for several reasons:
- The collect data action does not provide a mechanism to update any field other than title (and those additional fields for which you want to collect data).
- The "assign a to do item" action has the same problem.
- It’s possible to insert an item into a list (i.e. insert an item into the task list directly) but this not a blocking action. That means that the workflow will not wait for the user to complete that task.
I considered a few approaches before (thankfully) realizing we could just put "urgent" in the title.
- Start a workflow on the task list itself so that when a new task is created, it somehow cross references back to the document that started the first workflow, pull out the urgent flag value and update priority as needed.
- Do something similar with an event receiver. On create of the task, locate the associated document and update priority as needed.
- Use the "create list item" action in conjunction with the "wait for field change" action and an event receiver. If we create a list item, we can specify all the fields we want. Use an event receiver to update the original item when the user completes the task and the "wait for field change" action’s condition would be met and the workflow would proceed. (For some reason, I had more or less settled on this approach before wisely deciding to walk away for a while).
There is a drawback to my solution (aside from the obvious fact that only the text of the title indicates urgency). Since "collect feedback" only accepts hard coded title names, I need to use two different collect feedback actions whose only difference is that hard coded title.
But, at least there’s a solution that does not require event receivers or custom SPD actions.
If someone has solved this in a more clever way, please let me know.