Last active
March 1, 2025 00:46
-
-
Save MarkTiedemann/f667c75cc3d054b9b2bce25ea08bc631 to your computer and use it in GitHub Desktop.
Power Query Pagination Example
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
let | |
BaseUrl = "https://fake-odata-api.com/v1/Entities?", | |
Token = "F4K3-T0K3N-D0NT-U5E-L0L", | |
EntitiesPerPage = 1000, | |
GetJson = (Url) => | |
let Options = [Headers=[ #"Authorization" = "Bearer " & Token ]], | |
RawData = Web.Contents(Url, Options), | |
Json = Json.Document(RawData) | |
in Json, | |
GetEntityCount = () => | |
let Url = BaseUrl & "$count=true&$top=0", | |
Json = GetJson(Url), | |
Count = Json[#"@odata.count"] | |
in Count, | |
GetPage = (Index) => | |
let Skip = "$skip=" & Text.From(Index * EntitiesPerPage), | |
Top = "$top=" & Text.From(EntitiesPerPage), | |
Url = BaseUrl & Skip & "&" & Top, | |
Json = GetJson(Url), | |
Value = Json[#"value"] | |
in Value, | |
EntityCount = List.Max({ EntitiesPerPage, GetEntityCount() }), | |
PageCount = Number.RoundUp(EntityCount / EntitiesPerPage), | |
PageIndices = { 0 .. PageCount - 1 }, | |
Pages = List.Transform(PageIndices, each GetPage(_)), | |
Entities = List.Union(Pages), | |
Table = Table.FromList(Entities, Splitter.SplitByNothing(), null, null, ExtraValues.Error) | |
in | |
Table |
Please, I Need a Help,
How I can will create an pagination for a top and skip only? Because, don't return the others pages, and the request from Postman, don't show the pages numbers. The code return only 1000 register per page.
This is my code in Power BI:
(top as text) =>
let
request = Json.Document(
Web.Contents(#"URL - Tickets" &
"&$top=" & top,
[Headers=[#"Content-Type"="application/json"]
]
)
)
in request
Observation: I don't have experience in programation.
Best Resgards
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I keep getting the message "The import option matches no exports. Did you miss a module reference?". Anyone know what this might mean? I'm trying to use this on the Insightly API.