This article is the third in the series trying to demystify all that SharePoint Designer 2010 has to offer. Check out the other two articles here:
Also, related to this article, you can obtain the SharePoint Designer 2010 Workflow videos we have available here:
Types of Workflows
The Workflow Designer in SharePoint Designer 2010 is used to create workflows on the currently opened SharePoint site. There are 3 types of workflows that can be created using SharePoint Designer: List, Reusable, Site.
Each type of workflow has its reason for existence and will be (should be) used by used by Site Admins, Power Users and Designers of the site. Workflows in SharePoint sites are used to create robust processes using components of the site. They can interact with users, lists and libraries. The other ways to create workflows on top of SharePoint are Browser based and using Visual Studio. Out-of-box browser based workflows are good for many scenarios, but they are simpler in nature and cannot be modified further using the browser. While Visual Studio workflows are extremely powerful and scalable, but require coding skills to implement.
Following is a quick breakdown of how the 3 SharePoint Designer workflows are used and why you would use them:
List Workflow – Using this mechanism, you attach the workflow directly to a list or library on the site. Use this workflow when you are making a workflow that’s very specific to a list or library and does not need to be later used on a different list or library.
Reusable Workflow – This type of workflow is created with reusability in mind. Create a reusable workflow when you intend to attach it to a content type and use that content type in a list or library.
Site Workflow – Site based workflow does not require to be attached to a list or library. It works on the site itself. Use this workflow if you do not want to restrict the automated process to a list or library on the site. For example, you can use the site workflow to take a survey of the site members or to execute a process on a Document Set (new functionality in SharePoint 2010).
You don’t necessarily have to start creating a workflow from scratch. The out-of-box workflow templates (Approval, Collect Feedback and Collect Signatures) that can be used in the browser can also be extended using the workflow designer. Meaning, if you like the way these workflows work, but just want to tweak it to your liking, you can do that! These workflows are categorized as Globally Reusable Workflows and are visible and available at every site in the site collection.
A word of caution: Be careful while working with these! If you modify any of these from directly the root site of your site collection, then you are modifying the actual workflow template that’s in use at your site collection. Whatever changes you make will take effect everywhere in your site collection where this workflow is being used. If you click on any of these workflows from a subsite, it will instead inform you that a copy of the workflow will be made that you can further modify (I would recommend doing this and Not changing the out-of-box workflow template).
Workflow Designer Interface
Let’s look at the workflow designer interface that’s used to configure the workflows. You get to the design interface by either creating a new workflow or by clicking on an existing workflow and then clicking on the Edit Workflow link on the summary page of the workflow.
The workflow designer interface is where you define the complete logic of the workflow. To put it simply, SharePoint Designer workflows consist of steps which are executed sequentially in the order they are placed in the workflow designer. Clicking on the Step button in the ribbon inserts a new step in the workflow designer interface. Within the step, you can place Conditions and Actions. Clicking on the Condition button will show you all of the conditions that are available.
A conditional logic statement is used to look out for a specific possibility. If the condition is true, then whatever is encapsulated within the conditional block will be executed. Otherwise, the workflow process will move on to the next conditional logic statement (if one exists). Programmers have been using the conditional logic construct (If… Else If… Else) for decades now. Now information workers also have the power to write their own business logic without coding!
Actions are the actual statements which execute a certain activity (ex: Creating a List Item, Checking in an Item, Sending Email etc). The image below shows a snapshot of a partial list of the actions available in the designer environment.
Each of the actions and conditions can be moved around rather easily within the step or even from one step to another. Just click on the action/condition you would like to move and click the Move Up or Move Down button in the ribbon. The default nature of the actions you place in the workflow steps is sequential. The first action takes place then the next and so on. This is made evident by the word then that appears preceding every action within the step after the first action. There will be many instances where you need the actions to take place in parallel. For example, if an action calls for collecting data from a user, the process will not move on to the next action until that action is accomplished and the user who the data is being fetched from provides the data. If you want actions to fire in parallel, you can use the Parallel Block functionality. You first start by placing the parallel block within the step right up close to the actions you want to run in parallel and then by clicking on the Parallel Block button in the ribbon.
The below animation highlights the following:
- Moving actions up and down
- Parallel block
Remember that there is no Undo button in the workflow designer so that if you make a mistake, you just need to undo it manually the old fashioned way :-).
That’s it for now. I’ll be back with more information on workflows in my next article. There are still many things to be discussed such as workflow settings, impersonation steps, parallel blocks, association columns, nested steps and a whole lot more. Stay tuned…