Aller au contenu principal
Version: 20

$querypath

Retourne la requête telle qu'elle a été exécutée par 4D Server (par exemple, $querypath=true)

Description

$querypath retourne la requête telle qu'elle a été exécutée par 4D Server. Si, par exemple, une partie de la requête passée ne retourne aucune entité, le reste de la requête n'est pas exécuté. La requête lancée est optimisée, comme vous pouvez le voir dans ce $ $querypath.

Pour plus d'informations sur les chemins de requête, reportez-vous à queryPlan ete queryPath.

Dans la collection d'étapes, il existe un objet avec les propriétés suivantes qui définissent la requête exécutée :

PropriétéTypeDescription
DescriptionStringRequête exécutée ou "AND" lorsqu'il existe plusieurs étapes
timeNumberNombre de millisecondes nécessaires pour exécuter la requête
recordsfoundsNumberNombre d'enregistrements trouvés
stepsCollectionUne collection avec un objet définissant l'étape suivante du chemin de la requête

Exemple

Si vous exécutez la requête suivante :

GET /rest/Employee/$filter="employer.name=acme AND lastName=Jones"&$querypath=true

Et si aucune entité n'a été trouvée, le chemin de la requête suivant sera retourné si vous saisissez ce qui suit :

GET /rest/$querypath

Réponse :

__queryPath: {

steps: [
{
description: "AND",
time: 0,
recordsfounds: 0,
steps: [
{
description: "Join on Table : Company : People.employer = Company.ID",
time: 0,
recordsfounds: 0,
steps: [
{
steps: [
{
description: "Company.name = acme",
time: 0,
recordsfounds: 0
}
]
}
]
}
]
}
]

}

En revanche, si la première requête retourne plus d'une entité, la seconde sera exécutée. Si nous exécutons la requête suivante :

GET /rest/Employee/$filter="employer.name=a* AND lastName!=smith"&$querypath=true

Si au moins une entité a été trouvée, le chemin de la requête suivant sera retourné si vous saisissez ce qui suit :

GET /rest/$querypath

Réponse :

"__queryPath": {
"steps": [
{
"description": "AND",
"time": 1,
"recordsfounds": 4,
"steps": [
{
"description": "Join on Table : Company : Employee.employer = Company.ID",
"time": 1,
"recordsfounds": 4,
"steps": [
{
"steps": [
{
"description": "Company.name LIKE a*",
"time": 0,
"recordsfounds": 2
}
]
}
]
},
{
"description": "Employee.lastName # smith",
"time": 0,
"recordsfounds": 4
}
]
}
]
}