Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Error de origen de datos dinámico con relativepath

Hola a todos

Tengo un problema con un parámetro y conecto un conector GET. Lo he corregido con números duros, pero cuando agrego un parámetro, obtengo el error de que usa una fuente de datos dinámica, por lo que no puedo programar la actualización. La última vez lo arreglé con RelativePath. Debido a que la ruta relativa está después del parámetro, creo que ese es el problema, pero no lo sé con certeza. ¿Cómo solucionarlo?

= (desplazamiento) =>
dejar
Fuente =
Json.Document(
Web.Contenidos(
"https://" & Number.ToText ( Parameter1 ) & ".xx.xx.online",
[
RelativePath = "/xxxxxx/xxxx/xxxx?take=1000&skip=" & Number.ToText( offset ),
Encabezados = [
Autorización = "Token" & (Parámetro2)
]
]
)
)



¿Cómo puedo cambiar esto, para que no obtenga el error de origen de datos dinámico y pueda programar la actualización? Es bueno saberlo, cuando cambio el parámetro uno a un número codificado, funciona. Así que el parámetro 2 no tiene ningún problema.

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Para alguien con el mismo problema, encontré una solución yo mismo.

Cree un parámetro para toda la URL base:
Parámetro 1: https://1234.xx.xx.online y agréguelo a la consulta.

= (desplazamiento) =>
dejar
Fuente =
Json.Document(
Web.Contenidos(
Parámetro1,
[
RelativePath = "/xxxxxx/xxxx/xxxx?take=1000&skip=" & Number.ToText( offset ),
Encabezados = [
Autorización = "Token" & (Parámetro2)
]
]
)
)

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Para alguien con el mismo problema, encontré una solución yo mismo.

Cree un parámetro para toda la URL base:
Parámetro 1: https://1234.xx.xx.online y agréguelo a la consulta.

= (desplazamiento) =>
dejar
Fuente =
Json.Document(
Web.Contenidos(
Parámetro1,
[
RelativePath = "/xxxxxx/xxxx/xxxx?take=1000&skip=" & Number.ToText( offset ),
Encabezados = [
Autorización = "Token" & (Parámetro2)
]
]
)
)

Syndicate_Admin
Administrator
Administrator

Hola, ¿de qué tipo es el Parámetro1?

Le dirá si va a Administrar parámetro y mira la configuración allí:

pi_eye_0-1669648143884.png

Pude hacer que el parámetro anterior funcionara, como el tipo = Texto. Vea el siguiente ejemplo de código (usando API gratuita):

let
Source =
Json.Document(
Web.Contents("https://api.coindesk.com/v" & version_number &"/bpi/currentprice.json")
),
bpi = Source[bpi],
USD = bpi[USD]
in
USD

Si su parámetro debe ser un número, deberá convertir a texto mediante una función M Query

Así que he especificado Type = Decimal Number en la configuración de parámetros, luego utilicé la conversión Number.ToText de la siguiente manera:

let
Source =
Json.Document(
Web.Contents("https://api.coindesk.com/v" & Número.ToText(version_number) &"/bpi/currentprice.json")
),
bpi = Source[bpi],
USD = bpi[USD]
in
USD

HTH

Pi

Hola Pi,

Gracias por su respuesta. El parámetro 1 es un número y viene inmediatamente después del https://. ¿Lo que me dijiste que hiciera es exactamente lo que hice bien?

= (desplazamiento) =>
dejar
Fuente =
Json.Document(
Web.Contenidos(
"https://" & Number.ToText ( Parameter1 ) & ".xx.xx.online",
[
RelativePath = "/xxxxxx/xxxx/xxxx?take=1000&skip=" & Number.ToText( offset ),
Encabezados = [
Autorización = "Token" & (Parámetro2)
]
]
)
)

Entonces, si lo hago como arriba, obtengo el siguiente error en el servicio: usa una fuente de datos dinámica, por lo que no puedo programar la actualización

Hi TK12345

Según el blog de Chris Webb en https://blog.crossjoin.co.uk/2016/08/23/web-contents-m-functions-and-dataset-refresh-errors-in-power... el servicio solo mira la primera parte de la función web.contents para el bit dinámico.

Si incluye todos los parámetros dinámicos en la ruta relativa, no se detectará y debería ejecutarse como de costumbre.

Cambié mi código a:

let
Source =
Json.Document(
Web.Contents("https://api.coindesk.com/",
[RelativePath="v" & Number.ToText(version_number) &"/bpi/currentprice.json"])
),
bpi = Source[bpi],
USD = bpi[USD]
in
USD

Sin embargo, su parámetro está en el nombre de host, por lo que creo que necesitaríamos usar algo más que web.contents.

Pi

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.