Dela via


Projekt- och organisationsomfattande frågor

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

Med Hjälp av Analytics för Azure DevOps kan du skapa frågor som är begränsade till ett projekt eller en organisation eller samling. Du kan köra dessa frågor direkt i webbläsaren eller i Power BI.

Projektomfattningsfrågor hjälper dig att besvara frågor om ett enskilt projekt, medan frågor med omfång för organisation och samling gör att du kan svara på frågor som korsar projektgränser. Organisations- och samlingsomfångsfrågor kräver bredare användarbehörigheter eller noggranna omfångsbegränsningar för att säkerställa att frågan inte blockeras på grund av brist på behörigheter.

Kommentar

Analytics-tjänsten aktiveras automatiskt och stöds i produktion för alla Azure DevOps Services. Power BI-integrering och åtkomst till OData-flödet i Analytics Service är allmänt tillgängliga. Vi rekommenderar att du använder den och ger oss feedback. Tillgängliga data är versionsberoende. Den senaste versionen som stöds är v2.0, och den senaste förhandsversionen är v4.0-preview. Mer information finns i OData API-versionshantering.

Kommentar

Analytics-tjänsten installeras automatiskt och stöds i produktion för alla nya projektsamlingar för Azure DevOps Server 2020 och senare versioner. Power BI-integrering och åtkomst till OData-flödet i Analytics Service är allmänt tillgängliga. Vi rekommenderar att du använder den och ger oss feedback. Om du har uppgraderat från Azure DevOps Server 2019 kan du installera Analytics-tjänsten under uppgraderingen.

Tillgängliga data är versionsberoende. Den senaste versionen som stöds är v2.0, och den senaste förhandsversionen är v4.0-preview. Mer information finns i OData API-versionshantering.

Kommentar

Analytics-tjänsten är en förhandsversion för Azure DevOps Server 2019. Du kan aktivera eller installera den för en projektsamling. Power BI-integrering och åtkomst till OData-flödet för Analystjänsten finns i förhandsversion. Vi rekommenderar att du använder den och ger oss feedback.

Tillgängliga data är versionsberoende. Den senaste versionen som stöds är v2.0, och den senaste förhandsversionen är v4.0-preview. Mer information finns i OData API-versionshantering.

Förutsättningar

  • Om du vill visa analysdata och fråga tjänsten måste du vara medlem i ett projekt med grundläggande åtkomst eller större. Som standard beviljas alla projektmedlemmar behörighet att köra frågor mot Analytics och definiera analysvyer.
  • Mer information om andra förutsättningar för tjänst- och funktionsaktivering och allmänna dataspårningsaktiviteter finns i Behörigheter och krav för åtkomst till analys.

Viktigt!

Om du inte har åtkomst till alla projekt i en organisation rekommenderar vi att du tillämpar ett projektfilter på alla dina frågor. När du hämtar data till klientverktyg som Power BI eller Excel är det bästa sättet att se till att alla dina data begränsas av det aktuella projektet med hjälp av syntaxen för projektsökväg. Vi rekommenderar att du endast använder frågor med organisationsomfattning eller samlingsomfång när du behöver rapportera om två eller flera projekt.

Projektomfattande frågor

Du skapar en fråga genom att ange OData-URL:en i en webbläsare som stöds.

Bas-URL:en för en OData-fråga på projektnivå visas enligt följande syntax.

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

I exemplen ersätter {OrganizationName} du och {ProjectName} med namnen på din organisation och ditt projekt som du vill köra frågor mot.

Kommentar

De återstående exemplen i den här artikeln baseras på en URL för Azure DevOps Services. Du måste ersätta azure DevOps Server-URL:en för att kunna använda exemplen.

Returnera antalet arbetsobjekt

Följande projektomfattande fråga returnerar till exempel antalet arbetsobjekt för ett visst projekt.

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

En fråga i Fabrikam Fiber-projektet returnerar till exempel antalet 7 126 arbetsobjekt. Borttagna arbetsobjekt ingår inte i antalet.

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

7126

Returnera projektområdessökvägar

På samma sätt returnerar följande frågesträng områdena för ett specifikt projekt:

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

Det motsvarar följande filter på en organisationsomfattande fråga:

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

En fråga i Fabrikam Fiber-projektet returnerar till exempel alla egenskaper som definierats för en områdessökväg eftersom ingen $select operator tillämpas i frågan.

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

I följande exempel visas de data som returneras för en enda områdessökväg.

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

Använda alternativet $expand

När du använder en projektomfattande fråga med ett $expand alternativ behöver du inte ange andra filter.

Till exempel följande filter med projektomfattning:

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

filtreras automatiskt för att framtvinga säkerhet:

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

Frågor med organisationsomfattning

Bas-URL:en för frågor på organisationsnivå är som du ser:

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

När du använder en organisationsomfattande fråga med ett $expand alternativ måste du ange ett annat filter.

Till exempel följande organisationsomfattande fråga, som använder en $expand för att hämta underordnade till alla arbetsobjekt.

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

Det krävs ett annat filter för att kontrollera att underordnade objekt är begränsade till det angivna projektet:

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

Returnera överordnad för alla arbetsobjekt

Följande fråga, som använder ett $expand alternativ för att hämta överordnad för alla arbetsobjekt.

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

Det krävs ett annat filter för att kontrollera att det överordnade är begränsat till det angivna projektet:

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

Utan det andra filtret misslyckas begäran om överordnad för ett arbetsobjekt refererar till arbetsobjekt i ett projekt som du inte har läsbehörighet till.

Säkerhetsbegränsningar på projektnivå

Analys har några fler begränsningar för frågesyntax som rör säkerhet på projektnivå.

Filtren any eller all gäller för basentiteten på en $expand. För filter baserade på ett projekt ignorerar vi uttryckligen filtret när du använder en $expand:

Till exempel följande fråga:

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

Tolkas som:

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

och misslyckas om du inte har åtkomst till alla projekt.

Om du vill kringgå begränsningen måste du lägga till ett extra uttryck i $filter:

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

Användning $level stöds endast om du har åtkomst till alla projekt i samlingen eller när du använder en fråga med projektomfattning:

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

Analys har inte stöd för någon referens på flera nivåer för projekt som använder $it -satsen. Till exempel refererar följande fråga till rotarbetsobjektets ProjectName med hjälp av $it alias, vilket inte stöds:

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

Gå vidare