Partage via


Fonctions et clauses OData prises en charge

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Cet article explique comment Analytique prend en charge plusieurs fonctions OData. Les fonctions non prises en charge sont également répertoriées. OData (Open Data Protocol) est une norme ISO/IEC approuvée, OASIS qui définit les meilleures pratiques pour la création et la consommation d’API REST. Pour plus d’informations, consultez la documentation OData.

Remarque

Le service Analytique est automatiquement activé et pris en charge en production pour tous les services Azure DevOps. L’intégration de Power BI et l’accès au flux OData du service Analytique sont généralement disponibles. Nous vous encourageons à l’utiliser et à nous faire part de vos commentaires. Les données disponibles dépendent de la version. La dernière version prise en charge est v2.0, et la dernière version d’évaluation est v4.0-preview. Pour plus d’informations, consultez gestion des versions de l’API OData.

Remarque

Le service Analytique est automatiquement installé et pris en charge en production pour toutes les nouvelles collections de projets pour Azure DevOps Server 2020 et versions ultérieures. L’intégration de Power BI et l’accès au flux OData du service Analytique sont généralement disponibles. Nous vous encourageons à l’utiliser et à nous faire part de vos commentaires. Si vous avez effectué une mise à niveau à partir d’Azure DevOps Server 2019, vous pouvez installer le service Analytique pendant la mise à niveau.

Les données disponibles dépendent de la version. La dernière version prise en charge est v2.0, et la dernière version d’évaluation est v4.0-preview. Pour plus d’informations, consultez gestion des versions de l’API OData.

Remarque

Le service Analytique est en préversion pour Azure DevOps Server 2019. Vous pouvez l’activer ou l’installer pour une collection de projets. L’intégration de Power BI et l’accès au flux OData du service Analytique sont en préversion. Nous vous encourageons à l’utiliser et à nous faire part de vos commentaires.

Les données disponibles dépendent de la version. La dernière version prise en charge est v2.0, et la dernière version d’évaluation est v4.0-preview. Pour plus d’informations, consultez gestion des versions de l’API OData.

Clauses prises en charge

  • $apply
  • $compute
  • $count
  • $expand
  • $filter
  • $orderby
  • $select
  • $skip
  • $top

Lorsque plusieurs clauses sont utilisées dans une requête, elles sont appliquées dans l’ordre spécifié ci-dessus. L’ordre des clauses dans la chaîne de requête est ignoré. Par exemple, dans la requête suivante, les éléments de travail sont d’abord regroupés et agrégés. Ensuite, les groupes sont filtrés. Après cela, les groupes filtrés sont triés. Enfin, les cinq premiers enregistrements sont retournés. La requête retourne les cinq principaux types d’éléments de travail utilisés au moins 100 fois.

WorkItems?$filter=Count ge 100&$apply=groupby((WorkItemType), aggregate($count as Count))&$orderby=Count&top=5

Prise en charge des extensions d’agrégation

Il faut une séquence de transformations de jeu, séparées par des barres obliques pour exprimer qu’elles sont appliquées consécutivement. Le résultat de chaque transformation est l’entrée de la transformation suivante. Par exemple, dans la requête suivante, les éléments de travail sont filtrés, puis regroupés par type et état d’élément de travail. Ensuite, les groupes sont filtrés et regroupés à nouveau.

Remarque

Les extensions d’agrégation OData sont relativement nouvelles et ne sont pas encore entièrement prises en charge par certains outils clients.

Workitems?$apply=filter(State ne 'Closed')/groupby((WorkItemType, State), aggregate($count as Count))/filter(Count gt 100)/groupby((State),aggregate(Count with max as MaxCount))  

Les transformations suivantes sont prises en charge :

Transformation Notes
aggregate Autorise l’agrégation à l’aide de l’une des méthodes $countsuivantes , average, max, minsum
compute Permet d’ajouter des propriétés calculées
expand Autorise l’expansion par les propriétés spécifiées
filter Autorise le jeu d’entrées de filtrage. Prend en charge les mêmes expressions que $filter
groupby Autorise le regroupement par propriétés

Pour plus d’informations, consultez agréger les données de suivi du travail.

Fonctions prises en charge

Fonction canonique Description
cast Retourne l’expression de la conversion d’instance actuelle en type spécifié.
contains Retourne true si la deuxième valeur de chaîne de paramètre est une sous-chaîne de la première valeur de chaîne de paramètre, sinon elle retourne false.
endswith Retourne true si la première valeur de chaîne de paramètre se termine par la deuxième valeur de chaîne de paramètre, sinon elle retourne false.
startswith Retourne true si la première valeur de chaîne de paramètre commence par la deuxième valeur de chaîne de paramètre, sinon elle retourne false.
length Retourne le nombre de caractères dans la valeur du paramètre.
indexof Retourne la position de caractère de base zéro de la première occurrence de la deuxième valeur de paramètre dans la première valeur de paramètre ou -1 si la deuxième valeur de paramètre ne se produit pas dans la première valeur de paramètre.
substring Retourne une sous-chaîne de la première valeur de chaîne de paramètre, en commençant au Nième caractère et en terminant au dernier caractère (où N est la deuxième valeur entière de paramètre).
tolower Retourne la valeur de chaîne de paramètre d’entrée avec tous les caractères majuscules convertis en minuscules.
toupper Retourne la valeur de chaîne de paramètre d’entrée avec tous les caractères minuscules convertis en majuscules.
trim Retourne la valeur de chaîne de paramètre d’entrée avec tous les espaces blancs de début et de fin.
year Retourne le composant year de la valeur du paramètre Date ou DateTimeOffset.
month Retourne le composant mois de la valeur du paramètre Date ou DateTimeOffset.
day Retourne le composant jour de la valeur du paramètre Date ou DateTimeOffset.
date Retourne la partie date de la valeur du paramètre DateTimeOffset.
time Retourne la partie heure de la valeur du paramètre DateTimeOffset.
totaloffsetminutes Retourne le nombre signé de minutes dans la partie décalage du fuseau horaire de la valeur du paramètre DateTimeOffset.
now Retourne le point actuel dans l’heure (date et heure avec fuseau horaire) en tant que valeur DateTimeOffset.
maxdatetime Retourne le dernier point dans l’heure possible sous forme de valeur DateTimeOffset.
mindatetime Retourne le point le plus tôt possible dans l’heure sous forme de valeur DateTimeOffset.

Les fonctions OData sont utilisées dans une $filter clause, mais pas dans une $select clause de la façon dont elles seraient utilisées dans une instruction SQL.

Par exemple, vous pouvez spécifier :

/WorkItems?$filter=toupper(Title) eq 'HELP' 

Toutefois, vous ne pouvez pas entrer la chaîne suivante :

/WorkItems?$select=WorkItemId,State,toupper(Title)

Fonctionnalités non prises en charge

  • bottomcount
  • bottomsum
  • bottompercent
  • $crossjoin
  • concat
  • countdistinct
  • from
  • isdefined
  • $rollup
  • $search
  • topcount
  • topsum
  • toppercent