工作流修改表单 (Microsoft SharePoint Server 2010)

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

适用范围: SharePoint Server 2010

当针对某个项运行工作流时,您可能希望使用户能够在特定的点修改此工作流。您通过此方式向用户提供的选项称为修改。然后,您可以创建修改表单以允许用户指定修改的参数。

还可以创建 Microsoft InfoPath 2010 工作流修改表单。然而,默认情况下,此类修改表单只作为服务器端表单使用。它们不显示在 Microsoft Office 2010 客户端应用程序中,即使它们在 InfoPath 2010 被设计成对称表单也不例外。

有关工作流修改表单的更多概念信息,请参阅 Windows SharePoint Services 3.0 SDK 中的工作流修改表单 (SharePoint Foundation)

指定修改表单

您在工作流中使用的每个 InfoPath 2010 修改表单都必须有其自己的 GUID。SharePoint Server 2010 使用此 GUID 将用户选择的修改与相应的表单进行匹配。

指定修改表单时,要求设置以下数据:

  1. EnableWorkflowModification 活动的 ModificationId 属性设置为针对您的修改所生成的 GUID。

  2. 在工作流模板定义中,将 Workflow 元素的 ModificationURL 属性设置为以下值:

    ModificationUrl="_layouts/WFMod.aspx"  
    

    这是随 SharePoint Server 2010 提供的 .aspx 页面;此页面包含用于承载 InfoPath 2010 工作流修改表单的 Office InfoPath Forms Services Web 部件。

  3. 将两个元素添加到工作流模板定义 XML 中的 Metadata 元素。第一个元素是 Modification_GUID_FormURN 元素(工作流),其中 guid 是为您的修改表单生成的 GUID;将此元素设置为修改表单的 URN。例如:

    <Modification_GUID_FormURN>
       urn:schemas-microsoft-com:office:infopath:workflow:ReviewRouting-Modify
    </Modification_GUID_FormURN>
    

    第二个元素是 Modification_Guid_Name,其中 guid 是为您的修改表单生成的 GUID;将此元素设置为您要提供给修改的名称。SharePoint Server 2010 将此名称显示为工作流状态页上的修改链接的链接文本。例如:

    <Modification_GUID_Name>Add a New Reviewer</Modification_GUID_Name>
    

有关工作流定义架构的详细信息,请参阅 Microsoft SharePoint 2010 软件开发工具包 (SDK) 中的工作流定义

修改表单处理

当用户单击工作流修改链接时,SharePoint Server 2010 将检查 Workflow 元素的 ModificationURL 属性,以确定要加载的表单。对于 Office InfoPath 2007 表单,开发人员已将此值设置为 "_layouts/WFMod.aspx"。SharePoint Server 2010 加载此页面。此页面检查相应的 Modification_GUID_FormURN 元素(工作流) 元素(根据 SharePoint Server 2010 传递给此元素的修改 GUID)。此页面加载指定的 InfoPath 工作流修改表单。此页还将 EnableWorkflowModification 活动的 ContextData 属性中的上下文数据作为表单的主要数据源传递给表单。

重要注释重要说明

EnableWorkflowModification 活动的 ContextData 属性必须包含与修改表单 XML 架构相符的 XML。即使您未向表单传递任何上下文数据也不例外。在此类情况下,您仍然必须指定与修改表单 XML 架构相符的 XML,即使 XML 不包含任何数据。否则,在加载时,WFMod.aspx 页面无法将预期的 XML 字符串传递到修改表单,而导致无法加载修改表单。

当用户提交修改表单时,WFMod.aspx 页面调用 ModifyWorkflow 方法,同时传递工作流实例 ID 和更新后的上下文信息。

当调用 ModifyWorkflow 方法时,SharePoint Server 2010 将引发 OnWorkflowModified 事件。若要处理此事件并处理修改,请向工作流中添加 OnWorkflowModified 事件活动。此事件的 ContextData 属性包含由修改表单提交的 XML。

请参阅

概念

SharePoint Server 2010 中的工作流

工作流的 InfoPath 表单

工作流关联和初始表单 (Microsoft SharePoint Server 2010)

工作流任务表单 (Microsoft SharePoint Server 2010)

其他资源

Workflow Definition Schema for InfoPath Forms