创建第一个连接器:Hello World

此示例提供了一个简单的数据源扩展,此扩展可在 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 和 Publish HelloWorld.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”以查找连接器。

此步骤会打开一个身份验证对话框。 由于没有身份验证选项,并且函数不采用任何参数,因此,这些对话中没有后续步骤。

按“连接”,对话框会告诉你它是一个“预览连接器”,因为在查询中 Beta 已设置为 true。 由于没有身份验证,身份验证屏幕会显示一个用于匿名身份验证的选项卡,其中没有任何字段。 再次按连接以完成。

最后,出现查询编辑器,显示预期内容 - 一个返回“Hello world”文本的函数。

有关完全实现的示例,请参阅数据连接器示例存储库中的 Hello World 示例