如何处理PowerBI自定义数据连接器中的缺失字段?

时间:2018-01-14 22:51:02

标签: powerbi powerquery powerbi-datasource

我尝试在REST Web服务上创建自定义PowerBI连接器,该连接返回一组分页记录(类似于OData nextLink模式)。该服务省略了没有值的字段的空值,因此某些记录可能比其他记录具有更多或更少的字段。

例如,我可能会回来:

{
  "count": 2,
  "next_link": "...",
  "value": [
    {
      "first": "John",
      "last": "Doe"
    },
    {
      "first": "Jame",
      "middle": "S",
      "last": "Doe"
    }
  ]
}

我已经从DataConnectors TripPin repo(使用辅助函数Table.GenerateByPage)实现了分页机制,但是当我查看记录列表时,我看到缺少字段的行上的错误。 错误的形式如下:

Expression.Error: The field 'middle' of the record wasn't found.
Details:
    first=Jane
    last=Doe

根据docs:"组合表的列和表类型(即所有页面一起)是从第一页数据中导出的。"但是在上面的示例中,第一页数据包含的记录没有"中间"名称字段。

我理解错误,但不知道如何在我的数据连接器中处理此错误。  我希望PowerBI中的结果表使用" null"任何缺失值。如何修改Table.GenerateByPage以使用null对任何缺少的字段规范化连接列表?或者是否有更优选的方式处理此类数据?

1 个答案:

答案 0 :(得分:1)

您需要按照TripPin系列教程中的第7条对数据实施架构:https://github.com/Microsoft/DataConnectors/tree/master/samples/TripPin/7-AdvancedSchema

这确实有效 - 我最近在这里通用REST API上实现了Microsoft的示例:https://github.com/GrantQuick/BlackbaudSkyApi