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"
        }
    ]
}

TOCSV
TOJSON