Table of Contents

Columnas calculadas con contexto de usuario

Una columna calculada con contexto de usuario es una columna calculada que se evalúa por usuario. Su expresión puede llamar a funciones como USERPRINCIPALNAME o USERNAME y devolver un valor distinto para cada usuario. En cambio, una columna calculada estándar se evalúa una sola vez, cuando se procesa la tabla, y devuelve el mismo valor para todos los usuarios.

La propiedad ExpressionContext de la columna calculada determina si la columna se evalúa una sola vez o por usuario:

Contexto de expresión Significado
Estándar La opción predeterminada. La expresión solo puede usar funciones estándar. La columna tiene un valor por fila, igual para todos los usuarios.
Contexto de usuario La expresión puede llamar a funciones de contexto de usuario. La columna se evalúa para cada usuario.

Selecciona una columna calculada en Vista del Explorador TOM y establece Contexto de expresión en Opciones de Vista de propiedades.

Note

ExpressionContext requiere un nivel de compatibilidad 1705 o superior; por debajo de 1705, las columnas calculadas siempre son Standard.

Para qué no se puede usar una columna con contexto de usuario

Los objetos que se evalúan una vez para todo el modelo no pueden hacer referencia a una columna calculada con contexto de usuario. El analizador semántico de Tabular Editor informa de un error en cada uno de estos casos:

Una columna con contexto de usuario no puede ser referenciada por Mensaje
Una columna calculada estándar "Esta expresión hace referencia a la columna calculada con contexto de usuario Table[Column], lo que no está permitido en una columna calculada estándar."
Una tabla calculada "Esta expresión hace referencia a la columna calculada con contexto de usuario Table[Column], lo que no está permitido en una tabla calculada."
Un filtro de seguridad a nivel de filas "Esta expresión hace referencia a la columna calculada con contexto de usuario Table[Column], lo que no está permitido en un filtro de seguridad a nivel de filas."
Una relación, como uno de sus extremos "Una relación no puede usar la columna calculada con contexto de usuario Table[Column] como uno de sus extremos."

Las tres primeras reglas también se aplican a las referencias indirectas, por ejemplo, a través de una medida. Las medidas y otras columnas calculadas con contexto de usuario pueden hacer referencia a una columna con contexto de usuario.

Dónde aparecen los errores

Cómo se hace referencia a la columna Editor de DAX Vista de mensajes te validate
Directamente Sí Sí Sí
Indirectamente, por ejemplo mediante una medida No Sí Sí
Como extremo de una relación No Sí Sí

El editor de DAX no subraya las infracciones indirectas, así que revisa los mensajes en @messages-view antes de desplegar.

Una infracción en un extremo de la relación también aparece en la propiedad Mensajes de error de la relación. Se comprueban tanto las relaciones activas como las inactivas, y los errores se reportan por extremo, así que una relación con columnas de contexto de usuario en ambos extremos tendrá dos errores.

Note

te validate --errors-only sigue reportando estas infracciones, ya que la opción solo oculta advertencias y antipatrones.

Pasos a seguir