EVALUATEANDLOG

применимо:вычисляемый столбецвычисляемой таблицеMeasureвизуального вычисления

Возвращает value аргумента firstand регистрирует его в событии профилировщика DAXLog. Эта функция полностью функциональна только в Power BI Desktop. Она выступает в качестве простой сквозной функции в других средах.

Синтаксис

DAX
EVALUATEANDLOG(<Value>, [Label], [MaxRows])

Параметры

Срок Определение
Value Любое скалярное выражение or табличное выражение для оценки and зарегистрировано.
Label (Необязательно) Константная строка, включенная как в текст JSON, and столбец Label события Log оценки DAX, которое можно использовать для легкого определения экземпляра вызова функции.
MaxRows (Необязательно) Максимальное количество строк в тексте json события Log оценки DAX, если аргумент first является табличным выражением. Значение по умолчанию — 10.

Возврат value

value аргумента first.

Структура JSON, зарегистрированная в событии профилировщика Log оценки DAX, включает:

  • expression — это текстовая версия аргумента first.
  • label — это параметр Label, указанный в выражении.
  • inputs — это список столбцов в контексте оценки, влияющий на values аргумента first.
  • outputs — это список одного столбца [Value], когда аргумент first является скалярным выражением and список выходных столбцов, когда аргумент first является табличным выражением.
  • data — это список входных valuesand выходных values, когда аргумент first является скалярным выражением, and список входных valuesand соответствующих выходных строк, когда аргумент first является табличным выражением.
  • rowCount — это количество строк, когда аргумент first является табличным выражением. Even хотя количество строк в выходных данных json усечено параметром MaxRows, rowCount — это реальное количество строк без усечения.

Замечания

  • События трассировки можно записать с помощью SQL Server Profilerand средства DAX отладки выходных данных с открытым исходным кодом.

  • Эта функция может использоваться почти с любым вложенным выражением в выражении DAX, and все выражение по-прежнему будет допустимым.

  • Если аргумент first вычисляется несколько раз в одном запросе, функция создает одно событие DAX оценки Log, которое contains входных valuesand соответствующего выходного values.

  • Если указан параметр метки, его value возвращается в выходных данных JSON and столбце Label события Log оценки DAX.

  • If аргумент first является табличным выражением, в событии LogLog отображают DAX ся только первые строки MaxRows.

  • В некоторых случаях эта функция выполняется not из-за оптимизации.

  • If событие Log оценки DAX превышает миллион символов, оно усечено для сохранения правильной структуры JSON.

Пример 1

Следующий запрос DAX:

DAX
evaluate
SUMMARIZE(
    EVALUATEANDLOG(FILTER(Sales, [ProductKey] = 528)),
    Sales[SalesTerritoryKey],
    "sum",
    sum(Sales[Sales Amount])
)

Возвращает следующее событие DAX оценки Log:

JSON
{
    "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 с скалярным аргументом and различными атрибутами:

DAX
evaluate
SELECTCOLUMNS(
    TOPN(5, Customer),
    [Customer],
    "Customer",
    EVALUATEANDLOG([Customer] & ", " & [Country-Region], "customerLog")
)

Возвращает следующее событие DAX оценки Log:

JSON
{
    "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