twilkpapá
Soy nuevo en la ejecución de consultas con llamadas API en Power BI, así que perdone cualquier ingenuidad o errores obvios incluidos en este código. He pegado mi código a continuación para tratar de paginar los resultados, pero solo obtengo una tabla con 500 filas de datos. Cuando ejecuto la consulta GET en ARC, los metadatos muestran resultados disponibles = 16 650… esta cifra aumentará a medida que obtengamos más clientes, por lo que quiero que esta consulta sea dinámica para atraer nuevos clientes a mi tabla de clientes en Poder BI.
Las columnas (variables) que estoy tratando de ingresar a una tabla de datos son «contactID», «companyName», «firstName», «lastName». A continuación se muestra mi intento de devolver todos los resultados. El primer ID de contacto en los resultados debe tener un valor de 200, así que intenté que ese fuera el punto de partida, pero estoy seguro de que arruiné la sintaxis para que funcionara correctamente. ¡Cualquier ayuda sería muy apreciada!
PD —> escondí el token por motivos de seguridad, pero avíseme si es necesario para probar las modificaciones del código y puedo proporcionarlo.
dejar
Paginación = List.Skip(List.Generate( () => [contactID = 200 , Counter = 0], // Valor inicial
cada [contactID] <> nulo y [contactID] <> «», // Condición bajo la cual ocurrirá la próxima ejecución
cada [ WebCall = Json.Document(Web.Contents(«https://ws-use.brightpearl.com/public-api/dude/contact-service/
contact-search?isCustomer=true&columns=contactId,companyName,firstName,lastName&offset=»&Text.From([contactID]), [Headers=[#»brightpearl-app-ref»=»dude_powerbi-1″, #»brightpearl-account-token»=»%%%%»]])),
ID de contacto = si [Counter] <=1 luego 200 más WebCall[lastKey], // determina la última clave para la próxima ejecución
Contador = [Counter] + 1, // contador interno
respuesta = WebCall[response],
resultados = respuesta[results],
#»Convertido a tabla» = Table.FromList(resultados, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#»Columnas renombradas» = Table.RenameColumns(#»Converted to Table»,{{«Column1», «Column»}}),
#»Personalizado agregado» = Table.AddColumn(#»Columnas renombradas», «ID de contacto», cada List.First([Column])),
#»Personalizado1 agregado» = Table.AddColumn(#»Personalizado agregado», «nombreEmpresa», cada List.First(List.Skip([Column],1))),
#»Personalización2 agregada» = Table.AddColumn(#»Personalización1 agregada», «firstName», cada List.First(List.Skip([Column],2))),
#»Personalizado3 agregado» = Table.AddColumn(#»Personalizado2 agregado», «apellido», cada List.First(List.Skip([Column],3))),
#»Columnas eliminadas» = Table.RemoveColumns(#»Added Custom3″,{«Column»})
],
cada [#»Removed Columns»]),1)
en
Paginación
ImkeF
hubiera esperado la [contactID] para ser parte de su WebCall; de lo contrario: ¿Cómo debe realizar la WebCall la siguiente llamada?
cada [ WebCall = Json.Document(Web.Contents(«https://ws-use.brightpearl.com/public-api/dude/contact-service/contact-search?isCustomer=true&column…]), [Headers=[#»brightpearl-app-ref»=»dude_powerbi-1″, #»brightpearl-account-token»=»%%%%»]])),
twilkpapá
En respuesta a ImkeF
No sé por qué WebCall se mostraba como un enlace y cortaba todo el texto. Consulte la publicación revisada sin el hipervínculo. ¡Gracias!
ImkeF
En respuesta a twilkpapá
La consulta se paginaría si el resultado de su WebCall contuviera un campo llamado «lastKey». ¿Realmente tiene ese campo o el número de la página siguiente se encuentra en un campo/columna diferente?
twilkpapá
En respuesta a ImkeF
Por lo que puedo ver, no hay campos lastkey. Pensé que era una especie de variable incorporada como último identificador de registro.
Aquí hay una instantánea de la última parte de los resultados obtenidos de ARC (-499 es la última matriz de resultados que contiene los valores de las variables deseadas):
-499: [Array[4]
],
],
,
,
,
],
,
],
twilkpapá
En respuesta a twilkpapá
¿Alguna sugerencia sobre cómo crear o identificar esa variable para identificar el «número para la página siguiente» que mencionó?
¿Fui útil en la última publicación para solucionar el problema de mi código?
ImkeF
En respuesta a twilkpapá
Si, gracias.
Pensé que sería ContactID, pero esto no funcionaría, ya que saltaría el rango de 500 a 768 en el ejemplo que ha dado.
¿Hay otro campo (como «Resultado») en el conjunto de datos que sea 500 para ese último registro donde el ID de contacto es 768? Entonces tendrías que tomar esto.
twilkpapá
Soy nuevo en la ejecución de consultas con llamadas API en Power BI, así que perdone cualquier ingenuidad o errores obvios incluidos en este código. He pegado mi código a continuación para tratar de paginar los resultados, pero solo obtengo una tabla con 500 filas de datos. Cuando ejecuto la consulta GET en ARC, los metadatos muestran resultados disponibles = 16 650… esta cifra aumentará a medida que obtengamos más clientes, por lo que quiero que esta consulta sea dinámica para atraer nuevos clientes a mi tabla de clientes en Poder BI.
Las columnas (variables) que estoy tratando de ingresar a una tabla de datos son «contactID», «companyName», «firstName», «lastName». A continuación se muestra mi intento de devolver todos los resultados. El primer ID de contacto en los resultados debe tener un valor de 200, así que intenté que ese fuera el punto de partida, pero estoy seguro de que arruiné la sintaxis para que funcionara correctamente. ¡Cualquier ayuda sería muy apreciada!
PD —> escondí el token por motivos de seguridad, pero avíseme si es necesario para probar las modificaciones del código y puedo proporcionarlo.
dejar
Paginación = List.Skip(List.Generate( () => [contactID = 200 , Counter = 0], // Valor inicial
cada [contactID] <> nulo y [contactID] <> «», // Condición bajo la cual ocurrirá la próxima ejecución
cada [ WebCall = Json.Document(Web.Contents(«https://ws-use.brightpearl.com/public-api/dude/contact-service/contact-search?isCustomer=true&column…]), [Headers=[#»brightpearl-app-ref»=»dude_powerbi-1″, #»brightpearl-account-token»=»%%%%»]])),
ID de contacto = si [Counter] <=1 luego 200 más WebCall[lastKey], // determina la última clave para la próxima ejecución
Contador = [Counter] + 1, // contador interno
respuesta = WebCall[response],
resultados = respuesta[results],
#»Convertido a tabla» = Table.FromList(resultados, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#»Columnas renombradas» = Table.RenameColumns(#»Converted to Table»,{{«Column1», «Column»}}),
#»Personalizado agregado» = Table.AddColumn(#»Columnas renombradas», «ID de contacto», cada List.First([Column])),
#»Personalizado1 agregado» = Table.AddColumn(#»Personalizado agregado», «nombreEmpresa», cada List.First(List.Skip([Column],1))),
#»Personalización2 agregada» = Table.AddColumn(#»Personalización1 agregada», «firstName», cada List.First(List.Skip([Column],2))),
#»Personalizado3 agregado» = Table.AddColumn(#»Personalizado2 agregado», «apellido», cada List.First(List.Skip([Column],3))),
#»Columnas eliminadas» = Table.RemoveColumns(#»Added Custom3″,{«Column»})
],
cada [#»Removed Columns»]),1)
en
Paginación