EVALUATEANDLOG
Se aplica a:columna Calculada
tabla calculada
Medida
cálculo visual
Devuelve el valor del primer argumento y lo registra en un evento de generador de perfiles de registro de evaluación de DAX. Esta función solo es totalmente funcional en Power BI Desktop. Actúa como una función de paso a través simple 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. |
Label |
(Opcional) Cadena constante incluida tanto en el texto json como en la columna Etiqueta del evento registro de evaluación de 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 registro de evaluación de 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 de generador de perfiles de registro de evaluación de DAX incluye:
-
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 [Valor] 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 valores de salida cuando el primer argumento es una expresión escalar y una lista de valores de entrada y 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 se trunca mediante 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 de salida de depuración de DAX de código abierto.
Esta función se puede usar con casi cualquier subexpresión en una expresión DAX y la expresión completa seguirá siendo válida.
Cuando el primer argumento se evalúa varias veces en una sola consulta, la función genera un único evento de registro de evaluación de DAX que contiene los valores de entrada y los valores de salida correspondientes.
Cuando se especifica el parámetro label, su valor se devuelve en la salida json y en la columna Label del evento registro de evaluación de DAX.
Si el primer argumento es una expresión de tabla, solo se muestran las filas de MaxRows superiores en el evento registro de evaluación de DAX.
En algunos casos, esta función no se ejecuta debido a las optimizaciones.
Si el evento de registro de evaluación de DAX es superior a un millón de caracteres, se trunca para conservar la estructura json correcta.
Ejemplo 1
La siguiente consulta DAX:
evaluate
SUMMARIZE(
EVALUATEANDLOG(FILTER(Sales, [ProductKey] = 528)),
Sales[SalesTerritoryKey],
"sum",
sum(Sales[Sales Amount])
)
Devuelve el siguiente evento DAX registro de evaluación:
{
"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 DAX registro de evaluación:
{
"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"
}
]
}