1. Getting Started with Workflow
One of the challenges of network drive-based (or
even e-mail-based) collaboration is the proper routing of content to
the right people at the right
time. Typically, coworkers are either blind to activity happening on
shared drives or inundated with e-mail discussions about content that
they are not actively monitoring. Automated workflows ease this burden
by offering a structured means of transporting content, typically
documents or forms, to the appropriate reviewers for comments,
approval, or publishing. In some ways, think of workflow as a
manageable business rules engine that allows administrators to
predefine the routing of information across its life cycle. As an
example, consider a standard employee reimbursement form. Typically, a
manager or supervisor must review or approve the submitted claim before
it is processed. This causes two problems: 1) the coordination among
employee, reviewer, and finance representatives is sometimes clunky,
and 2) there is no auditing maintained around the form activity (for
example, who approved the submission? when? why haven’t I received my
check?). Workflow solves both problems by allowing for the routing and
auditing of content.
From a SharePoint perspective, workflow allows for
the management of content movement (through a review or approval
cycle), auditing of all activity associated with the content, and task
list integration that allows users to see what items are pending their
review or approval. This is all done in an interface that most
employees interact with regularly. Notifications from workflow
processes can be e-mailed so users do not have to monitor task lists.
In addition, exceptions can be defined, so if unexpected delays in
processing occur, someone is notified.
One of the biggest challenges in implementing a
successful workflow strategy is not so much becoming an expert in the
custom workflow creation process, but rather understanding how to
define a clear and accurate business process. Before associating a
workflow with a SharePoint list or document, ask
How do you define the life cycle of the
associate business process (who should approve it first? how many
people should we ask for feedback from? if this document should go to
someone’s manager, does the system have that data?)
What is the current process? What are the benefits of automating this process?
How do you deal with exceptions (for instance, what if someone is away or sick)?
How
important is it that we log all activity associated with this list item
or document? Do we need to look back historically on previous content
for insight into the approval process?
Whether it is a simple serial, single-person
approval process or a complex workflow associated with many conditional
layers and approvers, designing the business rules first will ensure
that the right technology decisions are made later. As you see in the
coming sections, SharePoint offers some native workflow processes as
well as integration with SharePoint Designer custom workflows (and even
Visio, .NET-based, or third-party created complex solutions). In every
case, it is important to effectively manage the processes and
expectations surrounding this business-critical content movement.
2. Workflow Terminology
SharePoint Server 2010 and SharePoint Foundation
2010 include the capability to use workflows within a list or document
library as well as at the site level (that is, not associated with a
list item). While both versions offer the same fundamental platform
(Windows Workflow Foundation), the difference comes down to what
default workflows are offered (see Table 1).
Beyond the default workflows, custom workflows can be developed using
SharePoint Designer 2010 or Visual Studio 2010.
Table 1. Default Workflow Templates That Allow You to Get Started with Your Workflow Immediately
Name | Description | Use For ... | Available in SharePoint Foundation 2010? |
---|
Approval | Routes a document (or list item) to one or more users for approval via a Web-based form. | Generic approval processes in document libraries and publishing sites. | N |
Collect Feedback | Routes
a document (or list item) to one or more users for feedback. Reviewers
can provide feedback, which is then compiled and sent to the person who
initiated the workflow once the workflow has completed. | Aggregating feedback on a document. | N |
Collect Signatures | Routes
an Office document to one or more users to collect approval via digital
signatures. Note: This workflow must be manually started from within
Office 2007 or 2010. | Digital-signature-based approval processes for Office documents. | N |
Disposition Approval | Manages document expiration and retention by allowing participants to decide whether to retain or delete expired documents. | Records Management (retaining or deleting expired documents and/or list items). | N |
Three-State | Manages
business processes and complex workflows. Lets you choose what happens
(re: choice fields in a list and its initial, middle, and final states). | Tracking
items in a list—things like issues, tasks, and so on. Useful for adding
to a task list as stage 2 of an approval workflow to track the actual
task. | Y |
Publishing Approval | Routes
a page for approval. Approvers can approve or reject the page, reassign
the approval task, or request changes to the page. | Use for approving Web pages as opposed to documents. | N |
Note
After the 2003 Office System was released, Microsoft
realized that it would be smart to consolidate workflow engines, so it
developed Windows Workflow Foundation (WF), which ships as a free
platform component of .NET 3.0. Starting with SharePoint and Office
2007, WF is automatically installed with either and is used as the
foundation for SharePoint workflow.
Templates, Associations, and Instances
There are three ways to describe a workflow. A workflow template is the initial description of what should happen (steps, conditions, activities, and so on). When you take a template and bind it to a list or library, that linkage is called an association. When you add an item to a workflow-enabled list, the workflow that starts up and processes that item is called a workflow instance.
Let’s say you have a workflow template called
Approval. You could associate the workflow template to three separate
lists (list A, list B, and list C). Within each list, there are ten
items, each in one of the various stages of workflow processing. In
this scenario, there is a total of: