Introduction
SharePoint 2010, amongst its plethora of new features, has greatly enhanced the workflow capabilities. Workflow is one of the key elements of BPM (Business Process Management), and SharePoint 2010, with all its other features, manifests itself as a viable platform for developing BPM solutions. In SharePoint 2010 workflow enhancements are mainly in areas of flexibility, functionality, ease of use, and reliability. More details on these improvements are discussed later in this paper. Overall these improvements are intended at enhancing the workflow lifecycle management within SharePoint.
In this day and age of rapidly changing business process, more and more power is being given to the “Citizen Developer”. A “Citizen Developer” as defined by Gartner is “… a user operating outside of the scope of enterprise IT and its governance who creates new business applications for consumption by others either from scratch or by composition”. Further, according to Gartner at least 25% of business productivity applications will be developed by these new and growing breed of developers by 2014 (source: http://www.gartner.com/it/page.jsp?id=1212813 ). This is where SharePoint 2010 adds most value. Using the features of workflow, InfoPath 2010, SharePoint Designer 2010, Visio 2010, and Workspace 2010, “Citizen Developers” can build powerful no-code composite applications within the SharePoint platform.
This paper is aimed at discussing the new workflow capabilities, the new tools for developing workflows and finally the various options for building workflows. A detailed technical discussion of the workflows is out of scope for this paper. The primary objective of this paper is to provide an overview of what is new in workflows in SharePoint 2010, explaining the business benefits and the delving into certain considerations while developing workflow solutions.
What’s new in SharePoint 2010
From a workflow perspective, SharePoint 2010 has improvements and / or new features in the following areas:
a) Tools – Two main improvements with the tools:
a. Visio 2010 is now has a brand new template that allows building SharePoint 2010 workflows. At a high level, this process involves creating the workflow in Visio, exporting it into SharePoint 2010 designer for associating specific rules and actions, and then finally publishing the workflow to SharePoint.
b. The new SharePoint 2010 designer has new features for customization of out of the box workflows, building reusable workflows that are capable of being deployed to multiple lists, and also building complex declarative workflow solutions.
b) Flexibility – New capabilities in the flexibility area include new type of workflows called Site workflows, new events that allow close monitoring / tracking of the workflow actions and more powerful out of the box actions in SharePoint 2010 designer (For a quick reference of the new actions in SharePoint 2010 check out - http://office.microsoft.com/en-us/sharepoint-designer-help/workflow-actions-in-sharepoint-designer-2010-a-quick-reference-guide-HA010376961.aspx ). SharePoint 2010 introduces new “hooks” (events) which can allow better tracking of a workflow. These new events include “A workflow is starting”, “A workflow was started”, and “A workflow was completed”. Each event can be associated with specific action, such as notifying users these events, thus allowing for better monitoring of the progress.
Workflow Classification
Within SharePoint 2010, there are many different ways to classify workflows, such as a) the type function the workflow performs (human centric or system), the type of tools used to create the work (out of the box, custom developed or using third party tools), declarative vs code based workflows, and finally the level at which the workflow operates (site workflows, content type workflows, or list workflows). Let’s explore these classifications of workflows a bit more in detail:
a) Human centric or system workflow – This classification is based on the type of function performed by the activities in the workflow. Human centric workflows are focused on performing activities that involve human interaction such as collecting approvals or feedback. On the other hand system workflows focus on performing automation type activities such as automatically archiving copies or automatically expiring content.
b) Based on workflow tools – With SharePoint 2010, besides the out of the box workflows, there are 3 different tools that can be used to create workflows: a) SharePoint Designer 2010, b) Visio 2010, and c) Visual Studio 2010. SharePoint Designer and Visio are tools meant for business users; where as Visual Studio is meant for complex workflow development using code. Besides these tools, there are third part products such as Nintex and K2, targeted at IT pros and power users.
c) Declarative Vs code based workflows – This particular classification is rather technical and is based upon the tool used to develop, workflows can be declarative or code based. Workflows designed using SharePoint designer or Visio would fall in the “declarative workflows” category as the output of these tools is XML. Workflows developed using Visual Studio are code based and hence fall into the “code based workflow” category.
d) Sequential Vs State Machine workflows – SharePoint 2010 supports two basic types of workflows a) Sequential and b) State machine workflows. A sequential workflow is more like a flow chart and follows a linear set of tasks. State machine workflows are based on specific events and do not necessarily follow a linear path. A good example of a sequential workflow would be a simple approval workflow, and a good example for state machine workflow could be complex processes such as order processing or proposal management systems.
e) Site Level Vs List Level workflows – SharePoint 2010 introduces site level workflows, which function similar to list and content type workflow. An advantage with the site level workflow is that the action can be performed across all lists within the site, whereas the list and content type workflows are limited to the specific items they are associated with.
Any given workflow would have a combination of these classifications. For example an approval workflow developed using SharePoint designer and deployed to a list / library, would be a human centric , declarative, and list level workflow, whereas a complex information management policy workflow that automatically expires content could be a system, code based, site level workflow. Overall, these classifications help in understanding the various forms of workflows within SharePoint 2010.
SharePoint 2010 Workflow Solution Spectrum
Many different sorts of workflows, ranging from simple ready to use out of the box workflows to complex code based solution, can be developed using the new tools. Most of the workflow solutions are aimed at business users, varying from site administrators to “Citizen Developers”.
a) Out of the box workflows – This is the least complex workflow solution. Allows users to configure workflows without any coding / customization. These workflows offer limited functionality and can be configured by trained site administrators or power users.
b) Out of the box customization – A new capability of the SharePoint 2010 designer is the ability to customize out of the box workflows. This solution offers the flexibility of extending the functionality of out of the box workflows by modifying the logic and / or using InfoPath forms for enhanced data collection interface. Power users and “Citizen Developers” would be the primary users of this category of workflow solutions.
c) Custom Declarative – These solutions are designed from the scratch using the SharePoint designer. Provides the flexibility of creating new types of workflows, not available in out of the box workflows. IT professionals would be the primary users of SharePoint designer tool to develop workflows.
d) Custom Activities – Under certain circumstances the out of the box activities may not provide the required functionality. To fulfill these requirements SharePoint 2010 provides the flexibility of developing custom activities. Custom activities are developed from the scratch using .NET code with the help of the visual studio tool. Developers will build custom activities within Visual Studio and then make it available in the SharePoint Designer to be used by the IT Pros.
e) Custom Non-Declarative – Under extreme circumstances, workflow solutions can be developed completely within Visual Studio. These solutions would need to be deployed to the SharePoint servers as code, rather than being published to the SharePoint site from the designer. Developers are the only users of this category of workflow solutions.
The following diagram is a self explanatory picture
Figure 1 – SharePoint 2010 Workflow Solution Spectrum
(“Borrowed” from http://blogs.msdn.com/b/sharepointdesigner/archive/2010/02/22/overview-of-human-workflow-in-sharepoint-2010.aspx )
High Level Workflow Considerations
Here are some high level considerations for building workflow solutions within SharePoint 2010:
a) Reusability – Avoid tying the workflow to a specific list or hard-coding parameter values such as connection strings or approver names within the workflow tasks.
b) Simplicity – Avoid overly complex workflows; break it down into multiple simple workflows. Overly complex workflows become cumbersome to manage and error prone.
c) Workflow Life Cycle – Avoid extremely long running workflows. Establish specific check points to monitor workflow progress. Watch for cyclic events; for example an item update workflow updates the item – this is a cyclic process!
d) Monitoring – SharePoint 2010 has new workflow monitoring reports that provide details about the workflow’s activity duration, cancellation and errors that occurred within the specific instance of the workflow. Further, you can also set a specific server for the timer jobs within a specific content database, which allows more fine grained monitoring of workflow jobs. These features are a great improvement over monitoring capabilities in SharePoint 2007.
e) Security – It is very important to understand that workflows themselves run as system account, which means they have administrative privileges within SharePoint. On the server the workflow runs under the identity of the application pool settings. Administrators need to thoroughly understand the security requirements and actions being performed within the workflow prior to deployment.
Summary
SharePoint 2010 presents a robust platform for developing efficient business process solutions. New tools, such as InfoPath 2010, SharePoint Designer 2010, Visio 2010 and Office workspace 2010, make no-code solutions a viable option for developing complex business solutions. These new tools, in combination with enhanced monitoring and tracking mechanisms for workflows in the SharePoint platform enable SharePoint to play a key role in driving business efficiencies and productivity.
Recommended Reading
a) Workflow actions in SharePoint Designer 2010: A quick reference guide: http://office.microsoft.com/en-us/sharepoint-designer-help/workflow-actions-in-sharepoint-designer-2010-a-quick-reference-guide-HA010376961.aspx
b) Approval Workflow: A Scenario (SharePoint Server 2010): http://technet.microsoft.com/en-us/library/ee704556.aspx
c) Developing Business Process with SharePoint 2010 Workflows: http://msdn.microsoft.com/en-us/sharepoint/ee513154
d) Overview of Human Workflow in SharePoint 2010 : http://blogs.msdn.com/b/sharepointdesigner/archive/2010/02/22/overview-of-human-workflow-in-sharepoint-2010.aspx
e) Visio 2010: Democratizing Business Process Management: http://visiotoolbox.com/2010/pdfs/value-prop-process-management-learn-more.pdf
No comments:
Post a Comment