EVALUATEANDLOG
傳回第一個引數的值,並將其記錄在 DAX 評估記錄分析工具事件中。 此函式只能在 Power BI Desktop 中完全正常運作。 其可做為其他環境中的簡單傳遞函式。
語法
EVALUATEANDLOG(<Value>, [Label], [MaxRows])
參數
詞彙 | 定義 |
---|---|
值 | 要評估及記錄的任何數值類運算式或資料表運算式。 |
Label | (選擇性) 包含在 JSON 文字和 DAX 評估記錄事件 Label 資料行中的常數字串,可用來輕鬆地識別函式呼叫的執行個體。 |
MaxRows | (選擇性) 當第一個引數是資料表運算式時,DAX 評估記錄事件的 JSON 文字中資料列數目上限。 預設值為 10。 |
傳回值
第一個引數的值。
DAX 評估記錄分析工具事件中所記錄的 JSON 結構包括:
- 「expression」是第一個引數的文字版本。
- 「label」是在運算式中指定時的 Label 參數。
- 「inputs」是評估內容中會影響第一個引數值的資料行清單。
- 「output」在第一個引數為數值類運算式時,是單一資料行 [Value] 的清單,而在第一個引數為資料表運算式時,是輸出資料行的清單。
- 「data」在第一個引數為數值類運算式時,是輸入值和輸出值的清單,而在第一個引數為資料表運算式時,是輸入值和對應輸出資料列的清單。
- 「rowCount」在第一個引數為資料表運算式時,是資料列數目。 即使 json 輸出中的資料列數目是由 MaxRows 參數截斷,rowCount 是沒有截斷的實際資料列數目。
備註
您可以使用 SQL Server Profiler 和開放原始碼 DAX 偵錯輸出工具來擷取追蹤事件。
此函式可與 DAX 運算式中幾乎任何子運算式搭配使用,且整個運算式仍然有效。
在單一查詢中多次評估第一個引數時,函式會產生單一 DAX 評估記錄事件,其中包含輸入值和對應的輸出值。
當您指定 label 參數時,會在 JSON 輸出和 DAX 評估記錄事件的 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"
}
]
}