EVALUATEANDLOG
傳回第一個自變數的值,並將其記錄在 DAX 評估記錄檔分析工具事件中。 此函式只能在Power BI Desktop中完全正常運作。 它可作為其他環境中的簡單傳遞函式。
語法
EVALUATEANDLOG(<Value>, [Label], [MaxRows])
參數
術語 | 定義 |
---|---|
Value |
要評估及記錄的任何純量表達式或數據表運算式。 |
Label |
(選擇性)json 文字和 DAX Evaluation Log 事件的 Label 數據行中包含的常數位符串,可用來輕鬆識別函數調用的實例。 |
MaxRows |
(選擇性)當第一個自變數是數據表表達式時,DAX 評估記錄事件 json 文字中的數據列數目上限。 預設值為 10。 |
傳回值
第一個自變數的值。
DAX Evaluation Log profiler 事件中記錄的 JSON 結構包括:
-
expression
是第一個自變數的文字版本。 - 在表達式中指定時,
label
是 Label 參數。 -
inputs
是評估內容中會影響第一個自變數值的數據行清單。 - 當第一個自變數是純量表達式時,
outputs
是單一數據行 [Value] 的清單,而第一個自變數是數據表運算式時輸出數據行的清單。 - 當第一個自變數是純量表達式時,
data
是輸入值和輸出值的清單,而第一個自變數是數據表運算式時輸入值和對應的輸出數據列清單。 - 當第一個自變數是數據表運算式時,
rowCount
是數據列數目。 即使 json 輸出中的數據列數目是由 MaxRows 參數截斷,rowCount 是沒有截斷的實際數據列數目。
言論
您可以使用 SQL Server Profiler 和開放原始碼 DAX 偵錯輸出 工具來擷取追蹤事件。
此函式可以與 DAX 表達式中幾乎任何子表達式搭配使用,而且整個表達式仍然有效。
在單一查詢中多次評估第一個自變數時,函式會產生單一 DAX Evaluation Log 事件,其中包含輸入值和對應的輸出值。
指定 label 參數時,會在 json 輸出和 DAX Evaluation Log 事件的 Label 數據行中傳回其值。
如果第一個自變數是數據表運算式,則 DAX 評估記錄檔事件中只會顯示頂端 MaxRows 數據列。
在某些情況下,此函式不會因為優化而執行。
如果 DAX 評估記錄事件大於一百萬個字元,則會截斷以保留正確的 json 結構。
範例 1
下列 DAX 查詢:
evaluate
SUMMARIZE(
EVALUATEANDLOG(FILTER(Sales, [ProductKey] = 528)),
Sales[SalesTerritoryKey],
"sum",
sum(Sales[Sales Amount])
)
傳回下列 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]
]
}
]
}
範例 2
下列 DAX 具有純量自變數和不同屬性的查詢:
evaluate
SELECTCOLUMNS(
TOPN(5, Customer),
[Customer],
"Customer",
EVALUATEANDLOG([Customer] & ", " & [Country-Region], "customerLog")
)
傳回下列 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"
}
]
}