Freigeben über


Problembehandlung bei geschachtelten Werten im Power BI-Dienst, die als Text zurückgegeben werden

In der Vergangenheit gab es Fälle, in denen ein Bericht in Power BI Desktop aktualisiert wurde, aber im Power BI-Dienst mit einem Fehler wie diesem fehlschlug:

We cannot convert the value "[Table]" to type Table

Ursache

Eine der Ursachen für diesen Fehler sind geschachtelte nicht skalare Werte, z. B. Tabellen, Datensätze, Listen und Funktionen. Wenn die Datenschutzfirewall eine Datenquelle puffert, werden geschachtelte nicht skalare Werte in Textwerte "[Table]" wie oder "[Record]" konvertiert.

Der Power BI-Dienst unterstützt jetzt das Festlegen von Datenschutzebenen oder das vollständige Deaktivieren der Firewall. Die Fehler können vermieden werden, indem Sie die entsprechenden Datenschutzeinstellungen für die Datenquelle im Power BI-Dienst auf nicht privat festlegen.

Wenn die Firewall bei neueren Versionen von Power BI eine geschachtelte Tabelle, einen Datensatz oder eine Liste puffert, konvertiert sie die nicht skalaren Werte im Hintergrund nicht in Text. Stattdessen wird ein Fehler angezeigt:

We cannot return a value of type Table in this context

Auswirkungen auf das Laden/Aktualisieren

Diese Änderung ist von der Firewallpufferung motiviert und wirkt sich auch auf das Laden/Aktualisieren aus. Das Verhalten beim Laden geschachtelter Tabellen, Datensätze und Listen in das Power BI-Modell und das Excel-Datenmodell in Power Query für Excel hat sich geändert. Zuvor wurden geschachtelte Elemente als Textwerte wie "[Table]" oder "[Record]"geladen. Jetzt werden sie als Fehler behandelt. Ein null-Wert befindet sich in der geladenen Tabelle, und die Fehleranzahl wird in den Ladeergebnissen inkrementiert.

Da diese Fehler nur während des Ladens/Aktualisierens auftreten, werden sie im Power Query-Editor nicht angezeigt.

Vor

  • Laden/Aktualisieren ohne Fehlern
  • Die geladene Tabelle enthält "[Table]", "[Record]" usw.

Danach

  • Laden/Aktualisieren mit Fehlern
  • Die geladene Tabelle enthält null, anstelle von "[Table]", "[Record]" usw.

Lösung

Laden Sie eine Spalte, die nicht skalare Werte enthält, z. B. Tabellen, Listen oder Datensätze? Wenn dies der Fall ist, sollten Sie diese Fehler beseitigen können, indem Sie die Spalte entfernen.

Wenn Sie die Spalte nicht entfernen können, versuchen Sie, das alte Verhalten zu replizieren, indem Sie eine benutzerdefinierte Spalte hinzufügen und eine Logik wie im folgenden Beispiel verwenden:

if [MyColumn] is table then "[Table]" else if [MyColumn] is record then "[Record]" 
else if [MyColumn] is list then "[List]" else if [MyColumn] is function 
then "[Function]" else [MyColumn]

Tritt das Problem auch in Power BI Desktop auf, wenn Sie alle Datenschutzeinstellungen für Ihre Datenquelle auf privat festlegen? Ist dies der Fall, versuchen Sie, den Fehler zu lösen, indem Sie die entsprechenden Datenschutzeinstellungen für die Datenquelle im Power BI-Dienst auf nicht privat festlegen.