API-пейджинг заставляет Odata сократить результаты - PullRequest
0 голосов
/ 22 марта 2019

Таким образом, мой размер страницы из API равен 500, поэтому мой запрос даст только 500 результатов.

Проблема в том, что результатов чуть больше 500, и я хотел бы найти рабочее решение, как отображать все результаты в одной рабочей таблице.
Мой код выглядит вроде (URL заменен), как это:

let
    GetData = (page as number) as table =>
    let
    Source = OData.Feed("https://api.myDummy.com/odata/v3/ReportResults?page=" & Number.ToText(page)),
    #"Replaced Errors" = Table.ReplaceErrorValues(Source, {{"AirPress", null}}),
    #"Filtered Rows" = Table.SelectRows(#"Replaced Errors", each [Name] = "Till"),
    #"Filtered Rows1" = Table.SelectRows(#"Filtered Rows", each Date.IsInPreviousYear([TimeStampUtc])),
    RemoveBottom = Table.RemoveLastN(#"Filtered Rows1" ,3)

in
    RemoveBottom,
    PageRange = {1..2},
    Source = List.Transform(PageRange, each try {_, GetData(_)} otherwise null),
    First = List.FirstN(Source, each _ <> null),
    Table = Table.FromRows(First, {"Page", "Column1"}),
    Expanded = Table.ExpandTableColumn(Table, "Column1", {"Id", "ReportId","TimeStampUtc", "TimeStampLocal"}),
    #"Sorted Rows" = Table.Sort(Expanded,{{"TimeStampUtc", Order.Ascending}})
in
        #"Sorted Rows"

Моя таблица результатов показывает мне 994 строки: enter image description here

Но, как вы можете видеть, он загружает результат дважды, один раз как страница 1 и один раз как страница 2. Я новичок в этом и пытаюсь понять, как решить эту проблему с незапамятных времен. Я думаю, что я близок к решению, но был бы признателен за любую подсказку / помощь, которую я могу получить.

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

...