Definire una query dell'elemento di lavoro
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Le query sugli elementi di lavoro in Azure Boards generano elenchi di elementi di lavoro in base ai criteri di filtro forniti dall'utente. È possibile salvare e condividere queste query gestite con altri utenti.
È possibile creare query dal portale Web o da un client supportato, ad esempio Visual Studio Team Explorer. Per supportare aggiornamenti o aggiunte in blocco, importare o esportare query usando Excel o .csv file.
Nota
Le immagini del browser usate in questo articolo provengono dalla funzionalità New Boards Hubs, che è abilitata per impostazione predefinita. Se questa funzionalità non è abilitata, è possibile usare l'esperienza delle schede precedenti. Per visualizzare le immagini per l'esperienza precedente, selezionare la versione di Azure DevOps Server 2022 di questo articolo.
Vedere le procedure consigliate più avanti in questo articolo.
Prerequisiti
- Livelli di accesso:
- Avere accesso agli stakeholder per visualizzare ed eseguire query condivise. Per impostazione predefinita, tutti i membri del progetto hanno accesso a Stakeholder. Per altre informazioni, vedere Modificare le autorizzazioni per una query o una cartella condivisa.
- Disporre dell'accesso basic o superiore per aggiungere e salvare una query condivisa.
- Autorizzazioni: impostare l'autorizzazione Di collaborazione su Consenti per la cartella a cui si vuole aggiungere una query. Per impostazione predefinita, il gruppo Collaboratori non dispone di questa autorizzazione.
Nota
Gli utenti con accesso stakeholder per un progetto pubblico hanno accesso completo alle funzionalità di query esattamente come gli utenti con accesso di base . Per altre informazioni, vedere Informazioni di riferimento rapido sull'accesso di tipo Stakeholder.
- Livelli di accesso: per impostazione predefinita, tutti i membri e gli utenti del progetto con accesso stakeholder possono visualizzare ed eseguire tutte le query condivise. È possibile modificare il set di autorizzazioni per una cartella di query condivisa o una query condivisa. Per altre informazioni, vedere Impostare le autorizzazioni di query.
- Autorizzazioni: per aggiungere e salvare una query in Query condivise, è necessario concedere l'accesso di base o superiore. Inoltre, è necessario disporre dell'autorizzazione Collaborazione impostata su Consenti per la cartella a cui si vuole aggiungere la query. Per impostazione predefinita, il gruppo Collaboratori non dispone di questa autorizzazione.
Scegliere un filtro di query
Nella Editor di query selezionare il filtro per passare a un articolo con query di esempio. Oltre ai filtri di query, è possibile applicare in modo interattivo filtri ai risultati delle query.
Nota
Le query gestite non supportano le ricerche di prossimità, ma le ricerche semantiche. Le ricerche semantiche supportano anche sia *
che ?
come caratteri jolly ed è possibile usare più di un carattere jolly per trovare la corrispondenza con più di un carattere. Per altre informazioni, vedere Ricerca di elementi di lavoro funzionali.
Funzionalità di filtro
Macro
È possibile filtrare in modo interattivo una query usando la funzione Filter.
Aprire query
Dal Web browser, (1) verificare che sia stato selezionato il progetto corretto, (2) scegliere Boards > Query e quindi (3) scegliere Tutto.
La pagina Query si apre sulla scheda Preferiti in cui sono elencate le query impostate come preferiti. È possibile scegliere la scheda Tutti per visualizzare tutte le query definite e condivise per il progetto.
Suggerimento
Le query che l'utente o il team hanno scelto come preferiti sono visualizzati nella pagina Preferiti . Anche le query preferite insieme ad altri oggetti vengono visualizzate nella pagina Progetto . Per altre informazioni, vedere Impostare i preferiti personali o dei team.
Dal progetto scegliere Boards Queries (Query boards>) e quindi scegliere Tutti.
La pagina Query si apre sulla scheda Preferiti in cui sono elencate le query impostate come preferiti. È possibile scegliere la scheda Tutti per visualizzare tutte le query definite e condivise per il progetto.
Suggerimento
Le query che l'utente o il team hanno scelto come preferiti sono visualizzati nella pagina Preferiti . Anche le query preferite insieme ad altri oggetti vengono visualizzate nella pagina Progetto . Per altre informazioni, vedere Impostare i preferiti personali o dei team.
Definire una query flat-list
Avviare una nuova query dalla scheda Query nel portale Web o nella scheda Elementi di lavoro in Team Explorer.
- Selezionare Nuova>query.
Il Editor di query viene visualizzato con le impostazioni predefinite seguenti: Elenco semplice di elementi di lavoro, Tipo elemento di lavoro=[Any]e State=[Any].
- Modificare i valori e aggiungere o rimuovere clausole oppure modificare il tipo di query in Elementi di lavoro e collegamenti diretti o in un albero di elementi di lavoro.
- Selezionare Nuova>query.
Il Editor di query viene visualizzato con le impostazioni predefinite seguenti: Elenco semplice di elementi di lavoro, Tipo elemento di lavoro=[Any]e State=[Any].
- Modificare i valori e aggiungere o rimuovere clausole oppure modificare il tipo di query in Elementi di lavoro e collegamenti diretti o in un albero di elementi di lavoro.
Eseguire query tra progetti o all'interno di
Per impostazione predefinita, l'ambito delle nuove query è il progetto attuale. È tuttavia possibile creare query per trovare gli elementi di lavoro definiti all'interno dell'organizzazione o della raccolta di progetti. Tutte le query salvate, tuttavia, vengono salvate in un progetto specifico.
Per elencare gli elementi di lavoro definiti in due o più progetti, selezionare Query tra progetti. Ad esempio, la query seguente trova tutte le funzionalità create in tutti i progetti negli ultimi 30 giorni.
Con l'opzione Query tra progetti selezionata, è possibile aggiungere il campo Team Project (Progetto team) per filtrare un numero selezionato di progetti.
Nota
- Separare più nomi di progetto con il separatore di elenco che corrisponde alle impostazioni internazionali definite per il computer client, ad esempio una virgola
,
. - Quando si usa il campo "State" in una query in più progetti, i valori visualizzati sono limitati a quelli definiti nel progetto predefinito. Ciò significa che se si esegue una query tra progetti, è possibile che non vengano visualizzati tutti i valori di stato possibili di ogni progetto, ma solo quelli del progetto impostato come predefinito. Ad esempio, se sono presenti tre progetti, ovvero Project A, Project B e Project C, e solo Project A ha uno stato denominato "In revisione", mentre i progetti B e C hanno stati diversi, l'esecuzione di query in questi progetti mostra solo gli stati definiti nel progetto A.
- Il campo Progetto team è disponibile solo dopo aver controllato Query tra progetti.
- Quando si seleziona Query tra progetti , tutti i campi di tutti i tipi di elemento di lavoro definiti in tutti i progetti della raccolta vengono visualizzati nel menu a discesa Campo .
- Quando query tra progetti è deselezionata, nel menu a discesa Campo vengono visualizzati solo i campi di tali tipi di elemento di lavoro, come definito nel progetto corrente.
Definire una clausola
Per creare una query, definire una o più clausole. Ogni clausola definisce un criterio di filtro per un singolo campo.
Clausola di query di esempio
And/Or | Campo | Operatore | Valore |
---|---|---|---|
And | Assegnato a | = | @Me |
Per un elenco degli operatori disponibili in base al tipo di dati del campo, vedere Riferimento rapido all'indice di query.
Tutte le clausole vengono aggiunte come istruzione And . Selezionare Oppure per modificare il raggruppamento. Clausole group per assicurarsi che le istruzioni della clausola vengano eseguite nella sequenza richiesta.
Selezionare Aggiungi nuova clausola per aggiungere un'altra clausola alla fine della query e quindi selezionare il campo, l'operatore e il valore per tale clausola.
Ad esempio, cercare tutti gli elementi di lavoro assegnati specificando il campo Assegnato a, l'operatore equals (=) e la macro @Me, che rappresenta l'identità dell'utente.
Suggerimento
Per visualizzare la sintassi WIQL per una query e come vengono usate le parentesi per raggruppare le clausole, installare l'editor Wiql del Marketplace. Questa estensione supporta la visualizzazione della sintassi WIQL e l'esportazione in un file WIQL da usare nelle chiamate API REST. Per altre informazioni, vedere Sintassi per il linguaggio di query dell'elemento di lavoro (WIQL).
Elenco di controllo per la definizione di una clausola di query
Nella prima riga vuota, sotto l'intestazione di colonna Campo , scegliere la freccia giù per visualizzare l'elenco dei campi disponibili e scegliere un elemento nell'elenco. Per altre informazioni, vedere Campi e valori di query.
Nella stessa riga, sotto l'intestazione di colonna Operatore , selezionare la freccia giù per visualizzare l'elenco degli operatori disponibili e quindi scegliere un elemento nell'elenco. Per altre informazioni, vedere Operatori.
Nella stessa riga, sotto l'intestazione di colonna Valore immettere un valore oppure selezionare la freccia giù e quindi scegliere un elemento nell'elenco. Per altre informazioni su come usare una macro o una variabile per specificare il progetto, l'utente, la data o un'altra selezione corrente, vedere Variabili.
Per aggiungere una clausola, scegliere Aggiungi nuova clausola.
È possibile aggiungere una clausola alla fine della query oppure eseguire le attività seguenti con le icone corrispondenti:
- Inserisci nuova riga di filtro
- Rimuovere questa riga di filtro
- Raggruppare le clausole selezionate
- Clausole ungroup
Usare un albero degli elementi di lavoro per visualizzare le gerarchie
Usare la query Albero degli elementi di lavoro per visualizzare un elenco a più livelli annidato di elementi di lavoro. Ad esempio, è possibile visualizzare tutti gli elementi del backlog e le relative attività collegate. Per concentrarsi su parti diverse dell'albero, scegliere Espandi tutto o Comprimi tutto.
Nota
Non è possibile costruire una query che mostra una visualizzazione gerarchica dei piani di test, dei gruppi di test e dei test case. Questi elementi non vengono collegati insieme usando tipi di collegamento padre-figlio. Tuttavia, è possibile creare una query di collegamenti diretti che elenca gli elementi di lavoro correlati ai test. È anche possibile visualizzare la gerarchia tramite la pagina Piani di test.
Definire i criteri di filtro per gli elementi di lavoro padre e figlio. Per trovare elementi figlio collegati, selezionare Per prima cosa trovare elementi di lavoro di primo livello. Per trovare gli elementi padre collegati, selezionare Prima trova elementi di lavoro collegati.
Usare collegamenti diretti per visualizzare le dipendenze
Usare la query Elementi di lavoro e Collegamenti diretti per tenere traccia degli elementi di lavoro che dipendono da altre attività rilevate, ad esempio attività, bug, problemi o funzionalità. Ad esempio, è possibile visualizzare gli elementi backlog che dipendono da altri elementi implementati o da un bug risolto.
Usare la query dei collegamenti diretti per tenere traccia delle dipendenze tra i team. La query consente anche di gestire gli impegni assunti dal team. Scegliere i criteri di filtro per gli elementi di lavoro principali e collegati. Selezionare i tipi di collegamenti per filtrare le dipendenze.
Filtrare l'elenco di elementi di lavoro di primo livello scegliendo una di queste opzioni:
- Restituisce solo gli elementi con collegamenti corrispondenti: gli elementi di lavoro di primo livello restituiscono, ma solo se hanno collegamenti agli elementi di lavoro specificati dai criteri di filtro degli elementi di lavoro collegati.
- Restituisce tutti gli elementi di primo livello: tutti gli elementi di lavoro di primo livello restituiscono nonostante i criteri di filtro degli elementi di lavoro collegati. Gli elementi di lavoro di secondo livello collegati al primo livello restituiscono se corrispondono ai criteri di filtro degli elementi di lavoro collegati.
- Vengono restituiti solo gli elementi restituiti che non dispongono di collegamenti corrispondenti: gli elementi di lavoro di primo livello vengono restituiti, ma solo se non dispongono di collegamenti agli elementi di lavoro specificati dai criteri di filtro degli elementi di lavoro collegati.
Per altre informazioni su ogni tipo di collegamento, vedere Informazioni di riferimento sul tipo di collegamento.
Usare e/o un'espressione logica
Specificare And
o Or
per creare espressioni logiche delle clausole di query. Utilizzare And
per trovare elementi di lavoro che soddisfano i criteri nella clausola corrente e nella clausola precedente. Utilizzare Or
per trovare elementi di lavoro che soddisfano il criterio nella clausola corrente o nella clausola precedente.
Aggiungere una nuova clausola per ogni campo dell'elemento di lavoro per perfezionare i criteri di ricerca. Aggiungere clausole per restituire solo il set di elementi di lavoro desiderati. Se non si ricevono i risultati previsti dalla query, perfezionarlo. È possibile aggiungere, rimuovere, raggruppare o separare le clausole di query per migliorare i risultati della query.
Raggruppare le clausole di query da utilizzare come singola unità separata dal resto della query. Le clausole di raggruppamento sono simili all'inserimento di parentesi intorno a un'espressione in un'equazione matematica o in un'istruzione logica. Quando si raggruppano le clausole, l'oggetto And
o Or
per la prima clausola del gruppo si applica all'intero gruppo.
Clausole group
Le clausole raggruppate funzionano come una singola unità separata dal resto della query. Le clausole di raggruppamento sono simili all'inserimento di parentesi intorno a un'equazione matematica o a un'espressione logica. L'operatore And
o Or
per la prima clausola nel gruppo si applica all'intero gruppo.
Come illustrato negli esempi seguenti, le clausole raggruppate vengono convertite nell'espressione logica corrispondente.
Query | Clausole raggruppate | Espressione logica |
---|---|---|
1 | ||
2 | ||
3 |
Queste query restituiscono elementi di lavoro di tipo Bug e soddisfano le espressioni logiche seguenti:
- Query 1:
AND State=Active OR Assigned to @Me
- Query 2:
AND (State=Active OR Assigned to @Me)
- Query 3:
OR (State=Active AND Assigned to @Me)
Per raggruppare una o più clausole, selezionarle e quindi selezionare l'icona delle clausole di gruppo.
È anche possibile raggruppare diverse clausole raggruppate. Selezionare le caselle di ogni clausola. Scegliere quindi l'icona delle clausole di gruppo.
Se i risultati della query non restituiscono i risultati previsti, seguire questa procedura:
- Assicurarsi che ogni clausola sia definita come previsto.
- Verificare
And
/Or
le assegnazioni a ogni clausola. Se i risultati contengono più elementi di lavoro del previsto, spesso è presente unaOr
clausola anziché unaAnd
clausola . - Determinare se è necessario raggruppare o modificare il raggruppamento delle clausole di query e le
And
/Or
assegnazioni di ogni clausola raggruppata. - Aggiungere altre clausole di query per perfezionare i criteri di filtro delle query.
- Esaminare le opzioni disponibili per specificare campi, operatori e valori.
- Vedere le procedure consigliate più avanti in questo articolo.
Separare una clausola
Per separare una clausola, selezionare l'icona delle clausole ungroup per la clausola raggruppata.
Impostare la larghezza della colonna predefinita nei risultati della query
Per impostare la larghezza predefinita delle colonne nei risultati della query, seguire questa procedura:
- Aprire la query da modificare.
- Regolare manualmente le larghezze delle colonne in base alle dimensioni desiderate trascinando i bordi delle intestazioni di colonna.
- Selezionare Salva o Salva con nome se si desidera salvarlo come nuova query.
- Chiudere e riaprire la query per assicurarsi che le larghezze delle colonne vengano mantenute.
Azure DevOps attualmente non supporta l'impostazione di una larghezza di colonna predefinita che persiste in tutte le sessioni. Le larghezze delle colonne vengono salvate per ogni query, quindi è necessario modificarle e salvarle singolarmente per ogni query.
Visualizzare i risultati della query in un dashboard
I due widget seguenti visualizzano i risultati della query. È possibile aprire gli elementi di lavoro direttamente da questi widget.
- Lavoro assegnato a me: elenca tutti gli elementi di lavoro proposti o attivi assegnati all'utente connesso. Elenca i campi ID, State e Title.
- Widget Risultati query: visualizza i risultati di una query flat, albero o direct-links. È possibile configurare i campi visualizzati tramite il widget, ridimensionare i campi della colonna ed espandere e comprimere la query albero e collegamenti diretti.
Per altre informazioni, vedere Aggiungere widget a un dashboard.
Visualizzare il widget dei risultati della query con i titoli padre
È possibile visualizzare i risultati di una query con il titolo Padre visualizzato. A tale scopo, seguire questa procedura:
- Creare la query che filtra gli elementi di lavoro di interesse. La query può essere una query flat-list, tree o direct-links.
- Aggiungere il campo Padre come colonna.
- Salvare la query come query condivisa o Gruppo preferito.
- Aggiungere il widget Risultati query al dashboard e configurare la query. Assicurarsi che il campo Padre sia impostato per la visualizzazione.
L'immagine seguente illustra un widget dei risultati della query che visualizza il campo Padre .
Definire una query come collegamento ipertestuale
Un collegamento ipertestuale di query usa il linguaggio di query dell'elemento di lavoro (WIQL), simile a Transact-SQL. Per altre informazioni, vedere Sintassi per il linguaggio di query dell'elemento di lavoro (WIQL).
Nota
La maggior parte dei browser applica un limite compreso tra 2000 e 2083 caratteri per una stringa URL.
Sintassi dei collegamenti ipertestuali di query
Codificare la parte WIQL della sintassi dell'URL. È possibile usare qualsiasi strumento di codificatore URL per codificare l'URL.
https://dev.azure.com/OrganizationName/ProjectName/_workitems?_a=query&wiql={Encoded WorkItemQueryLanguage}
Ad esempio, il collegamento ipertestuale seguente elenca l'ID e il titolo di tutti i bug attivi definiti nel percorso dell'area FabrikamFiber/Web per l'organizzazione Fabrikam.
https://dev.azure.com/fabrikam/FabrikamFiber/_workitems?_a=query&wiql=SELECT%20%5BSystem.ID%5D%2C%20%5BSystem.Title%5D%20FROM%20WorkItems%20WHERE%20%5BSystem.TeamProject%5D%3D'FabrikamFiber'%20AND%20%5BSystem.WorkItemType%5D%3D'Bug'%20AND%20%5BSystem.State%5D%3D'Active'%20AND%20%5BSystem.AreaPath%5D%3D'FabrikamFiber%5CWeb'
WiQL decodificato è conforme a:
SELECT [System.ID], [System.Title]
FROM WorkItems
WHERE [System.TeamProject]='FabrikamFiber'
AND [System.WorkItemType]='Bug'
AND [System.State]='Active'
AND [System.AreaPath]='FabrikamFiber\Web'
Nota
La lunghezza di WIQL non deve superare i 32.000 caratteri per le query di Azure Boards.
Sintassi dei collegamenti ipertestuali di query
https://{ServerName}/{CollectionName}/{ProjectName}/_workitems?_a=query&wiql={Encoded WorkItemQueryLanguage}
Ad esempio, il collegamento ipertestuale seguente elenca l'ID, il titolo e lo stato di tutti i bug nel percorso dell'area FabrikamFiber/Web.
http://fabrikam:8080/tfs/DefaultCollection/FabrikamFiber/_workitems?_a=query&wiql=SELECT%20%5BSystem.ID%5D%2C%20%5BSystem.Title%5D%2C%20%5BSystem.State%5D%20FROM%20WorkItems%20WHERE%20%5BSystem.TeamProject%5D%3D'FabrikamFiber'%20AND%20%5BSystem.WorkItemType%5D%3D'Bug'%20AND%20%5BSystem.AreaPath%5D%3D'FabrikamFiber%5CWeb'%20%20
Ad esempio, vedere la voce non codificata seguente.
http://fabrikam:8080/tfs/DefaultCollection/FabrikamFiber/_workitems?_a=query&wiql=
SELECT [System.ID], [System.Title], [System.State]
FROM WorkItems
WHERE [System.TeamProject]='FabrikamFiber'
AND [System.WorkItemType]='Bug'
AND [System.AreaPath]='FabrikamFiber\Web'
Procedure consigliate
Le procedure consigliate seguenti si applicano alle query seguenti che è possibile creare:
Creare query mirate e selettive
Definire una query altamente selettiva applicando tutti i filtri necessari per la query. Più selettiva è la query, più piccolo è il set di risultati. Più piccolo è il set di risultati, più mirato e selettivo è la query.
Usare i tag per classificare gli elementi di lavoro
Usare i tag degli elementi di lavoro per classificare gli elementi di lavoro anziché un campo personalizzato. Le query che filtrano i tag in genere eseguono più velocemente rispetto a quelle query che filtrano le corrispondenze di stringa.
Diversamente dalle corrispondenze di campi personalizzati o parziali, una query con un'operazione Tags Contains
non richiede un'analisi completa di tutte le tabelle degli elementi di lavoro.
Usare Contains words
per le corrispondenze di stringa
Per filtrare in base a una corrispondenza di stringa, usare invece Contains Words
dell'operatore Contains
. L'operatore Contains Words
esegue una ricerca full-text sul campo specificato, che tende a completare più rapidamente.
L'operatore Contains
esegue un'analisi di tabella, che è un'operazione più lenta rispetto all'operatore Contains Words
. Usa anche più cicli di CPU. Questi cicli di CPU possono causare limitazioni della frequenza. Per altre informazioni, vedere Limiti di frequenza e utilizzo.
Specificare gruppi di piccole dimensioni con l'operatore In Group
L'operatore In Group
filtra gli elementi di lavoro in base alle corrispondenze all'interno di un gruppo di valori. Il gruppo di valori corrisponde ai valori contenuti all'interno di un team, di un gruppo di sicurezza o di una categoria di rilevamento del lavoro. Ad esempio, è possibile creare una query per trovare tutti gli elementi di lavoro assegnati a qualsiasi membro di un team. In alternativa, trovare tutti gli elementi di lavoro che appartengono alla categoria dei requisiti (Microsoft.RequirementCategory
).
Quando si filtra un gruppo che contiene un numero elevato di membri, il set di risultati tende a essere più grande e non selettivo. Inoltre, se un gruppo corrisponde a un gruppo Microsoft Entra di grandi dimensioni, la query genera un costo piuttosto elevato per risolvere tale gruppo dall'ID Microsoft Entra.
Evitare l'uso di operatori negati
Gli operatori negati, ad esempio <>, Not In, Not Under, Not In Group
, tendono a generare query non selettive e set di risultati di grandi dimensioni.
Usare solo operatori negati quando necessario. Cercare sempre di trovare le alternative per prime. Ad esempio, se Field1 ha valori A, B, C, D; specificare la Field1 In A, B, C
clausola anziché la clausola negata Field1 <> D
.
Evitare confronti tra stringhe
Le query che contengono confronti tra stringhe generano analisi di tabella intrinsecamente inefficienti. È invece consigliabile usare tag o un campo personalizzato specifico come alternative, in particolare quando una query ha prestazioni scarse.
Operatori di limite Or
Limitare il numero di Or
operatori definiti nella query. Le query vengono eseguite meglio quando vengono usati meno Or
operatori. Troppi Or
operatori possono rendere la query non selettiva. Se la query viene eseguita lentamente, riordinare la Or
clausola operator all'inizio delle clausole di query.
Salvare la query
A causa delle ottimizzazioni interne, le query salvate tendono a ottenere prestazioni migliori rispetto alle query non salvate. Salvare sempre la query quando si prevede di riutilizzarla. Anche per le query WIQL eseguite tramite un'API REST, salvare WIQL tramite il portale Web per effettuare chiamate API REST, quindi sono meno soggette a regressioni future delle prestazioni.
Eseguire la query
A volte è necessario eseguire la query alcune volte per raggiungere il piano di ottimizzazione corretto. Assicurarsi di salvare la query ed eseguirla fino a 10 volte in un periodo di 30 minuti. In questo modo, il sistema può esaminare e cercare il piano di ottimizzazione più appropriato per la query.