工作流修改表单 (Office SharePoint Server 2007)

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

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

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

指定修改表单

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

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

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

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

    ModificationUrl="_layouts/WFMod.aspx"  
    

    这是随 Office SharePoint Server 2007 提供的 .aspx 页面;此页面包含用于承载 Microsoft Office InfoPath 2007 工作流修改表单的 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;将此元素设置为您要提供给修改的名称。Office SharePoint Server 2007 将此名称显示为工作流状态页上的修改链接的链接文本。例如:

    <Modification_GUID_Name>Add a New Reviewer</Modification_GUID_Name>
    

有关工作流定义架构的详细信息,请参阅 Windows SharePoint Services 3.0 SDK 中的工作流程定义架构

修改表单处理

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

重要

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

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

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

See Also

概念

Office SharePoint Server 2007 中的工作流

工作流的 InfoPath 表单

工作流关联和初始表单 (Office SharePoint Server 2007)

工作流任务表单 (Office SharePoint Server 2007)

其他资源

Workflow Definition Schema for InfoPath Forms