Workflows are provisioned as features at the time of SharePoint Server 2007 installation. Out-of-the-box workflow features are controlled at the site collection level. By default, all out-of-the-box workflow features in SharePoint Server 2007 are set to active except for the Three-state workflow, which is set to inactive and needs to be activated separately. This means that workflows are enabled at all sites and subsites throughout a site collection and can be created in document libraries, lists, and as part of content types. Therefore, part of your upfront SharePoint farm design will involve deciding whether to allow workflows and locking down the ability to create workflows at the site collection level.
Tradeoff: Choosing to Implement Workflows
If you choose to deactivate workflow features at the site collection level, you can select exactly which ones to deactivate. For example, you might choose to deactivate the Collect Signatures workflow if your organization hasn’t yet deployed Office 2007, which is a requirement for this particular workflow. By deactivating other workflows, such as the commonly used Routing workflows, you’re removing one of the most powerful pieces of functionality throughout SharePoint sites and disempowering end-users. On the other hand, you might decide to pilot your SharePoint Server 2007 deployment and introduce workflows at a later stage when end-users have become familiar with the basic document management feature set. Another consideration may involve training, whereby you decide to roll out different functionality at staggered intervals so that you have time to train your staff and implement appropriate policies. This is the beauty of features; they allow you to introduce additional functionality at stages throughout your SharePoint deployment—plug-and-play functionality.
Note that deactivating the Routing workflow does not disable the content publishing workflow approval functionality, which is a part of the SharePoint Server 2007 Publishing infrastructure feature. The four workflows discussed here—routing, three-state, disposition approval, and collect signatures—fall into the Document Management/Collaboration Workflow feature set throughout SharePoint Server 2007.
Additional considerations involve when to activate/deactivate workflow features. If you choose to deactivate workflow features on a site collection after users have created workflows, existing workflows will be removed, including currently running workflows, excluding workflow tasks, which will remain in the designated task list throughout sites, and workflow history, which will remain indirectly accessible within the content database. Remember that if a workflow becomes separated from its associated workflow task and/or workflow history, then it’s not possible to re-enable that association via the user interface. It is also difficult to accomplish programmatically.
Custom workflows, such as workflows created using SharePoint Designer 2007, are locked down at the Web application level, which you can access by opening Central Administration, clicking the Application Management tab, and then clicking the Workflow Settings (User-Defined Workflows) link. Choosing to disable user-defined workflows will stop end-users from creating custom workflows throughout site collections and sites within a Web application.
If you choose not to disable custom workflows at the Web application level, you can use Contributor settings in SharePoint Designer 2007 to stop select groups of end-users from creating, editing, and deleting custom workflows. This is a more flexible method for controlling custom workflows as opposed to choosing the lock-down option at the Web application level.
When would you consider disabling custom workflows at the Web application level? Most likely, you’ve decided on using the out-of-the-box workflows—the basic approval document workflow is all your organization needs right now—and, therefore, you’ve chosen to lock down the ability to create custom workflows to avoid any additional administrative overhead. Another good reason for locking down custom workflows at the Web application level is when your information technology department has specifically chosen not to allow SharePoint Designer 2007 workflows to be created on the production farm (that is, other features within SharePoint Designer will be allowed at a controlled level, but custom workflows will not).
On the flip side, you may choose to enable custom workflows because you need something more specific than the out-of-the-box workflows can provide. SharePoint Designer 2007 has some great workflow functionality, and information workers can easily create custom workflows, code free. Perhaps you’ve chosen to deactivate all out-of-the-box workflow features at the site collection level and instead only create workflows in SharePoint Designer 2007.
In the beginning of this chapter, we mentioned that the main focus would be the out-of-the-box workflows and custom workflows built in SharePoint Designer 2007. However, there are many more possibilities for extending workflow functionality using Visual Studio, features, and events. Ed Hild, a technology architect at Microsoft, has developed a novel solution for extending out-of-the-box workflows to provision sites. His solution is discussed in part in the following sidebar.
Inside Track: Using Out-of-the-box Workflows to Provision Sites
A large part of governance strategy is having some control on how and where SharePoint sites get created. Traditionally, people focus on whether or not to turn on Self-Service Provisioning. Unfortunately, this setting is at a Web application level and is like a big on or off switch. If you turn it on, your users can create any site, with any title, at any URL, with a selection of any installed template. In some situations, you want more control of your environment.
The solution I put together allows an organization to create forms that provision sites and to use the out-of-the-box workflows for gaining approval of the site requests. This is a big improvement over some other solutions that walk you down the path of creating a custom workflow for every type of site provisioning process you want. In fact, some developers would probably find this sidebar interesting just with the technique of adding a "twist" to the out-of-the-box workflows.
My solution is based on recognizing that an organization would likely have several different forms that could possibly go through different workflow approval steps that could result in the creation of a site collection or subsite. The trick to this solution is that it really doesn’t matter what the workflow steps are; just that the form is approved. I will leverage a library’s moderation feature so that forms that are saved there land with a status of Pending.
Ed Hild, Technology Architect, Microsoft
You can find the solution discussed here as well as additional information on the author’s blog at http://blogs.msdn.com/edhild/.
3.135.182.107