As mentioned in my previous post, in order to get the Help Desk functionality we required I had to start creating some workflows.
To try to keep things simple and understand how Sharepoint and Workflows work at the top level I decided I didn't want to have to write any code. This means using Sharepoint Designer to design Workflows.
In case you don't know what a Sharepoint Workflow is, it's basically a step by step process that allows you to update Sharepoint lists, collect information from other users, send out notification emails and other things like that.
A workflow can be started when a list item is created or updated, and can also be started manually by a user. The problem I mentioned before, where I wanted to automatically set the Customer field of an item based on the person that reported the problem, would be an example of a workflow that runs whenever an item is created or updated. A user initiated workflow might be one that a user chooses when they want to close a call; a new task is created and assigned to the support manager asking them to review the content of the call and approve or reject the close request.
Sharepoint Designer provides a 'friendly' way of editing Sharepoint pages and creating simple, but relatively powerful, workflows. This used to be a paid for tool, but now it's a free download.
Microsoft Office Sharepoint Server Workflows are based on Windows Workflow Foundation. When you design a Workflow with Sharepoint Designer it generates the mark-up required to describe the Workflow and any user input forms needed to get data from a user. You design the Workflows by entering simple step by step instructions.
As an example, here's the logic of the Customer field update workflow.
- Get value of Customer field from the Contact's record referenced in the Reporter field of the current list item (the list item that has changed causing the workflow to run).
- If the value of the customer field of the current list item is not equal to the value above, then set the value. (As the workflow is started whenever an item is changed, you should only change the value if necessary, otherwise the workflow will be started over and over again).
I found putting together a Workflow relatively simple. Although the way you specify the data you want to lookup, and the relationship it has to the current record is a bit confusing until you understand how it fits together.