Power BITutoriales

Tutorial Power BI: Cómo cargar webs en tus informes de Power BI

En este tutorial queremos mostrar cómo cargar webs enteras en tus informes de Power BI. Esta idea parte de un reto que me planteó Fran Mullor en el grupo de Telegram de @PowerBIEspañol y al que agradezco que me haya hecho llevar el HTML Content a un nivel superior del que había llegado hasta ahora.

En posts anteriores os contamos cómo utilizar el custom visual HTML5 para mejorar el diseño de tus informes. Incluso llegamos a crear un gráfico de alineaciones de fútbol con HTML5.

La idea en esta ocasión es poder cargar webs completas de forma dinámica en base a datos o filtros de nuestro informe y para ello utilizaremos el custom visual HTML Content. ¡Empecemos!

Antes de nada: limitaciones conocidas

Antes de comenzar quiero comentaros algunas limitaciones que tienen documentadas en la web de HTML Content y que es importante conocer previamente a su uso:

  • Las páginas web no se cargarán en Power BI Desktop. Sólo cuando publiques tu informe en powerbi.com podrás ver como se cargan las webs de manera dinámica.
  • Las webs, como cualquier otro origen de datos, tienen controles de acceso. Por lo tanto, no funcionará con cualquier web. Si los admins de la web que quieres cargar no habilitan Access-Control-Allow-Origin:* no permitirán embeber su web desde otra web externa.

De hecho, si intentáis renderizar una web que no permite el acceso por iframe o embed os aparecerá una imagen como esta:

Acceso denegado por la web origen
Acceso denegado por la web origen

Por ejemplo, si alguno está pensando en compartir sus informes de Power BI sin licencias PRO con esta opción de embeber el informe, os adelanto que no funcionará. PowerBI.com es una de esas webs que no permiten el acceso via iframe o embed externo.

Origen de Datos del tutorial

En este caso queremos hacer una comparativa de jugadores de fútbol. Si hacemos esto con Power BI directamente tendríamos que encontrar unas estadísticas completas por jugador de acceso libre, desarrollar el modelo de datos y montar todas las visuales en nuestro informe.

En cambio, hemos encontrado una web llamada One vs One que ya hace todas estas comparativas y cuya seguridad nos permite acceder a ella por iframe:

Web One vs One
Web One vs One

Queremos poder comparar jugadores de manera dinámica por lo que lo primero que tenemos que hacer es cargar una lista de jugadores y los equipos en los que juegan. Por suerte, esta web tiene una página dedicada para cada club que incluye una lista de jugadores.

Página del FC Barcelona con la plantilla
Página del FC Barcelona con la plantilla

Por ello, hemos creado una función que carga la lista de los jugadores a partir de la lista de equipos. Para cada equipo de la lista, creamos la url de la pagina del equipo en One vs One y cargamos este listado de jugadores.

Carga de Jugadores con función en Power Query
Carga de Jugadores con función en Power Query

No quiero pararme mucho en este proceso de carga porque el objetivo de este tutorial es el de cargar una web en Power BI. Recordad que si estáis suscritos a nuestro blog (es gratis) os podéis descargar el pbix original de este tutorial y ver el detalle de la carga.

Cargando webs en tu informe de Power BI

Una vez que tenemos la lista de equipos y jugadores ya podemos crear nuestro informe con las comparativas de jugadores. Lo primero que crearemos es un filtro / segmentador con los jugadores agrupados por equipos. Como hay jugadores de las 5 grandes Ligas, he añadido en la parte superior un filtro horizontal para escoger la competición/es deseada/s.

La idea es que el usuario pueda selecionar 2 jugadores del listado y aparezca la comparativa de la web de One vs One en la parte derecha del informe.

Ejemplo de comparativas de jugadores
Ejemplo de comparativas de jugadores

Para la comparativa, añadiremos una la custom visual HTML Content que podéis encontrar en el appsource de Microsoft.

Creando la url dinámica de comparativa de jugadores

A esta visual sólo necesitas pasarle un campo/medida con el código HTML que quieres cargar. El formato HTML para cargar una web con la etiqueta ’embed’ tendría el siguiente formato:

<embed type='text/html' src='https://www.myweb.com' width='XXXX' height='XXXX'>

El formato de la url de comparativa de jugadores de One vs One es el siguiente:

https://one-versus-one.com/en/compare-players/cristiano-ronaldo-vs-Lionel-Andres-Messi

Por lo tanto, está formado por 4 partes:

  • Una parte inicial fija: https://one-versus-one.com/en/compare-players/
  • El nombre del primer jugador separado por guiones: cristiano-ronaldo
  • Otra parte fija: -vs-
  • El nombre del segundo separado por guiones: Lionel-Andres-Messi

Para crear una url que vaya cambiando según los jugadores seleccionados en el filtro de la derecha, crearemos una medida DAX con el siguiente código:

Comparativa = 
VAR Jugador1 = SUBSTITUTE(LOWER(MAX(Equipos[Jugador]))," ","-")
VAR Jugador2 = SUBSTITUTE(LOWER(MIN(Equipos[Jugador]))," ","-")
RETURN
IF
(
COUNTROWS(Equipos)=2,
"<embed type='text/html' src='https://one-versus-one.com/en/compare-players/"& Jugador1 &"-vs-"& Jugador2 &"' width='1000' height='700' >",
"Selecciona sólo 2 jugadores en el filtro de la izquierda para poder iniciar la comparativa"
)

Como veis, esta medida esta creada en diferentes pasos:

  • Creamos una variable para cada jugador seleccionado y le damos el formato separado por guiones.
  • Devolvemos un IF para que solo muestre la url si hay 2 jugadores seleccionados y si no son 2 muestre el texto “Selecciona sólo 2 jugadores en el filtro de la izquierda para poder iniciar la comparativa”.
  • Creamos el string con las 4 partes de la url que hemos comentado antes.

El resultado

Os dejo el informe para que podáis jugar con él y que valoréis el uso de HTML Content en vuestros informes:

Recordad que podéis hacer el informe más grande el informe con las flechas abajo a la derecha y así poder interactuar mejor con él. Aparte, si sois suscriptores del blog (es gratis) podréis descargar el fichero pbix original y ver todo el detalle del mismo en Power BI Desktop.

Conclusiones

A lo mejor os preguntáis ¿y para qué cargar webs en mis informes? Es una opción muy válida en entornos de negocio como los siguientes ejemplos:

  • En un informe de ventas de un e-commerce podemos cargar en una parte del mismo la ficha web del producto filtrado.
  • En un informe de comparativa de restaurantes podemos cargar la web de reservas de cada restaurante seleccionado.
  • En un informe de SAT podemos cargar las incidencias o consultas web del cliente seleccionado.

Por lo tanto, seguro que encontráis opciones de incorporar webs en alguno de vuestros informes. ¿Qué opináis? ¿Tenéis alguna idea de negocio más dónde pueda encajar la carga de webs en informes de Power BI? Podéis dejar vuestras ideas en los comentarios de este post.

¡SUSCRÍBETE YA!
Doy mi consentimiento para almacenar mis datos para envío de newsletters.
Si te suscribes a la newsletter tendrás acceso a los <b><u>ficheros Power BI originales</u></b> de nuestros tutoriales y post. <br><br>Además tendrás derecho a participar en sorteos periódicos que realizaremos en el blog.
We hate spam. Your email address will not be sold or shared with anyone else.
Mostrar más

Iván Arribas

Llevamos siglos generando, relacionando, modificando y almacenando datos....es hora de que les echemos un vistazo. Espero que este blog sirva de ayuda a los que quieran introducirse en este mundo de la Analítica de Datos, igual que me está sirviendo a mi.

Publicaciones relacionadas

5 comentarios

  1. Genial, estaba esperando una solución así desde hacía mucho tiempo.
    Tu ejemplo es un caso de uso perfecto. Felicidades.
    Gracias por compartir tan buenas ideas.

    Hacer referencia a publicar tus informes en una web: “si alguno está pensando en compartir sus informes de Power BI sin licencias PRO con esta opción de embeber el informe, os adelanto que no funcionará. PowerBI.com es una de esas webs que no permiten el acceso via iframe o embed externo.”
    Si insertas un informe publicado “Publicar en la web (público)”, ¿eso debería funcionar?
    Incluso con licencia FREE, ¿verdad?

    1. Hola Osiel,

      no tengo video del proceso, pero esta explicado paso a paso en este tutorial. Si tienes alguna duda dímelo y lo resolvemos juntos.

      Un saludo,

    1. Hola Gonzalo,

      depende de como está configurada la web puede realizarse o no. No hay más opción que probar ya que no es algo que pueda verse desde fuera.

      Un saludo,

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información básica sobre protección de datos Ver más

  • Responsable: Iván Arribas Delgado.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio. El Titular ha contratado los servicios de alojamiento web a Bluehost que actúa como encargado de tratamiento.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

Botón volver arriba
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos. Contiene enlaces a sitios web de terceros con políticas de privacidad ajenas que podrás aceptar o no cuando accedas a ellos. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Ver
Privacidad