SharePoint Foundation 中的工作流对象模型概述
上次修改时间: 2010年4月15日
适用范围: SharePoint Foundation 2010
部署工作流解决方案后,您可以使用 Microsoft SharePoint Foundation 对象模型来查询工作流程并以编程方式执行工作流操作,例如向列表中添加工作流或启动某个项的工作流。
主要 Microsoft.SharePoint.Workflow 对象
Microsoft.SharePoint.Workflow 命名空间表示包含在 SharePoint Foundation 中的工作流功能。
SPWorkflowTemplateCollection 对象表示当前对网站部署的工作流程模板。每个 SPWorkflowTemplate 对象表示一个工作流程模板,并包含可用于获取或设置模板信息的属性,例如实例化数据以及模板的历史记录和任务列表。
若要将工作流与列表或文档库关联,请使用 SPList 对象的 AddWorkflowAssociation 方法。若要将工作流与内容类型关联,请使用 SPContentType 对象的 AddWorkflowAssociation 方法。这两个方法均采用 SPWorkflowAssociation 对象,并将其分别添加到指定列表或内容类型中。若要创建适当的工作流关联,请使用 SPWorkflowAssociation 对象自身的 CreateListAssociation、CreateListContentTypeAssociation 或 CreateSiteContentTypeAssociation 方法。
与通过用户界面添加工作流一样,以编程方式关联工作流会将工作流的状态列添加到列表中。
使用 RemoveWorkflowAssociation 方法可从列表中移除工作流关联,而使用 RemoveWorkflowAssociation 方法可从网站或列表内容类型中移除工作流关联。
每个 SPWorkflowAssociation 对象表示一个工作流模板,该工作流模板与特定列表或内容类型关联,并且包含一些属性,这些属性返回有关该工作流与特定列表或内容类型的关联的自定义信息。此信息包括是否启用工作流、工作流是否可自动启动,以及工作流已关联的列表或内容类型。
SPWorkflowCollection 表示已运行或当前正在对给定列表项运行的工作流实例。每个 SPWorkflow 对象均包含返回有关工作流实例信息(例如工作流是否已完成、其内部状态及其工作流历史记录列表)的属性。此外,每个工作流均包含该工作流的任务集合,即 SPWorkflowTaskCollection。
使用 Workflows 属性可返回 SPWorkflowCollection 对象,该对象表示当前对该列表项运行的工作流。
以编程方式管理正在运行的工作流实例
用户通过 SharePoint Foundation 用户界面分别与对项运行的工作流进行交互。但 SharePoint Foundation 提供给您可以通过对象模型在您的网站集内集中控制正在运行的工作流实例的功能。使用 SPWorkflowManager 对象可在整个网站集内管理正在运行的工作流实例。SPWorkflowManager 对象在用户界面中没有等效项。使用 SPWorkflowManager 对象可以:
启动、运行或取消工作流。
返回当前对特定项运行的所有工作流。
执行其他工作流管理操作。
若要手动启动某项的特定工作流(即未配置为自动启动的工作流),请使用StartWorkflow(SPListItem, SPWorkflowAssociation, String) 或 StartWorkflow(SPListItem, SPWorkflowAssociation, String, Boolean) 方法。