Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers!
Enter the sweepstakes now!Prepping for a Fabric certification exam? Join us for a live prep session with exam experts to learn how to pass the exam. Register now.
Soy nuevo con los datos de la API, así que lucho mucho con este problema. Cuando cargo datos en PowerBi desde el sitio web, se detiene en 20 registros (los más nuevos) en lugar de todos los registros de una tabla. Cuando quiero hacer un informe quiero todos los datos y no solo 20.
Este es el código en el editor avanzado.
let Bron = Json.Document(Web.Contents("https://app.website.nl/api/user/v1/account/leads", [Headers=[Accept="application/json", Authorization="Bearer 123456789"]])), #"Geconverteerd naar tabel" = Table.FromRecords({Bron}), #"data uitgevouwen" = Table.ExpandRecordColumn(#"Geconverteerd naar tabel", "data", {"path", "per_page", "next_cursor", "next_page_url", "prev_cursor", "prev_page_url", "data"}, {"data.path", "data.per_page", "data.next_cursor", "data.next_page_url", "data.prev_cursor", "data.prev_page_url", "data.data"}), #"data.data uitgevouwen" = Table.ExpandListColumn(#"data uitgevouwen", "data.data"), #"data.data uitgevouwen1" = Table.ExpandRecordColumn(#"data.data uitgevouwen", "data.data", {"id", "business", "gender", "firstname", "lastname", "postcode", "housenumber", "suffix", "streetname", "city", "company_name", "activity", "locked", "status", "created_by", "planned_user_id", "planned_date", "planned_by", "planned_at", "planned_from", "planned_to", "completed_at", "created_at", "updated_at", "planned_to_username", "completed_by_username", "lead_source", "filter_status", "name", "address"}, {"data.data.id", "data.data.business", "data.data.gender", "data.data.firstname", "data.data.lastname", "data.data.postcode", "data.data.housenumber", "data.data.suffix", "data.data.streetname", "data.data.city", "data.data.company_name", "data.data.activity", "data.data.locked", "data.data.status", "data.data.created_by", "data.data.planned_user_id", "data.data.planned_date", "data.data.planned_by", "data.data.planned_at", "data.data.planned_from", "data.data.planned_to", "data.data.completed_at", "data.data.created_at", "data.data.updated_at", "data.data.planned_to_username", "data.data.completed_by_username", "data.data.lead_source", "data.data.filter_status", "data.data.name", "data.data.address"}), #"Type gewijzigd" = Table.TransformColumnTypes(#"data.data uitgevouwen1",{{"success", type logical}, {"data.path", type text}, {"data.per_page", Int64.Type}, {"data.next_cursor", type text}, {"data.next_page_url", type text}, {"data.prev_cursor", type any}, {"data.prev_page_url", type any}, {"data.data.id", Int64.Type}, {"data.data.business", Int64.Type}, {"data.data.gender", type text}, {"data.data.firstname", type any}, {"data.data.lastname", type text}, {"data.data.postcode", type text}, {"data.data.housenumber", Int64.Type}, {"data.data.suffix", type any}, {"data.data.streetname", type text}, {"data.data.city", type text}, {"data.data.company_name", type any}, {"data.data.activity", type text}, {"data.data.locked", Int64.Type}, {"data.data.status", type text}, {"data.data.created_by", Int64.Type}, {"data.data.planned_user_id", Int64.Type}, {"data.data.planned_date", type datetime}, {"data.data.planned_by", Int64.Type}, {"data.data.planned_at", type datetime}, {"data.data.planned_from", type datetime}, {"data.data.planned_to", type any}, {"data.data.completed_at", type datetime}, {"data.data.created_at", type datetime}, {"data.data.updated_at", type datetime}, {"data.data.planned_to_username", type text}, {"data.data.completed_by_username", type text}, {"data.data.lead_source", type any}, {"data.data.filter_status", type text}, {"data.data.name", type text}, {"data.data.address", type text}, {"message", type text}}) in #"Type gewijzigd"
En la documentación de la API veo esto.
"path": "https://app.website.nl/api/user/v1/account/leads",
"per_page": 20,
"next_cursor": "eyJsZWFkcy5pZCI6MTYxMDg1MjYsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0",
"next_page_url": "https://app.website.nl/api/user/v1/account/leads?cursor=eyJsZWFkcy5pZCI6MTYxMDg1MjYsIl9wb2ludHNUb05leHRJdGVtcyI6dHJ1ZX0",
"prev_cursor": null,
"prev_page_url": null,
Probé muchas, muchas, muchas soluciones, pero nada funciona para mí.
Solved! Go to Solution.
Sí, problema resuelto. Gracias a este artículo.
https://datachant.com/2016/06/27/cursor-based-pagination-power-query/
Sí, problema resuelto. Gracias a este artículo.
https://datachant.com/2016/06/27/cursor-based-pagination-power-query/
@lbendlin ; Leí el artículo, pero no sé cómo pegar o crear una nueva table.generateByPage en mi tabla o editor avanzado.
¿Pueden ayudarme con esto?
Esa es solo una función de conveniencia, no es necesario usarla textualmente.
Como probablemente pueda apreciar, es casi imposible ayudar con las consultas de la API sin acceso a dicha API (que es posible que no esté dispuesto a proporcionar por razones comprensibles)
Ok, cuando llamo a la API, la url tiene 20 registros. Hay una columna en esta tabla con "data.next_page_url". En esta columna, el enlace url es para la segunda página. Cuando duplico esta tabla y cambio la url en el editor avanzado con la url de la columna "data.next_page_url", obtengo nuevos registros, así que está bien.
Para obtener todos los registros en 1 tabla, probé esto:
(page as number)=>
let
Source = Json.Document(Web.Contents("https://webadress"&Number.ToText(page),
#"Converted to Table" = Table.FromList(data1, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
etc
etc
Luego creé una nueva tabla con:
let
Source = List.Generate(()=>
[result = try #"fLeads (2)"(1) otherwise null, page=1],
each [result]<>null,
each [result = try #"fLeads (2)"([page]+1) otherwise null, page=[page]+1],
each [result]),
#"Converted to Record" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
etc
etc
Obtengo una tabla con muchos registros, pero todos los registros son de la primera url una y otra vez.
También intenté cambiar el enlace de la URL de la "data.next_page_url", pero no tuve éxito.
La mecánica de este tipo de paginación se describe en el artículo al que he enlazado.