Condividi tramite


EVALUATEANDLOG

Si applica a: Calcolo visivo misura tabella calcolata colonna calcolata

Restituisce il valore del primo argomento e lo registra in un evento del profiler di valutazione DAX. Questa funzione è completamente funzionale solo in Power BI Desktop. Funge da semplice funzione pass-through in altri ambienti.

Sintassi

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

Parametri

Termine Definizione
Valore Qualsiasi espressione scalare o espressione di tabella da valutare e registrare.
Etichetta (Facoltativo) Stringa costante inclusa sia nel testo json che nella colonna Etichetta dell'evento DAX Evaluation Log che può essere usata per identificare facilmente un'istanza della chiamata di funzione.
MaxRows (Facoltativo) Numero massimo di righe nel testo json dell'evento DAX Evaluation Log quando il primo argomento è un'espressione di tabella. Default is 10.

Valore restituito

Valore del primo argomento.

La struttura JSON registrata in un evento del profiler di valutazione DAX include:

  • "expression" è la versione di testo del primo argomento.
  • "label" è il parametro Label quando specificato nell'espressione.
  • "input" è un elenco di colonne nel contesto di valutazione che influisce sui valori del primo argomento.
  • "outputs" è un elenco di una singola colonna [Value] quando il primo argomento è un'espressione scalare e un elenco di colonne di output quando il primo argomento è un'espressione di tabella.
  • "data" è un elenco di valori di input e valori di output quando il primo argomento è un'espressione scalare e un elenco di valori di input e le righe di output corrispondenti quando il primo argomento è un'espressione di tabella.
  • "rowCount" è il numero di righe quando il primo argomento è un'espressione di tabella. Anche se il numero di righe nell'output json viene troncato dal parametro MaxRows, rowCount è il numero reale di righe senza troncamento.

Osservazioni:

  • Gli eventi di traccia possono essere acquisiti usando SQL Server Profiler e lo strumento di output di debug DAX open source.

  • Questa funzione può essere usata con quasi qualsiasi sottoespressione in un'espressione DAX e l'intera espressione sarà comunque valida.

  • Quando il primo argomento viene valutato più volte in una singola query, la funzione genera un singolo evento DAX Evaluation Log che contiene sia i valori di input che i valori di output corrispondenti.

  • Quando si specifica il parametro label, il relativo valore viene restituito sia nell'output json che nella colonna Label dell'evento DAX Evaluation Log.

  • Se il primo argomento è un'espressione di tabella, nell'evento DAX Evaluation Log vengono visualizzate solo le prime righe MaxRows.

  • In alcuni casi, questa funzione non viene eseguita a causa di ottimizzazioni.

  • Se l'evento DAX Evaluation Log è maggiore di un milione di caratteri, viene troncato per mantenere la struttura JSON corretta.

Esempio 1

La query DAX seguente:

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

Restituisce l'evento DAX Evaluation Log seguente:

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

Esempio 2

La query DAX seguente con un argomento scalare e attributi variabili:

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

Restituisce l'evento DAX Evaluation Log seguente:

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