SharePoint Designer 中的工作流开发

上次修改时间: 2010年4月19日

适用范围: SharePoint Foundation 2010

如果您在基于规则的声明性无代码工作流编辑器(例如 Microsoft SharePoint Designer 2010)中创作工作流,则您将直接针对 Microsoft SharePoint Foundation 2010 中的特定列表或文档库创作该工作流,并将该工作流数据绑定到该特定列表或文档库。您将使用预定义的工作流活动列表而非使用任何代码。您设计的工作流没有编译为程序集,而是存储为源文件,直到它首次运行时,SharePoint Foundation 2010 才编译它。

此方法具有以下优点:

  • 可以快速开发和测试工作流。

  • 因为工作流特定于给定列表,所以简化了:

    • 部署过程

    • 安全问题管理

  • 因为工作流没有编译为程序集,所以在基于规则的声明性无代码工作流编辑器(例如 SharePoint Designer 2010)中创建的工作流可以部署到其管理策略禁止自定义代码程序集的服务器上。

备注

在 SharePoint Designer 2010 中创作的工作流由预定义活动的"安全列表"组成,也应在获得管理员的批准后再在服务器上运行。

  • 工作流可由具有较少开发经验的用户(例如 Web 设计人员或知识工作者)创建。

因为您直接针对文档库创作工作流并将该工作流数据绑定到该文档库,所以在 SharePoint Designer 2010 中创作的工作流不同于使用 Visual Studio 设计器创建的工作流,具体表现在以下几个重要方面:

  • 不能将在 SharePoint Designer 2010 中创作的工作流部署到多个列表。该工作流仅对为其创建该工作流的列表有效。

  • 因为您直接针对列表创作工作流,所以在设计时,工作流与列表关联。因此,在 SharePoint Designer 2010 中创作的工作流没有关联阶段。

  • 不能修改在 SharePoint Designer 2010 中创作的工作流。

  • 在 SharePoint Designer 2010 中,不能针对内容类型创作。

有关 SharePoint Designer 2010 和 Visual Studio 设计器的详细比较,请参阅工作流开发工具比较

运行未编译的工作流

因为在基于规则的声明性无代码工作流编辑器(例如 SharePoint Designer 2010)中创作的工作流不包含自定义代码,所以没有将它们编译并部署为程序集。它们在 SharePoint Foundation 2010 内存储为源文件,并且只在需要时才将它们编译到内存中。

对于每个网站,这种类型的工作流都存储在单独的文档库中。此文档库为在 SharePoint Designer 2010 中创作的每个工作流分别包含一个文件夹。该文件夹包含工作流所需的所有源文件,包括:

  • 工作流标记文件

  • 工作流规则文件

  • 所需的任何自定义工作流表单的 ASPX 表单

SharePoint Foundation 2010 包括一个实时编译器,用来在对某个项目首次启动工作流时,将源文件编译为工作流。SharePoint Foundation 2010 将编译好的工作流保留在内存中,直到再次调用它,这很像服务器将编译好的 ASPX 页面进行缓存,以改进下次调用该页面时的执行性能的情形。

每次对某个项目启动工作流时,SharePoint Foundation 2010 都会确定该工作流是已部署为程序集还是源文件。如果存在工作流程序集,则 SharePoint Foundation 2010 会调用该程序集来创建工作流实例。如果工作流部署为源文件,则 SharePoint Foundation 2010 接下来会确定内存中是否已有从这些源文件编译的工作流。如果有,则 SharePoint Foundation 2010 会调用内存中编译好的工作流来创建工作流实例。如果没有,则 SharePoint Foundation 2010 会使用其实时编译器来将源文件编译为内存中的工作流,然后再调用该工作流来创建工作流实例。

使用 SharePoint Designer 创作工作流

SharePoint Designer 2010 使用向导驱动的界面,该界面使用户能够从预定义活动组合顺序工作流。用户从预定列表中选择活动,并使用 SharePoint Designer 2010 界面配置这些活动。这些活动可以与 Visual Studio 2010 工作流设计器中存在的活动相同;两类工具之间的活动没有任何差别。

但是在 SharePoint Designer 2010 中,每个活动都显示为一个操作,并由一个包含用户可使用下拉菜单和查找对话框配置的变量的句子表示。用户还可以选择条件,这些条件是指示工作流的可配置的条件子句。

当用户在工作流界面中选择和配置条件和操作时,SharePoint Designer 2010 将生成两个实际表示工作流类的文件:

  • 工作流标记文件,其中包含描述工作流中包括的活动的标记语言。

  • 工作流规则文件,其中包含以声明性规则形式而非代码形式编写的工作流的业务逻辑。

添加自定义活动和条件

由于工作流作者无法在 SharePoint Designer 2010 中创建其工作流中使用的自定义活动,因此他们仅可以使用开发人员在 SharePoint Designer 2010 中显示的"安全列表"(也应获得服务器管理员的批准)上提供的活动和条件。开发人员可以创建自定义活动和条件,并使它们在安全列表中可用。

条件是具有静态方法的自定义程序集,在调用该程序集时,它会评估条件并返回一个布尔值。

使活动和条件在安全列表上可用:

  1. 创建活动或条件,将其编译为具有强名称的程序集,然后将其部署到全局程序集缓存。

  2. 将活动或条件添加到 web.config 文件中的操作安全列表。

  3. 在位于工作流文件夹的 WSS.Actions 文件中,为表示 SharePoint Designer 2010 用户界面中的活动或条件的句子添加规则和参数。由于活动或条件程序集自身不包含此信息,因此这是指定如何在界面中显示和执行活动或条件的标记语言。

有关部署自定义活动和条件的详细信息,请参阅 SharePoint Designer 2010 帮助。

在 SharePoint Designer 中生成 ASP.NET 表单

可以在 SharePoint Designer 2010 中为工作流创建一个初始阶段。如果这样做,SharePoint Designer 2010 将使用 ASP.NET 根据初始规范自动生成一个初始表单。

类似地,可以为工作流创建自定义 Microsoft SharePoint Foundation 2010 任务。SharePoint Designer 2010 将再次根据规范自动为该任务生成一个 ASP.NET 表单。

这些 ASPX 表单与工作流源文件一起存储在 SharePoint 网站上。可以打开这些表单并像自定义任何其他 ASPX 表单一样自定义这些表单。

请参阅

概念

SharePoint Foundation 工作流开发

工作流开发工具比较

SharePoint Designer 工作流概述

Visual Studio 中的工作流开发