Gestire i campi dell'elemento di lavoro

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

Importante

Per il modello di processo XML locale, è possibile usare witadmin per elencare, importare, esportare e modificare un processo per un progetto. Per i modelli di processo XML ereditati e ospitati, è possibile usare witadmin solo per elencare ed esportare le informazioni sul processo. Per una panoramica dei modelli di processo e delle funzionalità supportate, vedere Personalizzare l'esperienza di rilevamento del lavoro.

È possibile gestire i campi definiti per i tipi di elementi di lavoro definiti per una raccolta di progetti (XML locale) usando i comandi witadmin seguenti. Se si desidera aggiungere un campo globale (valido per XML locale) è possibile farlo modificando il file del flusso di lavoro globale e importandolo nella raccolta.

  • changefield: modifica uno o più attributi di un campo. Quando si modifica uno degli attributi seguenti, modificarlo per tutti i tipi di elemento di lavoro e i progetti all'interno della raccolta di progetti:
    • Tipo di dati per PlainText o HTML campi.

      Importante

      Quando si esegue l'aggiornamento Team Foundation Server da una versione precedente alla versione corrente, l'assegnazione del tipo per il campo Descrizione (System.Description) viene convertita automaticamente da PlainText a HTML. Con il changefield comando è possibile ripristinare il contenuto di questo campo per visualizzare testo normale.

    • Nome descrittivo visualizzato nella query dell'elemento di lavoro. Questo nome può essere diverso da quello visualizzato nel modulo dell'elemento di lavoro.

    • Attributi di report che includono il nome del campo visualizzato in un report, il nome del report di riferimento e il tipo di report.

    • Sincronizzazione con Active Directory: è possibile abilitare o disabilitare la sincronizzazione dei campi del nome della persona.

  • deletefield: elimina il campo specificato.
  • listfields: elenca gli attributi per tutti i campi o un campo specificato.

Nota

Il witadmin indexfield comando è stato deprecato con Azure DevOps Server 2019 e versioni successive. L'indicizzazione dei campi non è più necessaria.

Eseguire lo strumento da witadmin riga di comando

Per eseguire lo strumento da witadmin riga di comando, aprire una finestra del prompt dei comandi in cui è installato Visual Studio. Lo witadmin strumento da riga di comando viene installato con qualsiasi versione di Visual Studio. È possibile accedere a questo strumento installando la versione gratuita di Visual Studio Community o Visual Studio Team Explorer.

Nota

Per connettersi ad Azure DevOps Services, è consigliabile usare la versione più recente di Visual Studio o Visual Studio Community.

Nota

Per connettersi a un server locale, è consigliabile usare la stessa versione di Visual Studio o successiva di Azure DevOps Server. Ad esempio, se ci si connette ad Azure DevOps Server 2019, connettersi al progetto da una versione di Visual Studio 2019.

Per Visual Studio 2022

%programfiles(x86)%\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

o Professional al Enterprise posto di Community, a seconda della versione installata.

Per Visual Studio 2019

%programfiles(x86)%\Microsoft Visual Studio\2019\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

o Professional al Enterprise posto di Community, a seconda della versione installata.

Per Visual Studio 2017

%programfiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

o TeamExplorer al Professional posto di Enterprise, a seconda della versione installata.

In un'edizione a 32 bit di Windows sostituire %programfiles(x86)% con %programfiles%. È possibile installare Visual Studio Community (che fornisce l'accesso a Team Explorer) o Visual Studio Team Explorer 2017 gratuitamente.

Per una panoramica dei campi definiti all'interno di un modello di processo predefinito, vedere Indice dei campi dell'elemento di lavoro.

Suggerimento

Con witadmin è possibile importare ed esportare file di definizione. Altri strumenti che è possibile usare includono l'editor di processi (richiede l'installazione di una versione di Visual Studio). Installare l'editor dei modelli di processo da Visual Studio Marketplace.

Prerequisiti

  • Per elencare i campi, è necessario disporre dell'autorizzazione Visualizza informazioni a livello di progetto per il progetto nella raccolta impostata su Consenti.
  • Per eliminare o rinominare i campi o modificare un attributo di un campo, è necessario essere membri del gruppo di sicurezza Team Foundation Amministrazione istrators o del gruppo di sicurezza Project Collection Amministrazione istrators.

Per altre informazioni, vedere Modificare le autorizzazioni a livello di raccolta del progetto.

Nota

Anche se si accede con autorizzazioni amministrative, è necessario aprire una finestra del prompt dei comandi con privilegi elevati per eseguire questa funzione in un server che esegue Windows Server 2008. Per aprire una finestra del prompt dei comandi con privilegi elevati, scegliere Start, aprire il menu di scelta rapida del prompt dei comandi e quindi scegliere Esegui come Amministrazione istrator. Per altre informazioni, vedere il sito Web Microsoft: User Controllo di accesso.

Sintassi

witadmin changefield /collection:CollectionURL /n:RefName   [/name:NewName]    [/syncnamechanges:true | false]   [/reportingname:ReportingName]    [/reportingrefname:ReportingRefName]   [/reportingtype:Type]   [/reportingformula:Formula]   [/type:PlainText | HTML]   [/noprompt]  

witadmin deletefield /collection:CollectionURL /n:RefName [/noprompt]  

witadmin listfields /collection:CollectionURL /n:RefName [/unused]  

Parametri

Parametro Descrizione
/collection:CollectionURL Specifica l'URI della raccolta di progetti. Ad esempio:

Formato locale:http://ServerName:Port/VirtualDirectoryName/CollectionName
Se non viene usata alcuna directory virtuale, usare il formato seguente: http://ServerName:Port/CollectionName.
/n:RefName
/n:Name
Nome di riferimento di un campo tipo di elemento di lavoro.
/index Specifica di abilitare o disabilitare l'indicizzazione per il campo specificato. Specificare on per abilitare l'indicizzazione e disattivare per disabilitare l'indicizzazione.
/name:NewName Specifica il nuovo nome per il campo.
/syncnamechanges Specifica di utilizzare il campo dell'elemento di lavoro per archiviare i nomi e aggiornarli man mano che vengono apportate modifiche in Active Directory o in un gruppo di lavoro. Questa opzione è valida solo quando viene specificato un campo con il tipo di dati String per .typename

Specificare true per abilitare la sincronizzazione per il campo dati, specificare false per disabilitare la sincronizzazione per il campo dati.
/reportingname:ReportingName Specifica il nome del campo nel data warehouse da utilizzare per la creazione di report.
/reportingrefname:ReportingRefName Specifica il nome di riferimento del campo nel data warehouse da utilizzare per la creazione di report.
/reportingtype:Type Specifica la modalità di utilizzo del campo nel magazzino per la creazione di report. I valori validi sono i seguenti:

- dimension: Utilizzato per i campi Integer, String o DateTime.
- detail: Utilizzato per i campi Integer, Double, String o DateTime.
- measure: Utilizzato per i campi Integer e Double. Il tipo di aggregazione predefinito è sum. È possibile specificare un altro tipo di aggregazione usando il parametro formula.
- none: Utilizzato per disabilitare la reportability nel campo.

Per altre informazioni, vedere Informazioni sui campi e gli attributi degli elementi di lavoro.
/reportingformula:Formula Specifica la formula di aggregazione da utilizzare quando il campo viene segnalato come .measure L'unica formula supportata è sum.
/type:HTML | PlainText Specifica di convertire il contenuto del campo da PlainText a HTML o da HTML a PlainText. È possibile specificare questa opzione solo per i campi la cui assegnazione di tipo è PlainText o HTML. Vedere riferimento all'elemento FIELD (Definition).
/unused Elenca tutti i campi non utilizzati da alcun progetto definito nella raccolta di progetti.
/noprompt Disabilita la richiesta di conferma.
/? oppure help Visualizza la Guida sul comando nella finestra del prompt dei comandi.

Sincronizzazione dei nomi delle persone con Active Directory

È necessario abilitare manualmente la sincronizzazione di tutti i campi dell'elemento di lavoro personalizzati usati per assegnare nomi di persona che fanno riferimento ad Active Directory. È necessario abilitare la sincronizzazione per ogni campo per ogni raccolta di progetti che contiene i campi personalizzati.

Tutti i campi di riferimento di sistema che mostrano i nomi delle persone hanno l'attributo syncnamechanges impostato su true. Tali campi includono System.AuthorizedAs, System.AssignedTo, System.ChangedBy e System.CreatedBy. Sincronizzazione abilitata per ogni campo nome persona definito in uno dei modelli di processo predefiniti. Per altre informazioni, vedere Assegnazioni e campi del flusso di lavoro.

Dopo l'abilitazione della sincronizzazione, il campo non visualizza più una stringa statica. Il campo mostra invece il nome associato a un account utente. Quando si modifica il nome utente in Active Directory o in Gruppo di lavoro, un campo con impostato su syncnamechangestrue mostra automaticamente il nuovo nome.

Quando si assegna l'attributo syncnamechanges a un campo String, il campo accetta sempre nomi utente validi. Tuttavia, il campo non consente nomi di gruppo archiviati in Team Foundation Server o in Active Directory se una delle condizioni seguenti è true:

  • La VALIDUSER regola viene specificata in tutti i tipi di elemento di lavoro

  • La VALIDUSER regola viene specificata per un tipo di elemento di lavoro

  • La ALLOWEDVALUES regola viene specificata per un tipo di elemento di lavoro e tale regola ha criteri di filtro che escludono i gruppi

    Per altre informazioni, vedere Tutti gli elementi FIELD.

Attributi che è possibile modificare per ogni tipo di elemento di lavoro

Per modificare gli attributi o i valori seguenti definiti per un campo, modificare la definizione del tipo di elemento di lavoro in cui viene visualizzato il campo:

Esempi

Se non diversamente specificato, i valori seguenti si applicano in ogni esempio:

  • URI per la raccolta di progetti: http://AdventureWorksServer:8080/tfs/DefaultCollection
  • Nome campo elemento di lavoro: AdventureWorks.Field
  • Codifica predefinita: UTF-8

Campi elenco

Usare witadmin listfields per visualizzare il set di campi in uso, per selezionare uno da aggiungere a un tipo di elemento di lavoro. È anche possibile elencare le assegnazioni di attributi definite per un campo specifico e determinare quali campi vengono usati dai progetti.

Visualizzare gli attributi di un campo dell'elemento di lavoro

  • Immettere il comando seguente per elencare gli attributi definiti per un campo specificato, ad esempio Microsoft.VSTS.Common.Issue.

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:Microsoft.VSTS.Common.Issue  
    

    Vengono visualizzate informazioni sul campo denominato e sull'attributo, come illustrato in questo esempio.

    Field: Microsoft.VSTS.Common.Issue  
    Name: Issue  
    Type: String  
    Reportable As: dimension  
    Use: Adventure Works (Shared Steps), AW Future (Shared Steps), AW Current (Shared Steps)  
    Indexed: False  
    

    Il parametro Use indica il nome di ogni progetto e il tipo di elemento di lavoro in cui viene usato il campo. Per altre informazioni sugli attributi dei campi, vedere Indice dei campi dell'elemento di lavoro.

Elencare tutti i campi in una raccolta di progetti

  • Immettere il comando seguente per elencare tutti i campi definiti per una raccolta di progetti.

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection  
    

    Vengono visualizzate le informazioni sul campo per tutti i campi per la raccolta di progetti denominata. Vedere Indice dei campi dell'elemento di lavoro.

Elencare i campi non utilizzati

  • Immettere il comando seguente per elencare i campi che non vengono più usati nella raccolta di progetti in base a qualsiasi tipo di elemento di lavoro.

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /unused  
    

    Le informazioni sui campi e sugli attributi vengono visualizzate per ogni campo che non viene usato, come illustrato in questo esempio.

    Field: Microsoft.VSTS.CMMI.TaskType  
    Name: Task Type  
    Type: String  
    Reportable As: dimension  
    Use: Not In Use  
    Indexed: False  
    
    Field: Microsoft.VSTSUE.Common.Flag  
    Name: Flag  
    Type: String  
    Reportable As: dimension  
    Use: Not In Use  
    Indexed: False  
    
    Field: Microsoft.VSTSUE.Common.Progress  
    Name: Progress  
    Type: String  
    Reportable As: dimension  
    Use: Not In Use  
    Indexed: False  
    

Rinominare un campo

È possibile modificare il nome descrittivo di un campo dell'elemento di lavoro in modo da soddisfare le convenzioni di denominazione usate dal team. Si noti che il nuovo nome viene applicato a tutti i tipi di elemento di lavoro che fanno riferimento al campo modificato in tutti i progetti nella raccolta di progetti. Il nome descrittivo viene visualizzato quando si definiscono i criteri di filtro in una query dell'elemento di lavoro. Il nome visualizzato in un modulo dell'elemento di lavoro può essere diverso dal nome descrittivo definito per il campo.

Per rinominare un campo dell'elemento di lavoro

  1. Immettere il comando seguente per rinominare il nome descrittivo assegnato a Microsoft.VSTS.Common.RankImportant Rank.

    witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:Microsoft.VSTS.Common.Rank /name:"Important Rank"  
    
  2. Al prompt di conferma digitare y e quindi premere INVIO. Attendere fino a quando non viene visualizzato il messaggio seguente:

    Campo rinominato.

Per verificare le modifiche importate in un singolo progetto

  1. In Team Explorer scegliere RefreshAggiorna.

    Gli aggiornamenti più recenti vengono scaricati dal server, che includono le modifiche appena apportate al nome del campo. Attendere alcuni secondi per il completamento dell'aggiornamento.

  2. Scegliere Nuova query per creare una query.

  3. Nella Editor di query scegliere il collegamento Fare clic qui per aggiungere una clausola per aggiungere una riga, selezionare la cella Campo vuota e nella cella digitare Rank. Messaggio seguente visualizzato sopra l'elenco dei risultati. Questo messaggio indica che non è possibile trovare la classificazione.

    Eseguire la query per visualizzare i risultati della query. TF51005: la query fa riferimento a un campo che non esiste. L'errore è causato da <<Rank>>.

  4. Eliminare il valore Rank dalla cella Field e digitare Important Rank nella cella.

  5. Selezionare <> nella cella Operator (Operatore) e digitare 1 nella cella Value (Valore).

  6. Sulla barra degli strumenti Query scegliere Esegui queryEsegui.

  7. Aprire il menu di scelta rapida per qualsiasi riga nei risultati e selezionare Opzioni colonna. Scorrere verso il basso nell'elenco Colonne disponibili . Si noti che il campo Classifica non è più presente, ma il campo Classifica importante è presente.

  8. Selezionare Classificazione importante nella casella Colonne disponibili e quindi scegliere il > pulsante (aggiungere colonne selezionate). Scegliere OK.

    Si noti che il nome descrittivo per Microsoft.VSTS.Common.Rank è stato rinominato da Rank a Important Rank in tutto il generatore di query e l'elenco dei risultati.

  9. Chiudere la query. Scegliere No quando viene richiesto di salvare la query.

  10. Creare un nuovo elemento di lavoro Attività. Scegliere il collegamento Nuovi elementi di lavoro e quindi scegliere Attività.

    Questo elemento di lavoro viene creato dal tipo di elemento di lavoro modificato e importato.

  11. Si noti che nella casella Stato l'etichetta per il campo rinominato Rank non è stata modificata. Ciò è dovuto al fatto che le etichette di campo nei moduli dell'elemento di lavoro hanno come ambito il progetto padre e sono indipendenti dal nome del campo a livello di server appena specificato.

    Nota

    Per altre informazioni su come modificare le etichette dei campi nei moduli degli elementi di lavoro, vedere Informazioni di riferimento sugli elementi XML di controllo.

  12. Chiudere la nuova attività e scegliere No quando viene richiesto di salvare l'elemento di lavoro.

Modificare il report come valore per un campo

Il comando seguente specifica la possibilità di segnalare il tipo del campo DateTime AdventureWorks.CreatedOn alla dimensione. I dati di questo campo vengono immessi nei database warehouse e Analysis Services in modo che possano essere usati per filtrare i report.

witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:AdventureWorks.CreatedOn /reportingtype:dimension  

Il comando seguente specifica la possibilità di segnalare il tipo di campo Double AdventureWorks.Field da misurare. Tutte le misure vengono aggregate per somma.

witadmin reportfield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:AdventureWorks.Field /reportingtype:measure  

Abilitare la sincronizzazione di un campo nome utente personalizzato

Il comando seguente abilita la sincronizzazione per il campo dell'elemento di lavoro AW. CustomerName definito per Collection1 in AdventureWorksServer.

Verificare il tipo di dati del campo da convertire

  1. Verificare il tipo di dati assegnato al campo, ad esempio MyCompany.CustomerName, che si vuole sincronizzare immettendo il comando seguente:

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomerName  
    

Abilitare la sincronizzazione

  1. Per abilitare la sincronizzazione per un campo denominato dall'utente, digitare il comando seguente, sostituendo i dati per gli argomenti visualizzati di seguito:

    witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomerName /syncnamechanges:true  
    
  2. Viene visualizzata la richiesta di conferma seguente:

    Verranno modificate le proprietà per il campo {0} nel Team Foundation Server . Vuoi continuare?

  3. Digitare 0 per confermare che si desidera modificare il campo oppure 1 per annullare la richiesta.

    Se la richiesta di modifica ha esito positivo, viene visualizzato il messaggio di conferma seguente:

    Il campo è stato aggiornato.

    Se la richiesta di modifica ha esito negativo, viene visualizzato un messaggio di errore. Gli errori più comuni che possono essere eseguiti stanno tentando di modificare un campo di riferimento di sistema o di tentare di modificare un campo di un tipo di dati diverso da String. Queste operazioni non sono supportate.

Eliminare un campo

Prima di eliminare un campo, verificare che il campo non sia in uso. Se il campo è in uso, è prima necessario rimuovere il campo dai tipi di elemento di lavoro che lo usano prima di eliminarlo dalla raccolta di progetti. Il comando seguente elimina il campo AdventureWorks.Field da Collection1:

witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:AdventureWorks.Field  

Verificare che un campo non sia in uso

  1. Immettere il comando seguente, specificando il nome di riferimento per il campo dell'elemento di lavoro, ad esempio MyCompany.MyProcess.MyField.

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.MyProcess.MyField  
    

    Nelle informazioni visualizzate per il campo verificare che il valore per Use sia "Not In Use" come illustrato di seguito in questo esempio.

    Field: MyCompany.MyProcess.MyField  
    Name: MyField  
    Type: String  
    Reportable As: dimension  
    Use: Not In Use  
    Indexed: False  
    
  2. Se il campo Usa indica che il campo è in uso, è necessario eliminarlo da ogni tipo di elemento di lavoro per ogni progetto elencato. Ad esempio, il Microsoft.VSTS.TCM.SystemInfo campo indica che viene usato dai tipi di elemento di lavoro Bug e Code Defect per quattro progetti: Arroyo, Desert, Palm e Springs.

    Field: Microsoft.VSTS.TCM.SystemInfo  
    Name: System Info  
    Type: Html  
    Reportable As: None  
    Use: Arroyo (Bug), Desert (Bug), Palm (Bug), Springs (Bug, Code Defect)  
    Indexed: False  
    

    Prima di poter eliminare questo campo, è necessario rimuoverlo da ogni tipo di elemento di lavoro elencato per ogni progetto per cui è definito. Per rimuovere il campo, modificare la definizione per il tipo di elemento di lavoro eliminando gli FIELD elementi e Control che contengono il nome del riferimento al campo. Vedere Importare, esportare e gestire i tipi di elementi di lavoro, il riferimento all'elemento FIELD (definizione) e Control.

Eliminare un campo da una raccolta di progetti

Immettere il comando seguente per eliminare il MyCompany.MyProcess.MyField campo e quindi scegliere Invio.

witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:RefName  

Immettere y al prompt di conferma per completare questo passaggio.