测试连接
自定义连接器支持在本地数据网关的个人模式和标准模式中都可用。 这两种网关模式都支持 导入。 直接查询 仅在标准模式下受支持。 目前,仅网关管理员(而不是其他数据源用户)才支持通过网关实现自定义连接器的 OAuth。
在 Power BI 自定义数据连接器功能处于预览状态时,实现 TestConnection 功能的方法可能会更改。
若要支持通过本地数据网关计划的刷新,连接器 必须 实现 TestConnection 处理程序。 当用户为源配置凭据时调用该函数,并用于确保它们有效。 TestConnection 处理程序在 数据源种类 记录中设置,并具有以下签名:
(dataSourcePath) as list => ...
dataSourcePath 是函数的数据源路径值,返回值是由以下内容组成的列表:
- 要调用的函数的名称(此函数必须标记为
#shared,通常是主数据源函数)。 - 要传递给函数的一个或多个参数。
如果函数的调用导致错误,则 TestConnection 被视为失败,并且不会持久保存凭据。
注释
如上所述,TestConnection 提供的函数名称必须是成员 shared 。
示例:没有必需参数的连接器
下面的代码片段为数据源实现 TestConnection,没有必需的参数(如 TripPin 教程中找到的参数)。 无必需参数(称为“Singletons”)的连接器在测试连接时,不需要用户提供的输入(凭据除外)。 在这种情况下,该值 dataSourcePath 等于数据源类型的名称,可以忽略。
不带其他参数调用该 TripPin.Contents 函数。
TripPin = [
TestConnection = (dataSourcePath) => { "TripPin.Contents" },
Authentication = [
Anonymous = []
],
Label = "TripPin"
];
示例:具有 URL 参数的连接器
如果数据源函数具有该类型的 Uri.Type单个必需参数,则其 dataSourcePath 将等于用户提供的 URL。 以下代码片段显示了 Github 示例中的 TestConnection 实现。
GithubSample = [
TestConnection = (dataSourcePath) => {"GithubSample.Contents", dataSourcePath},
Authentication = [
OAuth = [
StartLogin = StartLogin,
FinishLogin = FinishLogin,
Label = Extension.LoadString("AuthenticationLabel")
]
]
];
示例:具有所需参数的连接器
如果数据源函数具有多个参数或单个非 URL 参数,则 dataSourcePath 该值将是包含参数的 JSON 字符串。 下面的代码片段来自 DirectQueryForSQL 示例。
DirectSQL = [
TestConnection = (dataSourcePath) =>
let
json = Json.Document(dataSourcePath),
server = json[server],
database = json[database]
in
{ "DirectSQL.Database", server, database },
Authentication = [
Windows = [],
UsernamePassword = []
],
Label = "Direct Query for SQL"
];