规划表单驱动式应用程序

 

适用于: SharePoint Server 2010

上一次修改主题: 2016-11-30

许多 SharePoint Server 应用程序都包含 InfoPath 表单。这些应用程序的子级实际上都是由表单驱动的。这些表单驱动的应用程序通常同时具有以下特征:

  • 它们自动执行业务流程,例如下订单或完成员工绩效评估。

  • 有一条关键的结构化信息,其实例需贯穿不同活动才能完成业务流程。

虽然各个表单驱动的应用程序都是唯一的程序,但表单驱动的应用程序中的结构通常是常见设计。如果您的应用程序适合此常见设计,您或许可以使用本文提到的设计,并修改此设计以使其符合您的具体情况。

本文介绍如何设计使用表单的特殊 Microsoft SharePoint Server 2010 应用程序类型。但不介绍如何设计其他类型的 SharePoint Server 应用程序或如何设计表单本身。有关如何设计 Microsoft InfoPath 2010 表单的详细信息,请参阅 Office.com(该链接可能指向英文页面) (https://go.microsoft.com/fwlink/?linkid=187550&clcid=0x804)(该链接可能指向英文页面)。

本文内容:

  • 表单驱动的应用程序的结构

  • 关于规划表单驱动的应用程序

  • 确定关键信息

  • 使用列表或表单库

  • 工作流

  • 其他数据源

  • 门户

  • 摘要

表单驱动的应用程序的结构

复杂的表单驱动的 SharePoint Server 应用程序包含下列组件:

  • 一个 SharePoint 网站,其中可承载此应用程序。

  • 一个可捕获核心信息的表单模板。此表单模板可能具有不同视图,以便用于不同的用户组或信息生命周期的不同阶段。

  • 一个 SharePoint 列表或库,其中可存储填写完的表单模板(称为表单)实例。

  • 一个工作流,可在业务流程中传送项目。创建新表单时会启动此工作流。

  • SharePoint 列表,包含用于填充表单模板中的字段的辅助信息。表单和工作流可与这些列表相关联,以便管理此类列表中的信息。

  • 外部数据库或业务线 (LOB) 应用程序,可为表单模板或工作流提供数据。

  • 业务逻辑,表示为表单模板中的验证规则或工作流的一部分。

  • 一个充当门户的网页,并可使用户创建新的表单模板实例,以查看有关表单的其他信息。可能有多个门户供不同访问群体使用。

您的应用程序不必与此结构完全一致。一些表单驱动的 SharePoint Server 应用程序不包含以上所有这些组件,而其他某些应用程序略有不同,例如具有多个工作流。

关于规划常见的表单驱动的应用程序

若要设计一种常见的表单驱动的应用程序,请先确定驱动业务流程的关键信息。然后确定是将信息存储在 SharePoint 列表中还是存储在库中,并定义用于处理信息的工作流。接下来确定需要的所有其他数据源。最后,设计用户通过其访问应用程序的门户。

确定关键信息

规划表单驱动的应用程序的第一步是确定与该应用程序有关的关键信息。在许多情况下,关键信息很明显。例如,在支持应用程序中,关键信息可能是一个服务请求。在员工绩效考核流程中,关键信息可能是一个绩效考核表单。在采购系统中,关键信息可能是一个订单。

确定驱动流程的关键信息。如果关键信息不明显,请考虑下列建议:

  • 如果应用程序将自动执行现有流程,那么,随着流程的发展,是否有文档或文件在不同人员之间传递?该文档或文件可能是关键信息。

  • 在创建项目或项目显示在某个位置时,是否会启动流程?该项目可能是关键信息。

  • 关键信息可能具有一定的结构,并且可能会因处理操作而发生变化。例如,某订单包含客户的名称和地址、包括数量和价格的项目列表以及其他详细信息。当该订单经过处理后,其中会包含更多信息,例如跟踪号码。

  • 关键信息可能具有与之关联的状态,并且该状态会随时间改变。

如果无法确定驱动流程的关键信息,那么本文提到的设计可能不适合您的应用程序。

在实施应用程序时,需为此关键信息创建表单模板。此表单模板在本文中称为“核心表单”。

使用列表或表单库

确定是将核心表单实例存储在 SharePoint 列表中还是存储在 SharePoint Server 表单库中。

如果可能,请使用列表。基于列表的解决方案更简单更有效。但在某些情况下,列表无效。如果满足下列任何条件,请使用表单库:

  • 必须保留表单实例的更改历史记录。

  • 核心表单包含重复节,例如员工考核表单中任意数量的成绩。

  • 核心表单包含嵌套数据,例如包含一个项目的订单表单,而该项目包含产品代码、数量、大小和价格。

  • 核心表单包含代码。

    在下面的情况下表单可能包含代码:

    • 表单包含用于执行自定义操作的按钮。

    • 表单中某个字段的值基于此表单中其他值的复杂组合。

  • 核心表单的实例需经过数字签名。

  • 必须以 XML 形式存储核心表单各实例的相关数据。

如果将核心表单实例存储在列表中,则核心表单中的每个字段都将变为该列表中的一列,并且核心表单的每个实例都将变为一个列表项。如果将核心表单实例存储在表单库中,则每个实例都将变为一个 XML 文档,并且这些文档将存储在该库中。

工作流

当核心表单实例发生变化时,将启动业务流程。通常,创建新的核心表单实例时将启动业务流程,而其他事件(例如修改核心表单实例或将其分配给某人)也会启动流程。

业务流程会在必须执行操作的人员之间和系统中传送核心表单实例。例如,如果核心表单是一个服务请求,则创建新的服务请求可能会启动相应流程,以便将此服务请求分配给某个服务代表,使其能够与创建此请求的人员交互。该服务代表可能会根据与创建者讨论的结果执行各项操作:例如,将此请求上报给高级代表、将此请求标记为已解决、将此请求转发给订单签发部门(如果应向创建者发送替换订单)等。

确定处理核心表单实例时涉及的步骤和决策点。此系列步骤将作为工作流呈现在 SharePoint Server 中。有关工作流的详细信息,请参阅规划工作流 (SharePoint Server 2010)

其他数据源

表单模板可以从外部源(例如数据库、Web 服务或 SharePoint 列表)检索数据。外部数据的一个常见用途是填充表单模板(如成本中心列表)中某字段的一组有效值。您还可以使用规则,根据外部数据组合和其他字段的值计算某字段的值。例如,通过使用外部数据源查找其姓名被输入“提交者”字段中的员工的经理,可以获取“审批者”字段的值。

确定核心表单要访问的外部数据。对于各个外部数据源,指示数据源自哪个位置。例如,数据是源自 SharePoint 列表、SQL 数据库、LOB 系统(如 SAP)还是来自其他一些源?

备注

通过创建外部内容类型,可以直接从 SharePoint Server 列表访问某些 LOB 数据。有关如何创建外部内容类型的详细信息,请参阅 Business Connectivity Services 概述 (SharePoint Server 2010)

针对向核心表单提供数据的任何 SharePoint 列表,考虑如何管理此类列表中的数据。是否需要创建一个表单来在此类列表中输入新数据?是否需要使用工作流来管理此类列表中的项目?例如,如果核心表单使用了成本中心列表,则可能需向此类列表中添加审批工作流。

门户

谁将使用此应用程序?是否有不同的用户角色,是否有某角色的成员将执行不同于其他角色用户的操作或查看不同于其他角色用户的信息?如果不同角色用户将使用此应用程序执行不同操作,请考虑为每个角色创建一个门户。并为使用相应门户的用户角色定制该门户提供的操作和信息。

例如,在员工绩效考核应用程序中,可能至少有三个角色:

  • 员工,负责填写绩效考核表单。

  • 经理,负责向绩效考核表单中添加信息并批准绩效考核。

  • 人力资源专业人员,负责创建报告并根据绩效考核结果汇总信息。

员工可通过员工门户访问绩效考核应用程序,利用该门户,员工可以创建新的绩效考核表单,并跟踪自己的绩效考核是否通过其经理的批准。经理可通过经理门户访问此应用程序,该门户显示其员工的列表,同时指示员工是否已提交绩效考核表单,并会显示一个用于打开员工的绩效考核表单的链接。人力资源专业人员可通过 HR 门户访问此应用程序,该门户显示摘要统计信息,其中包含批准的、已提交但尚未批准的或者尚未提交的绩效考核表单的数量。

可以创建一种最简单的门户,这种门户只是其中存储了核心表单实例的 SharePoint 列表或库的视图。您可以使用筛选器或应用条件格式来针对特定用户自定义该视图。

您还可以为每个用户角色设计自定义网页,并为每个用户提供适合其角色的 URL,以便访问应用程序。在这些门户网页上,可以包括下列某些元素:

摘要

如果您能够确定您的应用程序的特征与上述各节中的大多数特征相符,那么您或许可以依据表单驱动的应用程序的范例来实施此应用程序。创建一个 SharePoint 网站来承载此应用程序。为核心表单创建一个表单模板;创建一个列表或库来存储核心表单实例;将表单模板与列表或库关联。添加一个工作流,它会在向列表或库中添加新表单时触发。创建并填充为表单模板提供数据时所需的其他任何列表。创建一个或多个用户可通过其与应用程序进行交互的门户。

See Also

Concepts

关于 SharePoint Server 2010 中的表单
InfoPath 表单管理 (SharePoint Server 2010)