Forum Discussion
Devolver todas las filas de JSON Query
Hola a todos,
Actualmente estoy usando la siguiente llamada a la API a una tabla de Dataverse. Desafortunadamente, esto da como resultado que solo se devuelvan las primeras 500 filas.
let
Source = Web.Contents(https://xxx-prod-xxx.api.crm11.dynamics.com/api/data/v9.2/audits)
in
Source
He encontrado una solución potencial a continuación:
La solución primero implica hacer una función para acceder a la API:
let API = (relPath as text, optional queries as nullable record) =>
let
Source = Json.Document(Web.Contents(https://xxxx.api.crm4.dynamics.com/,
[ Query = queries,
RelativePath=relPath]))
in
Source
in
API
Y luego ejecutar otra consulta usando List.Generate para realizar varias llamadas a la API según sea necesario:
let
Source = API("path/to/records", [rows_per_page="1000"]),
pages = Source[total_pages],
records =
if pages = 1 then Source[records]
else List.Combine(List.Generate(
() => [page = 1, records = Source[records]],
each [page] <= pages,
(x) => [page = x[page] + 1, records = API("path/to/records", [page = Text.From(x[page] + 1), rows_per_page = "1000"])[records]],
each [records]))
in
records
Sin embargo, estoy atascado en esta parte porque no sé cómo modificar lo anterior para mi escenario (mi conocimiento de esta área es limitado).
¿Podría alguien aconsejar o sugerir alternativamente un método para devolver todas las filas?
Saludos
Imran-Ami
3 Replies
- Syndicate_AdminAdministrator
- Syndicate_AdminAdministrator
Hola @JoeBarry - la tabla en cuestión es la entidad Auditorías, a la que no se puede acceder a través del conector Dataverse. Se puede acceder sin embargo una API web.
- Syndicate_AdminAdministrator
De acuerdo con su declaración, creo que su requisito es superar el límite de filas de llamadas a la API.
Por favor, vea este video para un buen enfoque para hacer esto.
Power BI - Tales From The Front - API de REST - YouTube
Saludos
Rico Zhou
Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.