在 SharePoint 中创建适用于 SQL Server 的外部内容类型

了解如何在 SharePoint 中创建适用于 SQL Server 的外部内容类型。

当您使用外部数据时,创建一个外部内容类型是一项关键任务。 外部内容类型包含有关连接、访问、操作方法、列、筛选器以及其他用于从外部数据源中检索数据的元数据的重要信息。

开始之前

使用外部数据需要几个先决任务才能安全地访问数据。 以下信息可以帮助您计划后续步骤。 此外,如果您在尝试使用外部数据时遇到问题,此信息可以帮助您找出问题。 若要访问外部数据,您或管理员必须执行下列操作:

准备 SQL Server 数据库管理员需要提供权限,以确保适当人员能访问数据并确保数据不落入他人之手。 数据库管理员还必须创建一个具有 db_owner 权限的 SQL Server 帐户。 数据库管理员可能还需要创建特定的表、视图、查询、列别名等,以将结果限制在所需范围内或帮助提高性能。

配置 SharePoint 服务 管理员必须激活 Business Connectivity Services (BCS) 和 安全存储服务。

配置安全存储服务 管理员必须确定外部数据源的最佳访问模式、创建目标应用程序并为目标应用程序设置凭据。

配置 Business Data Connectivity Services 管理员必须确保创建外部内容类型的用户具有 Business Data Connectivity (BDC) 元数据存储的权限,并确保适当的用户能够访问外部列表所属的外部内容类型。

确保 Office 2013 已就绪 若要使用外部数据与 Office 2013 产品同步,您必须使用 Windows 7 或更高版本,并确保 Business Connectivity Services (BCS) 的 Office 安装选项已启用(这是默认值)。 此选项会安装 Business Connectivity Services 客户端运行时,它执行下列操作:缓存并同步外部数据、将业务数据映射到外部内容类型、在 Office 产品中显示外部项选取器以及在 Office 产品内运行客户解决方案。 您还必须在每台客户端计算机上安装 SQL Server Compact 4.0, .NET Framework 4 和 WCF Data Services 5.0 for OData V3(如有必要,系统将自动提示您下载该软件)。

定义常规信息

  1. 启动 Microsoft SharePoint Designer 2013。

  2. 单击"打开网站",并输入相应的网站名称。

  3. 在“导航”窗格中的“网站对象”下,选择“外部内容类型”

    注意

    SharePoint Designer 2013 在外部内容类型设计器的初始窗口中按命名空间对外部内容类型进行分组。

  4. 若要打开外部内容类型设计器,请单击功能区上的“外部内容类型”

  5. 在"新建外部内容类型"页上,执行下列操作:

    • 在"名称"旁边,单击"新建外部内容类型",并为外部内容类型输入一个唯一名称。
    • 如果您需要一个更有描述性的显示名称,请在"显示名称"旁边输入一个不同的名称。

定义常规和 Office 行为

  1. 在"Office 项类型"下拉列表中,选择下列项类型之一:

    • 泛型列表 为任何列表类型选择此选项。
    • 约会、联系人、任务或 Post 如果您要创建其行为类似于 Outlook 联系人、任务、约会或 Post 项的列表,请选择此选项。 您在此处选择的 Office 项类型确定了您要连接到外部内容类型的 Outlook 行为。 例如,"客户"外部内容类型的行为与 Outlook 中的本机联系人项相同。
  2. 在“离线同步外部列表”复选框中,确保“已启用”处于选中状态(此为默认值)。

    注意

    如果您禁用此选项,则“SharePoint 连接到 Outlook” 命令对外部列表不可用。

    注意

    场和网站功能,即“外部列表的脱机同步”也必须处于活动状态。 此功能在场一级默认处于活动状态,但在网站级别默认不处于活动状态。

与外部数据建立连接

  1. 若要为外部内容类型指定 SQL Server 数据库,请单击"单击此处发现外部数据源并定义操作"。

  2. 单击"添加连接",在"选择外部数据源类型"对话框中选择"SQL Server",然后单击"确定"。

  3. 在" SQL Server 连接"对话框中,输入服务器的名称、数据库名称、可选说明,然后单击"确定"。

  4. 若要选择身份验证模式,请选择下列选项之一:

    • 使用用户标识进行连接 使用传递身份验证模式。
    • 使用模拟 Windows 标识进行连接 使用 WindowsCredentials 身份验证模式。
    • 使用模拟自定义标识进行连接 使用 RDBCredentials 身份验证模式。
  5. 在"安全存储应用程序 ID"框中,输入在 安全存储服务 中创建的目标应用程序的 ID 名称。

  6. 单击“确定”。

SharePoint Designer 2013 验证和测试连接信息。 如果您看到消息,必须解决与消息相关的问题才能继续。

选择表、视图或例程

  1. 在数据源资源管理器中,展开数据库以查看它包含的表、视图和例程。
  2. 选择表、视图或例程。

定义操作

  1. 在数据源资源管理器中,右键单击表、视图或例程,然后选择下列选项之一:

    • 创建所有操作:定义创建项、删除项、读取项、读取列表和更新项操作。

      注意

      “创建所有操作”仅可用于表和视图。 Routines require specific operations.

    • 新建读取项操作:定义读取项操作。

    • 新建读取项操作 定义一个读取项列表。

    • 新建更新操作 定义一个更新项操作。

    • 新建删除读取 定义一个删除项操作。

    • 刷新 在数据源资源管理器中刷新表、视图和例程的列表。

  2. 单击"下一步"。

    注意

    • 在跨多个表的视图中,确保支持该写操作。 否则,"创建所有操作"或"新建更新操作"可能会失败。
    • 始终定义至少一个"新建读取项目操作"和"新建读取列表操作",因为 SharePoint 功能(如外部列表)依赖于这些操作。
    • 当表或视图不支持某些操作时,请选择特定操作,而不是"创建所有操作"。

添加列

  1. 若要指定从表或视图显示的列,请单击"下一步"。

  2. 在"参数配置"对话框中,默认情况下所有列(称为"数据源元素")都已选定。 若要删除不必要的列,请清除相应的复选框。

    注意

    不同于本机 SharePoint 列表,您不能更改外部列表的列名称。 可考虑使用 SQL 列别名,以提供更有意义的名称或较短的名称。

  3. 若要选择标识符字段,请单击选中字段(通常是唯一值字段),再单击“属性”下的“映射到标识符”

    重要

    若要防止更新特定字段,如 ID 或主键字段,请清除“必需”复选框,而选中“只读”复选框(检索项目需要它),这样您就可以更新其他字段了。

    提示

    始终仔细阅读“错误和警告”窗格中的消息。 它们提供了用于确认您的操作或对问题进行疑难解答的有用信息。 定期单击“错误和警告”窗格,并确保没有更多错误或警告。

映射 Outlook 字段

如果您的外部内容类型映射到 Outlook 项目类型,则必须将一个或多个字段从外部内容类型映射到 Outlook 项一个目字段。 当您将一个外部内容类型(如"客户")映射到一个 Outlook 项目类型(如"联系人")时,必须将外部内容类型中的各个字段(如"客户名字"、"客户姓氏"、"客户地址"和"客户电话")显式映射到它们对应的 Outlook 项目类型字段(如联系人的"名字"、"姓氏"、"业务地址"和"业务电话")。

  • 对每个字段,执行下列操作:

    1. 单击并突出显示该字段。

    2. “属性”下的 “Office 属性”旁边,单击向下箭头。 然后选择相应的匹配字段。

      注意

      您不需要映射所有对应字段。 然而,必须映射下表中所示的字段。

表:Outlook 项类型映射到 Outlook 项字段

Outlook 项目类型 Outlook 项目字段
Contact LastName
任务 主题
Appointment 开始、结束和主题
文章 主题

未映射的字段根据编号显示为扩展属性,如下所示:

  • 相邻 附加到 Outlook 窗体的默认页面底部的窗体区域(二到五个字段)。
  • 独立 作为新页面添加到 Outlook 窗体(六个或更多字段)。

设置外部项目选取器控件

外部项选取器控件允许用户选择字段(如 ID 字段或具有唯一值的字段)来方便地选择项目。 此控件在 SharePoint 和 Office 2013 产品中可用。 例如,用户可以使用此控件从外部客户列表中选择项目,Word 2013 启用此控件以用于链接到外部数据列的内容控件。最好选择要在外部项选取器控件中显示的特定列,因为默认操作是显示所有列,在大多数情况下,这并不需要。

  1. 对于要在外部内容项目选取器中显示的每个字段,单击以突出显示该字段,然后在"属性"下,单击"在选取器中显示"复选框。
  2. 单击"下一步"。

注意

您定义的所有筛选器都显示在外部项目选取器控件中。 您无法从外部项目选取器控件中移除特定筛选器,但您在创建或修改筛选器时,可以通过单击“筛选器配置”对话框中的“是默认值”来定义默认筛选器。

定义筛选器

如果您不定义筛选器,外部列表会返回所有数据,直到达到 Business Connectivity Services (BCS) 阻止限制(默认值为 2000 个项目),或返回在外部内容类型中定义的所有数据(如果数据数目小于当前阻止限制)。 此外,结果的整个处理过程发生在 SharePoint 产品内。 最好定义至少一个筛选器。 通常,您需要了解两种类型的筛选器:

  • 数据源筛选器:创建外部内容类型筛选器(称为“数据源筛选器”)时,筛选器操作发生在 SQL Server 数据库内。 处理大量数据时,这一点非常重要,因为可以将处理工作从 SharePoint 产品卸载到外部数据库,从而提升性能。 创建外部列表后,可以按如下方式使用数据源筛选器:创建视图,在“列表视图”设置页的“数据源筛选器”部分中指定不同的筛选器值。
  • SharePoint 筛选器:用户仍可以使用 SharePoint 筛选器筛选数据(可以使用列标题筛选器,也可以使用“列表视图”设置页中的“筛选器”部分)。 在这种情况下,筛选器操作发生在 SharePoint 产品内,而不是 SQL Server 数据库内。

要考虑的一个好策略是基于特定数据源筛选器创建一组外部列表视图,这些数据筛选器确保在外部数据源中首先筛选出较大的数据量,然后用户可以使用 SharePoint 筛选器进一步筛选和优化结果。

您可以创建几种不同类型的筛选器。 对于您创建的每个筛选器,执行下列操作:

  1. 在"属性"下的"数据源元素"旁边,选择一个字段。
  2. 在"属性"下的"筛选器"旁边,单击"单击以添加"来显示"筛选器配置"对话框。
  3. 单击"添加筛选器参数"。
  4. 在"新建筛选器"框中,输入筛选器名称。
  5. 在"筛选器类型"框中,选择一种筛选器类型:

比较

比较筛选器会基于某个条件(如 State = "New Jersey")限制返回哪些项目,并转换为一个 SQL WHERE 子句。

  1. 在"筛选器类型"框中,选择"比较"。
  2. 在"操作符"框中,选择一个操作。
  3. 在"筛选字段"框中,确保选中了您要比较的字段。
  4. 若要按大小写匹配用户输入的值,请单击“区分大小写”
  5. 若要在外部项选取器控件中显示可能匹配项(如果有多个)的列表,请选择“用于在外部项选取器中创建匹配列表”
  6. 单击“确定”
  7. 在“属性”下的“默认值”旁边,输入要作为筛选依据的初始值(如果用户未输入值的话)。 如果不输入值,外部列表就不会显示任何项。

通配符

通配符筛选器根据用户输入的字符串值(如 State Contains "New")限制返回的项,并转换为 SQL LIKE 子句。 有效的 SQL Server 通配符字符有 *(星号)和 _(下划线),前者匹配任意数量的字符,后者匹配单一字符。

  1. 在"筛选器类型"框中,选择"通配符"。
  2. 在"筛选器字段"框中,选择一个字段。
  3. 若要按大小写匹配用户输入的值,请单击“区分大小写”
  4. 若要在外部项选取器控件中显示可能匹配项(如果有多个)的列表,请选择“用于在外部项选取器中创建匹配列表”
  5. 单击“确定”
  6. 在“属性”下的“默认值”旁边,输入要作为筛选依据的初始值(如果用户未输入值的话)。 如果您不输入值,外部列表不显示任何项目。 最好输入一个 *(星号)作为默认值。

限制

在大多数情况下,您必须为读取和读取列表操作定义一个限制筛选器。 如果您没有定义"默认限制"值,不会从外部数据源检索任何数据。 确保您为限制筛选器输入的默认值小于 2000,因为 Business Connectivity Services (BCS) 的默认阻止值为 2000 个项目。 如有必要,您可以提高此限制。

  1. 在"筛选器类型"框中,选择"限制"。

  2. 在“数字”框中,输入一个数字。

  3. 若要在外部项选取器控件中显示可能匹配项(如果有多个)的列表,请选择“用于在外部项选取器中创建匹配列表”

  4. 在“属性”下的“默认值”旁边,输入要作为筛选依据的初始值(如果用户未输入值的话)。 如果您不输入值,外部列表不显示任何项目。

  5. 单击“确定”。

    注意

    建议 SQL Server 数据库管理员创建特定的表、视图、索引和已优化查询,以限制只生成所需的结果,这样有助于提升性能。

页码

使用外部内容类型页码来取代在外部列表的"列表视图"页中定义的 SharePoint 页面限制。 它们的区别是:

  • 外部内容类型页码首先处理 SQL Server 数据库内的结果,然后仅返回并显示由"页面大小"值确定的行数。
  • SharePoint 页面限制从 SQL Server 数据库返回所有行(直到达到"默认值"大小),然后显示由"列表视图"设置页中的 SharePoint 页面限制值确定的行数。

使用外部内容类型页码通常更有效。 此外,"顺序"值有助于确保精确显示返回的结果。

  1. 在"筛选器类型"框中,选择"页码"。
  2. 在"页面大小"框中,输入一个数字。
  3. 在"顺序"框中,选择一个排序方向。
  4. 单击“确定”
  5. 在“属性”下的“默认值”旁边,输入要作为筛选依据的初始值(如果用户未输入值的话)。 如果您不输入值,外部列表不显示任何项目。
  6. 如果要显示但不修改一个字段,请单击并突出显示该字段,然后在"属性"下选择"只读"。
  7. 如果要确保某字段在创建或修改时始终具有值,请单击并突出显示该字段,然后在"属性"下选择"必需"。
  8. 若要在"数据源元素"名称(它是从 SQL Server 列名称派生出来的)的外部项目选取器控件中提供一个描述性名称,请单击并突出显示该字段,然后在"属性"下的"显示名称"框中输入一个名称。
  9. 若要为筛选器(它还显示在"列表视图"设置页面的"数据源筛选器"部分)定义默认值,请在"筛选器参数"下单击并突出显示该筛选器,然后在"默认值"框中输入适当的值。 如果不输入值,则首次使用该筛选器时不显示项目。

设置外部列表的标题字段

  1. 在功能区上,单击"摘要视图"。

  2. 在“字段”部分的“字段名称”下,选择一个字段。

    重要

    一般来说,最好将“标题”设置为唯一值字段。 “标题”字段用于显示列表或 InfoPath 表单。 “标题”字段一经设置,便无法再进行更改。

  3. 在功能区上,单击“设为标题”

完成外部内容类型

  • 在快速访问工具栏上,单击"保存"。 这将在 Business Data Connectivity 元数据存储区中存储外部内容类型定义。

    注意

    为了提高性能,Business Data Connectivity 在元数据存储区中缓存所有对象,并通过每分钟运行的计时器作业来更新更改。 更改传播到场中的所有服务器可能要花一分钟的时间,但在进行更改的服务器上,更改会立即生效。

外部内容类型现可用于 SharePoint 和 Office 2013 产品。

另请参阅