Freigeben über


EVALUATEANDLOG

Gilt für:Berechnete SpalteBerechnete TabelleMeasurevisuelle Berechnung

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

Syntax

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

Parameter

Ausdruck Definition
Value Beliebige skalare Ausdrücke oder Tabellenausdrücke, die ausgewertet und protokolliert werden sollen.
Label (Optional) Eine konstante Zeichenfolge, die sowohl im JSON-Text als auch in der Spalte "Label" des DAX Evaluation Log-Ereignisses enthalten ist, mit der eine Instanz des Funktionsaufrufs leicht identifiziert werden kann.
MaxRows (Optional) Die maximale Anzahl von Zeilen im JSON-Text des DAX Evaluation Log-Ereignisses, wenn das erste Argument ein Tabellenausdruck ist. Der Standardwert ist 10.

Rückgabewert

Der Wert des ersten Arguments.

Die in einem DAX Evaluation Log Profiler-Ereignis protokollierte JSON-Struktur umfasst:

  • expression ist die Textversion des ersten Arguments.
  • label ist der Parameter "Label", wenn er im Ausdruck angegeben wird.
  • inputs ist eine Liste von Spalten im Auswertungskontext, die sich auf die Werte des ersten Arguments auswirkt.
  • outputs eine Liste einer einzelnen Spalte [Wert] ist, wenn das erste Argument ein skalarer Ausdruck und eine Liste der Ausgabespalten ist, wenn das erste Argument ein Tabellenausdruck ist.
  • data ist eine Liste von Eingabewerten und Ausgabewerten, wenn das erste Argument ein skalarer Ausdruck ist, sowie eine Liste mit Eingabewerten 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 vom MaxRows-Parameter abgeschnitten wird, ist rowCount die reelle Anzahl von Zeilen ohne Abschneiden.

Bemerkungen

  • Ablaufverfolgungsereignisse können mithilfe SQL Server Profiler- und des Open-Source-DAX Debugausgabe- Tools erfasst werden.

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

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

  • Wenn der Bezeichnungsparameter angegeben wird, wird der Wert sowohl in der JSON-Ausgabe als auch in der Bezeichnungsspalte des DAX Auswertungsprotokollereignisses zurückgegeben.

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

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

  • Wenn das DAX Auswertungsprotokoll-Ereignis größer als eine Million Zeichen ist, wird es abgeschnitten, um die richtige 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