此示例提供一个简单的数据源扩展,可在 Visual Studio Code 中运行并在 Power BI Desktop 中加载。
Hello World 示例
作为概述,此示例显示:
- 导出函数 (
HelloWorld.Contents),该函数采用选项文本参数。 - 定义一种数据源类型,该类型为:
- 声明它使用隐式(匿名)身份验证。
- 使用允许本地化的字符串资源。
- 声明 UI 元数据,以便扩展可以在 Power BI Desktop 获取数据对话框中显示。
按照 安装 PowerQuery SDK 中的说明,创建名为“HelloWorld”的新连接器,复制以下 M 代码并将其粘贴到连接器工作区的 HelloWorld.pq 文件中,然后按照其余说明在 Power BI 中打开它。
在以下连接器定义中,可以找到:
-
section语句。 - 具有元数据的数据源函数,该元数据将其定义为具有 Kind
HelloWorld和 PublishHelloWorld.Publish的数据源。 -
Authentication声明隐式(匿名)的记录是此源的唯一身份验证类型。 - 声明此连接的发布记录为 Beta 版、从 resx 文件加载的文本、源图像和源类型图像。
- 将图标大小与生成文件夹中的特定 PNG 关联的记录。
section HelloWorld;
[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;
HelloWorld = [
Authentication = [
Implicit = []
],
Label = Extension.LoadString("DataSourceLabel")
];
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") }
];
生成文件并将其复制到正确的目录后,按照 安装 PowerQuery SDK 教程中的说明打开 Power BI。 可以在“ 获取数据 ”对话框中搜索“hello”以查找连接器。
此步骤会打开身份验证对话框。 由于没有身份验证选项,并且函数不采用任何参数,因此这些对话中没有进一步的步骤。
按 Connect 后,对话框显示它是“预览连接器”,因为查询中的 Beta 设置为 true。 由于没有身份验证,身份验证屏幕会显示一个选项卡用于匿名身份验证,没有字段。 再按一次 “连接” 以完成。
最后,查询编辑器会显示你所期待的内容——一个返回文本“Hello world”的函数。
有关完全实现的示例,请参阅数据连接器示例存储库中的 Hello World 示例 。