Power BI DocuTIPS V

Sara Alonso B
4 min readApr 9, 2024

Tip 5: Documentación avanzada con las nuevas funciones DAX “INFO” (Parte 2)

¡Hola! Ya estoy por aquí de nuevo con el quinto capítulo de Power BI DocuTIPS. Perdonad, que me he hecho un poquito de rogar, pero es que he tenido unas semanas intensas de trabajo y eventos. En fin, no me puedo quejar 😊.

Este capítulo será una continuación del anterior, por lo que vamos a recordar en qué punto nos quedamos:

Habíamos hablado de las DMVs, precedentes de las funciones INFO. También hablamos de la nueva vista de consultas DAX, nativa en Power BI, y por supuesto, de las funciones DAX “INFO” para documentar modelos semánticos.

Terminamos nuestro capítulo habiendo documentado las tablas de nuestro modelo:

Documentación de tablas

Vamos a continuar ahora documentando las medidas. Para ello vamos a abrir una nueva Query:

Vamos a comenzar igual que con las tablas. Escribimos EVALUATE y a continuación la función INFO que necesitemos, en este caso “MEASURES”:

EVALUATE
INFO.MEASURES()

Pulsamos en “Run” y vemos toda la información que nos devuelve sobre las medidas que tenemos en el modelo: ID, Name, Description, DataType, Expression, FormatString, IsHidden, etc.

NOTA: Como comenté en el anterior capítulo, el campo “Description” solo nos devolverá un valor si tenemos cubierto el campo “descripción” que estuvimos viendo en los capítulos anteriores en esta serie.

Como hicimos con las tablas, vamos a seleccionar solo las columnas que nos interesen utilizando la función “SELECTCOLUMNS” y además les podremos cambiar los títulos.

EVALUATE
SELECTCOLUMNS(
INFO.MEASURES(),
"Medida", [Name],
"DAX formula", [Expression],
"Descripción", [Description],
"TablaID", [TableID]
)

En este caso, para documentar las medidas de nuestro modelo, solo nos hemos quedado con los nombres de las medidas, las expresiones DAX, las descripciones y los IDs de las tablas en las que se encuentran almacenadas.

Si quisiéramos también documentar las columnas y los roles de seguridad, por ejemplo, podríamos seguir el mismo procedimiento con las funciones siguientes:

EVALUATE
INFO.COLUMNS()
EVALUATE
INFO.ROLES()

Ahora que tenemos las tablas y las medidas documentadas, lo que vamos a hacer es unificarlas en una única query, y con esta query, a través de Power Automate, crearemos un archivo CSV en una ubicación concreta con la documentación, cada vez que pulsemos en un botón en el informe de Power BI. ¿Qué os parece? 😊

Abriremos, entonces una nueva query y añadiremos el siguiente código:

EVALUATE
VAR _medidas =
SELECTCOLUMNS(
INFO.MEASURES(),
"Medida", [Name],
"DAX formula", [Expression],
"Descripción medida", [Description],
"TablaID", [TableID]
)
VAR _tablas =
SELECTCOLUMNS(
INFO.TABLES(),
"TablaID", [ID],
"Tabla", [Name],
"Descripción tabla", [Description]
)
VAR _medidasytablas =
NATURALLEFTOUTERJOIN(_medidas, _tablas)

RETURN
SELECTCOLUMNS(
_medidasytablas,
"KPI", [Medida],
"DAX Formula", [DAX formula],
"Descripción Medida", [Descripción medida],
"Tabla", [Tabla],
"Descripción tabla", [Descripción tabla]
)
  1. Definimos una variable para las medidas y otra para las tablas. Y dentro de ellas solamente tenemos que pegar el código que utilizamos para evaluar ambas consultas por separado (desde “SELECTCOLUMNS”).
  2. Definimos una nueva variable que llamaremos _medidasytablas, donde haremos la unión de ambas variables con la función DAX NATURALLEFTOUTERJOIN. Automaticamente se hace el “join” de ambas por el campo que tienen en común, que es el “TablaID” (por eso era necesario incluirlo en la consulta y variable de “Medidas”.
  3. Finalmente escribimos “RETURN” para indicarle lo que queremos que nos devuelva. De todos los campos que tenemos de ambas variables juntas (_medidasytablas) nos quedamos con aquellos que nos interesan para la documentación (función SELECTCOLUMNS), y además los renombramos para una mejor y más fácil lectura del cliente:

“KPI”, [Medida],
“DAX Formula”, [DAX formula],
“Descripción Medida”, [Descripción medida],
“Tabla”, [Tabla],
“Descripción tabla”, [Descripción tabla]

4. Le damos a ejecutar:

Ahora sí tenemos todo lo que necesitamos para documentar los KPIs de negocio.

Podemos darle al botón de “Copy” para pegar los datos en una tabla de Excel, cosa que pocas veces nos pide el cliente (nótese la ironía), o podemos ir más allá. ¿Por qué no añadir un visual de Power Automate en nuestro informe de Power BI que permita al usuario descargarse toda esta documentación en la carpeta de OneDrive que elija, a golpe de “click”?

¿Qué os parece? Como buena millennial que soy, sufrí mucho de pequeña cada vez que tenía que esperar una semana llena de intriga para saber qué sucedería en mi serie favorita. Así que… ¡Lo veremos en el próximo capítulo!😁

¡Gracias por leerme!

--

--