Forum Discussion
Llamada a la API de PowerBI con bucle
Hola a todos
Estoy tratando de lograr para obtener todos los datos de 6 URL diferentes en una tabla.
La dirección URL debe generarse en función de una lista. Hasta ahora no entiendo todos los ejemplos en internet, así que espero que alguien pueda decirme lo que estoy haciendo mal.
Obtendo datos de la Web usando esta URL:
https://www.ealyze.nl/api/ean/list/format/csv/key/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Hasta ahora tan buenos, los datos vienen en veo los diferentes números de la EAN. Ahora para obtener información detallada sobre estos números EAN, necesito llamar a esta URL:
https://www.ealyze.nl/api/ean/innerdayvalues/format/csv/key/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/start/20210401/code/8716948310004
Así que hice los siguientes pasos
Convirtió la columna EAN en una lista
Creó un parámetro llamado pEAN
Creó una función llamada CallAPI
Invocó la función a la tabla que contiene el número EAN
Y luego sólo veo una nueva columna llamada CallAPI con filas Binary 😞
¿Cómo puedo convertir el binario en columnas?
Esta es la función que uso
let
CallAPI= (EAN as text, optional Timeout as number) as any =>
let
WebTimeout = if Timeout = null then #duration(0,0,0,100) else #duration(0,0,0,Timeout) ,
WebResponse = Web.Contents("https://www.ealyze.nl/api/ean/innerdayvalues/format/csv/key/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/start/20210401/code/"
& EAN, [Timeout = WebTimeout])
in
WebResponse
in
CallAPI
No @ozcel600,
Lo siento por editar la respuesta original, después de una investigación profunda, tengo alguna nueva solución para su problema. Debe usar texto. de binario a analizar el retorno de contenido por web.content. Así que usted necesita cambiar su función a
let CallAPI= (EAN as text, optional Timeout as number) as any => let WebTimeout = if Timeout = null then #duration(0,0,0,100) else #duration(0,0,0,Timeout) , WebResponse = Text.FromBinary(Web.Contents("https://www.ealyze.nl/api/ean/innerdayvalues/format/csv/key/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/start/20210401/code/" & EAN, [Timeout = WebTimeout])) in WebResponse in CallAPIPor favor, inténtelo de nuevo.
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
Saludos
Dedmon Dai
1 Reply
- Syndicate_Admin
Administrator
No @ozcel600,
Lo siento por editar la respuesta original, después de una investigación profunda, tengo alguna nueva solución para su problema. Debe usar texto. de binario a analizar el retorno de contenido por web.content. Así que usted necesita cambiar su función a
let CallAPI= (EAN as text, optional Timeout as number) as any => let WebTimeout = if Timeout = null then #duration(0,0,0,100) else #duration(0,0,0,Timeout) , WebResponse = Text.FromBinary(Web.Contents("https://www.ealyze.nl/api/ean/innerdayvalues/format/csv/key/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/start/20210401/code/" & EAN, [Timeout = WebTimeout])) in WebResponse in CallAPIPor favor, inténtelo de nuevo.
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
Saludos
Dedmon Dai