Introduction to Workflows in SharePoint Designer 2010

SharePoint Designer 2010 includes major improvements to workflows. You can quickly design workflows that ease a wide range of business and human processes. Many new building blocks also mean that workflows are even more flexible, powerful and capable of modeling more complex business logic and process.
Reusable Workflows
With SharePoint Designer 2010, you can create workflows that are easily reusable. You can create a reusable workflow in the top-level site in the site collection, and that workflow is globally reusable; meaning that the workflow can be associated with any list or library in the site collection. You can also create a reusable workflow in any sub site in the site collection; this workflow is available for reuse in that particular sub site. This is a new type of workflow in SharePoint Designer 2010.
Export Workflows
You can export a reusable workflow from one site collection and then upload and activate that workflow in a different site collection. SharePoint Designer 2010 supports exporting a workflow as a solution package or .wsp file. Later in this book, we have explained how to export Designer 2010 workflows to Visual Studio 2010.
Association Columns
If your reusable workflow requires certain columns to be present in the list or library that it is associated with, then you can add those columns as association columns. Association columns get added automatically to a list or library when a reusable workflow is associated with that list or library. This is one of the great features.
Associate Workflows with Content Types
When you create a reusable workflow, you can choose to filter your reusable workflow to a specific content type. If you associate a workflow to a site content type, you make that workflow available for all items of that content type in every list and library where that content type is used.
Site Workflows

A site workflow is associated with a site. It is not associated with a list, library, or content type. So unlike most workflows, a site workflow is not running on a specific list item. In the browser, you can start a site workflow or view the status of running site workflows by clicking Site Workflows on the Site Actions menu.
Edit the Workflows Included with SharePoint Server
One of the weaknesses of SharePoint Designer 2007 was that we were not able to edit any of the out-of-the-box workflows. In SharePoint Designer 2010, this problem has been rectified. The three most popular workflows in SharePoint Server: the Approval, Collect Feedback, and Collect Signatures have been completely rebuilt as declarative workflows. That means that they are now fully customizable. These workflows are event-driven, and all of the important events in the workflow are textured in the workflow editor, both for each task in the process and for the process as a whole. For example, you can easily add conditions and actions to define what happens when each task is assigned, expired, or completed.
Design a Custom Approval Process

SharePoint Designer 2010 includes three new approval actions: Assign Item for Approval, Assign Item for Feedback, and General Task Process. The main three workflows included in SharePoint Server 2010 out of the box are: Approval, Collect Feedback, and Collect Signatures workflows. The approval actions surface all of the important events in an approval process, making it easy for you to design a new interactive workflow process where many users can interact or collaborate on a specific document.
Impersonation Steps
In the previous version of SharePoint Designer, a workflow always impersonated the user who started the workflow and ran with that user's permissions. That means we can run a workflow with current user context only. In many instances, we need to give unnecessary permissions to users who are involved in the workflow process. In SharePoint Designer 2010, you can use impersonation steps to have the workflow perform actions by impersonating the workflow author instead of the workflow initiator. Impersonation steps are very useful in approval and publishing scenarios, where the people submitting content for approval and the people approving content have different permissions.