Mover todas las columnas a una carpeta de visualización con el editor tabular

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp

Contenidos

Este es mi tercer post sobre Tabular Editor, los otros son el post de introducción reciente hace unas semanas, y además un post que explica cómo copiar medidas entre archivos PBIX. Vi el excelente serie de seminarios web organizado por mi amigo Mike en Consejos PowerBI donde Daniel brindó una descripción más detallada de Tabular Editor durante varias sesiones. Esta serie me inspiró a intentar escribir mi primer script usando Tabular Editor, y pensé en compartir lo que aprendí con ustedes aquí.

Lo que aprendí

Este post no será una descripción detallada de cómo aprendí algunas cosas. Cometí algunos errores en el camino, y además noto que no soy un programador, sino que solo le daré los aprendizajes clave para ayudarlo a emprender el mismo viaje con menos dolor si desea hacer eso. Me estoy acercando al aprendizaje de este nuevo lenguaje de secuencias de comandos de la misma manera que me enseñé a mí mismo Excel VBA. Se siente muy semejante a mí.

Aprendizajes clave

Con todo ese trasfondo, pasemos a mi primer guión.

Mi primer guion

Al ver el seminario web, Daniel mostró cómo se pueden mover las medidas a las carpetas de visualización. Escribí una serie de posts sobre el uso de carpetas de visualización en el pasado, siendo el más importante (en mi opinión) el que recomiendo utilizar carpetas de visualización de columnas en lugar de carpetas de visualización de medidas. Puede leer por qué prefiero las carpetas de visualización de columnas a las carpetas de visualización de medidas en el post vinculado anterior. Entonces se me ocurrió que mover todas las columnas a una carpeta de visualización debería ser lo primero que se debe hacer con cualquier modelo nuevo, y eso suena como una gran posibilidad para escribir un guión (además hay un segundo guión adicional al final de esta publicación ).

Como puede ver a continuación, mi primer guión es muy simple.

foreach (var c in Model.AllColumns)
    {
        c.DisplayFolder = "_Columns";  // use double backslash for subfolders, e.g. “_Columnssubfolder”
    }

La primera línea es la construcción de bucle para cada. Estoy familiarizado con esto, dado que lo he usado antes en Excel VBA para recorrer colecciones de objetos, como para cada celda en celdas.

Entonces el codigo Modelo.Todas las columnas me posibilita recorrer cada columna en el modelo de datos sin necesitar de elegir primero cada columna manualmente. Alternativamente, podría reemplazar este código con Columnas seleccionadas y eso, en cambio, haría que el script funcione en las columnas seleccionadas en la interfaz de usuario.

Entonces, el código real (línea 3) es muy simple. Toma cada columna una al mismo tiempo, y después establece el DisplayFolder propiedad a lo que tenga en las comillas.

Esconder columnas en tablas de hechos utilizadas en combinaciones

Aquí hay un segundo guión adicional. Una buena práctica es esconder cualquier columna en una tabla de hechos que participe en una combinación. Considere la columna ProductKey. Esta columna existe tanto en la tabla de productos como en la tabla de ventas. Una vez que se ha creado una vinculación, verdaderamente debe utilizar la clave de producto de la tabla Producto, no la de la tabla de ventas. Es es por esto que que creaste la vinculación en primer lugar. El siguiente script lo hace automáticamente por usted.

foreach (var r in Model.Relationships)
    {
        r.FromColumn.IsHidden = true;
    }

¿Algún comentario?

Espero que les haya gustado este post y espero que haya inspirado a otros programadores laicos a intentarlo (ya conocen quién son, las personas a las que les gusta piratear el código Excel VBA). Me encantaría escuchar ideas para otros guiones en los comentarios a continuación. Chris Haas ya hizo una gran sugerencia en mi post anterior. Eso es para poder iterar por medio de los valores en una columna y escribir medidas con valores codificados, como

CALCULAR([Total Sales],Producto[Category]= «Bicicletas»), etc.

Verdaderamente me gusta esta idea y estaré investigando eso en el futuro mientras me enseño esta herramienta. Si ya sabe cómo hacerlo, puede publicar ese script a continuación.

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.