Descubre cómo utilizar scripts de C# para automatizar tareas repetitivas al estilo de Macros para Power BI en el modelo semántico, gracias a Tabular Editor.
¡Prepárate para sumergirte en el emocionante mundo de las Macros en Power BI, donde la automatización de tareas repetitivas es una realidad! Hoy, descubriremos cómo podemos implementar poderosos Scripts (Conjunto de instrucciones en un lenguaje de programación para llevar a cabo una tarea) para transformar nuestra forma de trabajar, explorando como automatizar actividades tediosas en nuestro modelo semántico, es decir, de ese universo de tablas, columnas, medidas, relaciones, Etc.
— Imagina la posibilidad de:
- Crear medidas de negocio estándar con velocidad y eficiencia sorprendentes.
- Diseñar medidas de inteligencia de tiempo y calendarios personalizados con una agilidad sin precedentes.
- Construir medidas explícitas adaptadas a columnas específicas, todo en un abrir y cerrar de ojos.
TOM: Tabular Object Model
La eficacia de automatizar tareas repetitivas relacionadas con el modelo de datos en Power BI se consigue gracias al TOM, o Tabular Object Model, una API que Microsoft pone a nuestra disposición. Este poderoso recurso nos ofrece una serie de instrucciones codificadas, permitiéndonos ejecutar estas tareas de manera más eficiente. En esencia, Microsoft nos proporciona las herramientas necesarias en forma de código para realizar estas manipulaciones con mayor facilidad y precisión, abriendo un abanico de posibilidades en la gestión de modelos de datos.
Sin embargo, es importante reconocer que manejar esta API no es una tarea sencilla. Requiere de una comprensión detallada y habilidades específicas para aprovechar todo su potencial
Herramienta Externa Tabular Editor
La buena noticia es que contamos con una herramienta externa excepcionalmente poderosa, diseñada para simplificar nuestra interacción con esta API. Esta herramienta nos permite acceder y aprovechar todo su potencial de forma directa y más sencilla, gracias a su robusta interfaz. Así, podemos centrar nuestra atención en la creación de scripts (“Macros en Power BI”), maximizando la eficiencia y efectividad de nuestros procesos.
En Tabular Editor, tenemos a nuestro alcance una amplia gama de funcionalidades, pero en este caso, nos enfocaremos en una introducción al uso de Scripts de C# para automatizar tareas, esencialmente creando Macros en Power BI. Tabular Editor ofrece dos versiones: Tabular Editor 3, que es de pago pero ofrece una prueba gratuita, y Tabular Editor 2, completamente gratuita y igualmente capaz de facilitar la creación de ‘Macros en Power BI (Scripts de C#) para la automatización de tareas.
Te invito a visitar la página oficial aquí y elegir la versión que mejor se adapte a tus necesidades.
La Macro en Power BI a Realizar
Vamos a crear nuestra Macro en Power BI que haga un recorrido columna por columna en una selección y, a partir de ahí, cree una medida explícita de la suma asociada a la columna en la iteración actual. Aunque este proceso puede realizarse manualmente con un simple clic derecho, añadiendo una nueva medida y escribiendo la expresión para cada columna, en realidad es una tarea repetitiva que se maneja mucho mejor con una automatización. Ahora, imaginemos que tenemos que hacer esto para 40 columnas diferentes. Aquí es donde una macro puede marcar una gran diferencia, realizándolo de manera más eficiente y precisa.
El Modelo de Datos
En el modelo que usaremos una mirada al panel de datos nos revela una variedad de tablas. Nuestra atención, sin embargo, se dirige específicamente a la tabla Pedidos. Al inspeccionarla, nos encontramos con un mosaico de columnas.
La medida explícita, asociada a la suma de la columna Ingresos en la tabla Pedidos y denominada Ingresos Tot ya ha sido previamente creada. Podemos corroborar esto en la tabla especializada para alojar medidas.
Si observamos la barra de fórmulas teniendo seleccionada la medida la expresión DAX es:
1 | Ingresos Tot = 2 | SUM ( Pedidos[Ingresos] )
No obstante, vamos a crear la misma medida, es decir, el SUM para las columnas CostoDeEmpaque, CostoDeEnvio, CostoDelProducto y también Unidades. Esto lo llevaremos a cabo con Tabular Editor.
Tabular Editor
Para utilizar Macros en Power BI, primero nos dirigimos a la pestaña Herramientas externas. En mi caso, tengo instalados ambos Tabular Editor. Para este artículo y vídeo, usaré Tabular Editor 3, así que seleccionaré esa opción.
Al abrir Tabular Editor 3, aparece su ventana de inicio. La pestaña inicial nos ofrece un vistazo a últimas actualizaciones y recursos de la comunidad.
Entre las múltiples funcionalidades que Tabular Editor 3 nos brinda, estamos particularmente interesados en la creación de Scripts para automatizar. Esta funcionalidad es accesible desde varios puntos dentro de la aplicación, pero en esta ocasión, nos centraremos en acceder a través del menú Window -> New… -> C# Script.
Habilitando el Explorador TOM
Antes de comenzar a crear nuestro script de C#, es importante hacer visible el explorador del TOM. Esto se logra de manera sencilla: si nos enfocamos en la parte central del extremo derecho, encontraremos un ícono que representa al TOM. Pulsamos clic en él.
Con ello se desplegará la jerarquía asociada al TOM, mostrando su estructura y elementos, como: Modelo, Relaciones, Tablas, Etc.
Script de C#
El código de C# que hace la magia s el siguiente:
Te dejo el código del Script de C# en un Code Snippet para copiar y pegar rápidamente:
1 | foreach ( var c in Selected.Columns ) {2 | var nuevaMedida = Model.Tables["Medidas"].AddMeasure (3 | c.Name + " Tot",4 | " SUM ( " + c.DaxObjectFullName + " )"5 | );6 | }
— Explicación paso a paso del código:
- Bucle foreach:
foreach ( var c in Selected.Columns ) { ... }
- Itera sobre cada columna seleccionada en Tabular Editor.
Selected.Columns
representa todas las columnas que has seleccionado. La variablec
representa la columna actual en cada iteración del bucle.
- Itera sobre cada columna seleccionada en Tabular Editor.
- Creación de una Nueva Medida:
var nuevaMedida = Model.Tables["Medidas"].AddMeasure(...)
- Dentro del bucle, por cada columna seleccionada, se crea una nueva medida en la tabla llamada “Medidas” del modelo.
AddMeasure
es el método utilizado para añadir una nueva medida a la tabla.
- Nombre de la Nueva Medida:
c.Name + " Tot"
- El nombre de cada nueva medida se forma tomando el nombre de la columna actual (
c.Name
) y añadiéndole el texto ” Tot”. Por ejemplo, si la columna se llama “Ventas”, el nombre de la medida será “Ventas Tot”.
- El nombre de cada nueva medida se forma tomando el nombre de la columna actual (
- Expresión DAX de la Nueva Medida:
" SUM ( " + c.DaxObjectFullName + " )"
- La expresión DAX para cada nueva medida es una suma de los valores de la columna actual.
c.DaxObjectFullName
proporciona el nombre completo de la columna en DAX, lo que garantiza que la referencia a la columna sea correcta en la expresión DAX.
- La expresión DAX para cada nueva medida es una suma de los valores de la columna actual.
En la página de Tabular Editor vas encontrar este Script y muchos otros, puedes explorar aquí.
Énfasis en Tabular Editor
Tener una base sólida en C# es fundamental para maximizar la automatización del modelo semántico. Por ello, en Power Skill, hemos desarrollado el curso Énfasis en Tabular Editor. Este curso no solo te guía a través de sus funcionalidades, sino que también te proporciona una sólida formación en C#. Esto te permitirá no solo entender los Code Snippets que el equipo de Tabular Editor ofrece y los aportes de la comunidad, sino también desarrollar la habilidad de adaptar y crear tus propias automatizaciones del modelo. Si deseas saber más, haz clic aquí para obtener todos los detalles.
Conclusiones
El Poder de las Macros en Power BI gracias a Tabular Editor, revoluciona la eficiencia en el manejo de modelos de datos. La capacidad del Tabular Object Model (TOM) de Microsoft es fundamental, aunque su uso requiere habilidades específicas. Tabular Editor emerge como una herramienta versátil, ofreciendo dos versiones adaptadas a distintas necesidades. Fundamentalmente, una base sólida en C# es crucial para maximizar el potencial de estas herramientas, por lo que el curso Énfasis en Tabular Editor se perfila como un recurso invaluable para quienes buscan profundizar en esta área.