cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
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
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
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

@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.

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
secondImage

Congratulations!

We are excited to announce the Power BI Super Users!

Wave Release 2

Check out the updates in Power BI.

Overview of Power BI 2020 release wave 2!

Microsoft Ignite

Microsoft Ignite

Join digitally, March 2–4, 2021 to explore new tech that's ready to implement. Experience the keynote in mixed reality through AltspaceVR!

secondImage

The largest Power BI virtual conference

100+ sessions, 100+ speakers, Product managers, MVPs, and experts. All about Power BI. Attend online or watch the recordings.