EVALUATEANDLOG
Se aplica a:Columna calculadaTabla calculadaMedidaCálculo visual
Devuelve el valor del primer argumento y lo registra en un evento del generador de perfiles del registro de evaluación DAX. Esta función solo es totalmente funcional en Power BI Desktop. Actúa como una simple función de acceso directo en otros entornos.
Sintaxis
EVALUATEANDLOG(<Value>, [Label], [MaxRows])
Parámetros
Término | Definición |
---|---|
Value | Cualquier expresión escalar o expresión de tabla que se va a evaluar y registrar. |
Etiqueta | (Opcional) Cadena constante incluida en el texto JSON y la columna Label (Etiqueta) del evento del registro de evaluación DAX que se puede usar para identificar fácilmente una instancia de la llamada de función. |
MaxRows | (Opcional) Número máximo de filas en el texto JSON del evento del registro de evaluación DAX cuando el primer argumento es una expresión de tabla. El valor predeterminado es 10. |
Valor devuelto
Valor del primer argumento.
La estructura JSON registrada en un evento del generador de perfiles del registro de evaluación DAX incluye lo siguiente:
- "expression" es la versión de texto del primer argumento.
- "label" es el parámetro Label cuando se especifica en la expresión.
- "inputs" es una lista de columnas en el contexto de evaluación que afecta a los valores del primer argumento.
- "outputs" es una lista de una sola columna ("Value") cuando el primer argumento es una expresión escalar, y una lista de columnas de salida cuando el primer argumento es una expresión de tabla.
- "data" es una lista de valores de entrada y de salida cuando el primer argumento es una expresión escalar, y una lista de valores de entrada y las filas de salida correspondientes cuando el primer argumento es una expresión de tabla.
- "rowCount" es el número de filas cuando el primer argumento es una expresión de tabla. Aunque el número de filas de la salida JSON lo trunca el parámetro MaxRows, rowCount es el número real de filas sin truncamiento.
Observaciones
Los eventos de seguimiento se pueden capturar mediante SQL Server Profiler y la herramienta DAX Debug Output de código abierto.
Esta función se puede usar con casi cualquier subexpresión en una expresión DAX, y toda la expresión seguirá siendo válida.
Cuando el primer argumento se evalúa varias veces en una sola consulta, la función genera un único evento del registro de evaluación DAX que contiene los valores de entrada junto con los valores de salida correspondientes.
Cuando se especifica el parámetro label, su valor se devuelve tanto en la salida JSON como en la columna Label del evento del registro de evaluación DAX.
Si el primer argumento es una expresión de tabla, solo se muestran las filas MaxRows superiores en el evento del registro de evaluación DAX.
En algunos casos, esta función no se ejecuta debido a las optimizaciones.
Si el evento del registro de evaluación DAX tiene más de un millón de caracteres, se trunca para conservar la estructura JSON correcta.
Ejemplo 1
La consulta DAX siguiente:
evaluate
SUMMARIZE(
EVALUATEANDLOG(FILTER(Sales, [ProductKey] = 528)),
Sales[SalesTerritoryKey],
"sum",
sum(Sales[Sales Amount])
)
Devuelve el siguiente evento del registro de evaluación DAX:
{
"expression": "FILTER(Sales, [ProductKey] = 528)",
"inputs": [],
"outputs": ["'Sales'[SalesOrderLineKey]", "'Sales'[ResellerKey]", "'Sales'[CustomerKey]", "'Sales'[ProductKey]", "'Sales'[OrderDateKey]", "'Sales'[DueDateKey]", "'Sales'[ShipDateKey]", "'Sales'[SalesTerritoryKey]", "'Sales'[Order Quantity]", "'Sales'[Unit Price]", "'Sales'[Extended Amount]", "'Sales'[Product Standard Cost]", "'Sales'[Total Product Cost]", "'Sales'[Sales Amount]", "'Sales'[Unit Price Discount Pct]"],
"data": [
{
"input": [],
"rowCount": 3095,
"output": [
[52174001, -1, 23785, 528, 20190707, 20190717, 20190714, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[52173001, -1, 26278, 528, 20190707, 20190717, 20190714, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[52082001, -1, 23831, 528, 20190705, 20190715, 20190712, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[52054002, -1, 11207, 528, 20190704, 20190714, 20190711, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[52036001, -1, 25337, 528, 20190704, 20190714, 20190711, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51939002, -1, 23670, 528, 20190702, 20190712, 20190709, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51911002, -1, 11746, 528, 20190701, 20190711, 20190708, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51379003, -1, 13745, 528, 20190612, 20190622, 20190619, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51264002, -1, 11282, 528, 20190605, 20190615, 20190612, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0],
[51184003, -1, 11263, 528, 20190531, 20190610, 20190607, 1, 1, 4.99, 4.99, 1.8663, 1.8663, 4.99, 0.0]
]
}
]
}
Ejemplo 2
La siguiente consulta DAX con un argumento escalar y atributos variables:
evaluate
SELECTCOLUMNS(
TOPN(5, Customer),
[Customer],
"Customer",
EVALUATEANDLOG([Customer] & ", " & [Country-Region], "customerLog")
)
Devuelve el siguiente evento del registro de evaluación DAX:
{
"expression": "[Customer] & \", \" & [Country-Region]",
"label": "customerLog",
"inputs": ["'Customer'[Customer]", "'Customer'[Country-Region]"],
"data": [
{
"input": ["Russell Xie", "United States"],
"output": "Russell Xie, United States"
},
{
"input": ["Savannah Baker", "United States"],
"output": "Savannah Baker, United States"
},
{
"input": ["Maurice Tang", "United States"],
"output": "Maurice Tang, United States"
},
{
"input": ["Emily Wood", "United States"],
"output": "Emily Wood, United States"
},
{
"input": ["Meghan Hernandez", "United States"],
"output": "Meghan Hernandez, United States"
}
]
}