Freigeben über


Abfrage für verknüpfte Arbeitselemente

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

Das Abfragen von Arbeitsaufgaben über Verknüpfungen ähnelt der Verwendung typischer Navigationseigenschaften. Links selbst sind jedoch Entitäten, daher gibt es eine zusätzliche Komplexität.

Es gibt zwei Möglichkeiten, verknüpfte Arbeitsaufgaben abzufragen. Die erste ist die Eltern-Kind-Hierarchie, und die zweite ist die Navigationseigenschaft "Links".

In diesem Artikel erfahren Sie:

  • So erstellen Sie eine Abfrage, um hierarchisch (Eltern-Kind) verknüpfte Arbeitsaufgaben zurückzugeben.
  • Erstellen einer Abfrage zum Zurückgeben von nicht hierarchischen (verknüpften, direkten) Arbeitsaufgaben

Anmerkung

Der Analysedienst wird automatisch aktiviert und in der Produktion für alle Azure DevOps-Dienste unterstützt. Power BI-Integration und Zugriff auf den OData-Feed des Analytics-Diensts sind allgemein verfügbar. Wir empfehlen Ihnen, sie zu verwenden und uns Feedback zu geben. Verfügbare Daten sind versionsabhängig. Die neueste unterstützte Version ist v2.0, und die neueste Vorschauversion wird v4.0-preview. Weitere Informationen finden Sie unter OData-API-Versionsverwaltung.

Anmerkung

Der Analysedienst wird automatisch installiert und in der Produktion für alle neuen Projektsammlungen für Azure DevOps Server 2020 und höhere Versionen unterstützt. Power BI-Integration und Zugriff auf den OData-Feed des Analytics-Diensts sind allgemein verfügbar. Wir empfehlen Ihnen, sie zu verwenden und uns Feedback zu geben. Wenn Sie ein Upgrade von Azure DevOps Server 2019 durchgeführt haben, können Sie den Analysedienst während des Upgrades installieren.

Verfügbare Daten sind versionsabhängig. Die neueste unterstützte Version ist v2.0, und die neueste Vorschauversion wird v4.0-preview. Weitere Informationen finden Sie unter OData-API-Versionsverwaltung.

Anmerkung

Der Analysedienst befindet sich in der Vorschau für Azure DevOps Server 2019. Sie können es aktivieren oder installieren für eine Projektsammlung. Power BI-Integration und Zugriff auf den OData-Feed des Analysediensts befinden sich in der Vorschau. Wir empfehlen Ihnen, sie zu verwenden und uns Feedback zu geben.

Verfügbare Daten sind versionsabhängig. Die neueste unterstützte Version ist v2.0, und die neueste Vorschauversion wird v4.0-preview. Weitere Informationen finden Sie unter OData-API-Versionsverwaltung.

Voraussetzungen

Kategorie Anforderungen
Zugriffsebenen - Projektmitglied.
– Mindestens Basic Zugriff.
Berechtigungen Standardmäßig verfügen Projektmitglieder über die Berechtigung zum Abfragen von Analysen und Erstellen von Ansichten. Weitere Informationen zu anderen Voraussetzungen für die Dienst- und Featureaktivierung und allgemeine Datenverfolgungsaktivitäten finden Sie unter Berechtigungen und Voraussetzungen für den Zugriff auf Analytics.

Anmerkung

Die in diesem Artikel gezeigten Beispiele basieren auf einer Azure DevOps Services-URL. Für Azure DevOps Server müssen Sie die URL für den lokalen Server ersetzen.

https://{servername}:{port}/tfs/{OrganizationName}/{ProjectName}/_odata/{version}/

Eltern-Kind-Hierarchie

Sie können Elemente, die sich über Parent/Child-Links beziehen, einschließen, indem Sie $expand für die Eigenschaften "übergeordnete Elemente" und "untergeordnete Elemente" verwenden.

Beispiel: Abfrage von einem übergeordneten an ein untergeordnetes Element

Um Informationen zu den untergeordneten Elementen eines Elements zurückzugeben, verwenden Sie $expand für die Navigationseigenschaft Untergeordnete Elemente. Der folgende Codeausschnitt fordert, die untergeordneten Elemente der Arbeitsaufgabe ID 359 aus dem Fabrikam Fiber-Projekt zurückzugeben.

Anfrage anfordern

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?$filter=WorkItemId eq 359&$select=WorkItemId, Title, WorkItemType, State&$expand=Children($select=WorkItemId,Title, WorkItemType, State)

Die Antwort gibt die Features 479 und 480 zurück, die Unterelemente des Epic 359 sind.

Anmerkung

Die meisten OData-Abfragen, die Informationen zu Verknüpfungen von Arbeitselementen anfordern, geben Ergebnisse, aber auch eine Warnung zurück. Die Warnung ist eine Erinnerung, die empfohlenen Abfragerichtlinien zu befolgen, die in OData Analytics-Abfragerichtlinienbeschrieben werden. Die bereitgestellten Abfragebeispiele sind jedoch gültig.

Antwort

@odata.context	"https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,Title,WorkItemType,State,Children(WorkItemId,Title,WorkItemType,State))"
vsts.warnings@odata.type	"#Collection(String)"
@vsts.warnings	
0	"VS403508: Using the Parent, Children, Descendants or Revision properties in a filter or expand is not recommended. Details on recommended query patterns are available here: https://go.microsoft.com/fwlink/?linkid=861060."
value	
 0	
   WorkItemId	359
   Title	"Phase 1 - Customer access and engagement 5"
   WorkItemType	"Epic"
   State	"In Progress"
   Children	
      0	
        WorkItemId	480
        Title	"Customer Phone - Phase 1"
        WorkItemType	"Feature"
        State	"In Progress"
      1	
        WorkItemId	479
        Title	"Customer Web - Phase 1"
        WorkItemType	"Feature"
        State	"In Progress"

Beispiel: Abfrage vom Kind- zum Elternelement

Indem Sie Children durch Parent in der Option $expand ersetzen, können Sie die Herkunft eines Elements abrufen.

Die folgende Abfrageanforderung bittet darum, das übergeordnete Element des Arbeitselements mit der ID 1048 im Fabrikam Fiber-Projekt zurückzugeben.

Anfrage

https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/WorkItems?$select=WorkItemId,Title,State&$expand=Parent($select=WorkItemId,Title,WorkItemType, State)&$filter=WorkItemId eq 1048

Die Antwort gibt Feature 480 zurück, welches das übergeordnete Element des Backlog-Elements 1048 ist.

Antwort

@odata.context	"https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,Title,WorkItemType,State,Parent(WorkItemId,Title,WorkItemType,State))"
vsts.warnings@odata.type	"#Collection(String)"
@vsts.warnings	
0	"VS403508: Using the Parent, Children, Descendants or Revision properties in a filter or expand is not recommended. Details on recommended query patterns are available here: https://go.microsoft.com/fwlink/?linkid=861060."
value	
  0	
     WorkItemId	1048
     Title	"Support reset"
     WorkItemType	"Product Backlog Item"
     State	"New"
     Parent	
        WorkItemId	480
        Title	"Customer Phone - Phase 1"
        WorkItemType	"Feature"
        State	"In Progress"

Zusätzlich zur Hierarchie "Übergeordnetes/Untergeordnetes Element" können Elemente direkt mit anderen Elementen wie zum Beispiel Verknüpfungstypen Verwandt oder Duplikatverknüpft werden. Mit der Links Navigationseigenschaft können Sie diese Beziehungen anfordern.

Um die einem Element zugeordneten Links abzurufen, können Sie die Navigationseigenschaft Links mit $expand verwenden. In diesem Beispiel werden die SourceWorkItemId, TargetWorkItemIdund LinkTypeName- für alle Verknüpfungen abgerufen, die der Arbeitsaufgabe 363 zugeordnet sind.

Anfrage

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?$select=WorkItemId,Title,WorkItemType,State&$filter=WorkItemId%20eq%20363&$expand=Links($select=SourceWorkItemId,TargetWorkItemId,LinkTypeName)

Antwort

{
    "@odata.context": "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,Title,WorkItemType,State,Links(SourceWorkItemId,TargetWorkItemId,LinkTypeName))",
    "value": [{
        "WorkItemId": 363,
        "Title": "Welcome back page",
        "WorkItemType": "Product Backlog Item",
        "State": "Done",
        "Links": [{
            "SourceWorkItemId": 363,
            "TargetWorkItemId": 400,
            "LinkTypeName": "Related"
        }, {
            "SourceWorkItemId": 363,
            "TargetWorkItemId": 470,
            "LinkTypeName": "Tested By"
        }, {
            "SourceWorkItemId": 363,
            "TargetWorkItemId": 501,
            "LinkTypeName": "Related"
        }, {
            "SourceWorkItemId": 363,
            "TargetWorkItemId": 1079,
            "LinkTypeName": "Tested By"
        }
    }]
}

Beispiel: Anfordern von Details zu verknüpften Elementen

Sie können die Details Ihrer verknüpften Arbeitsaufgaben einschließen, indem Sie $expand für die TargetWorkItem- oder SourceWorkItem- Navigationseigenschaften verwenden. In diesem Beispiel rufen wir die WorkItemId, Titleund State des Zielarbeitselements für jeden Link ab.

Anfrage anfordern

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?$select=WorkItemId,Title,WorkItemType,State&$filter=WorkItemId%20eq%20103&$expand=Links($select=SourceWorkItemId,TargetWorkItemId,LinkTypeName;$expand=TargetWorkItem($select=WorkItemId,Title,State))

Antwort

{
    "@odata.context": "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,Title,WorkItemType,State,Links(SourceWorkItemId,TargetWorkItemId,LinkTypeName,TargetWorkItem(WorkItemId,Title,State)))",
    "value": [{
        "WorkItemId": 103,
        "Title": "Feature Y",
        "WorkItemType": "Feature",
        "State": "New",
        "Links": [{
            "SourceWorkItemId": 103,
            "TargetWorkItemId": 48,
            "LinkTypeName": "Child",
            "TargetWorkItem": {
                "WorkItemId": 48,
                "Title": "Story 15",
                "State": "Resolved"
            }
        }, {
            "SourceWorkItemId": 103,
            "TargetWorkItemId": 50,
            "LinkTypeName": "Child",
            "TargetWorkItem": {
                "WorkItemId": 50,
                "Title": "Story 17",
                "State": "Active"
            }
        }, {
            "SourceWorkItemId": 103,
            "TargetWorkItemId": 55,
            "LinkTypeName": "Child",
            "TargetWorkItem": {
                "WorkItemId": 55,
                "Title": "Story 22",
                "State": "New"
            }
        }, {
            "SourceWorkItemId": 103,
            "TargetWorkItemId": 112,
            "LinkTypeName": "Related",
            "TargetWorkItem": {
                "WorkItemId": 112,
                "Title": "Some issue",
                "State": "Active"
            }
        }]
    }]
}

Möglicherweise sind Sie auch an einer bestimmten Art von Verknüpfung zwischen Elementen interessiert. Geben Sie die LinkTypeName- eigenschaft in einer $filter-Klausel an. Das folgende Abfragebeispiel erweitert alle Verwandten Links und filtert alle anderen Verknüpfungstypen für Arbeitsaufgabe 103 heraus.

Anfrage anfordern

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v4.0-preview/WorkItems?$select=WorkItemId,Title,WorkItemType,State&$filter=WorkItemId eq 103&$expand=Links($select=SourceWorkItemId,TargetWorkItemId,LinkTypeName;$filter=LinkTypeName eq 'Related';$expand=TargetWorkItem($select=WorkItemId,Title,State))

Antwort

{
    "@odata.context": "https://analytics.dev.azure.com/fabrikam/Fabrikam%20Fiber/_odata/v4.0-preview/$metadata#WorkItems(WorkItemId,Title,WorkItemType,State,Links(SourceWorkItemId,TargetWorkItemId,LinkTypeName,TargetWorkItem(WorkItemId,Title,State)))",
    "value": [{
        "WorkItemId": 103,
        "Title": "Feature Y",
        "WorkItemType": "Feature",
        "State": "New",
        "Links": [{
            "SourceWorkItemId": 103,
            "TargetWorkItemId": 112,
            "LinkTypeName": "Related",
            "TargetWorkItem": {
                "WorkItemId": 112,
                "Title": "Some issue",
                "State": "Active"
            }
        }]
    }]
}

Nächste Schritte