Поделиться через


Устранение неполадок с вложенными значениями, возвращаемыми в виде текста в служба Power BI

В прошлом существовали случаи, когда отчет обновляется в Power BI Desktop, но завершается сбоем на служба Power BI с ошибкой, подобной этому тексту:

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

Причина

Одна из причин этой ошибки включает вложенные не скалярные значения, такие как таблицы, записи, списки и функции. Когда брандмауэр конфиденциальности данных буферизирует источник данных, вложенные не скалярные значения преобразуются в текстовые значения, например "[Table]" или "[Record]".

Теперь служба Power BI поддерживает настройку уровней конфиденциальности или полностью отключить брандмауэр. Ошибки можно избежать, настроив параметры конфиденциальности источника данных в служба Power BI быть не частными.

Для более поздних версий Power BI, когда брандмауэр буферизирует вложенную таблицу, запись или список, он не автоматически преобразует не скалярные значения в текст. Вместо этого отображается ошибка:

We cannot return a value of type Table in this context

Влияние на нагрузку и обновление

Это изменение, мотивированное буферизацией брандмауэра, распространяется на загрузку и обновление, а также. Поведение загрузки вложенных таблиц, записей и списков в модель Power BI и модель данных Excel в Power Query для Excel изменилось. До этого вложенные элементы были загружены в виде текстовых значений, таких как "[Table]" или "[Record]". Теперь они рассматриваются как ошибки. null Значение находится в загруженной таблице и числом ошибок в результатах загрузки.

Так как эти ошибки возникают только во время загрузки и обновления, они не отображаются в Редактор Power Query.

Перед

  • Загрузка и обновление без ошибок
  • Загруженная таблица содержит "[Table]"и "[Record]"т. д.

После

  • Загрузка и обновление с ошибками
  • Загруженная таблица содержит null, а не "[Table]", "[Record]"и т. д.

Разрешение

Загружается ли столбец, содержащий не скалярные значения, например таблицы, списки или записи? В этом случае можно устранить ошибки, удалив столбец.

Если вы не можете удалить столбец, попробуйте реплика выполнить старое поведение, добавив пользовательский столбец и используя логику, как показано в следующем примере:

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]

Воспроизводится ли проблема в Power BI Desktop, если для всех параметров конфиденциальности источника данных задано значение Private? Если это так, попробуйте устранить ошибку, настроив параметры конфиденциальности источника данных в служба Power BI быть не частными.