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
Kategori | Krav |
---|---|
Åtkomstnivåer |
-
Projektmedlem. – Minst Grundläggande åtkomst. |
Behörigheter | Som standard har projektmedlemmar behörighet att fråga Analytics och skapa vyer. 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 använder du ett projektfilter för alla dina frågor. När du hämtar data till klientverktyg som Power BI eller Excel använder du syntaxen för projektsökväg för att säkerställa att alla dina data begränsas av det angivna projektet. Använd endast 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. Ersätt url:en för Azure DevOps Server med hjälp av 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 visst 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 ytterligare filtret misslyckas begäran om en föräldrapost refererar till arbetsobjekt i ett projekt som du inte har Läs-åtkomst 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)