Seward12533
Hola, intento obtener datos de Wrike a través de una llamada a la API y tienen un límite de 1000 registros en cualquier consulta y me proporcionaron esta información.
«Sin embargo, puede usar la paginación para evitar este límite (https://developers.wrike.com/documentation/api/methods/query-tasks). Para solicitar la paginación en su llamada, especifique el parámetro pageSize y use el nextPageToken de la respuesta a la consulta de páginas adicionales hasta que obtenga una página sin token de página siguiente, que es su última página en el conjunto de datos. De esta manera, debería poder obtener la lista completa de tareas si tiene más de 1000 tareas».
Investigando un poco, encontré métodos para manejarlo https://medium.com/@marktiedemann/how-to-do-pagination-in-power-query-430460c17c78 pero esto requiere parámetros que la API no admite. En cambio, incluyen un token como el último registro que se puede usar para obtener el siguiente registro y no estoy seguro de cómo manejar eso.
Cualquier ayuda que me permita hacer llamadas recursivas para sortear este límite de 1000 registros sería apreciada.
Aquí hay una copia de mi consulta base.
let Source = Web.Contents("https://www.wrike.com/api/v3/tasks", [ Query=[#"fields"="[briefDescription,parentIds,superParentIds,sharedIds,dependencyIds, subTaskIds,responsibleIds,description,recurrent,authorIds,attachmentCount,hasAttachments, customFields,superTaskIds,metadata]"], Headers=[#"Authorization"="bearer m5...IUK"] ]), convertToJson = Json.Document(Source), data = convertToJson[data], #"Converted to Table" = Table.FromList(data, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table", "Column1", {"id", "accountId", "title", "description", "briefDescription", "parentIds", "superParentIds", "responsibleIds", "status", "importance", "createdDate", "updatedDate", "completedDate", "dates", "scope", "authorIds", "customStatusId", "hasAttachments", "attachmentCount", "permalink", "priority", "superTaskIds", "subTaskIds", "metadata", "customFields", "sharedIds", "dependencyIds"}, {"id", "accountId", "title", "description", "briefDescription", "parentIds", "superParentIds", "responsibleIds", "status", "importance", "createdDate", "updatedDate", "completedDate", "dates", "scope", "authorIds", "customStatusId", "hasAttachments", "attachmentCount", "permalink", "priority", "superTaskIds", "subTaskIds", "metadata", "customFields", "sharedIds", "dependencyIds"}), #"Fix Created Dates" = Table.TransformColumns(#"Expanded Column1",{{"createdDate", each Date.From(DateTimeZone.From(_)), type date}, {"updatedDate", each Date.From(DateTimeZone.From(_)), type date}}), #"Fix Complted Dates" = Table.TransformColumns(#"Fix Created Dates",{{"completedDate", each Date.From(DateTimeZone.From(_)), type date}}), #"Expanded dates" = Table.ExpandRecordColumn(#"Fix Complted Dates", "dates", {"type", "duration", "start", "due", "workOnWeekends"}, {"type", "duration", "start", "due", "workOnWeekends"}), #"Fix Date formatting" = Table.TransformColumns(#"Expanded dates",{{"start", each Date.From(DateTimeZone.From(_)), type date}, {"due", each Date.From(DateTimeZone.From(_)), type date}}), #"Removed Columns" = Table.RemoveColumns(#"Fix Date formatting",{"accountId", "metadata"}) in #"Removed Columns"
bryce
Hola @Seward12533 y @difg
Una forma de solucionar este problema es usar una herramienta de terceros; consulte esto: https://www.synchub.io/connectors/wrike
Es una plataforma simple que hace toda la sincronización por ti.
– Bryce
difg
Hola
¿Encontraste la solución con nextPageToken de wrike?
Estoy buscando una solución… He hecho muchas pruebas, pero… ¡no funciona!
Gracias por adelantado.
v-juanli-msft
Hola @Seward12533
¿Podría revisar este hilo y la discusión debajo de él?
Puede darte algunas ideas.
Atentamente
Maggie