Requête par date ou itération actuelle dans Azure Boards

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

Dans cet article, découvrez comment répertorier les éléments de travail en fonction de leur date de création, de clôture, de résolution ou de modification. Vous pouvez spécifier une date ou utiliser une macro prise en charge. Utilisez la macro @Today et spécifiez un nombre de jours plus ou moins pour les dates relatives. Pour les requêtes qui répertorient les éléments de travail en fonction de leur affectation au sprint actuel d’une équipe, utilisez @CurrentIteration.

Vous pouvez, par exemple, rechercher les éléments de travail qui ont été modifiés au cours des trois derniers jours à l’aide de la requête suivante.

Capture d’écran montrant l’Éditeur de requête avec le champ Date de modification défini sur >= 3.

En outre, vous pouvez utiliser la macro CurrentIteration +/- _n_ pour créer des requêtes basées sur une fenêtre glissante d’itérations d’équipe.

Opérateurs et macros pris en charge

Les clauses de requête qui spécifient un champ DateHeure ou le champ Chemin de l’itération peuvent utiliser les opérateurs et les macros répertoriés dans le tableau suivant.


Type de données

Opérateurs et macros pris en charge


Date/Heure

= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], In, Not In, Was Ever

Macros : @StartOfDay, @StartOfWeek, @StartOfMonth, @StartOfYear et @Today. Vous pouvez utiliser +/- _n_ avec chacune des macros prises en charge.


TreePath

=, Sous <>, Pas sous
Macros : @CurrentIteration1 et @CurrentIteration +/- n2 valables avec le champ Chemin d’itération.


Remarques :

  1. Les macros @StartOfDay, @StartOfWeek, @StartOfMonth et @StartOfYear sont prises en charge pour Azure DevOps Server 2019.1 et les versions ultérieures. Elles ne sont prises en charge que lorsqu’elles sont exécutées depuis le portail web.
  2. La macro @CurrentIteration +/- n est prise en charge pour Azure DevOps Server 2019 et les versions ultérieures. Elle est uniquement prise en charge lorsqu’elle est exécutée depuis le portail web.

Conseil

L’opérateur WasEver peut être utilisé avec le champ Chemin d’itération , mais uniquement lorsqu’il est défini par le biais de la syntaxe WIQL. Pour obtenir un exemple, consultez Référence de la syntaxe WIQL (Work Item Query Language).

Modèle de date et d’heure

Le modèle de date et d’heure que vous entrez pour les champs DateTime doit correspondre à celui que vous sélectionnez dans votre profil. Pour afficher ou modifier votre sélection, consultez Définir les préférences utilisateur.

Capture d’écran montrant les options de liste déroulante Modèle de date dans le volet Heure et paramètres régionaux.Capture d’écran montrant les options de liste déroulante Modèle d’heure dans le volet Heure et paramètres régionaux.

Capture d’écran montrant le volet Heure et paramètres régionaux avec les champs Modèle de date et Modèle d’heure.

Restrictions du client sur l’utilisation des macros @CurrentIteration

Vous pouvez utiliser la macro @CurrentIteration dans une requête à partir des clients suivants :

  • Portail web qui se connecte à Azure Boards
  • Visual Studio 2019 ou versions ultérieures connectées à Azure Boards
  • L’API REST

Vous pouvez utiliser la macro @CurrentIteration +/- n dans une requête sur Azure Boards, Azure DevOps Server 2019 et versions ultérieures et avec une API REST qui inclut l’équipe en tant que paramètre. par exemple @CurrentIteration('[Project]\Team').

Une erreur se produit si vous ouvrez une requête qui contient la macro @CurrentIteration dans les versions antérieures de Visual Studio ou à partir de Microsoft Excel ou de Microsoft Project. Vous ne pouvez pas utiliser la macro lors de la copie ou du clonage de suites de tests et de cas de test, de la définition d’alertes ou avec des API REST.

Requêtes basées sur la date

Filtrez les éléments de travail en fonction de la date à laquelle ils ont été modifiés ou sur une période spécifique. Limitez la portée de votre requête. Cette approche peut aider à améliorer les performances en ne renvoyant que les résultats correspondant à la plage de dates incluse. Si vous êtes novice dans la création de requêtes, consultez Définir une requête d’élément de travail.

Tous les champs ne sont pas valides pour tous les types d’éléments de travail. Accédez aux champs de date pour l’ensemble de champs que vous pouvez inclure dans les requêtes et les types d’éléments de travail auxquels ils s’appliquent.

Conseil

  • Souvenez-vous d’entrer des dates dans le champ Modèle de date que vous définissez pour votre profil personnel.
  • Pour comprendre comment les clauses AND/OR sont groupées, consultez Regrouper des clauses. Pour afficher la syntaxe WIQL d’une requête, installez l’extension de l’éditeur WIQL, qui vous permettra de voir la version WIQL de n’importe quelle entrée d’Éditeur de requête.

Filtrer sur

Inclure ces clauses de requête


Éléments créés au cours des 30 derniers jours.

Capture d’écran montrant la clause de l’Éditeur de requête permettant de rechercher les éléments créés au cours des 30 derniers jours.


Éléments modifiés à une date précise.

Capture d’écran montrant la clause de l’Éditeur de requête permettant de rechercher les éléments modifiés à une date spécifique.


Éléments résolus aujourd’hui.

Capture d’écran montrant la clause de l’Éditeur de requête permettant de rechercher des éléments résolus le jour-même.


Éléments fermés au cours d’une période spécifiée.

Capture d’écran montrant la clause de l’Éditeur de requête permettant de rechercher les éléments fermés au cours d’une période spécifiée.


Éléments qui ne sont pas fermés. La date de fermeture est nulle.

Capture d’écran montrant la clause de l’Éditeur de requête permettant de rechercher des éléments dont la date de fermeture est vide ou a la valeur Null.


Éléments dont l’état a été mis à jour au cours de la semaine dernière.

Capture d’écran montrant la clause de l’Éditeur de requête pour les éléments dont l’état a été mis à jour au cours de la semaine précédente.


Éléments fermés pendant le sprint actuel. La macro <xref href="CurrentIteration" data-throw-if-not-resolved="False" data-raw-source="@CurrentIteration"></xref> fait référence au sprint défini pour le contexte de l’équipe actuelle.

Capture d’écran montrant la clause de l’Éditeur de requête pour les éléments fermés pendant le sprint actuel.


Créer des requêtes basées sur des dates de début de jour, de semaine, de mois ou d’année

Les exemples suivants montrent comment utiliser les macros StartOf... pour filtrer les éléments de travail avec différents décalages. Pour plus d’informations, consultez Syntaxe du langage WIQL (Work Item Query Language).

Remarque

Nécessite Azure DevOps Server 2019 Mise à jour 1 ou version ultérieure.

Filtrer sur

Inclure ces clauses de requête


Bogues fermés au cours des deux dernières semaines.

Capture d’écran montrant la clause de l’Éditeur de requête permettant de rechercher des bogues fermés au cours des deux dernières semaines.


Éléments modifiés au cours des 10 derniers jours.

Capture d’écran montrant les clauses de l’Éditeur de requête permettant de rechercher les éléments modifiés au cours des 10 derniers jours.


Fonctionnalités prévues pour être terminées dans les trois prochains mois.

Capture d’écran montrant les clauses de l’Éditeur de requête pour les fonctionnalités prévues pour être terminées dans les trois prochains mois


Tous les champs ne sont pas valides pour tous les types d’éléments de travail. Accédez aux champs de date pour l’ensemble de champs que vous pouvez inclure dans les requêtes et les types d’éléments de travail auxquels ils s’appliquent.

Créer des requêtes pour l’itération actuelle de votre équipe

Si votre équipe suit les processus Scrum, vous planifiez l’exécution du travail dans les sprints. Vous pouvez suivre la progression des exigences, des bogues et d’autres tâches à terminer dans le sprint actuel à l’aide de la macro @CurrentIteration. Pour plus d’informations, consultez Gérer les calendriers de sprints.

La requête trouve tout élément assigné à un sprint qui correspond au chemin d’itération actuel de l’équipe. Par exemple, si une équipe se trouve sur Sprint 5, la requête retourne les éléments affectés au Sprint 5. Plus tard, lorsque l’équipe travaille dans Sprint 6, la même requête retourne les éléments affectés au Sprint 6.

Remarque

Pour que la macro @CurrentIteration fonctionne, l’équipe doit avoir sélectionné un chemin d’itération dont la plage de dates englobe la date actuelle. Pour plus d’informations, consultez Sélectionner les sprints d’équipe et définir le chemin d’itération par défaut. En outre, les requêtes qui contiennent cette macro sont valides uniquement lorsqu’elles sont exécutées à partir du portail web.

Consultez également Client restrictions on the use of the @CurrentIteration macros plus haut dans cet article.

Azure Boards ajoute un paramètre d’équipe lorsque vous sélectionnez les macros @CurrentIteration ou @CurrentIteration +/- n. Le paramètre de l’équipe est dérivé de votre contexte d’équipe actuel.

Capture d’écran montrant le filtre de requête et la macro CurrentIteration utilisée avec un paramètre d’équipe.

Conseil

Si la macro @CurrentIteration ne fonctionne pas, vérifiez que l’itération attendue est sélectionnée pour votre équipe et que des dates ont été définies pour celle-ci. Pour plus d’informations, consultez Sélectionner les sprints d’équipe.

Pour modifier le paramètre d’équipe que le système définit automatiquement, choisissez-le en entrant le nom de l’équipe dans le champ de paramètre ajouté sous la macro @CurrentIteration.

Capture d’écran montrant le choix d’un paramètre d’équipe.

Créer une fenêtre glissante de la requête d’itérations de votre équipe

Utilisez la macro @CurrentIteration +/- n pour suivre le travail planifié par une équipe pour les sprints à venir et pour comprendre le travail qui n’a pas été réalisé dans les sprints précédents.

Remarque

Pour que la macro @CurrentIteration +/- n fonctionne, l’équipe doit avoir sélectionné des chemins d’itération qui répondent aux critères +/- n. Les plages de dates doivent englober la date actuelle de @CurrentIteration. Pour plus d’informations sur la sélection des chemins d’itération par l’équipe, consultez Sélectionner les sprints d’équipe et définir le chemin d’itération par défaut.

Consultez également Client restrictions on the use of the @CurrentIteration macros plus haut dans cet article.

L’image suivante montre comment lister tous les types d’éléments de travail User Story et Bug qui sont assignés à la fenêtre glissante. La fenêtre couvre les deux derniers, l’actuel et les deux prochains sprints sélectionnés pour l’équipe Cloud Admin et Tools.

Capture d’écran illustrant l’ajout et la suppression de clauses à CurrentIteration.

Pour utiliser cette macro, l’équipe spécifiée doit sélectionner un ensemble de sprints couvrant la valeur +/- n saisie pour la macro.

Répertorier des éléments de travail déplacés hors du sprint

Répertoriez les éléments de travail qui ont été définis pour un sprint, mais qui ont ensuite été déplacés en utilisant une requête dont une clause contient l’opérateur Was Ever pour le champ Chemin de l’itération. Vous pouvez uniquement construire cette requête en utilisant la syntaxe WIQL. Modifiez la syntaxe WIQL dans l’Éditeur de requête en installant l’extension de la Place de marché de l’éditeur WIQL.

Par exemple, les requêtes syntaxiques suivantes pour les éléments de travail répondent aux critères suivants :

  • Défini dans le projet actuel.
  • Le type d’élément de travail est Récit utilisateur ou Bogue
  • Les éléments de travail se trouvent sous le chemin de zone de l’équipe Fabrikam Fiber Web.
  • Les éléments de travail ne sont pas dans un état Closed, Completed, Cut ou Resolved.
  • Pas dans le chemin d’itération actuel pour l’équipe Fabrikam Fiber Web.
  • Ont été affectés au chemin d’itération actuel pour l’équipe Fabrikam Fiber Web
  • Sont à présent affectés à l’itération actuelle +1 pour l’équipe Fabrikam Fiber Web.
  • Ont été modifiés au cours des 30 derniers jours (la durée du sprint).
SELECT
    [System.Id],
    [System.WorkItemType],
    [System.AssignedTo],
    [System.Title],
    [System.State],
    [System.Tags],
    [System.IterationPath],
    [System.AreaPath]
FROM workitems
WHERE
    [System.TeamProject] = @project
    AND [System.WorkItemType] IN ('User Story', 'Bug')
    AND [System.AreaPath] UNDER 'FabrikamFiber\Web'
    AND NOT [System.State] IN ('Completed', 'Closed', 'Cut', 'Resolved')
    AND NOT [System.IterationPath] = @currentIteration('[FabrikamFiber]\Web <id:cdf5e823-1179-4503-9fb1-a45e2c1bc6d4>')
    AND (
        EVER (
            [System.IterationPath] = @currentIteration('[FabrikamFiber]\Web <id:cdf5e823-1179-4503-9fb1-a45e2c1bc6d4>')
        )
        AND [System.IterationPath] = @currentIteration('[FabrikamFiber]\Web <id:cdf5e823-1179-4503-9fb1-a45e2c1bc6d4>') + 1
        AND [System.ChangedDate] >= @today - 30
    )
ORDER BY [System.Id]

L’affichage Éditeur de requête de la syntaxe s’affiche comme indiqué.

Remarque

L’Éditeur de requête affiche une icône d’informations en regard de l’opérateur Was Ever, indiquant un problème avec la clause. Toutefois, la requête s'exécute toujours et vous pouvez créer des graphiques de requête. Pour modifier la requête, vous devez utiliser l’éditeur WIQL.

Capture d’écran montrant des éléments de travail de l’Éditeur de requête déplacés en dehors d’un sprint.

Répertorier les éléments de travail ajoutés à un sprint après la date de début

Pour répertorier les éléments de travail nouvellement créés ajoutés à un sprint après sa date de début, utilisez une requête similaire à celle présentée dans l’image suivante. Cette requête fonctionne en filtrant les éléments de travail affectés au sprint actuel, mais créés après le début de la date de sprint. Utilisez la clause created Date = @Today - 28.

Capture d’écran montrant les éléments de travail de l’Éditeur de requête nouvellement créés et ajoutés à un sprint après sa date de début.

Pour d’autres options pour interroger les changements de portée des sprints, consultez Changement de portée de sprint.

Champs Date et Chemin d’itération

Utilisez les champs de date pour filtrer vos requêtes. Plusieurs de ces champs sont renseignés dès qu’un élément de travail change d’état. Plusieurs de ces champs n’apparaissent pas dans le formulaire d’élément de travail, mais ils sont suivis pour les types d’éléments de travail répertoriés dans le tableau suivant.

Nom de champ

Description

Types d’éléments de travail


Date d’activation (Notes 1 et 2)

Date et heure auxquelles l’élément de travail a été créé ou auxquelles son état a été passé de Closed, Completed ou Done à New ou Active.

Reference name=Microsoft.VSTS.Common.ActivatedDate, Data type=DateTime

Bogue, Demande de modification, Épopée, Fonctionnalité, Problème, Élément de backlog de produit, Exigence, Révision, Risque, Étape partagée, Tâche, Cas de test, Récit utilisateur

Date de modification

Date et heure auxquelles un élément de travail a été modifié.

Nom de référence=System.ChangedDate, Type de données=DateTime

Tous

Date de fermeture (Note 2)

Date et heure auxquelles un élément de travail a été fermé.

Nom de référence=Microsoft.VSTS.Common.ClosedDate, Type de données=DateTime

Tous

Date de création

Date et heure auxquelles un élément de travail a été créé.

Nom de référence=System.CreatedDate, Type de données=DateTime

Tous

Due Date

Date d'échéance prévue pour un problème à résoudre.

Reference name=Microsoft.VSTS.Scheduling.DueDate, Data type=DateTime

Problème (Agile)

Date de fin (Remarque 3)

Date et heure auxquelles la planification indique que la tâche est terminée.

Reference name=Microsoft.VSTS.Scheduling.FinishDate, Data type=DateTime

Exigence, Tâche, Plan de test, Récit utilisateur

Chemin de l’itération

Groupe des éléments de travail par durées ou périodes de sprint nommées. L'itération doit être un nœud valide dans la hiérarchie de projet. Vous définissez des chemins d’itération pour un projet et sélectionnez des chemins d’itération pour une équipe.

Reference name=System.IterationPath, Data type=TreePath

Tous

Date résolue (Notes 1 et 2)

Date et heure auxquelles l’élément de travail a été passé à l’état Resolved.

Reference name=Microsoft.VSTS.Common.ResolvedDate, Data type=DateTime

Bogue, Demande de modification, Épopée, Fonctionnalité, Problème, Élément de backlog de produit, Exigence, Révision, Risque, Étape partagée, Tâche, Cas de test, Récit utilisateur

Date de début (Remarque 3)

Date et heure auxquelles la planification indique que la tâche commence.

Remarque

Plans de livraison utilise les champs Date de début et Date cible pour afficher l’étendue des fonctionnalités, des épopées et d’autres éléments du backlog du portefeuille.

Reference name=Microsoft.VSTS.Scheduling.StartDate, Data type=DateTime

Épopée, Fonctionnalité, Exigence, Tâche, Plan de test, Récit utilisateur

Date de modification d'état

Date et heure de modification de la valeur du champ État .

Nom de référence=Microsoft.VSTS.Common.StateChangeDate, Type de données=DateTime

Tous

Date limite

Date à laquelle une fonctionnalité, un élément de travail ou un problème doit être terminé ou résolu.

Remarque

Plans de livraison utilise les champs Date de début et Date cible pour afficher l’étendue des fonctionnalités, des épopées et d’autres éléments du backlog du portefeuille.

Reference name=Microsoft.VSTS.Scheduling.TargetDate, Data type=DateTime

Épopée, Fonctionnalité

Remarques :

  1. Voir aussi Requête par assignation ou changements de flux de travail.

  2. Pour que ces champs soient définis pour un type d’élément de travail, ils doivent être inclus dans la section WORKFLOW de la définition du type d’élément de travail. Par exemple, cette syntaxe est incluse dans la définition FIELDS lors de la transition vers un état Resolved.

    <FIELD refname="Microsoft.VSTS.Common.ResolvedDate" />  
       <SERVERDEFAULT from="clock"  />  
    </FIELD >  
    
  3. Les valeurs des champs Date de début et Date de fin sont calculées si vous créez un plan de projet dans Project, puis synchronisez ce plan avec les tâches stockées dans Azure Boards. Ces champs n’apparaissent pas sur le formulaire d’élément de travail, mais ils sont calculés pour les tâches et les éléments de backlog qui sont liés aux éléments de backlog. Vous pouvez consulter leurs valeurs en lecture seule dans les résultats à partir d’une requête ou d’Excel.

    Important

    L’intégration de Microsoft Project et la commande TFSFieldMapping ne sont pas prises en charge pour :

    • Visual Studio 2019 et Azure DevOps Intégration Office 2019.
    • Azure DevOps Server 2019 et versions ultérieures, y compris Azure DevOps Services.

    La prise en charge complète de l'intégration de Microsoft Excel est maintenue, ce qui permet l'importation et la mise à jour en masse des éléments de travail. Les alternatives à l’utilisation de Microsoft Project sont les suivantes :

API REST

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