En el artículo de hoy aprenderemos a modificar informes de Power BI usando Notebooks de Microsoft Fabric gracias a la librería Semantic-link-labs. ¿No le ves utilidad? Imagina que tu informe con decenas de páginas que contiene muchos visuales por página y utilizan un KPI que ha sido renombrado en el modelo semántico… esto provocara que te fallen todos los visuales ¿cómo lo arreglas? Hasta ahora seguramente lo modificarías a mano, pero con esta técnica te llevara unos pocos segundos… (se creará un nuevo informe con los cambios, no se modifica el existente)
Requisitos previos
Antes de continuar asegurate de tener un entorno con la librería semantic link lab disponible. Si no lo tienes, puedes seguir estos pasos para crear el entorno o puedes instalar la librería desde el propio Notebook.
Preparando el Notebook
Crea un nuevo Notebook en tu área de trabajo y escoge el entorno que tenga configurada la Liberia Semantic Link Labs
Modificar un informe de Power BI
Crea un bloque e instala la librería Semantic Link Labs (solo si no tienes un entorno con ella instalada)
pip install semantic-link-labs
En un nuevo bloque escribe el siguiente código para importar las librerías necesarias en este Notebook:
# Importar librerías import json import sempy_labs as labs from sempy_labs import report as inf
Crea otro bloque para definir el informe a modificar y obtener su definición en formato JSON.
# Informe que se va modificar informe_origen = "Informe 1" # Obtener el JSON del informe informe_antiguo = inf.get_report_json(informe_origen)
En un nuevo bloque escribe el siguiente código para remplazar el KPI que está fallando por uno nuevo.
Para visualizar el código de ejemplo es necesario iniciar sesión desde desde la barra lateral derecha, desde los comentarios o desde el pie de página. Puedes utilizar tu cuenta de Microsoft o de Google.
En otro bloque escribe el siguiente código para definir el nombre del nuevo informe, el modelo semántico al que se conectará y en que área de trabajo se guardará.
# Variables para el nuevo informe nombre_nuevo_informe = "Nuevo Informe 2" nombre_modelo_semantico = "MiguelTroyano.com - Store Sales" nombre_area_trabajo = "MiguelTroyano.com" # Crear el nuevo informe inf.create_report_from_reportjson( report = nombre_nuevo_informe, dataset = nombre_modelo_semantico, report_json = informe_nuevo, theme_json = None, workspace = nombre_area_trabajo )
El resultado debe ser similar al siguiente: