EVALUATEANDLOG

Vrátí hodnotu prvního argumentu a zaznamená ji do události profileru vyhodnocení protokolu DAX. Tato funkce je plně funkční pouze v Power BI Desktop. V jiných prostředích funguje jako jednoduchá předávací funkce.

Syntaxe

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

Parametry

Období Definice
Hodnota Libovolný skalární výraz nebo výraz tabulky, který se má vyhodnotit a protokolovat.
Popisek (Volitelné) Konstantní řetězec zahrnutý v textu json i ve sloupci Label události protokolu vyhodnocení jazyka DAX, který lze použít ke snadné identifikaci instance volání funkce.
MaxRows (Volitelné) Maximální počet řádků v textu json události protokolu vyhodnocení jazyka DAX, pokud je prvním argumentem výraz tabulky. Výchozí hodnota je 10.

Vrácená hodnota

Hodnota prvního argumentu.

Struktura JSON zaprotokolovaná v události profileru protokolu vyhodnocení jazyka DAX zahrnuje:

  • Výraz je textová verze prvního argumentu.
  • "label" je parametr Label, pokud je zadaný ve výrazu.
  • "vstupy" je seznam sloupců v kontextu vyhodnocení, který ovlivňuje hodnoty prvního argumentu.
  • "outputs" je seznam jednoho sloupce [Value], pokud je prvním argumentem skalární výraz, a seznam výstupních sloupců, pokud je prvním argumentem výraz tabulky.
  • "data" je seznam vstupních a výstupních hodnot, pokud je prvním argumentem skalární výraz, a seznam vstupních hodnot a odpovídajících výstupních řádků, pokud je prvním argumentem výraz tabulky.
  • "rowCount" je počet řádků, pokud je prvním argumentem výraz tabulky. I když je počet řádků ve výstupu JSON zkrácen parametrem MaxRows, rowCount je skutečný počet řádků bez zkrácení.

Poznámky

  • Události trasování je možné zachytit pomocí SQL Server Profiler a opensourcového nástroje DAX Debug Output.

  • Tuto funkci lze použít s téměř jakýmkoli dílčím výrazem ve výrazu DAX a celý výraz bude stále platný.

  • Při vícenásobném vyhodnocení prvního argumentu v jednom dotazu vygeneruje funkce jednu událost protokolu vyhodnocení jazyka DAX, která obsahuje jak vstupní hodnoty, tak odpovídající výstupní hodnoty.

  • Když je zadaný parametr label, vrátí se jeho hodnota ve výstupu JSON i ve sloupci Label události protokolu vyhodnocení DAX.

  • Pokud je prvním argumentem výraz tabulky, zobrazí se v události protokolu vyhodnocení DAX pouze horní řádky MaxRows.

  • V některých případech se tato funkce nespustí kvůli optimalizaci.

  • Pokud je událost protokolu vyhodnocení jazyka DAX větší než jeden milion znaků, zkrátí se, aby se zachovala správná struktura JSON.

Příklad 1

Následující dotaz jazyka DAX:

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

Vrátí následující událost protokolu vyhodnocení jazyka 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]
            ]
        }
    ]
}

Příklad 2

Následující dotaz DAX se skalárním argumentem a různými atributy:

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

Vrátí následující událost protokolu vyhodnocení jazyka 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"
        }
    ]
}

Viz také

TOCSV
TOJSON