EVALUATEANDLOG
s’applique à :colonne calculéetable calculéemesurecalcul visuel
Retourne la valeur du premier argument et l’enregistre dans un événement de profileur de journal d’évaluation DAX. Cette fonction est entièrement fonctionnelle dans Power BI Desktop uniquement. Il agit comme une fonction directe simple dans d’autres environnements.
Syntaxe
EVALUATEANDLOG(<Value>, [Label], [MaxRows])
Paramètres
Terme | Définition |
---|---|
Value |
Toute expression scalaire ou expression de table à évaluer et journaliser. |
Label |
(Facultatif) Chaîne constante incluse dans le texte json et la colonne Label de l’événement de journal d’évaluation DAX qui peut être utilisée pour identifier facilement une instance de l’appel de fonction. |
MaxRows |
(Facultatif) Nombre maximal de lignes dans le texte json de l’événement de journal d’évaluation DAX lorsque le premier argument est une expression de table. La valeur par défaut est 10. |
Valeur de retour
Valeur du premier argument.
La structure JSON journalisée dans un événement de profileur de journal d’évaluation DAX inclut les éléments suivants :
-
expression
est la version textuelle du premier argument. -
label
est le paramètre Label lorsqu’il est spécifié dans l’expression. -
inputs
est une liste de colonnes dans le contexte d’évaluation qui affecte les valeurs du premier argument. -
outputs
est une liste d’une seule colonne [Valeur] lorsque le premier argument est une expression scalaire et une liste de colonnes de sortie lorsque le premier argument est une expression de table. -
data
est une liste de valeurs d’entrée et de valeurs de sortie lorsque le premier argument est une expression scalaire, ainsi qu’une liste de valeurs d’entrée et de lignes de sortie correspondantes lorsque le premier argument est une expression de table. -
rowCount
correspond au nombre de lignes lorsque le premier argument est une expression de table. Même si le nombre de lignes dans la sortie json est tronqué par le paramètre MaxRows, rowCount est le nombre réel de lignes sans troncation.
Remarques
Les événements de trace peuvent être capturés à l’aide de SQL Server Profiler et de l’outil de DAX sortie de débogage open source.
Cette fonction peut être utilisée avec presque n’importe quelle sous-expression dans une expression DAX, et l’expression entière sera toujours valide.
Lorsque le premier argument est évalué plusieurs fois dans une requête unique, la fonction génère un événement de journal d’évaluation unique DAX qui contient les valeurs d’entrée et les valeurs de sortie correspondantes.
Lorsque le paramètre d’étiquette est spécifié, sa valeur est retournée à la fois dans la sortie json et dans la colonne Label de l’événement DAX Evaluation Log.
Si le premier argument est une expression de table, seules les lignes MaxRows supérieures sont affichées dans l’événement DAX Evaluation Log.
Dans certains cas, cette fonction n’est pas exécutée en raison d’optimisations.
Si l’événement DAX Evaluation Log est supérieur à un million de caractères, il est tronqué pour conserver la structure json correcte.
Exemple 1
Requête DAX suivante :
evaluate
SUMMARIZE(
EVALUATEANDLOG(FILTER(Sales, [ProductKey] = 528)),
Sales[SalesTerritoryKey],
"sum",
sum(Sales[Sales Amount])
)
Retourne l’événement DAX journal d’évaluation suivant :
{
"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]
]
}
]
}
Exemple 2
La requête DAX suivante avec un argument scalaire et des attributs variables :
evaluate
SELECTCOLUMNS(
TOPN(5, Customer),
[Customer],
"Customer",
EVALUATEANDLOG([Customer] & ", " & [Country-Region], "customerLog")
)
Retourne l’événement DAX journal d’évaluation suivant :
{
"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"
}
]
}