Dela via


EVALUATEANDLOG

gäller för:beräknad kolumnberäknad tabellMåttVisuell beräkning

Returnerar värdet för det första argumentet och loggar det i en DAX utvärderingsloggprofileringshändelse. Den här funktionen fungerar endast fullt ut i Power BI Desktop. Den fungerar som en enkel genomströmningsfunktion i andra miljöer.

Syntax

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

Parametrar

Term Definition
Value Alla skalära uttryck eller tabelluttryck som ska utvärderas och loggas.
Label (Valfritt) En konstant sträng som ingår i både json-texten och kolumnen Etikett i händelsen DAX utvärderingslogg som kan användas för att enkelt identifiera en instans av funktionsanropet.
MaxRows (Valfritt) Det maximala antalet rader i json-texten i händelsen DAX utvärderingslogg när det första argumentet är ett tabelluttryck. Standardvärdet är 10.

Returvärde

Värdet för det första argumentet.

JSON-strukturen som loggas i en DAX utvärderingsloggprofilering innehåller:

  • expression är textversionen av det första argumentet.
  • label är parametern Etikett när den anges i uttrycket.
  • inputs är en lista över kolumner i utvärderingskontexten som påverkar värdena för det första argumentet.
  • outputs är en lista över en enda kolumn [Värde] när det första argumentet är ett skalärt uttryck och en lista över utdatakolumner när det första argumentet är ett tabelluttryck.
  • data är en lista med indatavärden och utdatavärden när det första argumentet är ett skalärt uttryck och en lista med indatavärden och motsvarande utdatarader när det första argumentet är ett tabelluttryck.
  • rowCount är antalet rader när det första argumentet är ett tabelluttryck. Även om antalet rader i json-utdata trunkeras av parametern MaxRows är rowCount det verkliga antalet rader utan trunkering.

Anmärkningar

  • Spårningshändelser kan samlas in med hjälp av SQL Server Profiler- och verktyget DAX felsökning av utdata med öppen källkod.

  • Den här funktionen kan användas med nästan alla underuttryck i ett DAX uttryck, och hela uttrycket är fortfarande giltigt.

  • När det första argumentet utvärderas flera gånger i en enskild fråga genererar funktionen en enda DAX utvärderingslogghändelse som innehåller både indatavärdena och motsvarande utdatavärden.

  • När etikettparametern har angetts returneras dess värde i både json-utdata och kolumnen Etikett i händelsen DAX Utvärderingslogg.

  • Om det första argumentet är ett tabelluttryck visas endast de översta MaxRows-raderna i händelsen DAX Utvärderingslogg.

  • I vissa fall körs inte den här funktionen på grund av optimeringar.

  • Om händelsen DAX utvärderingslogg är större än en miljon tecken trunkeras den för att bevara rätt json-struktur.

Exempel 1

Följande DAX fråga:

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

Returnerar följande händelse för DAX utvärderingslogg:

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

Exempel 2

Följande DAX fråga med ett skalärt argument och varierande attribut:

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

Returnerar följande händelse för DAX utvärderingslogg:

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