EVALUATEANDLOG
返回第一个参数的值,并将其记录在 DAX 评估日志探查器事件中。 此函数仅在 Power BI Desktop 中完全正常运行。 它在其他环境中充当简单的直通函数。
语法
EVALUATEANDLOG(<Value>, [Label], [MaxRows])
parameters
术语 | 定义 |
---|---|
Value | 要计算和记录的任何标量表达式或表表达式。 |
Label | (可选)DAX 评估日志事件的 json 文本和 Label 列中包含的常量字符串,可用于轻松标识函数调用的实例。 |
MaxRows | (可选)当第一个参数是表表达式时,DAX 评估日志事件的 json 文本中的最大行数。 默认值为 10。 |
返回值
第一个参数的值。
DAX 评估日志探查器事件中记录的 JSON 结构包括:
- “expression”是第一个参数的文本版本。
- 在表达式中指定时,“label”是 Label 参数。
- “inputs”是计算上下文中影响第一个参数值的列的列表。
- 当第一个参数是标量表达式时,“outputs”是单个列 [Value] 的列表,当第一个参数是表表达式时,则为输出列的列表。
- 当第一个参数为标量表达式时,“data”是输入值和输出值的列表,当第一个参数为表表达式时,则为输入值和相应输出行的列表。
- 当第一个参数为表表达式时,“rowCount”是行数。 即使 json 输出中的行数被 MaxRows 参数截断,rowCount 也是没有截断时的实际行数。
备注
可以使用 SQL Server Profiler 和开源 DAX 调试输出工具捕获跟踪事件。
此函数可以与 DAX 表达式中的几乎任何子表达式一起使用,并且整个表达式仍然有效。
在单个查询中多次计算第一个参数时,函数将生成一个包含输入值和相应输出值的单个 DAX 评估日志事件。
指定 label 参数后,其值将返回到 DAX 评估日志事件的 json 输出和 Label 列中。
如果第一个参数是表表达式,则 DAX 评估日志事件中仅显示顶部的 MaxRows 行。
在某些情况下,出于优化的原因,此函数不会执行。
如果 DAX 评估日志事件大于 100 万个字符,则会将其截断以保留正确的 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"
}
]
}