Query con ambito progetto e organizzazione
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Usando Analytics per Azure DevOps, è possibile costruire query con ambito un progetto o un'organizzazione o una raccolta. È possibile eseguire queste query direttamente nel browser o all'interno di Power BI.
Le query con ambito progetto consentono di rispondere a domande su un singolo progetto, mentre le query con ambito organizzazione e raccolta consentono di rispondere a domande che superano i limiti del progetto. Le query con ambito organizzazione e raccolta richiedono autorizzazioni utente più ampie o restrizioni di ambito più ampie per assicurarsi che la query non venga bloccata a causa di una mancanza di autorizzazioni.
Nota
Il servizio Analytics viene abilitato e supportato automaticamente nell'ambiente di produzione per tutti i Servizi DevOps di Azure. L'integrazione di Power BI e l'accesso al feed OData del servizio di analisi sono disponibili a livello generale. Ti invitiamo a usarlo e a inviare commenti e suggerimenti.
I dati disponibili dipendono dalla versione. La versione supportata più recente è v2.0
e la versione di anteprima più recente è v4.0-preview
. Per altre informazioni, vedere Controllo delle versioni dell'API OData.
Nota
Il servizio Analytics viene installato e supportato automaticamente nell'ambiente di produzione per tutte le nuove raccolte di progetti per Azure DevOps Server 2020 e versioni successive. L'integrazione di Power BI e l'accesso al feed OData del servizio di analisi sono disponibili a livello generale. Ti invitiamo a usarlo e a inviare commenti e suggerimenti. Se è stato eseguito l'aggiornamento da Azure DevOps Server 2019, è possibile installare il servizio Analytics durante l'aggiornamento.
I dati disponibili dipendono dalla versione. La versione supportata più recente è v2.0
e la versione di anteprima più recente è v4.0-preview
. Per altre informazioni, vedere Controllo delle versioni dell'API OData.
Nota
Il servizio Analytics è disponibile in anteprima per Azure DevOps Server 2019. È possibile abilitarlo o installarlo per una raccolta di progetti. L'integrazione di Power BI e l'accesso al feed OData del servizio di analisi sono disponibili in anteprima. Ti invitiamo a usarlo e a inviare commenti e suggerimenti.
I dati disponibili dipendono dalla versione. La versione supportata più recente è v2.0
e la versione di anteprima più recente è v4.0-preview
. Per altre informazioni, vedere Controllo delle versioni dell'API OData.
Prerequisiti
- Accesso: essere un membro di un progetto con almeno l'accesso Basic .
- Autorizzazioni: per impostazione predefinita, i membri del progetto dispongono dell'autorizzazione per eseguire query su Analisi e creare viste.
- Per altre informazioni sugli altri prerequisiti relativi all'abilitazione di servizi e funzionalità e alle attività generali di rilevamento dei dati, vedere Autorizzazioni e prerequisiti per l'accesso ad Analytics.
Importante
Se non si ha accesso a tutti i progetti di un'organizzazione, è consigliabile applicare un filtro di progetto a tutte le query. Quando si estraggono dati in strumenti client come Power BI o Excel, l'uso della sintassi del percorso del progetto è il modo migliore per garantire che tutti i dati siano vincolati dal progetto specificato. È consigliabile usare query con ambito organizzazione o con ambito raccolta solo quando è necessario creare report su due o più progetti.
Query con ambito progetto
Per creare una query, immettere l'URL OData in un Web browser supportato.
L'URL di base per una query OData a livello di progetto è come illustrato nella sintassi seguente.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/{version}/
Negli esempi forniti sostituire {OrganizationName}
e {ProjectName}
con i nomi dell'organizzazione e del progetto su cui eseguire una query.
Nota
Gli esempi rimanenti forniti in questo articolo si basano su un URL di Azure DevOps Services. È necessario sostituire nell'URL del server Azure DevOps per eseguire gli esempi.
Restituisce un conteggio degli elementi di lavoro
Ad esempio, la query con ambito progetto seguente restituisce il numero di elementi di lavoro per un progetto specifico.
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems/$count
Ad esempio, una query del progetto Fabrikam Fiber restituisce un conteggio di 7126 elementi di lavoro. Gli elementi di lavoro eliminati non sono inclusi nel conteggio.
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/WorkItems/$count
7126
Restituire i percorsi dell'area del progetto
Analogamente, la stringa di query seguente restituirà le aree per un progetto specifico:
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/Areas
Equivale al filtro seguente per una query con ambito organizzazione:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/Areas?
$filter=Project/ProjectName eq '{ProjectName}'
Ad esempio, una query del progetto Fabrikam Fiber restituisce tutte le proprietà definite per un percorso di area perché nella query non viene applicato alcun $select
operatore.
https://analytics.dev.azure.com/fabrikam/Fabrikam Fiber/_odata/v1.0/Areas
L'esempio seguente mostra i dati restituiti per un singolo percorso area.
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
Uso dell'opzione $expand
Quando si usa una query con ambito progetto con un'opzione $expand
, non è necessario fornire altri filtri.
Ad esempio, il filtro con ambito progetto seguente:
https://analytics.dev.azure.com/{OrganizationName}/{ProjectName}/_odata/v1.0/WorkItems?
$expand=Parent
viene filtrato automaticamente per applicare la sicurezza:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=ProjectName eq '{ProjectName}'
&$expand=Parent($filter=ProjectName eq '{ProjectName}')
Query con ambito organizzazione
L'URL di base per le query a livello di organizzazione è come illustrato:
https://analytics.dev.azure.com/{OrganizationName}/_odata/v1.0
Quando si usa una query con ambito organizzazione con un'opzione $expand
, è necessario fornire un altro filtro.
Ad esempio, la query con ambito organizzazione seguente, che usa un $expand
oggetto per recuperare gli elementi figlio di tutti gli elementi di lavoro.
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=Project/ProjectName eq '{ProjectName}'
&$expand=Children
Richiede un altro filtro per verificare che gli elementi figlio siano limitati al progetto specificato:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=Project/ProjectName eq '{ProjectName}'
&$expand=Children($filter=Project/ProjectName eq '{ProjectName}')
Restituisce l'elemento padre di tutti gli elementi di lavoro
La query seguente, che usa un'opzione $expand
per recuperare l'elemento padre di tutti gli elementi di lavoro.
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=Project/ProjectName eq '{ProjectName}'
&$expand=Parent
Richiede un altro filtro per verificare che l'elemento padre sia limitato al progetto specificato:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=Project/ProjectName eq '{ProjectName}'
&$expand=Parent($filter=Project/ProjectName eq '{ProjectName}')
Senza l'altro filtro, la richiesta avrà esito negativo se l'elemento padre di qualsiasi elemento di lavoro fa riferimento agli elementi di lavoro in un progetto a cui non si ha accesso in lettura.
Restrizioni di sicurezza a livello di progetto
Analisi presenta altre restrizioni sulla sintassi delle query correlate alla sicurezza a livello di progetto.
I any
filtri o all
si applicano all'entità di base in un oggetto $expand
. Per i filtri basati su un progetto, il filtro viene ignorato in modo esplicito quando si usa un oggetto $expand
:
Ad esempio, la query seguente:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=ProjectName eq '{ProjectName}'
&$expand=Children($filter=Project/ProjectName eq '{ProjectName}')
Viene interpretato come:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=ProjectName eq '{ProjectName}'
&$expand=Children
e avrà esito negativo se non si ha accesso a tutti i progetti.
Per aggirare la restrizione, è necessario aggiungere un'espressione aggiuntiva in $filter
:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$filter=ProjectName eq '{ProjectName}' and Children/any(r: r/ProjectName eq '{ProjectName}')
&$expand=Children
L'uso $level
di è supportato solo se si ha accesso a tutti i progetti nella raccolta o quando si usa una query con ambito progetto:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$expand=Children($levels=2;$filter=ProjectName eq '{ProjectName}')
Analytics non supporta riferimenti di livello incrociato per i progetti che usano la $it
clausola . Ad esempio, la query seguente fa riferimento all'alias dell'elemento di ProjectName
$it
lavoro radice, che non è supportato:
https://analytics.dev.azure.com/{OrganizationName}/_odata/{version}/WorkItems?
$expand=Links(
$expand=TargetWorkItem;
$filter=TargetWorkItem/Project/ProjectName eq $it/Project/ProjectName)