В настоящее время я разрабатываю разъем PowerBi. Я получаю данные от REST-веб-сервиса компании. Теперь о нумерации страниц. Проблема в том, что если pageSize равен 100 и в базе данных 101 запись (первый вызов я получаю 100, второй - 1 запись), я не могу остановить вызов, потому что List.Count дает мне не ноль в пустом списке .
Пример данных:
{"records":[{"firstname":"...","lastname":"..",}]}
Код:
json = Json.Document(Web.Contents(url, [
Content = Text.ToBinary(body)])),
records = Table.FromRecords({json}),
recordsExpaned = Table.ExpandTableColumn(records, "records", {"firstname", "lastname"}),
recordsTable = Table.ToList(recordsExpaned),
result =
if(List.Count(recordsTable) < 1) then
Data.Contacts(json) meta [NextPage = null]
else
SData.Contacts(json) meta [NextPage = page + 1]
Я ожидаю, что List.Count (recordsTable) равен 0 или null, если записи
{"records":[]}
Но это не так.
{"records":[]}
{"records":[{"firstname":"...","lastname":"..",}]}
дает то же значение Count.
Это сводит меня с ума. Как я могу проверить, действительно ли список пуст, например
{"records":[]}
Если я проверю это так
if(List.Count(acd) < 2) then
затем он останавливается на пустом списке, но также и на списке только с одним аргументом (правильно). Для меня это означает, что пустой список на самом деле не пустой ?!
РЕДАКТИРОВАТЬ: Благодаря @MarcelBeug это работает
json = Json.Document(Web.Contents(url, [
Content = Text.ToBinary(body)])),
data = Table.FromRecords({json}),
recordsExpaned = Table.ExpandTableColumn(data, "records", {"firstname", "lastname"}),
recordsTable = Table.ToList(recordsExpaned),
result =
if(List.IsEmpty(json[records]) = true) then
Data.Contacts(json) meta [NextPage = null]
else
Data.Contacts(json) meta [NextPage = page + 1]
следующая строка изменила правила игры
if(List.IsEmpty(json[records]) = true) then
похоже, что функция IsEmpty ищет элемент «записи» в json, хотя я никогда не объявлял «записи». Кажется, что функция анализирует элемент для его поиска, но я не эксперт в Power Query M.