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

Web.Pregunta de página

Hola equipo de desarrolladores de Power BI,

Me di cuenta de que javascript se ejecuta dentro de la consulta de Energía a través de Web.Page como siguiente

let
    Source = Web.Page(
        "<script>
        var square = function (x){return x*x;};
        var c = square(12);
      document.write(c);          
        </script>"),
    Data = Source{0}[Data],
    Children = Data{0}[Children],
    #"Expanded Children" = Table.ExpandTableColumn(Children, "Children", {"Kind", "Name", "Children", "Text"}, {"Kind.1", "Name.1", "Children.1", "Text.1"})
in
    #"Expanded Children"

Pero hay ciertas cosas que no lo hacen. Por ejemplo, var cuadrado cambiado a const cuadrado en el exmaple anterior

let
    Source = Web.Page(
        "<script>
        const square = function (x){return x*x;};
        var c = square(12);
      document.write(c);          
        </script>"),
    Data = Source{0}[Data],
    Children = Data{0}[Children],
    #"Expanded Children" = Table.ExpandTableColumn(Children, "Children", {"Kind", "Name", "Children", "Text"}, {"Kind.1", "Name.1", "Children.1", "Text.1"})
in
    #"Expanded Children"

Un ejemplo más de no ejecución

//doesnot execute
let
    Source = Web.Page(
        "<script>
        var obj = {foo:'bar,baz:'42'};
        var values = Object.keys(obj);
      document.write(values);          
        </script>"),
    Data = Source{0}[Data],
    Children = Data{0}[Children],
    Children1 = Children{0}[Children]
in
    Children1

Lo he intentado con pocos y algunos excutes de sintaxis, mientras que otros no.

Por ejemplo, Regex positivo lookbehind no funciona

/(?<=[a-zA-Z]+[/]+[a-zA-Z]+[ ])\d+/gm

pero la mirada negativa funciona.

/\d+(?![a-zA-Z]+[/]+[a-zA-Z]+[ ])/gm

Cadena

123INVOICE 7320210279

En lugar de tratar de averiguar qué funciona y cuál no es amablemente posible aconsejar qué motor de excución javascript se utiliza dentro de PQWRY. ¿Es equivalente a un motor <IE9?

Si puedo tener esta infomration puedo ajustar mi script para que coincida con la versión o no usar la sintaxis en absoluto.

Muchas gracias de antemano.

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Hay @smpa01

Si crea una solicitud web a un sitio web de pruebas del navegador como WhatIsMyBrowser.com o Cyscape.com, puede obtener información sobre el navegador utilizado en PQ. Por ejemplo, mi PBI Desktop informa que está utilizando IE 11

browser1.png

browser2.png

saludos

Phil

View solution in original post

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

Hay @smpa01

Si crea una solicitud web a un sitio web de pruebas del navegador como WhatIsMyBrowser.com o Cyscape.com, puede obtener información sobre el navegador utilizado en PQ. Por ejemplo, mi PBI Desktop informa que está utilizando IE 11

browser1.png

browser2.png

saludos

Phil

@PhilipTreacy muchas gracias por esto. Definitivamente me ahorra mucho tiempo.

Todavía tengo problemas para ejecutar la sintaxis js dentro de PQ que tiene soporte completo en IE11. Por ejemplo, Object.keys tiene soporte completo en IE11.

https://caniuse.com/?search=object.keys

let
    Source = Web.Page(
        "<script>
        var obj = {foo:'bar,baz:'42'};
        var values = Object.keys(obj);
      document.write(values);          
        </script>"),
    Data = Source{0}[Data],
    Children = Data{0}[Children],
    Children1 = Children{0}[Children]
in
    Children1

No sé por qué es eso.

@lbendlin

¿Cómo consigue que el script acepte parámetros externos? - hará una entrada de blog

¿Qué puede hacer Javascript que M no puede? - hará una entrada de blog .

Para empezar, REGEX se puede ejecutar de forma nativa en PQ en lugar de ejecutarlo a través de stringr de R (las bibliotecas de R no se pueden ejecutar en servicio, lo que es extremadamente doloroso, si tiene muchas disputas REGEX).

En segundo lugar, diferentes bucles complejos para disputas de datos difíciles.

Una vez que descubra qué sintaxis y función se pueden ejecutar en PQ, se puede liberar toda la potencia de js (limitada a la versión del navegador de PQ) para tareas que se pensaron fuera de su alcance en PQ.

Hay @smpa01

Me sorprendería si el motor del navegador dentro de PQ es en realidad una implementación completa de IE11. Los sitios de prueba del explorador probablemente identifican IE11 por la cadena del agente de usuario. Siento no poder arrojar más luz sobre esto.

saludos

Phil

@PhilipTreacy Muchas gracias por su tiempo.

Syndicate_Admin
Administrator
Administrator

este es un buen hallazgo (y usted debe ser capaz de inferir el motor de representación desde el administrador de tareas de Windows) pero ¿cuál es el valor comercial de esto? ¿Cómo consigue que el script acepte parámetros externos? ¿Qué puede hacer Javascript que M no puede?

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.