Seguimos con la vista TMDL a toda máquina, ya que cada día que pasa, me tiene más cautivado.
Si te perdiste el post anterior en el que aterrizábamos lo que era la vista TMDL y las posibilidades que nos ofrece, te dejo aquí el post para que lo revises.
Seguimos en la vista TMDL, si bien en el post anterior exploramos el código y las posibilidades que nos daba en cuanto a las tablas, ahora vamos hacer lo mismo pero para las medidas.
Lo primero que hacemos es arrastrar la tabla contenedora de medidas al lienzo de la vista:
Y podemos observar que de igual manera, nos ha rellenado el lienzo con código. Vamos a ir paso a paso desglosándolo como la vez pasada.
En primer lugar, tenemos:
Nos dice que si lo que vamos a definir en el siguiente paso, que es la tabla "Medidas", existe la va a sobrescribir y si no existe la va a crear nueva.
En segundo lugar, declara la tabla dentro del modelo tabular con el nombre Medidas.
A continuación, tenemos:
Que como sabemos actúa como identificador interno para la tabla, y poder mantener el "data lineage" lo que permite que el motor tabular “sepa” que es la misma entidad si en algún momento se cambia el nombre.
La siguiente parte del código, es donde se encuentran definidas las medidas de la siguiente manera:
measure 'Ventas Totales' = SUM(FactOnlineSales[SalesAmount])
Definimos una medida llamada Ventas Totales. La definición = SUM(FactOnlineSales[SalesAmount])
indica que la medida hará una suma de la columna SalesAmount
en la tabla FactOnlineSales
. El nombre de la medida se presenta entre comillas simples ('Ventas Totales'
) porque contiene espacios.
Lo siguiente que viene es donde se define el formato que tendrá la medida cuando se muestre en el informe:
Aquí se usa un patrón con separador de miles (#,0.00
), dos decimales y el símbolo de euro ("€"
). Se incluyen también las variantes para valores negativos y cero. Por ejemplo, -#,0.00\ "€"
indica cómo se presentará si el valor es negativo.
A continuación, nos encontramos con otra línea de lineageTag, que esta corresponde a la medida.
Y por último, tenemos:
Que indica a Power BI que el formato de moneda debe regirse por la cultura “es-ES”
(Español de España).Esto influye en cómo se muestran símbolos, separadores
decimales y de miles y aunque ya tengamos un formatString
, la annotation aporta
metadatos adicionales que Power BI utiliza para un manejo coherente de la moneda.
Desde esta vista, podemos crear medidas, realizar cambios masivos con un buscar y
reemplazar. ¿Cómo? Hacemos clic con el botón derecho sobre el lienzo de la vista TMDL y se
nos abre el siguiente menú:
Y le damos a la opción "Command Palette":
Y sobre la barra de búsqueda tecleamos "Replace" y seleccionamos la opción "Replace". Y
en la ventana que se nos ha abierto, podemos teclear la/s palabra/s a buscar y la palabra final
de la siguiente manera:
Y ahora podemos proceder de la siguiente manera, cambiando una a una, o haciendo un
cambio masivo. Para hacer de una en una hacemos clic sobre la tecla Enter o sobre el icono
recuadrado en color rojo, o si por el contrario queremos un reemplazo masivo, hacemos clic
sobre el recuadro azul:
Y podemos ver que nos ha aplicado el cambio en todas las medidas del script.
Si ahora, queremos aplicar los cambios y que se reflejen en nuestro modelo solamente con que
hagamos click en "Aplicar" sería suficiente:
Y si ahora vamos a la vista del modelo y seleccionamos la medida "Ventas TOTALES", vemos
que la palabra "TOTALES" esta en mayúscula
Y si hacemos clic sobre la misma, y desplegamos el panel de propiedades, vemos que la
descripción de la medida coincide (y menos mal) con la descripción que escrito en el visor
TMDL.
Pero ahora, os podréis estar preguntando... Vale sí, me gusta, pero tengo que ir una a una
y en mi modelo tengo 100 medidas...
Bien, para ir abriendo boca, podemos usar IA de una manera un poco rudimentaria, pero
que nos va ahorrar muchísimo tiempo. ¿Cómo? Cogemos el código completo, lo copiamos
y nos lo llevamos a nuestra IA favorita, en mi caso, la llevo a ChatGPT y la pego, y le indico
en el prompt que me documente todas las medidas y tachan:
Nos llevamos este código a la vista TMDL y la pegamos:
Revisamos las descripciones que nos ha dado ChatGPT, y si nos cuadran, aplicamos los
cambios. Ahora nos vamos a la vista del modelo y podemos ver que TODAS las medidas
de nuestro modelo tienen la descripción.
¿Qué os parece esto? A mi ciencia ficción pero ya si que no hay excusa para que nuestro
modelo de datos este sin documentar.
¡Nos vemos en los datos!