Interroger par titres, ID et champs de texte enrichi dans Azure Boards et Azure DevOps

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

Lorsque vous souhaitez rechercher des éléments de travail basés sur un mot clé ou une expression ou un champ de texte null, vous pouvez le faire en filtrant sur des champs de texte monoligne (Chaîne), de texte multiligne (PlainText) et de texte enrichi (HTML). Si vous constatez que vos requêtes prennent trop de temps à donner des résultats, consultez Créer une requête/meilleures pratiques.

Opérateurs et macros pris en charge

Les clauses de requête qui spécifient un champ de texte ou de texte enrichi peuvent utiliser les opérateurs et macros répertoriés dans le tableau suivant.


Type de données

Opérateurs et macros pris en charge


Texte enrichi (HTML)
Chaînes de texte multilignes (PlainText)

Contains Words, Does Not Contain Words, Is Empty1, Is Not Empty1


Texte unique (chaîne)

= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], Contains, Does Not Contain, In, Not In, In Group, Not In Group, Was EverMacros : [Any], valide avec le champ Type d’élément de travail et @Project2, valide avec le champ Projet d’équipe.


Identifiant

= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], In, Not In, Was EverMacros : @Follows, @MyRecentActivity, @RecentMentions et @RecentProjectActivity valides avec le champ ID et les opérateurs In et Not In@Project2, valides avec le champ Projet d’équipe.


Champs État et Type d’élément de travail

= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], Contains, Does Not Contain, In, Not In, In Group, Not In Group, Was Ever **Macros**:[Any]` valide avec les deux champs.


Notes

  1. Les opérateurs Is Empty et Is Not Empty sont pris en charge pour Azure DevOps Server 2019 RC2 et versions ultérieures
  2. Le système effectue automatiquement un filtrage par défaut en fonction du projet actuel. Pour plus d’informations, consultez l’article Requête sur plusieurs projets.

Utiliser Contains words pour les correspondances de chaîne

Lorsque vous souhaitez filtrer sur une correspondance de chaîne, essayez d’utiliser l’opérateur Contains Words au lieu de Contains. L’opérateur Contains Words exécute une recherche en texte intégral sur le champ spécifié, ce qui est plus rapide dans la plupart des cas. La chaîne de texte est limitée à 100 caractères.

L’opérateur Contains exécute de son côté une analyse de table, qui est non seulement plus lente, mais consomme également plus de cycles de processeur. Ces cycles d’UC contribuent à la limite de débit de consommation des ressources.

Remarque

L'opérateur Contains Words utilise l'index de recherche en texte intégral de SQL. Lorsqu'une nouvelle valeur est enregistrée dans un champ de texte long, SQL Server effectue les actions suivantes :

  • fractionne l'expression en mots individuels ;
  • supprime les mots courants qui n'ajoutent pas vraiment de valeur à une recherche (comme « a » ou « is » en anglais) ;
  • convertit les mots en leur racine commune (par exemple, exécute, exécuté et exécuteur seraient convertis en « exécution », puisqu'il s'agit de variations de ce mot) ;
  • stocke ces mots-clés uniques dans un index.

Lorsqu'un utilisateur exécute ensuite une requête sur ce champ à l'aide de l'opérateur Contains Words, la recherche est exécutée sur les mots clés uniques stockés dans l'index. Pour les champs de texte long, cela rend la recherche beaucoup plus efficace et plus rapide qu'une recherche par sous-chaîne. Par défaut, SQL définit un « mot » comme un ensemble de caractères entre les signes de ponctuation. Par exemple, les points indiquent la fin d'un mot, mais ils ne sont pas considérés comme faisant partie du mot. Étant donné que l'index de recherche en texte intégral contient des mots-clés et non des phrases exactes, vous obtiendrez tous les résultats contenant les mêmes mots-clés, tels qu'ils sont déterminés par l'indexation.

Requête de mot clé ou d’expression avec caractères génériques

Utilisez Contains ou Contains Words pour dresser une liste des éléments avec une correspondance exacte ou partielle avec les mots ou expressions que vous saisissez.

Éditeur pour requête de liste plate pour le filtrage des mots clés.

Sélectionnez Contains ou Does Not Contain pour rechercher des correspondances exactes ou partielles d’un mot ou d’une expression. Sélectionnez Contains Words ou Does Not Contain Words pour rechercher une expression exacte ou pour utiliser le caractère générique *. Ces opérateurs utilisent l'index de recherche en texte intégral.

Par exemple, spécifiez Contains Words et inform* pour filtrer sur un champ de texte contenant inform, information ou informational.

Utilisez un caractère générique avec Contains Words.

Conseil

Pour comprendre comment les clauses AND/OR sont regroupées, consultez Créer et enregistrer des requêtes managées, Regrouper des clauses. Pour afficher la syntaxe WIQL d’une requête, installez l’extension de l’éditeur de requête WIQL qui vous permettra de voir la version WIQL de n’importe quelle entrée d’éditeur de requête.

Requête pour des mots spécifiques et non d’autres

Utilisez les opérateurs Contains Words et Does Not Contain Words pour répertorier les éléments qui correspondent exactement aux mots ou expressions que vous entrez et exclure d’autres mots ou expressions. Vous pouvez utiliser ces opérateurs en combinaison avec le caractère générique (*).

Dans l’exemple suivant, ces opérateurs filtrent les éléments de travail pour les éléments qui contiennent le mot Phase, mais pas le mot Phasor.

Capture d’écran de l’Éditeur de requête pour inclure et exclure des mots exacts.

Requêtes de valeur de champ non définie

Vous pouvez trouver des éléments de travail dont la valeur du champ est indéfinie en utilisant l’opérateur égal = et en laissant la valeur du champ vide. Par exemple, les filtres suivants répertorient tous les éléments de travail de type Tâche dont le champ Activité est vide.

Filtrer en fonction des entrées vides

Pour lister les éléments de travail en fonction d’un champ qui n’est pas vide, utilisez l’opérateur non <> et laissez la valeur vide.

Requêtes de champ HTML vide ou non vide

Vous pouvez trouver des éléments de travail avec des Descriptions vides. L’utilisation de Is Empty ou Is Not Empty avec un champ HTML prend en charge les listes d’éléments de travail avec des champs de texte enrichi vides ou non vides. Vous ne spécifiez pas de valeur avec cet opérateur.

Par exemple, les filtres de requête suivants listent tous les éléments de travail avec des entrées dans le champ Description.

Champs HTML non vides basés sur un filtre

Filtrer pour les caractères spéciaux

Pour filtrer une URL ou une phrase contenant des caractères spéciaux tels que / ou -, utilisez une barre oblique inverse pour échapper ces caractères. Les exemples suivants montrent comment filtrer une URL et une phrase avec un tiret :

  • Filtrer une URL : Recherchez un titre d’élément de travail qui inclut la phrase https://example.com/path-to-resource.

    • Requête : Title ~ "https:\/\/example.com\/path-to-resource"
    • Résultats : Renvoie tous les éléments de travail avec l’URL exacte dans le champ spécifié.
  • Filtrer une phrase avec un tiret : Recherchez un titre d’élément de travail qui inclut "your-phrase-with-dash".

    • Requête : Title ~ "feature-update\-2023"
    • Résultats : Renvoie tous les éléments de travail qui contiennent la phrase exacte avec des tirets dans le champ spécifié.

Remarque

Vous ne pouvez pas interroger des éléments de travail auxquels aucune étiquette n’est attachée. Pour voter pour cette demande de fonctionnalité, faites-le sur notre page de la communauté des développeurs, Pouvoir rechercher des étiquettes vides.

Requêtes basées sur les catégories

Pour filtrer les éléments de travail selon la catégorie à laquelle ils appartiennent, utilisez l’opérateur In Group. Par exemple, les critères de filtre suivants renvoient tous les éléments de travail qui sont dans le projet en cours, assignés au membre de l’équipe et définis comme appartenant à la catégorie Bug.

Clause de requête pour rechercher des éléments de travail par catégorie

Quels éléments apparaissent dans les catégories Exigence ou Tâche ?

Les affectations par défaut des types d’éléments de travail à chaque catégorie sont listées comme suit pour chaque processus.

Processus Catégorie d’exigence Catégorie de la tâche
Basic Problème Tâche
Agile Récit utilisateur Tâche
Scrum Élément de Backlog de produit, Bogue Tâche
CMMI Condition requise Tâche

Chaque équipe peut déterminer si le type d’élément de travail bogue apparaît dans la catégorie Exigence ou Tâche. Consultez Afficher les bogues dans les backlogs et les tableaux. Vous pouvez ajouter des types d’élément de travail personnalisés à un backlog. Pour plus d’informations, consultez Ajouter ou modifier un type d’élément de travail, Ajouter un type d’élément de travail personnalisé à un backlog ou à un tableau.

Requête pour les éléments de travail que vous suivez

Vous pouvez utiliser la macro @Follows pour filtrer une liste en fonction des éléments de travail que vous suivez avec d’autres filtres de requête.

Par exemple, la requête suivante montre comment interroger sur tous les projets les éléments de travail actifs que vous suivez. Vous utilisez le champ ID et l’opérateur In avec la macro @Follows.

Éditeur de requête, avec l’ID dans la clause de requête @Follows

Requête pour l’activité récente des éléments de travail

Vous pouvez utiliser les macros suivantes pour répertorier les éléments de travail en fonction de l’activité récente :

  • @MyRecentActivity : Liste des éléments que vous avez récemment consultés ou modifiés.
  • @RecentMentions : répertorie les éléments auxquels vous avez été ajoutés via une @mention au cours des 30 derniers jours.
  • @RecentProjectActivity : Liste des éléments récemment créés ou modifiés dans votre projet.

Spécifiez le champ ID et les opérateurs In ou Not In.

Par exemple, la requête suivante montre comment interroger des éléments de travail que vous avez récemment consultés ou modifiés.

Éditeur de requête, avec l’ID dans la clause de requête @MyRecentActivity

Champs courants pour la plupart des types d’élément de travail

Le tableau suivant décrit les champs courants utilisés pour filtrer les requêtes. Les champs d’ID identifient de manière unique les éléments de travail d’une liste. Utilisez le champ Titre pour distinguer l’élément de travail de tous les autres éléments du même type. Les champs Description et autres champs de texte enrichi (type de données=HTML) fournissent des informations supplémentaires nécessaires pour implémenter le travail et suivre les modifications. Une fois qu’un élément de travail est créé, vous pouvez modifier tous les champs à l’exception de l’ID. Lorsque vous ajoutez et enregistrez un élément de travail, l’ID est attribué par le système et ne peut pas être modifié.

Remarque

Le système indexe automatiquement tous les champs de texte long avec un type de données PlainText et HTML pour la recherche en texte intégral. Cela inclut les champs Titre, Description et Étapes de reproduction. Pour plus d’informations et pour connaître les exigences de serveur et de classement applicables à Azure DevOps local, consultez Champs de requête, opérateurs, valeurs et variables - Recherches de mots partiels et en texte intégral.

Nom du champ

Description

Type d'élément de travail


Critères d’acceptation 1

Description des critères à respecter pour que le bogue ou l’élément de backlog de produit puisse être fermé.

Avant que le travail ne démarre sur un bogue ou un élément de Backlog de produit, les critères d'acceptation du client doivent être décrits aussi clairement que possible. Les conversations entre l'équipe et les clients en vue de définir les critères d'acceptation permettent de s'assurer que votre équipe comprend les attentes des clients. Les critères d’acceptation peuvent être utilisés comme base pour des tests d’acceptation afin que vous puissiez évaluer plus efficacement si un élément est complété de manière satisfaisante.

Nom de référence=Microsoft.VSTS.Common.AcceptanceCriteria, Type de données=HTML

Bogue, Épopée, Fonctionnalité, Élément de backlog de produit (Scrum)

Description 1, 2

Utilisez ce champ pour fournir des informations détaillées sur un élément de travail.

Nom de référence=System.Description, Type de données=HTML

Tous

id

Identificateur unique assigné à un élément de travail. Les ID d’éléments de travail sont uniques sur l’ensemble des projets et dans une collection de projets.

Nom de référence=System.Id, Type de données=Entier

Tous

Étapes de reproduction (ou étapes à reproduire) 1

Étapes nécessaires pour reproduire un comportement inattendu. Capturez suffisamment d’informations pour que les autres membres de l’équipe puissent comprendre pleinement l’effet du problème et s’ils ont corrigé le bug. Cette entrée inclut les actions entreprises pour trouver ou reproduire le bug et le comportement attendu.
Reference name=Microsoft.VSTS.TCM.ReproSteps, Data type=HTML

Bug

Résolution

Décrit comment un obstacle a été résolu.

Nom de référence=Microsoft.VSTS.Common.Resolution, Type de données=HTML

Obstacle (Scrum)

Informations système1

Informations sur la configuration logicielle et système qui se rapporte au bogue, à la revue du code ou aux commentaires.

Nom de référence=Microsoft.VSTS.TCM.SystemInfo, Type de données=HTML

Bogue, demande de révision de code, demande de commentaires

Projet d'équipe

Projet auquel appartient un élément de travail. Ajoutez ce champ à une requête lorsque vous souhaitez filtrer votre liste sur les éléments d’un ou plusieurs projets. Pour plus d'informations, consultez Exemples de requêtes, recherche dans les projets.

Nom de référence=System.TeamProject, Type de données=Chaîne

Tous

Titre

Brève description qui résume la nature de l'élément de travail et aide les membres d'équipe à le distinguer d'autres éléments de travail dans une liste.

Nom de référence=System.Title, Type de données=Chaîne

Tous

Type d'élément de travail

Nom du type d'élément de travail. Les types d’élément de travail sont définis en fonction du processus utilisé lors de la création de votre projet. Pour plus d’informations, consultez À propos des processus et des modèles de processus et Ajouter ou modifier un type d’élément de travail.

Pour filtrer les éléments de travail en fonction de leur affectation de catégorie, vous pouvez utiliser les opérateurs In Group et Not In Group et sélectionner une catégorie dans la liste déroulante.

Nom de référence=System.WorkItemType, Type de données=Chaîne

Tous

Remarque

Lors d’une mise à niveau vers Team Foundation Server 2012, le type du champ Description a été modifié de Texte en clair à HTML. Avec la commande witadmin changefield, vous pouvez rétablir comme le type de données pour ce champ. Consultez Gérer des champs d’éléments de travail (witadmin).

API REST

Pour interagir par programmation avec des requêtes, consultez l’une de ces ressources d’API REST :