This has been on my mind for a couple of months and now I have the time to write a proper post about it. It's about the user-friendliness of using custom workflows (or the default out-of-the-box even) on documents or in my case particularly: InfoPath Forms. The problem I am facing is that the customer finds it weird (and it is believe me) that approving a document or form requires a lot of steps that are not linked to each other.
- A task is created for the designated user.
- An email is sent to the user regarding the task
- The user clicks on the link in the email to open the task in the browser
- If you use the out-of-the-box workflows you get a nice InfoPath form where you can approve/reject the document and if you turned the option on, you can also reassign the task. If you didn't use the out-of-the-box workflows and opted for the 'create task' option in Sharepoint Designer when you designed the workflow, you only get a simple 'Ok' and 'Cancel' dialog.
- Up until here the user has no clue what the document is all about, so he needs to click on the document link to open the document . Then he needs to close the document, go back to the task and approve/reject/reassign the task.
So if you catch my drift, the user must two separate things :
- Open the task and complete it
- Open the document and review it
Now wouldn't be nice if the user gets an overview (and here is why my rant is about InfoPath forms) of all the information in the task itself. Therefore gaining a huge amount of efficiency because the user would not have open the document to review it and it's just 'one' step to accomplish the task. Also the user is presented with this information already in the email that is sent by the tasklist. In order to accomplish this, you should the following :
- Promote the fields in your infopath form to list columns (remember you can't promote repeating tables (well at least you can promote the first row :))
- Publish your InfoPath form as a content type and use this content type in the task list
- In Sharepoint Designer for each new task you wan to create, don't (!!) choose the 'create new task' option but rather choose 'create new listitem' and choose the tasklist
- Set the values of the columns from the tasklist the same as the 'current' columns from the form (basically you are copying the values from the form to the taskitem)
- You're done.. now the user gets information about the document/form when he or she receives the email that a task is awaiting for them.
Now to make it even more prettier you can also extend the toolbar of the taskitem to include an 'approve/reject' button in which you redirect the user to a similar form like the one that comes out-of-the-box. I will post a code example of this later on .. I promise.. heck maybe I will do a screencast about this as well! ;)