Hi folks, Sean Gabriel here, Program Manager on the SPD workflow team. I recently presented a session on human workflow at SPC, and wanted to share out the core of the talk with a broader audience. We’ll also be following up with deep dives into the nuts and bolts of designing workflows in SharePoint 2010, so keep an eye out for upcoming posts. The product team has put a ton of work into the new and improved workflow capabilities of 2010, and we hope you’re as excited as we are about the upcoming release!
To help set the stage, let’s take a look at the world according to workflow (click for a larger view):
One of our big messages for the release is around providing a broad continuum for the workflow solutions you build, and this graph-like slide is meant to reflect that. The horizontal axis covers the tools you can work with, and the vertical axis is a rough scale of the workflow capabilities available at that level. The further along the curve you go, the more sophisticated your solution becomes.
Starting on the left, we’re continuing to deliver built-in approval based workflows in 2010, ready to associate out of the box. These are designed to help you track processes from start to finish by assigning out workflow tasks in the manner you specify, and they’re easily configured with settings like due dates using the browser UI. But this time around, we’ve built them up using the declarative workflow stack, and they make use of a number of platform enhancements like reusability, InfoPath forms, visualizations, and the task process designer.
What does that mean? In essence, the out-of-box approval is no longer a black box as far as customizations go; you can now use SharePoint Designer 2010 to the workflow directly to suit your business needs. (You can also easily make a copy to edit, or use the underlying task process in another workflow – more on this in a bit.) Changing the way tasks are assigned, editing the e-mail notifications that get sent out, or altering the set of fields on any of the workflow forms are some examples of the customizations now easily within reach. Look for a future post to dive deeper into the new workflow designer experience in SPD.
As you start digging into the out-of-box workflows using SPD, you’ll notice that the body of each is a variant of a “start an approval process” activity. That’s because at the heart of each approval workflow is a new declarative activity that we’ve internally named the ‘OfficeTask’, and it holds the core routing logic for each process. We found that a lot of processes, from informal content reviews to structured expense reporting, follow similar routing patterns but with a wide variety of behaviors specific to the different stages in the process. As such, we designed this enhanced activity with these key extensibility points in mind, while still preserving a common flow between stages.
Here’s a simplified diagram of what’s under the hood:
Without jumping into too many specifics, you’re able to change behaviors that apply either to the entire task hierarchy, or just to individual tasks that get assigned out, as well as manage the transitions between them. Each part of the process highlighted above is, in turn, a self-contained miniature designer within the overall workflow. We also light up some task-specific actions when you’re working in the various regions (some of our favorites are adding new tasks on the fly, delegating a task to someone else, or escalating it to a manager). The best way to learn is to try it out! Since the approval workflow uses this same infrastructure, you can inspect its logic in SPD and see how we’ve implemented common behaviors you’re already familiar with.
A quick word on tooling as well – while SharePoint Designer still employs a rules-based design experience for building and customizing workflows, you can now round trip your work through Visio and leverage the benefits of a graphical designer (complete with a stencil for all the SharePoint workflow actions!) to better visualize the overall flow. And when you need to move to a custom coded solution, you don’t need to lose all the great work you started with in SPD; Visual Studio now imports the declarative workflows that SPD generates, and you can quickly pick up where you left off.
In addition, we’ve done a lot of work to integrate with the sandboxed solution infrastructure in SharePoint so if you can contain your code needs to a simple activity, you can deploy and run that code as partially trusted within a larger declarative workflow. Our colleagues in the Business Connectivity Services team have started blogging about this and other cool extensibility points for workflow, like external list integration; if you’re itching to learn more now, check out a few of their posts here, here, and here.
That about sums up the 10,000 foot view – though there’s so much more to cover, and we also want to hear from you about what you’re most interested in seeing us write about here. Feel free to post your questions in comments, and looking forward to continuing the conversation.