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:

createOrReplace

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.

table Medidas

A continuación, tenemos:

lineageTag: 0c768b08-c9d0-4ad7-ad0a-79cd7d2d2e06

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:

formatString: #,0.00\ "€";-#,0.00\ "€";#,0.00\ "€"
 
 

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.

lineageTag: 565854fd-e7fa-40d5-b449-1a3ef69c48cc
 
 

Y por último, tenemos:

annotation PBI_FormatHint = {"currencyCulture":"es-ES"}
 

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!