处理数据访问
数据源函数
数据连接器可包装和自定义 M 库中数据源函数的行为。 例如,REST API 的扩展将使用 Web.Contents 函数发出 HTTP 请求。 目前,已启用一组有限的数据源函数来支持扩展性。
示例:
[DataSource.Kind="HelloWorld", Publish="HelloWorld.Publish"]
shared HelloWorld.Contents = (optional message as text) =>
let
message = if (message <> null) then message else "Hello world"
in
message;
数据源种类
在扩展中标记为 shared
的函数可通过在附带数据源定义记录名称的函数上包括 DataSource.Kind
文本属性从而与特定数据源相关联。
数据源记录定义了数据源支持的身份验证类型和基本品牌信息(如显示名称/标签)。
记录的名称将成为其唯一标识符。
与同一数据源关联的每个函数均须具有相同的必要函数参数,其中包括名称、类型和顺序。 (由于数据源种类,如果某一参数被标记 optional
或其元数据包含 DataSource.Path = false
,则不会将其视为必要参数。)
特定数据源种类的函数只能使用与该种类关联的凭据。 凭据在运行时会通过基于该函数的必要参数的组合来执行查找,从而进行标识。 有关如何标识凭据的详细信息,请参阅数据源路径。
示例:
HelloWorld = [
Authentication = [
Implicit = []
],
Label = Extension.LoadString("DataSourceLabel")
];
属性
下表列出了数据源定义记录的字段。
字段 | 类型 | 详细信息 |
---|---|---|
身份验证 | record | 指定数据源支持的一种或多种身份验证类型。 至少需要一个种类。 每个种类都会在 Power Query 凭据提示符中显示为一个选项。 有关详细信息,请参阅身份验证种类。 |
Label | text | (可选)凭据对话框中此扩展的友好显示名称。 |
SupportsEncryption | 逻辑 | (可选)如果为 true,UI 将显示使用加密连接以连接到数据源的选项。 这通常会用于采用非加密回退机制(通常为 ODBC 或基于 ADO.NET 的源)的数据源。 |
发布到 UI
与数据源定义记录类似,“发布”记录会为 Power Query UI 提供它在获取数据对话框中公开此扩展所需的信息。
示例:
HelloWorld.Publish = [
Beta = true,
ButtonText = { Extension.LoadString("FormulaTitle"), Extension.LoadString("FormulaHelp") },
SourceImage = HelloWorld.Icons,
SourceTypeImage = HelloWorld.Icons
];
HelloWorld.Icons = [
Icon16 = { Extension.Contents("HelloWorld16.png"), Extension.Contents("HelloWorld20.png"), Extension.Contents("HelloWorld24.png"), Extension.Contents("HelloWorld32.png") },
Icon32 = { Extension.Contents("HelloWorld32.png"), Extension.Contents("HelloWorld40.png"), Extension.Contents("HelloWorld48.png"), Extension.Contents("HelloWorld64.png") }
];
属性
下表列出了发布记录的字段。
字段 | 类型 | 详细信息 |
---|---|---|
ButtonText | list | 文本项列表。 第一项定义了 Power BI 获取数据 对话框中数据源图标旁显示的名称。 第二项(可选)定义了鼠标悬停于前一名称时显示的工具提示。 |
类别 | text | 扩展应在获取数据对话框中显示的位置。 目前,唯一采用特殊处理的类别值为 Azure 和 Database 。 所有其他值最终均归为“其他”类别。 |
Beta | 逻辑 | (可选)设为 true 时,UI 将在连接器名称旁边显示预览/测试版标识符,同时显示一个警告对话框,指示连接器的实施可能会发生重大更改。 |
LearnMoreUrl | text | (可选)指向包含有关此数据源或连接器的详细信息的网站 URL。 |
SupportsDirectQuery | 逻辑 | (可选)为扩展启用直接查询。 |
SourceImage | record | (可选)包含二进制图像列表的记录(使用 Extension.Contents 方法从扩展文件中获取)。 该记录包含两个字段(Icon16 和 Icon32),且每个字段均有自己的列表。 每个图标的大小应各不相同。 |
SourceTypeImage | record | (可选)与 SourceImage 类似,其中不含以下约定:对于很多开箱即用的连接器,系统会显示工作表图标,同时会在右下角显示特定于源的图标。 为 SourceTypeImage 使用不同图标集为可选操作,因为很多扩展只会重复使用这两个字段的同一图标集。 |