EVALUATEANDLOG
Aplica-se a:Coluna calculadaTabela calculadaMedidaCálculo visual
Retorna o valor do primeiro argumento e o registra em um evento do criador de perfil do Log de Avaliação do DAX. Essa função tem o funcionamento total apenas no Power BI Desktop. Ela atua como uma função de passagem simples em outros ambientes.
Sintaxe
EVALUATEANDLOG(<Value>, [Label], [MaxRows])
Parâmetros
Termo | Definição |
---|---|
Valor | Qualquer expressão escalar ou expressão de tabela a ser avaliada e registrada. |
Rótulo | (Opcional) Uma cadeia de caracteres constante incluída no texto json e na coluna Rótulo do evento log de avaliação do DAX que pode ser usada para identificar facilmente uma instância da chamada de função. |
MaxRows | (Opcional) O número máximo de linhas no texto json do evento log de avaliação do DAX quando o primeiro argumento é uma expressão de tabela. O padrão é 10. |
Valor retornado
O valor do primeiro argumento.
A estrutura JSON registrada em um evento do criador de perfil do Log de Avaliação do DAX inclui:
- "expression" é a versão de texto do primeiro argumento.
- "label" é o parâmetro Rótulo quando especificado na expressão.
- "inputs" é uma lista de colunas no contexto de avaliação que afeta os valores do primeiro argumento.
- "outputs" é uma lista de uma única coluna [Value] quando o primeiro argumento é uma expressão escalar e uma lista de colunas de saída quando o primeiro argumento é uma expressão de tabela.
- "data" é uma lista de valores de entrada e valores de saída quando o primeiro argumento é uma expressão escalar e uma lista de valores de entrada e linhas de saída correspondentes quando o primeiro argumento é uma expressão de tabela.
- "rowCount" é o número de linhas quando o primeiro argumento é uma expressão de tabela. Embora o número de linhas na saída json seja truncado pelo parâmetro MaxRows, rowCount é o número real de linhas sem truncamento.
Comentários
Eventos de rastreamento podem ser capturados usando o Profiler do SQL Server e a ferramenta de saída de depuração do DAX de software livre.
Essa função pode ser usada com quase qualquer subexpressão em uma expressão DAX e toda a expressão permanecerá válida.
Quando o primeiro argumento é avaliado várias vezes em uma única consulta, a função gera um único Evento log de avaliação do DAX que contém os valores de entrada e os valores de saída correspondentes.
Quando o parâmetro de rótulo é especificado, seu valor é retornado na saída json e na coluna Rótulo do Evento de log de avaliação do DAX.
Se o primeiro argumento for uma expressão de tabela, somente as linhas MaxRows superiores serão mostradas no Evento de log de Avaliação do DAX.
Em alguns casos, essa função não é executada devido a otimizações.
Se o Evento de log de avaliação do DAX for maior que um milhão de caracteres, ele será truncado para preservar a estrutura json correta.
Exemplo 1
A seguinte consulta DAX:
evaluate
SUMMARIZE(
EVALUATEANDLOG(FILTER(Sales, [ProductKey] = 528)),
Sales[SalesTerritoryKey],
"sum",
sum(Sales[Sales Amount])
)
Retorna o seguinte Evento de log de Avaliação do 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]
]
}
]
}
Exemplo 2
A seguinte consulta DAX com um argumento escalar e atributos variados:
evaluate
SELECTCOLUMNS(
TOPN(5, Customer),
[Customer],
"Customer",
EVALUATEANDLOG([Customer] & ", " & [Country-Region], "customerLog")
)
Retorna o seguinte Evento de log de Avaliação do 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"
}
]
}