Power Query M 语言动态增加偏移值

问题描述

我在一个函数中创建了一个 Web 内容对象,以在电源查询查询 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,ExtraValues.Error)
in
#"Converted to Table"

解决方法

所以 Xero 中的期刊是按顺序编号的。

偏移 |按指定的日记帐编号偏移。

例如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
    }
  ]}

最后一个电话有