我在一个函数中创建了一个web内容对象,用于在power查询中查询API端点。我使用一个列表生成来动态增加该列表中的记录,但是,我似乎想不出如何将偏移量增加100。
目前,我得到了前200条记录,在那之后的每一次API调用都有100 - 200条记录。但是,我希望偏移值增加100。目前,它被设置为100。所以它应该是第一个API调用偏移量0,下一个偏移量100,下一个偏移量200,以此类推。
谁有胶水?
let
getJournals = (page as number) =>
let
// Get Tenant ID from table
Source = Excel.CurrentWorkbook(),
#"Expanded Content" = Table.ExpandTableColumn(Source, "Content", {"TenantID",
"Client_Name", "ID"}, {"Content.TenantID", "Content.Client_Name", "Content.ID"}),
#"Content ID" = #"Expanded Content"{2}[Content.ID],
TenantID = #"Content ID",
// Query database for access token
tokenQuery = Sql.Database("XXX", "XXX", [Query="Select accessToken,
refreshToken from XXX WHERE systemName = 'XXX'"]),
accessTokenValue = tokenQuery{0}[accessToken],
// initialise request data
//authorization = "Bearer " & accessTokenValue,
accept = "application/json",
contentType = "application/json",
endPoint = "https://api.xero.com/api.xro/2.0/Journals?offset="& Number.ToText(page),
//Create web element
data = Json.Document
(
Web.Contents(
endPoint,
[
Headers =
[
#"Authorization" = authorization,
#"Accept" = accept,
#"Content-Type" = contentType,
#"xero-tenant-id" = TenantID
]
]
)
)
in
data,
increase = 100,
allJournals = List.Generate(() => getJournals(0),
each not List.IsEmpty([Journals]),
each getJournals(increase)),
#"Converted to Table" = Table.FromList(allJournals, Splitter.SplitByNothing(), null, null,
ExtraValues.Error)
in
#"Converted to Table"发布于 2021-04-21 22:35:00
因此,Xero中的日志是按顺序编号的。
Offset |指定日记号的偏移量。
例如,将返回JournalNumber大于偏移量的日记帐。
文档:https://developer.xero.com/documentation/api/journals
要成功地分页以获取每个日志(它们以100为一批返回),您需要传入最后一个数组元素的日志编号,直到API返回99个或更少的日志。
例如,我认为演示公司一开始的期刊编号是344。因此,要获取所有日志,您需要:
> GET https://api.xero.com/api.xro/2.0/Journals
=> {"Journals": [
{
...
"JournalNumber": 344
...98 more
"JournalNumber": 443
}
]}
> GET https://api.xero.com/api.xro/2.0/Journals?offset=443
=> {"Journals": [
{
...
"JournalNumber": 444
...98 more
"JournalNumber": 543
}
]}
> GET https://api.xero.com/api.xro/2.0/Journals?offset=543
=> { "Journals": [
{
...
"JournalNumber": 544
...52 more
"JournalNumber": 596
}
]}最后一次调用有< 100个日志,所以您知道这是最后一个集合。
https://stackoverflow.com/questions/67191090
复制相似问题