Мне нужны эти API-вызовы, чтобы вернуть все результаты из моей учетной записи HubSpot. Поскольку HubSpot может возвращать только 250 записей за вызов, мне нужно каждый раз выполнять API-вызов с возвращенным значением смещения, пока я не получу полный список результатов. Но этот код делает вызов с каждым значением смещения дважды, создавая возвращенный список, содержащий дубликаты для каждой записи, и я не могу понять, почему. Я изменил код, чтобы он возвращал значения смещения, полученные из результатов, и заключался в том, что каждое значение смещения появлялось дважды. Я думаю, что, возможно, сбой происходит в "Last_Key = try [WebCall] [#" offset "], иначе 0," но не уверен.
Мой обходной путь - добавить еще один шаг "#" Fjernede dubletter "= Таблица.Distinct (Custom1) ", который удаляет дубликаты, но это не лучшее решение, я думаю.
let
Pagination = List.Skip(List.Generate( () => [IsMore = null, Last_Key = 0,
Counter = 0], // Start Value
each [IsMore] <> false,// Whilst this is true, keep going
each [WebCall = Json.Document(Web.Contents("https://api.hubapi.com" & #"Content Company" & "?hapikey=" & #"APIkey" & #"Company properties" & "&limit=250" & "&offset=" & Text.From([Last_Key]))),// retrieve results per call
Last_Key = try [WebCall][#"offset"] otherwise 0,
IsMore = if [Counter] < 1 then null else [WebCall][#"has-more"],
Counter = [Counter]+1,
Table = Table.FromValue(WebCall[offset]) // returns every offset value
]
,each [Table] // selector
),1),
#"Custom1" = Table.Combine(Pagination),
#"Fjernede dubletter" = Table.Distinct(Custom1)
in
#"Fjernede dubletter"