EVALUATEANDLOG
Gäller för: Beräknad kolumn Beräknad tabell Mått Visuell beräkning
Returnerar värdet för det första argumentet och loggar det i en DAX Evaluation Log profiler-hä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
Period | Definition |
---|---|
Värde | Alla skalära uttryck eller tabelluttryck som ska utvärderas och loggas. |
Etikett | (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ärderingsloggprofileringshändelse 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 över 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.
Kommentarer
Spårningshändelser kan samlas in med hjälp av SQL Server Profiler och dax-felsökningsverktyget 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 DAX-utvärderingslogghändelsen.
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 DAX-utvärderingslogghändelsen ä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 DAX-utvärderingslogghändelse:
{
"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 DAX-utvärderingslogghändelse:
{
"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"
}
]
}