Definire una query dell'elemento di lavoro in Azure Boards

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

Visual Studio 2019 | Visual Studio 2022

Le query sugli elementi di lavoro 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.

Vedere le procedure consigliate più avanti in questo articolo.

Prerequisiti

  • È necessario 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.
  • Per aggiungere e salvare una query condivisa, è necessario disporre dell'accesso Basic o superiore.
  • È necessario disporre dell'autorizzazione Collaborazione impostata 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.

  • 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.
  • Per aggiungere e salvare una query in Query condivise, è necessario concedere l'accesso basic 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

Dalla Editor di query è possibile 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. Inoltre, le ricerche semantiche supportano 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



È anche possibile filtrare in modo interattivo una query usando la funzione Filter.

Aprire query

Dal Web browser, (1) verificare di aver selezionato il progetto corretto, (2) scegliere Query boards> e quindi (3) scegliere Tutto.

Aprire le query boards>, spostamento verticale

Se è la prima volta che si apre Query, la pagina viene aperta su Preferiti. Questa pagina elenca le query indicate come preferite. In caso contrario, è possibile scegliere Tutto per visualizzare tutte le query definite e condivise definite 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.

Screenshot per Aggiungere una nuova query, nuova esperienza.

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].

Screenshot di Editor di query con l'elenco semplice degli elementi di lavoro selezionati.

Modificare i valori e aggiungere o rimuovere clausole oppure modificare il tipo di queryin 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.

Screenshot di Editor di query con Query tra progetti controllati.

Con l'opzione Query tra progetti selezionata, è possibile aggiungere il campo Team Project (Progetto team) per filtrare un numero selezionato di progetti.

Screenshot di Editor di query con Team Project e altri campi aggiunti per filtrare.

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 ,.

  • 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.

Screenshot di Editor di query che mostra come aggiungere una 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

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Screenshot dell'elenco risultati query che mostra una query albero.

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.

Screenshot di Editor di query visualizzazione dell'albero degli elementi di lavoro.

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.

Screenshot dei risultati della query Direct Links.

Screenshot di Editor di query query Direct Links.

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 Screenshot che mostra una query di clausola group. I filtri vengono configurati per il campo Tipo di elemento di lavoro e il campo Stato o Assegnato a. Screenshot di un'espressione logica. Un operatore AND raggruppa i campi Tipo di elemento di lavoro, Stato e Assegnato ai campi. Un operatore OR raggruppa i campi State e Assigned to.
2 Screenshot che mostra una query di clausola di gruppo, con filtri per il campo Tipo di elemento di lavoro e uno del campo Stato o Assegnato a. Screenshot di un'espressione logica. Un operatore AND raggruppa il tipo di elemento Work con i campi State o Assigned to, raggruppati in base a un operatore OR.
3 Screenshot che mostra una query di clausola group. I filtri vengono impostati per il campo Tipo di elemento di lavoro o sia il campo Stato che il campo Assegnato a. Screenshot di un'espressione logica. Un operatore OR collega il tipo di elemento di lavoro ai campi State e Assigned to, collegati da un operatore AND.

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.

Screenshot delle clausole di query selezionate Editor di query del portale Web.

È anche possibile raggruppare diverse clausole raggruppate. Selezionare le caselle di ogni clausola. Scegliere quindi l'icona delle clausole di gruppo.

Screenshot del portale Web, Editor di query, raggruppare più clausole di query.

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 una Or clausola anziché una And 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.


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:

  1. Creare la query che filtra gli elementi di lavoro di interesse. La query può essere una query flat-list, tree o direct-links.
  2. Aggiungere il campo Padre come colonna.
  3. Salvare la query come query condivisa o Gruppo preferito.
  4. 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 .

Screenshot del widget dei risultati della query che mostra un campo Colonna padre.

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.

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.

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.