EVALUATEANDLOG
Vrátí hodnotu prvního argumentu a zaznamená ji do události profileru vyhodnocení protokolu DAX. Tato funkce je plně funkční pouze v Power BI Desktop. V jiných prostředích funguje jako jednoduchá předávací funkce.
Syntaxe
EVALUATEANDLOG(<Value>, [Label], [MaxRows])
Parametry
Období | Definice |
---|---|
Hodnota | Libovolný skalární výraz nebo výraz tabulky, který se má vyhodnotit a protokolovat. |
Popisek | (Volitelné) Konstantní řetězec zahrnutý v textu json i ve sloupci Label události protokolu vyhodnocení jazyka DAX, který lze použít ke snadné identifikaci instance volání funkce. |
MaxRows | (Volitelné) Maximální počet řádků v textu json události protokolu vyhodnocení jazyka DAX, pokud je prvním argumentem výraz tabulky. Výchozí hodnota je 10. |
Vrácená hodnota
Hodnota prvního argumentu.
Struktura JSON zaprotokolovaná v události profileru protokolu vyhodnocení jazyka DAX zahrnuje:
- Výraz je textová verze prvního argumentu.
- "label" je parametr Label, pokud je zadaný ve výrazu.
- "vstupy" je seznam sloupců v kontextu vyhodnocení, který ovlivňuje hodnoty prvního argumentu.
- "outputs" je seznam jednoho sloupce [Value], pokud je prvním argumentem skalární výraz, a seznam výstupních sloupců, pokud je prvním argumentem výraz tabulky.
- "data" je seznam vstupních a výstupních hodnot, pokud je prvním argumentem skalární výraz, a seznam vstupních hodnot a odpovídajících výstupních řádků, pokud je prvním argumentem výraz tabulky.
- "rowCount" je počet řádků, pokud je prvním argumentem výraz tabulky. I když je počet řádků ve výstupu JSON zkrácen parametrem MaxRows, rowCount je skutečný počet řádků bez zkrácení.
Poznámky
Události trasování je možné zachytit pomocí SQL Server Profiler a opensourcového nástroje DAX Debug Output.
Tuto funkci lze použít s téměř jakýmkoli dílčím výrazem ve výrazu DAX a celý výraz bude stále platný.
Při vícenásobném vyhodnocení prvního argumentu v jednom dotazu vygeneruje funkce jednu událost protokolu vyhodnocení jazyka DAX, která obsahuje jak vstupní hodnoty, tak odpovídající výstupní hodnoty.
Když je zadaný parametr label, vrátí se jeho hodnota ve výstupu JSON i ve sloupci Label události protokolu vyhodnocení DAX.
Pokud je prvním argumentem výraz tabulky, zobrazí se v události protokolu vyhodnocení DAX pouze horní řádky MaxRows.
V některých případech se tato funkce nespustí kvůli optimalizaci.
Pokud je událost protokolu vyhodnocení jazyka DAX větší než jeden milion znaků, zkrátí se, aby se zachovala správná struktura JSON.
Příklad 1
Následující dotaz jazyka DAX:
evaluate
SUMMARIZE(
EVALUATEANDLOG(FILTER(Sales, [ProductKey] = 528)),
Sales[SalesTerritoryKey],
"sum",
sum(Sales[Sales Amount])
)
Vrátí následující událost protokolu vyhodnocení jazyka 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]
]
}
]
}
Příklad 2
Následující dotaz DAX se skalárním argumentem a různými atributy:
evaluate
SELECTCOLUMNS(
TOPN(5, Customer),
[Customer],
"Customer",
EVALUATEANDLOG([Customer] & ", " & [Country-Region], "customerLog")
)
Vrátí následující událost protokolu vyhodnocení jazyka 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"
}
]
}