Table of Contents

Propiedades de funciones y conjuntos

Note

Esta página se creó con ayuda de la IA.

En esta página se enumeran las propiedades de las funciones DAX definidas por el usuario y de los conjuntos. Para las propiedades que comparten la mayoría de los objetos, consulta Propiedades comunes.

Función

Una función definida por el usuario (UDF) es una función DAX reutilizable que defines una vez en el modelo y a la que puedes llamar desde cualquier expresión DAX, incluidas otras funciones. Acepta parámetros, que pueden ser valores, tablas o referencias a columnas y medidas, y devuelve un valor o una tabla. Las UDF pertenecen al modelo y el Explorador TOM las muestra en la carpeta Funciones.

Las UDF requieren un nivel de compatibilidad de 1702 o superior. Azure Analysis Services y SQL Server Analysis Services no las admiten. Para una introducción completa, consulta Funciones DAX definidas por el usuario.

Tabular Editor 2 también admite las UDF y las muestra en la carpeta Funciones. Para agregar una en Tabular Editor 2, haz clic con el botón derecho en la carpeta y elige Nueva función definida por el usuario. Tabular Editor 2 no tiene las propiedades Namespace, PackageId y PackageVersion.

Propiedades comunes

En DAX, llamas a una función por su nombre, así que el nombre no puede contener espacios. Puede contener puntos y guiones bajos. Usa un nombre compuesto, como Finance.Margin o ACME_Margin, para evitar conflictos con una función DAX integrada que Microsoft pueda agregar más adelante. Consulta Use nombres compuestos para las funciones definidas por el usuario. Cuando cambias el nombre de una función, Tabular Editor 3 actualiza las referencias a ella en todo el modelo, igual que Corrección automática de fórmulas y dependencias de fórmulas hace con las medidas y las columnas.

Espacio de nombres

Namespace · string · Básico · almacenado como una anotación (TE_Group)

El grupo en el que aparece la función en Vista del Explorador TOM cuando está activada la agrupación de funciones definidas por el usuario por espacio de nombres. Activa la agrupación con el interruptor situado encima del Explorador TOM. Tabular Editor determina el espacio de nombres en este orden:

  1. si la función tiene una anotación TE_Group, ese es el espacio de nombres
  2. de lo contrario, si el nombre de la función contiene un punto, el espacio de nombres es la parte anterior al último punto; por ejemplo, DaxLib.Convert.CelsiusToFahrenheit está en el espacio de nombres DaxLib.Convert
  3. de lo contrario, si la función tiene una anotación DAXLIB_PackageId (consulta PackageId), el espacio de nombres es el identificador del paquete
  4. de lo contrario, el espacio de nombres está vacío

Puedes establecer un espacio de nombres distinto sin cambiar el nombre de la función. Tabular Editor lo almacena en la anotación TE_Group de la función, que se guarda con el modelo. Para volver a usar el espacio de nombres derivado del nombre, restablece la propiedad o borra el valor. Al igual que una carpeta de visualización, el espacio de nombres solo organiza el Explorador TOM y, en DAX, siempre llamas a la función por su nombre completo.

Por ejemplo, si cambias el nombre en lote de un conjunto de funciones para quitar el prefijo DaxLib.Convert. de sus nombres, establece su espacio de nombres en DaxLib.Convert para mantenerlas agrupadas.

Id. de paquete

PackageId · string · Metadatos · solo lectura · almacenado como anotación (DAXLIB_PackageId)

El identificador del paquete de DaxLib del que procede la función, leído de la anotación DAXLIB_PackageId de la función. Los paquetes de DaxLib colocan esta anotación en sus funciones. La vista de propiedades solo muestra PackageId y PackageVersion cuando la función tiene esta anotación, por lo que las funciones que has escrito tú no los muestran.

El DAX Package Manager de Tabular Editor 3 quita las anotaciones DAXLIB_ cuando instala una función y realiza el seguimiento del paquete mediante propiedades extendidas, como se describe en PackageVersion. Verás estas propiedades en las funciones de un paquete de DaxLib que se añadieron al modelo sin el DAX Package Manager. Consulta Administrador de paquetes de DAX.

Versión del paquete

PackageVersion · string · Metadatos · solo lectura · almacenado como anotación (DAXLIB_PackageVersion)

La versión del paquete de DaxLib del que procede la función, leída de la anotación DAXLIB_PackageVersion de la función.

El DAX Package Manager no usa PackageId ni PackageVersion. Realiza el seguimiento de los paquetes instalados en propiedades extendidas. En el modelo, TabularEditor_ModelDaxPkgTable y TabularEditor_ModelDaxPkgSeq enumeran los paquetes instalados. En cada función, TabularEditor_ObjDaxPkgHandle registra a qué paquete pertenece la función y TabularEditor_ObjDaxPkgContentHash registra cuál era su expresión cuando se instaló. Si cambias la expresión de una función que procede de un paquete, cuando más tarde actualices o quites el paquete aparecerá un mensaje preguntando qué hacer con la función modificada.

Para que el DAX Package Manager deje de realizar el seguimiento de una función, elimina sus dos propiedades extendidas: TabularEditor_ObjDaxPkgHandle y TabularEditor_ObjDaxPkgContentHash. Al quitar el paquete, la función ya no se elimina y el paquete sigue apareciendo como instalado. Si más tarde actualizas o reinstalas el paquete, aparecerá un mensaje sobre el conflicto con la función existente del mismo nombre. Si quitas solo TabularEditor_ObjDaxPkgContentHash, la función se considera modificada y cada actualización mostrará un mensaje al respecto. La documentación del DAX Package Manager advierte de que cambiar manualmente estas propiedades extendidas puede provocar un comportamiento inesperado.

Expresión

Expression · string · Opciones

La lista de parámetros y el cuerpo de la función en notación lambda: los parámetros entre paréntesis, luego => y después la expresión DAX que los usa. Por ejemplo:

// Returns the relative change between two values
(
    oldValue: NUMERIC,  // The original value
    newValue: NUMERIC   // The value to compare against
)
=> DIVIDE ( newValue - oldValue, oldValue )

Cada parámetro puede tener un tipo, como NUMERIC, STRING o TABLE, y un modo de evaluación. VAL, el valor predeterminado, evalúa el argumento una vez antes de que se ejecute la función, como una variable. EXPR pasa la expresión en sí, que se evalúa en el contexto en el que la función la usa, como una medida. Un parámetro seguido de = expression es opcional. Consulta Funciones DAX definidas por el usuario para ver la sintaxis completa.

Tabular Editor 3 muestra los comentarios de la expresión en las sugerencias de autocompletado y en las descripciones emergentes cuando llamas a la función.

En Tabular Editor 3, puedes editar funciones junto con otros objetos en un documento Script DAX, con la palabra clave FUNCTION. También puedes escribir una función en la sección DEFINE de una Consultas DAX y aplicar la consulta para agregar la función al modelo.

Conjunto

Un conjunto pertenece a una tabla y contiene una expresión DAX. El Tabular Object Model (TOM) lo describe como un conjunto calculado. Los conjuntos solo se admiten en modelos de Power BI y Fabric, con nivel de compatibilidad 1400 o superior. En un modelo en modo de compatibilidad de Analysis Services, la biblioteca TOM rechaza un nuevo conjunto con el error "is not supported at AnalysisServices mode".

Los conjuntos no aparecen en el Explorador TOM. Para agregar, editar o quitar los conjuntos de una tabla, selecciona la tabla y haz clic en el botón ... de la propiedad Sets (consulta @object-properties-tables). La vista de propiedades solo muestra esa propiedad para modelos en modo de compatibilidad de Power BI con nivel de compatibilidad 1400 o superior.

Propiedades comunes

Expresión

Expression · string · Opciones

La expresión DAX que define el conjunto.

Dinámico

IsDynamic · bool · Opciones

Indica si el conjunto es estático o dinámico. Un conjunto estático se evalúa una vez, y sus miembros no cambian en función de los filtros de una consulta. Un conjunto dinámico se evalúa para cada consulta, en su contexto, y sus miembros pueden cambiar en función de los filtros.