Business Data Connectivity Service 支持的筛选器的类型

上次修改时间: 2015年3月9日

适用范围: SharePoint Server 2010

筛选器是 Business Data Connectivity (BDC) Service 用来捕获用户输入(或系统输入)并将这些输入提供给后端 API 调用的基本方法。筛选器描述应将筛选值插入一系列复杂参数中的哪个位置。可通过标记方法定义的输入或返回参数以标记插入位置来做到这一点。后端 API 调用必须提供用于筛选的功能。筛选器只构建一种将此内容呈现给用户的机制。

外部系统提供了各种筛选机制。BDC 将常见模式抽象化,使其为用户提供相同的筛选语义,而不管数据源如何。BDC 支持多个筛选器和筛选模式。用户筛选器(如"Comparison")声明用户可重写的输入。系统筛选器(如"UserContext"和"UserProfile")允许 BDC 安全设置值(如用户标记)。有关详细信息,请参阅表 1。客户端将查询元数据存储库以确定系统支持的筛选器,并相应地呈现其用户界面。

重要注释重要说明

如果元数据作者创建的元数据将用户名用作用户可控制的筛选器并返回敏感的个人数据,则某个用户可查看其他用户的数据。若要避免出现此情况,请使用 UserContextFilter 将用户名传入方法调用。

表 1 介绍 BDC 支持的筛选器。

表 1. 筛选值

筛选器类型

说明

ActivityId

系统筛选器

在调用外部系统上的操作且要作为输入参数传递的值应表示调用操作的上下文标识时使用。Business Connectivity Services 设置了一个 GUID,它将当前操作上下文表示为与 ActivityId 筛选器关联的输入参数的值。

Batching

用户筛选器

在查询外部系统时使用。任何客户端应用程序可将其值自动设置为从外部系统获取的最后一个筛选值。然后,外部系统可使用此值来恢复项或更改的枚举。

BatchingTermination

用户筛选器

在查询外部系统时使用。外部系统返回的值指示获取剩余数据是否需要其他调用。

Comparison

用户筛选器

在查询外部系统时使用。外部系统可将 ComparisonFilter 值与一组 EntityInstances 的特定字段的值进行比较,并可仅返回其字段值已通过比较测试的 EntityInstances

Input

用户筛选器

在调用外部系统中的操作时使用。外部系统可将 InputFilter 的值用作操作的附加参数。

InputOutput

用户筛选器

在调用外部系统中的操作时使用。外部系统可将 InputOutputFilter 的值用作操作的附加参数,并可将 ReturnTypeDescriptor 无法捕获的操作的其他结果作为 InputOutputFilter 的值进行检索。

LastId

用户筛选器

在查询外部系统时使用。任何客户端应用程序可将其值自动设置为从外部系统读取(在一个可返回多个文本块形式的数据的查找器中)的最后一个项中的标识符值。然后,外部系统可使用此值以返回下一个项后面的剩余项。

Limit

用户筛选器

在查询外部系统时使用。可将其值解释为对在调用其所属的方法时返回的外部项 (EntityInstances) 的数目的限制。

Output

用户筛选器

在调用外部系统中的操作时使用。ReturnTypeDescriptor 不能捕获的其他操作结果可以作为 InputOutputFilter 的值进行检索。

PageNumber

用户筛选器

在查询外部系统时使用。其值表示外部系统应为多页结果返回的页面的从零开始的索引。

Password

系统筛选器

在调用外部系统中的操作且要作为输入参数传递的值应表示存储在安全存储中的密码时使用。Business Connectivity Services 获取映射到外部系统实例 (LobSystemInstance) 的 SecondarySsoApplicationId 属性和 SsoProviderImplementation 属性的凭据。它将从凭据中获取的密码用作与 Password 筛选器关联的输入参数的值。

备注

SecondarySSOApplicationId 与 SSOApplicationId 不同。SecondarySSOApplicationId 由 UserName 筛选器和 Password 筛选器使用。有关详细信息,请参阅 BDC 自定义属性LobSystemInstances 中的 LobSystemInstance 元素(BDCMetadata 架构)

SSOTicket

系统筛选器

在调用外部系统中的操作且要作为输入参数传递的值应表示用户在安全存储中具有的登录票证时使用。然后,目标服务或应用程序可兑现此票证以获取用户凭据。安全存储使用外部系统实例中指定的 SSOProviderImplementation 属性,并请求此提供程序发布 SSOTicket。此 SSOTicket 将作为与 SSOTicket 筛选器相关联的输入参数传递。

Timestamp

用户筛选器

在调用外部系统中的操作时使用。其值表示客户端最后一次调用此函数的时间。然后,外部系统可使用此值在指定时间过后报告更改。

UserContext

系统筛选器

在调用外部系统中的操作且要作为输入参数传递的值应表示用户上下文时使用。在此情况下,Business Connectivity Services 使用筛选器 (FilterDescriptor) 上的 UserContextType 属性以查找将对该输入参数设置的值。

如果指定的 UserContextType 为 MachineId,则传递给输入参数的值为计算机操作系统安装的唯一 ID。

如果指定的 UserContextType 为 QualifiedUserName,则传递给输入参数的值为下列值之一:

  • 如果用户的登录模式为 Windows 经典,则该值为用户的 Windows 登录名。此名称包含域名和用户名(例如,domainname/username)。

  • 如果用户的登录模式是基于声明的,则传递的值为标识用户的唯一值(例如,membership: username、username@provider.com)。

UserCulture

系统筛选器

在调用外部系统中的操作且要作为输入参数传递的值应表示调用操作的用户环境的区域性时使用。Business Connectivity Services 使用筛选器上的 Format 属性以查找要对输入参数设置的值。

  • 如果 Format 属性的值为 RFC1766,则传递给输入参数的值为区域性的名称。有关详细信息,请参阅 CultureInfo.Name

  • 如果 Format 属性的值为 TwoLetterISO,则传递给输入参数的值为区域性的带两个字母的 ISO 语言名称。有关详细信息,请参阅 CultureInfo.TwoLetterISOLanguageName

  • 如果 Format 属性的值为 ThreeLetterISO,则传递给输入参数的值为区域性的带三个字母的 ISO 语言名称。有关详细信息,请参阅 CultureInfo.ThreeLetterISOLanguageName

  • 如果 Format 属性的值为 ThreeLetterWindows,则传递给输入参数的值为区域性的带三个字母 Windows 语言名称。有关详细信息,请参阅 CultureInfo.ThreeLetterWindowsLanguageName

  • 如果 Format 属性的值为 LCID,则传递给输入参数的值为区域性的 LCID。有关详细信息,请参阅 CultureInfo.LCID

UserName

系统筛选器

在调用外部系统中的操作且要作为输入参数传递的值应表示存储在安全存储中的用户名时使用。Business Connectivity Services 获取映射到外部系统实例的 SecondarySsoApplicationId 属性和 SsoProviderImplementation 属性的凭据。它将从这些凭据中获取的用户名用作与 UserName 系统筛选器关联的输入参数的值。

备注

SecondarySSOApplicationId 与 SSOApplicationId 不同。SecondarySSOApplicationId 由 UserName 筛选器和 Password 筛选器使用。有关详细信息,请参阅 BDC 自定义属性LobSystemInstances 中的 LobSystemInstance 元素(BDCMetadata 架构)

UserProfile

系统筛选器

在调用外部系统中的操作且要作为输入参数传递的值应为当前用户配置文件上的属性时使用。Business Connectivity Services 使用筛选器上指定的 UserProfileProvider 属性和 UserProfilePropertyName 属性来查找要对输入参数设置的值。UserProfileProvider 用于提取当前用户配置文件,而 UserProfilePropertyName 包含其用户配置文件上的值应传递给输入参数的属性名。

Wildcard

用户筛选器

在查询外部系统时使用。其值表示一个常规字符和通配符模式,该模式将针对一组 EntityInstances 的特定字段的值进行匹配。外部系统仅返回其字段值与指定模式匹配的 EntityInstances。