【发布时间】:2021-12-30 22:38:08
【问题描述】:
使用 PowerBI,我正在调用一个简单的 REST API,该 API 从 SAAS 应用程序返回 XML 文档。
在某些情况下,PowerBI 正在为 XML 可能具有空值的某些列创建 Table 类型。一个非常简单的 XML 示例是:
<Record>
<Location>
<id>123</id>
<code>abc</code>
</Location>
<Location>
<id>123</id>
<code></code> <========= 1/2 - changed this from <code/>
</Location>
</Record>
由于第二个 Location 记录中的 code 属性为空,因此当 PowerBI 读取此数据源时,它会将生成的 code 列视为“表”值。
由于我有许多客户从同一个 SAAS 应用程序中提取数据,并且他们都可能/可能不使用特定的公共字段(例如代码),因此很难创建一个我可以与多个客户共享的公共模型。
我不是 Power Query 专家,但我已投入大量时间寻找在 Power Query 中动态“扩展”表类型列的方法。我已经好几次接近找到可行但无法解决此问题的解决方案。
展开后的表格中总会有两个值之一。它将是文本值或空值。永远不会超过这两个值。
非常感谢您的想法,第一个帮助我解决此问题的人可以获得一张星巴克礼品卡。
您可以调用 2 个 API 来验证此行为。 https://pbitest.proxy.beeceptor.com/ 创建所描述的问题。 https://pbitest2.proxy.beeceptor.com/ 按我期望 pbitest 的方式工作。
PBI 查询非常简单:
let Source = Xml.Tables(Web.Contents("https://pbitest2.proxy.beeceptor.com/")),
Table = Source{0}[Table]
in
Table
【问题讨论】:
-
我的想法,您看到的是
Table,这意味着您需要扩展到新行,但它不是表类型... Power query 正在读取加载的数据,如果您知道客户端不使用的字段,然后您可以过滤这些行,如果您可以显示图像如何显示数据,这将很有帮助。 -
请不要在您的问题中添加元评论。您应该可以自己删除此帖子。如果你不能,那就保持原样。
标签: xml rest powerbi powerquery