Projekt- und organisationsbezogene Abfragen

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

Mithilfe von Analytics für Azure DevOps können Sie Abfragen erstellen, die auf ein Projekt oder eine Organisation oder Sammlung ausgerichtet sind. Sie können diese Abfragen direkt in Ihrem Browser oder in Power BI ausführen.

Projektbereichsabfragen helfen Ihnen dabei, Fragen zu einem einzelnen Projekt zu beantworten, während Organisations- und Sammlungsabfragen ihnen ermöglichen, Fragen zu beantworten, die Projektgrenzen überschreiten. Organisations- und Sammlungsabfragen erfordern umfassendere Benutzerberechtigungen oder sorgfältige Bereichseinschränkungen, um sicherzustellen, dass Ihre Abfrage aufgrund fehlender Berechtigungen nicht blockiert wird.

Hinweis

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 ist v4.0-preview. Weitere Informationen finden Sie unter OData-API-Versionsverwaltung.

Hinweis

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 ist v4.0-preview. Weitere Informationen finden Sie unter OData-API-Versionsverwaltung.

Hinweis

Der Analysedienst befindet sich in der Vorschau für Azure DevOps Server 2019. Sie können es für eine Projektsammlung aktivieren oder installieren. Die Power BI-Integration und der Zugriff auf den OData-Feed des Analytics-Diensts 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 ist v4.0-preview. Weitere Informationen finden Sie unter OData-API-Versionsverwaltung.

Voraussetzungen

Wichtig

Wenn Sie keinen Zugriff auf alle Projekte in einer Organisation haben, wird empfohlen, einen Projektfilter auf alle Ihre Abfragen anzuwenden. Wenn Sie Daten in Clienttools wie Power BI oder Excel abrufen, ist die Verwendung der Projektpfadsyntax die beste Methode, um sicherzustellen, dass alle Ihre Daten durch das angegebene Projekt eingeschränkt werden. Es wird empfohlen, abfragen mit Organisationsbereich oder Sammlung nur dann zu verwenden, wenn Sie zwei oder mehr Projekte melden müssen.

Projektbezogene Abfragen

Sie erstellen eine Abfrage, indem Sie die OData-URL in einen unterstützten Webbrowser eingeben.

Die Basis-URL für eine OData-Abfrage auf Projektebene ist wie in der folgenden Syntax dargestellt.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/

Ersetzen {OrganizationName} Sie {ProjectName} in den bereitgestellten Beispielen Ihre Namen ihrer Organisation und Ihres Projekts, die Sie abfragen möchten.

Hinweis

Die restlichen Beispiele in diesem Artikel basieren auf einer Azure DevOps Services-URL. Sie müssen in Ihrer Azure DevOps Server-URL ersetzen, um die Beispiele zu üben.

Zurückgeben einer Anzahl von Arbeitsaufgaben

Die folgende Projektbereichsabfrage gibt beispielsweise die Anzahl der Arbeitsaufgaben für ein bestimmtes Projekt zurück.

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems/$count

Beispielsweise gibt eine Abfrage des Fabrikam Fiber-Projekts eine Anzahl von 7126 Arbeitsaufgaben zurück. Gelöschte Arbeitsaufgaben sind nicht in der Anzahl enthalten.

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/WorkItems/$count

7126

Rückgabeprojektbereichspfade

Ebenso gibt die folgende Abfragezeichenfolge die Bereiche für ein bestimmtes Projekt zurück:

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/Areas

Es entspricht dem folgenden Filter für eine durch die Organisation bezogene Abfrage:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
  $filter=Project/ProjectName eq '{ProjectName}'

Beispielsweise gibt eine Abfrage des Fabrikam Fiber-Projekts alle Eigenschaften zurück, die für einen Bereichspfad definiert sind, da in der Abfrage kein $select Operator angewendet wird.

https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/Areas

Das folgende Beispiel zeigt die Daten, die für einen einzelnen Bereichspfad zurückgegeben werden.

ProjectSK	"56af920d-393b-4236-9a07-24439ccaa85c"
AreaSK	"26be05fd-e68a-4fcb-833f-497f6bee45f2"
AreaId	"26be05fd-e68a-4fcb-833f-497f6bee45f2"
AreaName	"Service Delivery"
Number	55373
AreaPath	"Fabrikam Fiber\\Service Delivery"
AreaLevel1	"Fabrikam Fiber"
AreaLevel2	"Service Delivery"
AreaLevel3	null
AreaLevel4	null
AreaLevel5	null
AreaLevel6	null
AreaLevel7	null
AreaLevel8	null
AreaLevel9	null
AreaLevel10	null
AreaLevel11	null
AreaLevel12	null
AreaLevel13	null
AreaLevel14	null
Depth	1

Verwenden der Option $expand

Wenn Sie eine projektbezogene Abfrage mit einer $expand Option verwenden, müssen Sie keine anderen Filter bereitstellen.

Beispielsweise der folgende Projektbereichsfilter:

https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems?
  $expand=Parent

wird automatisch gefiltert, um Sicherheit zu erzwingen:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=ProjectName eq '{ProjectName}'
  &$expand=Parent($filter=ProjectName eq '{ProjectName}')

Organisationsbezogene Abfragen

Die Basis-URL für Abfragen auf Organisationsebene ist wie gezeigt:

https://analytics.dev.azure.com/{OrganizationName}/_odata/v1.0

Wenn Sie eine durch die Organisation bezogene Abfrage mit einer $expand Option verwenden, müssen Sie einen anderen Filter angeben.

Die folgende abfrage mit Organisationsbereich, die zum Abrufen der untergeordneten Elemente aller Arbeitsaufgaben verwendet $expand wird.

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=Project/ProjectName eq '{ProjectName}'
  &$expand=Children

Es erfordert einen weiteren Filter, um zu überprüfen, ob die untergeordneten Elemente auf das angegebene Projekt beschränkt sind:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=Project/ProjectName eq '{ProjectName}'
  &$expand=Children($filter=Project/ProjectName eq '{ProjectName}')

Zurückgeben des übergeordneten Elements aller Arbeitsaufgaben

Die folgende Abfrage, die eine $expand Option zum Abrufen des übergeordneten Elements aller Arbeitsaufgaben verwendet.

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=Project/ProjectName eq '{ProjectName}'
  &$expand=Parent

Es erfordert einen anderen Filter, um zu überprüfen, ob das übergeordnete Element auf das angegebene Projekt beschränkt ist:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=Project/ProjectName eq '{ProjectName}'
  &$expand=Parent($filter=Project/ProjectName eq '{ProjectName}')

Ohne den anderen Filter schlägt die Anforderung fehl, wenn das übergeordnete Element einer Arbeitsaufgabe auf Arbeitsaufgaben in einem Projekt verweist, auf das Sie keinen Lesezugriff haben.

Sicherheitseinschränkungen auf Projektebene

Analytics hat einige weitere Einschränkungen für die Abfragesyntax im Zusammenhang mit der Sicherheit auf Projektebene.

Die any Oder all Filter gelten für die Basisentität für ein $expand. Bei Filtern, die auf einem Projekt basieren, wird der Filter bei Verwendung eines $expand:

Beispielsweise in der folgenden Abfrage:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=ProjectName eq '{ProjectName}'
  &$expand=Children($filter=Project/ProjectName eq '{ProjectName}')

Wird wie folgt interpretiert:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=ProjectName eq '{ProjectName}'
  &$expand=Children

und schlägt fehl, wenn Sie keinen Zugriff auf alle Projekte haben.

Um die Einschränkung zu umgehen, müssen Sie im Folgenden einen zusätzlichen Ausdruck $filterhinzufügen:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $filter=ProjectName eq '{ProjectName}' and Children/any(r: r/ProjectName eq '{ProjectName}')
  &$expand=Children

Die Verwendung $level wird nur unterstützt, wenn Sie Zugriff auf alle Projekte in der Auflistung oder bei Verwendung einer projektbezogenen Abfrage haben:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $expand=Children($levels=2;$filter=ProjectName eq '{ProjectName}')

Analytics unterstützt keine querstufige Referenz für Projekte, die die $it Klausel verwenden. Die folgende Abfrage verweist beispielsweise auf den Alias der Stammarbeitsaufgabe ProjectName $it , der nicht unterstützt wird:

https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
  $expand=Links(
    $expand=TargetWorkItem;
    $filter=TargetWorkItem/Project/ProjectName eq $it/Project/ProjectName)

Nächster Schritt