设计响应工作流状态的表单

应用对象
InfoPath 2010 InfoPath 2013

可以设计Microsoft Office InfoPath 表单,以显示与工作流的当前状态对应的特定数据。 为此,可以设计表单模板,以使用基于工作流状态在其窗体中启动操作的规则。 这可以简化人们用于填写表单的流程。

本文介绍如何设计费用报表表单模板,以自动显示表单模板的不同视图,具体取决于关联的审批工作流的状态。 例如,在工作流启动之前,窗体将显示一个“支出”视图,其中包含一个重复表,用户可以在其中输入费用。 当工作流状态为 “正在进行”时,窗体将显示“支出摘要”视图,其中显示了每个类别的总费用。 当工作流状态为 “已完成”时,窗体将显示“已完成”视图,其中包括有关估计报销时间的详细信息。

若要使表单能够响应工作流状态,您必须在 Microsoft Office SharePoint 服务器 2007 网站或 Windows SharePoint Services 3.0 网站上执行任务(表单所在的位置)以及 InfoPath 中的任务。 在 SharePoint 网站上,您必须创建工作流和网站内容类型,在 InfoPath 中,您必须向表单模板添加数据连接、创建规则并发布表单模板。

注意

本文使用将表单模板发布为网站内容类型的示例方案。 在将表单模板发布到 SharePoint 网站时,还可以将表单模板发布到共享网络位置或创建新的文档库。 有关发布表单模板的详细信息, 请参阅另请参阅 部分。

本文内容

工作流与 InfoPath 表单结合使用的简介

工作流通过在 Microsoft Office SharePoint 服务器 2007 网站或 Windows SharePoint Services 3.0 网站中的文档和项目上实现特定的业务流程,帮助用户协作处理文档和管理项目任务。 工作流可帮助组织遵守一致的业务流程,并通过管理特定业务流程中涉及的任务和步骤来提高组织的效率和工作效率。 这使执行这些任务的人员可以专注于执行工作,而不是管理工作流。

可以启用 InfoPath 窗体以显示与工作流的当前状态对应的特定数据。 为此,可以设计表单模板,以使用基于工作流状态在表单中启动操作的规则。 这可以简化人们用于填写表单的流程。 例如,当工作流的状态为 “完成 ”时,可以让窗体显示只读视图,因此不应更改窗体中的数据。

必须将工作流添加到 SharePoint 列表、库或内容类型,使其可用于 InfoPath 表单模板。 网站的可用工作流也因网站的类型以及是否使用 Microsoft Office SharePoint Designer 2007 创建自定义工作流而异。

本文使用审批工作流来说明如何将工作流与 InfoPath 表单模板一起使用。 审批工作流将保存到库中的 InfoPath 表单路由到一组人员进行审批。 默认情况下,审批工作流与文档内容类型相关联,并在文档或表单库中自动可用。

每个工作流由具有描述性名称的不同状态定义,例如“正在进行”。 状态的名称因工作流类型而异。 例如,在运行 Office SharePoint 服务器 2007 Microsoft 的服务器上可用的审批工作流包括“正在进行”、“已取消”和“已完成”状态。 三态工作流的状态(在 Windows SharePoint Services 3.0 中提供)可由将工作流添加到库或列表的人员定义,而其他工作流则使用标准状态,例如前面提到的“正在进行”状态。 虽然描述性名称对用户可见,但工作流状态由数值以编程方式表示。 若要设计表单模板以响应特定的工作流状态,必须知道要使用的工作流状态的数值。 这是因为 InfoPath 使用工作流的数值来启动操作,例如切换视图。

如前所述,可以启用 InfoPath 表单模板以显示与工作流的当前状态对应的特定数据。 尽管本文介绍如何启用支出报表表单模板,使其根据特定视图在工作流中的状态自动显示该视图,但你也可以通过添加其他操作来自定义工作流。 例如,可以允许窗体显示显示说明的对话框消息,而不是允许窗体显示特定视图。 可以使用三态工作流,而不是使用审批工作流。

注意

如果启用本文所述的操作以外的其他操作,则可能需要执行其他步骤来帮助确保表单模板与所使用的工作流正确工作。

返回页首

兼容性注意事项

如果计划创建与浏览器兼容的表单模板,请记住,文档操作栏(在Microsoft Office 文档(包括 InfoPath 表单)中填写表单时可见,在用户在 Web 浏览器中填写的与浏览器兼容的表单模板中不可见。 但是,仍可以将基于浏览器的表单与工作流配合使用。 若要更改此类表单的工作流状态,工作流参与者可以使用文档库设置。 在 “另请参阅 ”部分中查找有关使用 SharePoint 网站更改工作流设置的详细信息。

返回页首

开始之前

在执行本文中的任务之前,请确保以下各项:

  • 请与场管理员联系,确认是否已为要使用的 SharePoint 网站安装并启用了审批工作流。
  • 确保至少具有 SharePoint 网站的“设计”权限级别。 此权限级别对于发布表单模板和创建工作流是必需的。
  • 创建包含两个或更多视图的表单模板,并自定义每个视图以显示适合每个工作流状态的数据类型。 例如,对于要在工作流完成时显示的视图,可以将该视图中的控件设置为只读。
  • 创建文档或表单库,并确保将库设置为允许多个内容类型。

返回页首

步骤 1:将审批工作流添加到库

此方案侧重于审批工作流,但如果需要,可以使用其他工作流类型。 如果使用其他工作流类型,则该工作流的选项可能与本文中所述的选项不同。

  1. 打开要向其添加工作流的库。

  2. “设置” 菜单上,单击要打开的库类型的设置。
    例如,在文档库中,单击“文档库设置”。

  3. “权限和管理”下,单击“ 工作流设置”。

  4. 单击“ 添加工作流”。

  5. 在“添加工作流”页上的“ 工作流 ”部分中,单击“ 审批”。

  6. “名称” 部分中,键入工作流的唯一名称。

    1. “任务列表” 部分中,指定要用于此工作流的任务列表。

      注意

      • 可以使用默认 任务 列表,也可以创建一个新列表。 如果使用默认 任务 列表,则工作流参与者将能够使用“任务”列表的 “我的任务” 视图轻松查找和查看其工作流 任务
      • 如果此工作流的任务将显示要与常规 任务 列表分开保留的敏感或机密数据,则应创建新的任务列表。
      • 如果你的组织将具有许多工作流,或者如果工作流将涉及许多任务,则应创建新的任务列表。 在此实例中,你可能希望为每个工作流创建任务列表。
  7. “历史记录列表” 部分中,选择要用于此工作流的历史记录列表。 历史记录列表显示工作流的每个实例期间发生的所有事件。
    可以使用默认的 历史记录 列表,也可以创建一个新列表。 如果组织将拥有大量工作流,则可以为每个工作流创建单独的历史记录列表。

  8. 若要允许手动启动工作流,请在“开始选项”部分选中“允许经过身份验证的用户使用编辑项目权限检查手动启动此工作流”框。

  9. 若要要求其他权限才能启动工作流,请选中“需要管理列表权限以启动工作流检查框。

  10. 指定所需的任何其他选项,包括希望工作流启动时,然后单击“ 下一步”。

  11. 在“自定义工作流”页上,指定所需的选项,包括任务的路由方式、默认工作流开始值以及工作流的完成方式,然后单击“ 确定”。
    选择以下任何部分中的选项。 无需在每个部分中指定选项:
    工作流任务

    目的 操作
    (并行工作流) 同时向所有参与者分配任务 选择 同时 (并行) 的所有参与者
    一次将任务分配给一个参与者,要求一个参与者先完成任务,然后下一个参与者才能接收任务 (串行工作流) (串行) 一次选择一个参与者
    允许工作流参与者将其任务重新分配给其他人 选中“将任务重新分配给其他人检查”框。
    允许工作流参与者请求对文档或项进行更改。 必须在任务完成之前批准更改。 选中“在完成任务之前请求更改检查”框。

    默认工作流开始值

    目的 操作
    为此工作流的所有实例指定参与者的默认列表 键入工作流启动时要包括的参与者的姓名,或单击“ 审批者 ”,然后从目录服务中选择“人员和组”。

    注意: 用分号分隔名称。如果将此工作流设置为串行工作流,请按希望分配任务的顺序添加工作流参与者的名称。
    将单个任务分配给组,而不是为每个组成员分配单个任务 选中“将单个任务分配给输入的每个组 (不要展开组) 检查框。
    允许启动工作流的人员更改或添加参与者 选中“在启动此工作流时允许对参与者列表进行更改检查”框。
    指定随每个任务一起显示的默认消息 在文本框中键入消息或说明。
    指定并行工作流的截止日期 “任务到期日期”下输入 (并行)
    指定串行工作流参与者完成工作流任务的时长 在“ 为每个人提供以下时间以完成其任务 (串行) ”下,键入一个数字,然后选择 “日 () ”或“ 周 () ”作为时间增量。
    指定在工作流启动时应接收警报 (而不是任务分配) 的人员列表 “通知其他人”下,键入要通知的人员的姓名,或单击“ 抄送 ”,然后从目录服务中选择人员和组。
    注意: 用分号分隔名称。

    完成工作流

    目的 操作
    指定当特定数量的参与者完成任务时完成并行工作流 选中“以下任务数已完成检查”框,然后键入一个数字。
    指定在拒绝文档或项目时工作流完成 选中“文档被拒绝检查框。
    指定文档或项发生更改时工作流完成 选中“文档已更改检查框。

    完成后工作流活动

    目的 操作
    工作流完成后,更新文档或项目的审批状态 选中“更新审批状态 (使用此工作流控制内容审批) 检查” 框。

    注意:如果使用审批工作流管理库的内容审批,并且选中了“添加工作流”页上的“启动此工作流以批准发布项目的主要版本检查”框,则默认选中此检查框。如果在“添加工作流”页上未选中“启动此工作流以批准发布项目的主要版本检查”框,因为不希望此工作流成为库的默认内容审批工作流,则可以选中此检查框,使此工作流成为特定用户可以手动启动的辅助内容审批工作流。

返回页首

步骤 2:向表单模板添加数据连接

以下过程说明如何添加辅助数据连接,用于查询在步骤 1 中添加的工作流的工作流状态。 此辅助数据连接提供的数据使表单中的规则能够根据工作流的状态切换视图。

  1. 在 InfoPath 的“ 工具 ”菜单上,单击“ 数据连接”。
  2. 在“ 数据连接 ”对话框中,单击“ 添加”。
  3. 在“数据连接向导”中,单击“ 创建新连接”,单击“ 接收数据”,然后单击“ 下一步”。
  4. 在向导的下一页上,单击“ SharePoint 库或列表”,然后单击“ 下一步”。
  5. 在向导的下一页上,键入 SharePoint 网站的 URL。
  6. “选择列表或库” 列表中,单击在步骤 1 中添加“审批”工作流的文档库的名称,然后单击“ 下一步”。
  7. 在向导的下一页上,在“选择字段”列表中,选择与工作流名称匹配的字段名称旁边的“检查”框。
    字段的名称可能与工作流名称不匹配。 如果字段名称以下划线或字母以外的特殊字符开头,则将在列表中自定义工作流的名称。
  8. 选中“仅检查包含活动窗体的数据”框,然后单击“下一步”。
  9. 清除“在表单模板检查中存储数据的副本”框,然后单击“下一步”。
  10. 在向导的下一页上,在 “输入此数据连接的名称”框中,键入此辅助数据连接的描述性名称。 此名称显示在 “数据源 ”任务窗格的“ 数据源 ”列表中。
  11. 若要自动运行查询,每当用户打开窗体时,请选择“打开窗体时自动检索数据”框检查。
  12. 在该向导的最后一页上,单击“完成”。
  13. 在“ 数据连接 ”对话框中,单击“ 关闭”。

返回页首

步骤 3:向表单模板添加规则以显示特定视图

设计表单模板时,可以使用规则自动显示对话框、设置字段的值、查询或提交表单数据到数据连接、切换视图或打开或关闭窗体以响应某些事件和条件。 这些事件可以包括对数据源中特定字段或组的更改、单击按钮、在重复表中插入重复部分或行,或者窗体的打开或提交。 这些条件可以包括计算、XPath 表达式和用户角色。 条件还可以包括字段的值是否为空、是否在指定范围内、是否等于另一个字段的值,或者是否以或包含某些字符开头。

在这种情况下,你将创建一个规则来根据工作流状态切换视图。

  1. “工具 ”菜单上,单击“ 窗体选项”。

  2. “类别 ”列表中,单击“ 打开并保存”。

  3. “打开行为”下,单击“ 规则”。

  4. 在“ 打开窗体的规则 ”对话框中,单击“ 添加”。

  5. 在“ 名称 ”框中,键入规则的名称。
    例如,键入 “切换视图”。

  6. 若要指定规则应运行的条件,请单击“ 设置条件”。

  7. 在“ 当此条件为 true 时应用规则”下,在第一个框中,单击“ 选择字段或组”。

  8. “数据源” 列表中,单击在步骤 2 中添加的辅助数据源的名称,然后单击“ 确定”。

  9. 单击与工作流状态对应的字段的名称。
    可能需要在窗口中展开文件夹,直到看到所需的字段。

  10. 在“ 条件 ”对话框的第二个列表中,单击 “等于”。

  11. 在第三个列表中,单击“ 键入数字”,然后键入与工作流状态对应的值。
    例如,对于在工作流完成时显示的视图,请键入 5
    审批工作流中工作流状态的数值

    状态 数值
    正在进行 2
    已完成 5
    已取消 15
    已批准 16
    已拒绝 17

    注意

    • 其他工作流中状态的数值可能有所不同。
    • InfoPath 中工作流状态的值是只读的。 这意味着无法设计表单模板,以便用户可以通过在窗体本身上的控件中输入值来手动更改工作流的状态。
  12. 单击“确定”。

  13. 在“ 规则 ”对话框中,单击“ 添加操作”。

  14. “操作”下,单击“ 切换视图”。

  15. 在“ 视图”下,单击工作流状态与此条件的状态匹配时要显示的视图的名称,然后单击“ 确定”。
    例如,如果在步骤 11 中键入 了 2 ,请在工作流状态等于“ 正在进行”时单击要显示的视图的名称。

  16. 在“ 规则 ”对话框中,单击“ 确定”。

  17. 重复步骤 4 到 16 以创建其他规则,以在工作流的每个阶段切换相应的视图。

返回页首

步骤 4:将表单模板发布为网站内容类型

发布表单模板时,可以将其发布到文档库,也可以将其发布为可在网站集中的多个文档库中使用的网站内容类型。 由于已创建文档库并向其分配工作流,因此必须将表单模板发布为内容类型。 稍后,可以将表单模板的网站内容类型关联到创建的库。

除了将表单模板发布为网站内容类型外,还可以在将表单模板发布到 SharePoint 网站时将表单模板发布到共享网络位置或创建新的文档库。 有关发布表单模板的详细信息, 请参阅另请参阅 部分。

  1. 在“文件”菜单上,单击“保存”。

  2. 在“ 另存为 ”对话框中,浏览到要保存表单模板的位置,然后单击“ 保存”。

  3. 若要打开“检查设计”任务窗格,请单击“工具”菜单上的“检查设计”。

  4. 如果“ 检查设计” 任务窗格列出了错误,请修复这些错误,然后单击“ 刷新 ”以确定错误是否仍然存在。

  5. 在“ 文件 ”菜单上,单击“ 发布”。

  6. 在“发布向导”中,单击“指向包含或不带InfoPath Forms Services的 SharePoint 服务器”,然后单击“下一步”。

  7. 在向导的下一页上,在“输入 SharePoint 或InfoPath Forms Services网站的位置”框中,键入要在其中发布表单模板的 SharePoint 网站的位置,然后单击“下一步”。

  8. 若要允许用户使用 Web 浏览器填写此表单,请在向导的下一页上,选择“启用使用浏览器检查填写此表单”框。

  9. 单击“ 网站内容类型 (高级) ”,然后单击“ 下一步”。

  10. 在向导的下一页上,单击“ 创建新内容类型”。

  11. “基于内容类型 ”列表中,单击“ 窗体”,然后单击“ 下一步”。

  12. 在向导的下一页上,键入新内容类型的名称和说明,然后单击“ 下一步”。

  13. 在向导的下一页上,在 “为表单模板指定位置和文件名 ”框中,键入 SharePoint 网站的位置,然后单击“ 浏览”。

  14. 在“ 浏览 ”对话框中,浏览到要将表单模板发布为网站内容类型的服务器上的位置,然后在“ 文件名 ”框中键入表单模板的名称,然后单击“ 保存”。

  15. 单击“下一步”。

  16. 在表单模板中选择要在文档库的默认视图中显示为列的字段。
    如何?

    1. 单击“添加”。

    2. 选择要在文档库中添加为列的字段,然后执行下列操作之一:

      • 在“列名称”框中键入 列的名称
      • 在“ 网站栏组 ”列表中选择网站栏,在“ 列名 ”列表中选择一个名称,然后单击“ 确定”。
        如果选择了重复字段以在文档库中显示数据,可以通过单击 “函数 ”列表中的值来定义要在文档库中显示字段的方式。 可以选择是显示字段中的第一个值、字段中的最后一个值,还是显示字段的所有匹配项的计数,还是将所有值合并在一起。
    3. 单击“确定”。

  17. 单击“下一步”。

  18. 在向导的下一页上,验证显示的信息是否正确,然后单击“ 发布”。

  19. 单击“ 关闭”,然后验证表单模板是否为 SharePoint 网站上的内容类型。
    如何?

    1. 在 Web 浏览器中打开 SharePoint 网站。
    2. 在网站右上角的“ 网站操作” 菜单上,单击“ 网站设置”。
    3. “网站设置”中的“库”下,单击“网站内容类型”。
      表单模板应列在网站 内容类型库中的 InfoPath内容类型下。

返回页首

步骤 5:向文档库添加内容类型

内容类型使组织能够跨网站集更有效地组织、管理和处理内容。 通过为特定类型的文档定义内容类型,组织可以确保更有效地管理其中每个内容组。 可以通过向列表或库添加内容类型来设置列表或库,以包含多个项目类型或文档类型的项目。

注意

若要向列表或库添加内容类型,至少需要该列表或库的设计权限级别。

在开始之前,请确保库已设置为允许多个内容类型。

允许多个内容类型

  1. “设置” 菜单上,单击“ 文档库设置”。
  2. “常规设置”下,单击“高级设置”
  3. “内容类型” 部分中,选择“ ”以允许多个内容类型,然后单击“ 确定”。
  1. 如果列表或库尚未打开,请在“快速启动”上单击其名称。

    注意

    如果未显示该列表或库的名称,则请单击“查看所有网站内容”,然后单击列表或库的名称。

  2. “设置” 菜单上,单击“ 文档库设置”。

  3. “内容类型”下,单击“ 从现有网站内容类型添加”。

  4. “选择内容类型” 部分的“ 从中选择网站内容类型” 列表中,选择要从中选择的网站内容类型组。

  5. “可用网站内容类型” 列表中,单击所需的内容类型,然后单击“ 添加 ”,将所选内容类型移动到 要添加的内容类型 列表。

  6. 若要添加其他内容类型,请重复步骤 4 和 5,然后单击“ 确定”。

现在,当用户在此库中创建新窗体时,窗体的视图将根据工作流的状态显示。

返回页首