Freigeben über


EVALUATEANDLOG

Gilt für:berechnete Spaltenberechnete TabellenMeasuresvisuelle Berechnungen

Gibt den Wert des ersten Arguments zurück und protokolliert ihn in einem Profilerereignis des DAX-Auswertungsprotokolls. Diese Funktion ist nur in Power BI Desktop voll funktionsfähig. Sie fungiert in anderen Umgebungen als einfache Passthroughfunktion.

Syntax

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

Parameter

Begriff Definition
Wert Alle skalaren Ausdrücke oder Tabellenausdrücke, die ausgewertet und protokolliert werden sollen.
Bezeichnung (Optional) Eine Konstantenzeichenfolge, die sowohl im JSON-Text als auch in der Label-Spalte des DAX-Auswertungsprotokollereignisses enthalten ist, mit der eine Instanz des Funktionsaufrufs leicht ermittelt werden kann.
MaxRows (Optional) Die maximale Anzahl an Zeilen im JSON-Text des DAX-Auswertungsprotokollereignisses, wenn das erste Argument ein Tabellenausdruck ist. Der Standardwert ist 10.

Rückgabewert

Der Wert des ersten Arguments.

Die JSON-Struktur, die in einem Profilerereignis des DAX-Auswertungsprotokolls protokolliert wurde, umfasst Folgendes:

  • „expression“ ist die Textversion des ersten Arguments.
  • „label“ ist der Label-Parameter, wenn er im Ausdruck angegeben wird.
  • „inputs“ ist eine Liste der Spalten im Auswertungskontext, die sich auf die Werte des ersten Arguments auswirkt.
  • „outputs“ ist eine Liste mit einer einzelnen Spalte [Value], wenn das erste Argument ein skalarer Ausdruck ist, und eine Liste der Ausgabespalten, wenn das erste Argument ein Tabellenausdruck ist.
  • „data“ ist eine Liste der Eingabe- und Ausgabewerte, wenn das erste Argument ein skalarer Ausdruck ist, und eine Liste der Eingabewerte und entsprechenden Ausgabezeilen, wenn das erste Argument ein Tabellenausdruck ist.
  • „rowCount“ ist die Anzahl der Zeilen, wenn das erste Argument ein Tabellenausdruck ist. Obwohl die Anzahl der Zeilen in der JSON-Ausgabe durch den MaxRows-Parameter eingeschränkt wird, ist rowCount die tatsächliche Anzahl der Zeilen ohne Abschneiden.

Bemerkungen

  • Ablaufverfolgungsereignisse können mit SQL Server Profiler und dem Open-Source-Tool DAX Debug Output erfasst werden.

  • Diese Funktion kann mit fast jedem Unterausdruck in einem DAX-Ausdruck verwendet werden, und der gesamte Ausdruck bleibt weiterhin gültig.

  • Wenn das erste Argument mehrmals in einer einzelnen Abfrage ausgewertet wird, generiert die Funktion ein einzelnes DAX-Auswertungsprotokollereignis, das sowohl die Eingabewerte als auch die entsprechenden Ausgabewerte enthält.

  • Wenn der label-Parameter angegeben wird, wird sein Wert sowohl in der JSON-Ausgabe als auch in der Label-Spalte des DAX-Auswertungsprotokollereignisses zurückgegeben.

  • Wenn das erste Argument ein Tabellenausdruck ist, werden nur die obersten MaxRows-Zeilen im DAX-Auswertungsprotokollereignis angezeigt.

  • In einigen Fällen wird diese Funktion aufgrund von Optimierungen nicht ausgeführt.

  • Wenn das DAX-Auswertungsprotokollereignis größer als eine Million Zeichen ist, wird es abgeschnitten, um die ordnungsgemäße JSON-Struktur beizubehalten.

Beispiel 1

Die folgende DAX-Abfrage:

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

Gibt das folgende DAX-Auswertungsprotokollereignis zurück:

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

Beispiel 2

Die folgende DAX-Abfrage mit einem skalaren Argument und unterschiedlichen Attributen:

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

Gibt das folgende DAX-Auswertungsprotokollereignis zurück:

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