工作流任务表单 (SharePoint Foundation)
上次修改时间: 2006年10月21日
适用范围: SharePoint Foundation 2010
本文内容
工作流任务的内容类型
指定工作流任务的内容类型
工作流任务表单处理
您可以为工作流中的任务指定自定义表单。但是由于工作流任务是分配了内容类型的 SharePoint 项目,因此由内容类型来确定用于任务类型的自定义表单。
工作流任务的内容类型
默认情况下,所有 SharePoint 任务类型都被指派了内容类型。如果不明确为任务类型分配内容类型,则会向任务类型分配 Task 基内容类型。所有任务类型的内容类型都必须基于 WorkflowTask 基内容类型。
有关基内容类型的详细信息,请参阅基内容类型层次结构。
您可以为内容类型指定自定义的新表单、编辑表单和显示表单。显示工作流任务时,Microsoft SharePoint Foundation 会使用您为相应任务内容类型指定的任何自定义表单。
备注
为了便于编程,我们强烈建议开发人员为其任务类型创建内容类型,并且每个任务内容类型架构应与为其指定的编辑任务表单的架构完全匹配。这种方法提供一对一的属性映射,并且不需要分析扩展属性字段以提取其他值。
指定工作流任务的内容类型
您可以通过以下两种方式之一指定工作流任务的内容类型。
对所有工作流任务类型使用一种内容类型
如果需要,可在任务的内容类型定义中添加一个 XMLDocument 元素,该元素指定自定义编辑和/或显示表单。此 XMLDocument 元素必须遵守 FormTemplates 架构。将编辑和/或显示表单设置为以下值:
<Edit>WkTaskIP.aspx</Edit> <Display>WkTaskIP.aspx</Display>
有关为内容类型指定自定义表单的详细信息,请参阅FormUrls 架构概述。
在工作流模板定义中,将 Workflow 元素的 TaskListContentTypeId 设置为您要分配给所有工作流任务类型的内容类型的 ID。例如:
TaskListContentTypeId="0x01080100C9C9515DE4E24001905074F980F93160"
对每个工作流任务类型使用不同的内容类型
如果需要,可在任务的内容类型定义中添加一个 XMLDocument 元素,该元素指定自定义编辑和/或显示表单。此 XMLDocument 元素必须遵守 FormTemplates 架构。将编辑和/或显示表单设置为以下值:
<Edit>WkTaskIP.aspx</Edit> <Display>WkTaskIP.aspx</Display>
有关为内容类型指定自定义表单的详细信息,请参阅FormUrls 架构概述。
使用 CreateTaskWithContentType 工作流活动可创建工作流任务。使用 TaskId 属性可设置任务 ID,使用 ContentTypeId 属性可指定任务的内容类型。
工作流任务类型
若要区分您的工作流创建的任务类型,您应在该工作流中为每个任务类型分配一个整数标识符。第一个任务类型为 0、第二个为 1,依此类推。这样,您就可以为每个任务类型分配不同的内容类型和不同的表单。只有在给定工作流中,这些任务类型标识符才必须是唯一的。例如,任何创建任务的工作流都具有任务 0 任务类型;但是,任务类型不必在所有工作流中都相同。
当用户单击链接以编辑任务时,SharePoint Foundation 会检查工作流模板定义以确定任务内容类型。然后它会检查内容类型定义以确定是否为此内容类型指定了自定义编辑表单。如果已指定,则 SharePoint Foundation 显示指定的表单。如果未指定自定义编辑表单,则 SharePoint Foundation 显示编辑表单的默认呈现。
有关内容类型定义的详细信息,请参阅内容类型定义。
自定义内容类型表单的类型
您可以为内容类型指定两种类型的自定义表单:
表单模板,它们是 .asmx 控件,可呈现 SharePoint 网页的中心部分,即页面上除 SharePoint 框架元素(通常称为"镶边")以外的所有内容。SharePoint Foundation 可呈现页面的镶边。
有关详细信息,请参阅FormTemplates 架构概述。
表单页面,它们是 .aspx 页,可取代整个默认 SharePoint 页,包括 SharePoint 框架元素(SharePoint"镶边")。对于表单页面,您必须提供 SharePoint 镶边中常见的任何导航链接或其他所需元素。
有关详细信息,请参阅FormUrls 架构概述。
工作流任务表单处理
当用户单击链接以编辑任务时,SharePoint Foundation 必须确定任务类型内容类型。如果该任务是通过使用 CreateTaskWithContentType 工作流活动生成的,则会在该活动中指定内容类型。否则,SharePoint Foundation 会检查工作流模板定义以确定任务内容类型。
然后,SharePoint Foundation 会检查内容类型定义,以确定是否已为此内容类型指定自定义编辑表单。如果已指定,则 SharePoint Foundation 显示指定的表单。
工作流开发人员负责处理最初传递到任务表单的数据,以及当用户提交表单时将采取的操作。例如,开发人员可能会以编程方式将表单设计为检索表示任务的 SPListItem 的 Xml 属性的内容,并将该信息用作数据源。SharePoint Foundation 通常将任务 XML 作为辅助数据源传递给表单。
同样,提交表单时,我们建议表单调用 AlterTask 方法,将 SPListItem 对象和更新的数据作为参数传递。调用此方法时,SharePoint Foundation 会引发一个 OnTaskChanged 事件。若要处理此事件,请将 OnTaskChanged 事件活动添加到工作流。