SharePoint 2010 工作流简介






4.62/5 (7投票s)
SharePoint 2010 工作流简介
引言
SharePoint 2010 引入了许多新功能,这些功能分为六个不同的工作负载,其中之一是复合工作负载。创建复合应用程序的关键组件是 SharePoint 2010 创建自定义工作流的能力,它允许最终用户将行为附加到数据。
SharePoint Server 2010 中的工作流能够帮助企业减少人们在执行业务流程时产生的非必要交互。例如,为了做出决定,团队通常会遵循一系列步骤。这些步骤可以是正式的标准操作程序,也可以是一种非正式的、心照不宣的操作方式。总而言之,这些步骤代表了一个业务流程。业务流程中发生的重复性人工交互会阻碍决策的速度和质量。
SharePoint 2010 中的工作流
SharePoint Foundation 2010 工作流在列表或文档库级别对最终用户可用。可以向文档或列表项添加工作流。工作流也可以添加到内容类型。某个给定项可能可用多个工作流。多个工作流可以同时在同一项上运行,但特定工作流的实例在任何给定时间只能在特定项上运行一个。例如,对于特定内容类型“Specification”,您可能有两个名为“SpecReview”和“LegalReview”的工作流可用。虽然这两个工作流可以同时在“Specification”内容类型的特定项上运行,但您不能在同一项上同时运行“LegalReview”工作流的两个实例。
下图说明了 SharePoint Foundation 中概念工作流的架构。场中的每个内容类型、列表和文档库都通过工作流关联表与其添加的工作流相关联。每个工作流都有一个工作流定义。此 XML 定义指定了实际工作流程序集及其中的类,以及工作流运行所需的任何工作流表单的位置。
SharePoint 工作流生命周期
下图说明了 SharePoint 工作流生命周期的四个阶段。这些阶段允许将工作流分配给内容类型,处理启动工作流的不同方式,并在执行期间保持工作流基础结构的灵活性。此自定义生命周期由 SharePoint 特定的工作流托管环境提供。在以下某些阶段,可以使用表单来收集其他用户输入作为参数,这些参数对于该阶段的执行是必需的。
工作流解决方案谱
“开箱即用”工作流
SharePoint 2010 Standard 和 Enterprise 版本包含一系列“开箱即用”工作流。这些工具可帮助您自动化最常见的业务任务——共享文档和收集文档反馈。
工作流类型
Windows Workflow Foundation 支持两种基本的工作流样式。您可以为 Microsoft SharePoint Foundation 2010 创建这两种类型的工作流。
顺序工作流
顺序工作流将工作流表示为一个步骤序列,这些步骤按顺序执行,直到最后一个活动完成。然而,顺序工作流的执行并非完全顺序。因为它们可以接收外部事件,并包含并行逻辑流,所以活动执行的确切顺序可能会有所不同。
状态机工作流
状态机工作流表示一组状态、转换和操作。一个状态被指定为开始状态,然后,基于一个事件,可以转换到另一个状态。状态机可以有一个最终状态,它决定工作流的结束。
在状态机式的工作流创作中,作者将工作流建模为状态机。工作流本身由一组状态组成。一个状态被指定为开始状态。每个状态可以接收一组特定的事件。基于一个事件,可以转换到另一个状态。状态机工作流可以有一个最终状态。当转换到最终状态时,工作流完成。
下面的流程图是状态机工作流的一个示例。
参考:http://msdn.microsoft.com/en-us/library/ms735945.aspx
工作流开发工具
SharePoint 的工作流可以在 Visio 中设计,和/或使用 SharePoint Designer 或 Visual Studio 开发。
用于开发 SharePoint 工作流的工具的示意图如下
设计工作流
也可以使用 Microsoft Visio 设计 SharePoint 工作流,并将其导出到 SharePoint Designer 进行进一步开发。
值得考虑的要点
- 仅能设计工作流(业务逻辑条件需要在导入 SharePoint Designer 后填写)
- 设计 SharePoint 工作流需要 Microsoft Visio Premium 或更高版本。
开发 SharePoint 工作流
SharePoint 工作流可以在 SharePoint Designer 或 Visual Studio 中开发。
值得考虑的要点
- 在 SharePoint Designer 中创建的工作流可以导出并导入到 Visual Studio,但反之则不行。
- 如果工作流需要输入,输入表单可以使用 InfoPath 或自定义 ASP.NET 页面完成。
- 自定义工作流活动可以在 Visual Studio 中开发,并与 SharePoint Designer 中的其他内置活动一起用于创建工作流。
参考文献
SharePoint Designer 活动参考
自定义活动
- http://msmvps.com/blogs/sundar_narasiman/archive/2010/12/26/develop-custom-workflow-activity-for-sharepoint-2010-workflow.aspx
- http://www.stuartroberts.net/index.php/2011/09/13/workflow-activity-part-1/
- http://www.chaholl.com/archive/2010/03/13/make-a-custom-activity-available-to-sharepoint-designer-2010.aspx
沙盒
使用 SharePoint Designer 2010 创建的工作流可以在称为沙盒的安全环境中运行,在那里它们不会使场处于危险之中;使用 Visual Studio 生成的工作流**必须**在场模式下运行,而不是在沙盒环境中运行。
版本控制
工作流版本控制是一项非常重要的技术。当工作流进入空闲状态时,其状态会被保存(序列化)到数据库中。这种保存工作流状态的操作称为序列化。当工作流恢复时,状态会从数据库中反序列化出来,工作流会重新开始处理。版本控制很重要,因为如果在工作流序列化(保存在数据库中)时更改了程序集,当工作流反序列化时,不能保证它会与新程序集的结构匹配。如果反序列化时结构不匹配,工作流就会中断。诸如添加或删除活动以及更改属性值之类的更改可能需要新的工作流版本。最佳实践是每次都创建一个新版本,而不是仅仅推送程序集然后碰运气。