Abfragen nach Datum oder aktueller Iteration in Azure Boards

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

In diesem Artikel erfahren Sie, wie Sie Arbeitsaufgaben basierend auf dem Zeitpunkt auflisten, zu dem sie erstellt, geschlossen, aufgelöst oder geändert wurden – Sie können ein Datum angeben oder ein unterstütztes Makro verwenden. Verwenden Sie das Makro @Today, und geben Sie eine zuzügliche oder abzügliche Anzahl von Tagen für relative Datumsangaben an. Verwenden Sie @CurrentIteration für Abfragen, die Arbeitselemente basierend auf ihrer Zuweisung zum aktuellen Sprint eines Teams auflisten.

Suchen Sie z. B. Arbeitsaufgaben, die in den letzten drei Tagen geändert wurden, mit der folgenden Abfrage.

Screenshot of Query Editor, Changed Date >= 3.

Screenshot of query editor, filter based on recent changes.

Außerdem können Sie das Makro CurrentIteration +/- _n_ verwenden, um Abfragen basierend auf einem gleitenden Fenster von Teamiterationen zu erstellen.

Unterstützte Operatoren und Makros

In Abfrageklauseln mit einem DateTime-Feld oder dem Iterationspfad können die in der folgenden Tabelle aufgeführten Operatoren und Makros verwendet werden.


Datentyp

Unterstützte Operatoren und Makros


DateTime

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

Makros: @StartOfDay, @StartOfWeek, @StartOfMonth, @StartOfYear und @Today.
Sie können +/- n mit jedem der unterstützten Makros verwenden.


TreePath

= , <>, Unter, Nicht unter
Makros: @CurrentIteration1 und @CurrentIteration +/- n2 sind bei Verwendung mit dem Feld Iterationspfad gültig.


DateTime

= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field], In, Not In, Was Ever
Makros: @Today kann mit +/- n angegeben werden, wobei n eine ganze Zahl ist.


TreePath

=, <>, Under, Not UnderMakros: @CurrentIteration2 ist bei Verwendung mit dem Feld Iterationspfad gültig.


Hinweise:

  1. Die Makros @StartOfDay, @StartOfWeek, @StartOfMonth und @StartOfYear werden für Azure DevOps Server 2019.1 und höher und nur bei der Ausführung über das Webportal unterstützt.
  2. Das Makro @CurrentIteration +/- n wird für Azure DevOps Server 2019 und höher und nur bei der Ausführung über das Webportal unterstützt.

Tipp

Der Operator WasEver kann mit dem Feld Iterationspfad verwendet werden, jedoch nur, wenn er über die WIQL-Syntax (Work Item Query Language) definiert wird. Ein Beispiel finden Sie unter WIQL-Syntax (Work Item Query Language) – Syntaxreferenz.

Datums- und Uhrzeitmuster

Das Datums- und Uhrzeitmuster, das Sie für DateTime-Felder eingeben, muss mit dem Muster übereinstimmen, das Sie über Ihr Profil auswählen. Informationen zum Anzeigen oder Ändern Ihrer Auswahl finden Sie unter Festlegen von Benutzereinstellungen – „Uhrzeit und Gebietsschema“.

Time and Locale page, Date pattern optionsTime and Locale page, Time pattern options

Time and Locale page, Date pattern options

Clienteinschränkungen bezüglich der Verwendung der @CurrentIteration-Makros

Auf den folgenden Clients können Sie das Makro @CurrentIteration in einer Abfrage verwenden:

  • Webportal, das eine Verbindung mit Azure Boards herstellt
  • Visual Studio 2019 oder höhere Versionen, die mit Azure Boards verbunden sind
  • Verwenden der REST-API

Sie können das Makro @CurrentIteration +/- n in einer Abfrage für Azure Boards, Azure DevOps Server 2019 und höher sowie mit einer REST-API, die das Team als Parameter enthält, verwenden, z. B. @CurrentIteration('[Project]/Team').

Ein Fehler tritt auf, wenn Sie eine Abfrage, die das Makro @CurrentIteration enthält, in früheren Visual Studio-Versionen oder in Excel oder Project öffnen. Außerdem können Sie das Makro nicht beim Kopieren oder Klonen von Testsammlungen und Testfällen, beim Definieren von Warnungen oder mit REST-APIs verwenden.

Datumsbasierte Abfragen

Filtern Sie Arbeitsaufgaben nach dem Datum, an dem sie geändert wurden, oder nach einem bestimmten Zeitraum. Schränken Sie den Umfang Ihrer Abfrage ein, was sich positiv auf die Leistung auswirken kann, indem nur Ergebnisse zurückgegeben werden, die dem von Ihnen angegebenen Datumsbereich entsprechen. Wenn Sie noch nicht mit der Erstellung von Abfragen vertraut sind, lesen Sie den Artikel zur Verwendung des Abfrage-Editors zum Auflisten und Verwalten von Abfragen.

Nicht alle Felder sind für alle Arbeitselementtypen gültig. Die Felder, die Sie in Abfragen einschließen können, und die Arbeitselementtypen, für die sie gelten, finden Sie weiter unten im Abschnitt Datumsfelder.

Tipp


Filtern nach

Folgende Abfrageklauseln einschließen


Elemente, die in den letzten 30 Tagen erstellt wurden

Screenshot of query editor, Clause for finding items created in the last 30 days.


Elemente, die an einem bestimmten Datum geändert wurden

Screenshot of query editor, Clause for finding items changed on a specific date.


Elemente, die heute gelöst wurden

Screenshot of query editor, Clause for finding items resolved today.


Elemente, die innerhalb eines angegebenen Zeitraums geschlossen wurden

Screenshot of query editor, Clause for finding items closed within a specified time period.


Elemente, die nicht geschlossen sind (Schließungsdatum ist Null)

Screenshot of query editor, Clause for finding items whose Closed Date is empty or null.


Elemente, deren Status in der letzten Woche aktualisiert wurde

Screenshot of query editor, Clause for items whose status was updated within the last week.


Elemente, die während des aktuellen Sprints geschlossen wurden (das Makro <xref href="CurrentIteration" data-throw-if-not-resolved="False" data-raw-source="@CurrentIteration"></xref> verweist auf den Sprint, der für den aktuellen Teamkontext definiert ist)

Screenshot of query editor, Clause for items closed during the current sprint.


Erstellen von datumsbasierten Abfragen nach Tages-, Wochen-, Monats- oder Jahresbeginn

Die folgenden Beispiele zeigen, wie Sie die StartOf...-Makros verwenden, um mit verschiedenen Offsets nach Arbeitselementen zu filtern. Weitere Informationen finden Sie unter WIQL-Syntax (Work Item Query Language).

Hinweis

Erfordert Azure DevOps Server 2019, Update 1 oder höher.

Zum Filtern nach

Folgende Abfrageklauseln einschließen


Fehler, die in den letzten zwei Wochen geschlossen wurden

Screenshot of query editor, Clauses for finding bugs closed in the last two weeks.


Elemente, die in den letzten zehn Tagen geändert wurden

Screenshot of query editor, Clause for finding items changed in the last 10 days.


Features, die laut Zeitplan in den nächsten drei Monaten abgeschlossen werden sollen

Clauses for features scheduled to be completed in the next three months.


Nicht alle Felder sind für alle Arbeitselementtypen gültig. Die Felder, die Sie in Abfragen einschließen können, und die Arbeitselementtypen, für die sie gelten, finden Sie weiter unten im Abschnitt Datumsfelder.

Erstellen von Abfragen für die aktuelle Iteration Ihres Teams

Wenn Ihr Team Scrum-Prozesse befolgt, planen Sie die Erledigung von Arbeitselementen in Sprints. Sie können den Status von Anforderungen, Fehlern und anderen Arbeiten, die im aktuellen Sprint erledigt werden sollen, mithilfe des Makros @CurrentIteration nachverfolgen.

Jedes Element, das einem dem aktuellen Iterationspfad für das Team entsprechenden Sprint zugewiesen ist, wird gefunden. Wenn ein Team beispielsweise an Sprint 5 arbeitet, gibt die Abfrage Elemente zurück, die Sprint 5 zugewiesen sind. Arbeitet das Team später an Sprint 6, gibt dieselbe Abfrage Elemente zurück, die Sprint 6 zugewiesen sind.

Hinweis

Damit das Makro @CurrentIteration funktioniert, muss das Team einen Iterationspfad ausgewählt haben, dessen Datumsbereich das aktuelle Datum umfasst. Weitere Informationen finden Sie unter „Definieren von Iterationspfaden (sogenannte Sprints) und Konfigurieren von Teamiterationen“. Abfragen, die dieses Makro enthalten, sind zudem nur gültig, wenn sie über das Webportal ausgeführt werden.

Informationen hierzu finden Sie auch weiter unten in diesem Artikel unter Client restrictions on the use of the @CurrentIteration macros.

Azure Boards fügt einen Team-Parameter hinzu, wenn Sie die Makros @CurrentIteration oder @CurrentIteration +/- n auswählen. Der Team-Parameter wird aus Ihrem aktuellen Teamkontext abgeleitet.

Screenshot of the Query filter using the CurrentIteration macro with team parameter.

Tipp

Wenn das Makro @CurrentIteration nicht funktioniert, überprüfen Sie, ob die erwartete Iteration für Ihr Team ausgewählt ist und Datumsangaben dafür festgelegt wurden.

Um den automatisch vom System festgelegten Team-Parameter zu ändern, wählen Sie den Parameter aus, indem Sie den Namen des Teams in das Parameterfeld unterhalb des Makros @CurrentIteration eingeben.

Screenshot showing Choose team parameter.

Bevor Sie eine Abfrage zur Verwendung des Makros @CurrentIteration erstellen oder aktualisieren, müssen Sie Ihr Team auswählen. Das Makro @CurrentIteration verweist auf das aktuelle Team, das im Webportal ausgewählt ist.

Screenshot showing Query filter using the CurrentIteration macro.

Erstellen einer Abfrage mit einem gleitenden Fenster der Iterationen Ihres Teams

Verwenden Sie das Makro @CurrentIteration +/- n, wenn Sie die Arbeit verfolgen möchten, die ein Team für kommende Sprints geplant hat, und um Arbeiten zu verstehen, die in früheren Sprints nicht abgeschlossen wurden.

Hinweis

Damit das Makro @CurrentIteration +/- n funktioniert, muss das Team Iterationspfade, die den +/- n-Kriterien entsprechen, und Datumsbereiche, die das aktuelle Datum für @CurrentIteration umfassen, ausgewählt haben. Ausführliche Informationen zur Teamauswahl von Iterationspfaden finden Sie unter Definieren von Iterationspfaden (Sprints) und Konfigurieren von Teamiterationen.

Informationen hierzu finden Sie auch weiter unten in diesem Artikel unter Client restrictions on the use of the @CurrentIteration macros.

In der folgenden Abbildung zeigen wir, wie Sie alle User Storys und Fehler auflisten, die dem gleitenden Fenster zugewiesen sind, das die letzten beiden, den aktuellen und die nächsten beiden Sprints umfasst, die für das Cloud-Admin- und Tools-Team ausgewählt wurden.

Screenshot of CurrentIteration plus and minus clauses.

Um dieses Makro zu verwenden, muss das angegebene Team eine Reihe von Sprints auswählen, die den für das Makro eingegebenen Wert +/- n umfassen.

Auflisten von Arbeitselementen, die aus einem Sprint verschoben wurden

Listen Sie Arbeitselemente auf, die für einen Sprint definiert, aber später mithilfe einer Abfrage mit einer Klausel verschoben wurden, die den Operator Was Ever für den Iterationspfad enthält. Erstellen Sie diese Abfrage nur mit der WIQL-Syntax. Bearbeiten Sie die WIQL-Syntax im Abfrage-Editor, indem Sie die Wiql-Editor-Marketplace-Erweiterung installieren.

Die folgende Syntax fragt beispielsweise Arbeitselemente ab, die die folgenden Kriterien erfüllen:

  • Die Arbeitselemente sind im aktuellen Projekt definiert.
  • Der Arbeitselementtyp ist „User Story“ oder „Fehler“
  • Die Arbeitselemente befinden sich unter dem Bereichspfad des Fabrikam Fiber Web-Teams
  • Die Arbeitselemente befinden sich nicht im Zustand „Geschlossen“, „Abgeschlossen“, „Gekürzt“ oder „Gelöst“
  • Die Arbeitselemente befinden sich nicht im aktuellen Iterationspfad für das Fabrikam Fiber Web-Team
  • Die Arbeitselemente wurden dem aktuellen Iterationspfad für das Fabrikam Fiber Web-Team zugewiesen
  • Die Arbeitselemente sind jetzt dem aktuellen Iterationspfad +1 für das Fabrikam Fiber Web-Team zugewiesen
  • Die Arbeitselemente wurden innerhalb der letzten 30 Tage (Länge des Sprints) geändert
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]

Die Syntaxansicht im Abfrage-Editor sieht wie hier dargestellt aus.

Hinweis

Im Abfrage-Editor wird ein Informationssymbol neben dem Operator War schon einmal angezeigt, das auf ein Problem mit der Klausel hinweist. Die Abfrage wird aber trotzdem ausgeführt und Sie können Abfragediagramme erstellen. Um die Abfrage zu ändern, MÜSSEN Sie den WIQL-Editor verwenden.

Screenshot of Query Editor, Work Items moved out of a sprint.

Auflisten von Arbeitselementen, die einem Sprint nach dem Startdatum hinzugefügt wurden

Um neu erstellte Arbeitselemente aufzulisten, die einem Sprint nach seinem Startdatum hinzugefügt wurden, verwenden Sie eine Abfrage wie die im folgenden Screenshot. Diese Abfrage filtert nach Arbeitselementen, die dem aktuellen Sprint zugewiesen sind, aber nach dem Startdatum des Sprints erstellt wurden. Wir verwenden die Klausel created Date = @Today - 28.

Screenshot of Query Editor, Work Items newly created and added to a sprint after its start date.

Weitere Optionen zum Abfragen von Änderungen am Sprintbereich finden Sie im Artikel zu Sprints, Scrum und Projektverwaltung im Abschnitt zum Abfragen von Änderungen des Sprintbereichs.

Datums- und Iterationspfadfelder

Verwenden Sie Datumsfelder, um Ihre Abfragen zu filtern. Manche Felder werden mit Informationen aufgefüllt, wenn ein Arbeitselement von einem Zustand in einen anderen übergeht. Einige dieser Felder werden im Arbeitselementformular nicht angezeigt, werden aber für die in der folgenden Tabelle aufgeführten Arbeitselementtypen nachverfolgt.

Feldname

Beschreibung

Arbeitselementtypen


Aktivierungsdatum (Hinweise 1 und 2)

Das Datum und die Uhrzeit, zu der die Arbeitsaufgabe erstellt wurde oder zu der ihr Status von "Geschlossen", "Abgeschlossen" oder "Fertig" in den Zustand "Neu" oder "Aktiv" geändert wurde.
Verweisname = Microsoft.VSTS.Common.ActivatedDate, Datentyp = DateTime

Fehler, Änderungsanforderung, Epic, Feature, Problem, Product Backlog Item, Anforderung, Review, Risiko, Freigegebener Schritt, Aufgabe, Testfall, User Story

Datum ändern

Das Datum und die Uhrzeit der Änderung eines Arbeitselements.
Verweisname = System.ChangedDate, Datentyp = DateTime

Alle

Schließungsdatum (Hinweis 2)

Das Datum und die Uhrzeit, zu der ein Arbeitselement abgeschlossen wurde.
Verweisname = Microsoft.VSTS.Common.ClosedDate, Datentyp = DateTime

Alle

Erstellt am

Das Datum und Uhrzeit, zu der ein Arbeitselement erstellt wurde.
Verweisname = System.CreatedDate, Datentyp = DateTime

Alle

Due Date

Das geplante Fälligkeitsdatum, bis zu dem ein Problem behoben wird.
Verweisname = Microsoft.VSTS.Scheduling.DueDate, Datentyp = DateTime

Problem (Agile)

Fertigstellungsdatum (Hinweis 3)

Das Datum und die Uhrzeit für den Abschluss der Aufgabe gemäß dem Zeitplan.
Verweisname = Microsoft.VSTS.Scheduling.FinishDate, Datentyp = DateTime

Anforderung, Aufgabe, Testplan, User Story

Iterationspfad

Gruppiert Arbeitselementen nach benannten Sprints oder Zeiträumen. Die Iteration muss ein gültiger Knoten in der Projekthierarchie sein. Sie definieren Iterationspfade für ein Projekt und wählen Iterationspfade für ein Team aus.
Verweisname = System.IterationPath, Datentyp = TreePath

Alle

Lösungsdatum (Hinweise 1 und 2)

Das Datum und die Uhrzeit der Verschiebung des Arbeitselements in den Zustand „Gelöst“.
Verweisname = Microsoft.VSTS.Common.ResolvedDate, Datentyp = DateTime

Fehler, Änderungsanforderung, Epic, Feature, Problem, Product Backlog Item, Anforderung, Review, Risiko, Freigegebener Schritt, Aufgabe, Testfall, User Story

Startdatum (Hinweis 3)

Das Datum und die Uhrzeit für den Start der Aufgabe gemäß dem Zeitplan.

Hinweis

Lieferpläne verwenden das Startdatum und das Zieldatum, um die Zeitspanne von Features, Epics und anderen Portfolio Backlog-Elementen anzuzeigen.

Verweisname = Microsoft.VSTS.Scheduling.StartDate, Datentyp = DateTime

Epic, Feature, Anforderung, Aufgabe, Testplan, User Story

Datum der Zustandsänderung

Das Datum und die Uhrzeit, zu der das Zustandsfeld geändert wurde.
Verweisname = Microsoft.VSTS.Common.StateChangeDate, Datentyp = DateTime

Alle

Zieldatum

Das Datum, bis zu dem ein Feature, Arbeitselement oder Problem abgeschlossen oder gelöst werden soll.

Hinweis

Lieferpläne verwenden das Startdatum und das Zieldatum, um die Zeitspanne von Features, Epics und anderen Portfolio Backlog-Elementen anzuzeigen.

Verweisname = Microsoft.VSTS.Scheduling.TargetDate, Datentyp = DateTime

Epic, Feature

Hinweise:

  1. Weitere Informationen finden Sie auch unter Abfragen nach Zuweisung oder Workflowänderungen – Datums- und Identitätsfelder.

  2. Damit diese Felder für einen Arbeitselementtyp (Work Item Type, WIT) definiert werden können, müssen sie im WORKFLOW-Abschnitt der WIT-Definition enthalten sein. Diese Syntax ist beispielsweise in der FIELDS-Definition enthalten, wenn in den Status „Gelöst“ übergegangen wird.

     <FIELD refname="Microsoft.VSTS.Common.ResolvedDate" />  
        <SERVERDEFAULT from="clock"  />  
     </FIELD >  
    
  3. Die Felder Startdatum und Fertigstellungsdatum werden berechnet, wenn Sie einen Projektplan in Microsoft Project erstellen und diesen Plan dann mit Aufgaben synchronisieren, die in Azure Boards gespeichert sind. Diese Felder werden möglicherweise nicht im Arbeitselementformular angezeigt, sie werden jedoch für die Backlog Items und Aufgaben berechnet, die mit Backlog Items verknüpft sind. Sie können die entsprechenden schreibgeschützten Werte in den Ergebnissen einer Abfrage oder in Microsoft Excel anzeigen.

    Wichtig

    Die Microsoft Project-Integration und der Befehl TFSFieldMapping werden nicht unterstützt für:

    • Visual Studio 2019 und Azure DevOps Office® Integration 2019
    • Azure DevOps Server 2019 und höher, einschließlich Azure DevOps Services.

    Die Microsoft Excel-Integration wird jedoch weiterhin vollständig unterstützt und ermöglicht den Massenimport sowie die Massenaktualisierung von Arbeitselementen. Alternativen zur Verwendung von Microsoft Project sind u. a.:

REST-API

Informationen zur programmgesteuerten Interaktion mit Abfragen finden Sie in den folgenden REST-API-Ressourcen: