Modificare o aggiungere un campo per supportare query, report e flusso di lavoro

Il progetto team contiene 100 o più campi dati a seconda del modello di processo usato per crearlo. Ogni campo è associato a una coppia di nomi, attributi e regole. È possibile modificare un campo esistente o aggiungere un campo personalizzato per supportare la traccia dei requisiti aggiuntivi di dati. Ad esempio, è possibile personalizzare l'elenco di selezione all'interno di un menu a discesa, aggiungere una regola per specificare un valore predefinito o limitare il valore accettabile o modificare un attributo di campo.

Per aggiungere regole di campo, aggiungere un campo personalizzato o modificare l'etichetta di un campo in un form elemento di lavoro, è necessario modificare la definizione XML per il tipo di elemento di lavoro (WIT). Per modificare un attributo di campo o rinominare un campo, usare lo strumento da riga di comando witadmin.

Nomi, attributi e ruoli di definizione dei campi

Personalizzare un elenco di selezione

Gli elenchi di selezione sono i valori enumerati che vengono visualizzati in un menu a discesa di un form elemento di lavoro e nella colonna Valore dell'editor di query. Il metodo usato per personalizzare un elenco di selezione dipende dal campo.

Stringa generica o campi Integer

Per modificare l'elenco di selezione per la maggior parte delle stringhe o dei campi Integer in un form elemento di lavoro, modificare la definizione del tipo di elemento di lavoro. Ad esempio, per aggiungere un elenco di selezione e un campo per la risoluzione personalizzati, specificare il codice XML come indicato.



Campo ed elenco di selezione personalizzati

Elenco di selezione per un campo personalizzato
<FIELD name="Resolution" refname="MyCompany.Resolution" type="String">    
<ALLOWEDVALUES>
   <LISTITEM value="By Design" />
   <LISTITEM value="Duplicate" />
   <LISTITEM value="External" />
   <LISTITEM value="Fixed" />
   <LISTITEM value="Not Repro" />
   <LISTITEM value="Postponed" />
   <LISTITEM value="Won’t Fix" />
</ALLOWEDVALUES>
</FIELD>

Le regole supportano la combinazione di elenchi, limitando a ciò cui si applica l'elenco e impostando le condizioni circa quando un elenco viene visualizzato nel form elemento di lavoro. Le regole controllano se un elenco di distribuzione è espanso per mostrare i singoli membri oppure se un elenco è filtrato tramite l'utilizzo degli attributi facoltativi expanditems e filteritems. Usare gli elenchi globali per ridurre il lavoro richiesto per aggiornare un elenco condiviso tra tipi di elemento di lavoro o progetti team.

Per altre informazioni, vedere Definire elenchi di opzioni e Definire elenchi globali.

Campi specifici i cui elenchi di selezione vengono definiti in altri modi

Per modificare gli elenchi di selezione per i seguenti campi, vedere il rispettivo argomento:

Per tutti gli altri campi a cui sono associati elenchi di selezione, ad esempio Attività, Stato automazione, Disciplina, Priorità e altri, è possibile consultare le definizioni fornite nell'indice dei campi elemento di lavoro.

Aggiungere regole a un campo

Per aggiungere un campo personalizzato o regole a un campo, modificare la definizione del tipo di elemento di lavoro. È possibile limitare le regole da applicare a utenti o gruppi specifici. La maggior parte delle regole supporta gli attributi not o for per determinare gli utenti cui la regola viene applicata o meno.

Ad esempio, con il frammento di codice seguente è possibile applicare la regola in base alla quale solo i membri del team di gestione, un gruppo TFS definito dal cliente, possono modificare il campo Ordine di priorità una volta creato un elemento di lavoro.

<FIELD name="Stack Rank" refname="Microsoft.VSTS.Common.StackRank" type="Double" reportable="dimension">
   <FROZEN not="[project]\Management Team" />
   <HELPTEXT>Work first on items with lower-valued stack rank. Set in triage.</HELPTEXT>
</FIELD>

Per applicare le regole, effettuare le operazioni seguenti:

Per:

Usare questo elemento XML:

Specificare una descrizione comandi.

HELPTEXT

Assegnare il valore che può essere specificato per un campo.

CANNOTLOSEVALUE, EMPTY, FROZEN, NOTSAMEAS, READONLY e REQUIRED

Copiare un valore o specificare un valore predefinito.

COPY, DEFAULT e SERVERDEFAULT

Limitare gli utenti che possono modificare un campo.

Attributi regole di campo VALIDUSER, for e not

Applicare i criteri di ricerca in un campo stringa.

MATCH

Applicare le regole in modo condizionale in base ai valori di altri campi.

WHEN, WHENNOT, WHENCHANGED e WHENNOTCHANGED

Per altre informazioni sull'applicazione delle regole ai campi, vedere Riferimento a tutti gli elementi XML FIELD.

Modificare il file di definizione XML del tipo di elemento di lavoro per aggiungere regole o un campo personalizzato

Per aggiungere le regole o un campo personalizzato, esportare, modificare e quindi importare la definizione del tipo di elemento di lavoro.

Processo per la personalizzazione di un oggetto WIT

Con witadmin, è possibile importare ed esportare file di definizione. Altri strumenti che è possibile usare sono Editor di processo, disponibile con il download di Power Tools di TFS o Gestione progetti team di TFS, un progetto di risorse della community disponibile in CodePlex.

Qualsiasi campo da usare per tenere traccia dei dati deve essere aggiunto al file di definizione dei tipi di elemento di lavoro. Questo requisito o è valido per tutti i campi ad eccezione dei campi di sistema (campi il cui nome di riferimento inizia con System.)definiti automaticamente per ogni tipo di elemento di lavoro.

Per aggiungere un campo personalizzato, modificare la definizione di tipo di elemento di lavoro per aggiungere un elemento FIELD nella sezione FIELDS e un elemento Control nella sezione FORM.

Per aggiungere un campo personalizzato

  1. Se non si dispone delle autorizzazioni di amministrazione per il progetto team, è necessario ottenerle.

  2. Aprire una finestra del prompt dei comandi nel computer in cui è installato Visual Studio o Team Explorer e immettere:

    cd %programfiles%\Microsoft Visual Studio 12.0\Common7\IDE

    In una versione a 64 bit di Windows sostituire %programfiles% con %programfiles(x86)%. È possibile scaricare Team Explorer gratuitamente.

  3. Esportare la definizione del tipo di elemento di lavoro.

    witadmin exportwitd /collection:CollectionURL /p:ProjectName /n:TypeName /f:"DirectoryPath/FileName.xml"

    Un esempio di URLRaccolta è http://fabrikamprime:8080/tfs/DefaultCollection.

  4. Individuare la sezione del file XML che definisce i campi per il tipo e che inizia con FIELDS.

  5. Aggiungere l'elemento FIELD che specifica il nome del campo personalizzato da aggiungere. È necessario specificare i seguenti attributi obbligatori: name (nome descrittivo), refname (nome di riferimento) e type. Per altre informazioni, vedere Riferimento all'elemento FIELD (Definizione).

    Nel codice seguente viene specificato il campo personalizzato, Richiedente, con un nome di riferimento di FabrikamFiber.MyTeam.Requestor, e un elenco di selezione di valori consentiti con il valore predefinito Cliente.

    <FIELD name="Requestor" refname="FabrikamFiber.MyTeam.Requestor" type="String" reportable="Dimension">
       <ALLOWEDVALUES>
          <LISTITEM value="Customer" />
          <LISTITEM value="Executive Management" />
          <LISTITEM value="Other" />
          <LISTITEM value="Support" />
          <LISTITEM value="Team" />
          <LISTITEM value="Technicians" />
          <DEFAULTVALUE value="Customer" />
        </ALLOWEDVALUES>
    </FIELD>
    

    Suggerimento

    Gli elementi inclusi nell'elenco sono sempre visualizzati in ordine alfanumerico, indipendentemente da come si immettono nel file di definizione XML.

    Il nome di riferimento, o refname, è il nome a livello di codice del campo.Tutte le altre regole devono fare riferimento a questo refname.Per altre informazioni, vedere Convenzioni di denominazione per oggetti di rilevamento di elementi di lavoro.

  6. Aggiungere l'elemento Control nella sezione FORM in modo che il campo personalizzato venga visualizzato nel form nel gruppo di elementi in cui si desidera visualizzarlo.

    Nel frammento di codice seguente, ad esempio, viene aggiunto il campo Richiedente in modo che sia visualizzato nel campo Motivo nel form elemento di lavoro.

    <Column PercentWidth="50">
       <Group Label="Status">
          <Column PercentWidth="100">
             <Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assi&amp;gned To:" LabelPosition="Left" />
             <Control FieldName="System.State" Type="FieldControl" Label="&amp;State:" LabelPosition="Left" />
             <Control FieldName="System.Reason" Type="FieldControl" Label="Reason:" LabelPosition="Left" ReadOnly="True" />
             <Control FieldName="FabrikamFiber.MyTeam.Requestor" Type="FieldControl" Label="Requestor:" LabelPosition="Left" ReadOnly="True" />
          </Column>
       </Group>
    </Column>
    

    Suggerimento

    La definizione dello schema per la gestione degli elementi di lavoro definisce tutti gli elementi figlio dell'elemento FORM come maiuscole-minuscole camel e tutti gli altri elementi come scritti in maiuscolo.Se si rilevano errori durante la convalida dei file di definizione del tipo, controllare la struttura del caso degli elementi.Inoltre, la struttura del caso dei tag di apertura e di chiusura deve corrispondere alle regole per la sintassi XML.

    Per altre informazioni, vedere Riferimento all'elemento XML Control.

  7. Importare il file di definizione del tipo di elemento di lavoro.

    witadmin importwitd /collection:CollectionURL /p:ProjectName /f:"DirectoryPath/FileName.xml"

  8. Aprire TWA o Team Explorer per visualizzare le modifiche. Se il client è già aperto, aggiornare la pagina.

    Nella figura seguente viene illustrato il form elemento di lavoro per l'elemento del Backlog di Prodotto che adesso contiene il nuovo campo.

    Campo personalizzato aggiunto al form e alla definizione del tipo

Per altre informazioni sull'uso di witadmin, vedere Importare, esportare e gestire tipi di elemento di lavoro [witadmin].

Per modificare l'etichetta di campo in un form elemento di lavoro

  1. Esportare il file di definizione del tipo di elemento di lavoro.

    witadmin exportwitd /collection:CollectionURL /p:ProjectName /n:TypeName /f:"DirectoryPath/FileName.xml"

  2. Nelle sezioni FORM e Layout individuare la definizione del campo che si desidera modificare. In questo esempio viene modificata l'etichetta del campo Titolo:

    <Column PercentWidth="70">
      <Control Type="FieldControl" FieldName="System.Title" Label="Title" LabelPosition="Left" />
    </Column>
    
  3. Modificare l'etichetta del campo in modo che la succursale dell'ufficio portoghese che lavora su questo determinato progetto team possa leggere il nome del campo Titolo quando usa il form elemento di lavoro. Includere la parola portoghese per titolo (Titulo) nel campo del titolo.

    <Column PercentWidth="70">
      <Control Type="FieldControl" FieldName="System.Title" Label="Title (Título):" LabelPosition="Left" />
    </Column>
    
  4. Importare il file di definizione del tipo di elemento di lavoro.

    witadmin importwitd /collection:CollectionURL /p:ProjectName /f:"DirectoryPath/FileName.xml"

Modificare un attributo di un campo esistente

Usare witadmin changefield per modificare gli attributi di un campo esistente. Il comando seguente, ad esempio, modifica il nome descrittivo definito per MyCompany.Type su Metodo di valutazione.

witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.Type /name:"Evaluation Method"

Nella tabella seguente vengono riepilogati gli attributi che è possibile modificare tramite witadmin changefield.

Attributo

Descrizione

Tipo di dati

Specifica il tipo di dati accettati dal campo. In genere, non è possibile modificare il tipo di dati del campo una volta definito. È possibile cambiare il tipo di dati del campo solo per campi di tipo HTML o PlainText.

Nome descrittivo

Il nome descrittivo viene visualizzato nel menu a discesa delle query elemento di lavoro e deve essere univoco per tutti i campi definiti in un insieme di progetti team. È possibile che il nome descrittivo differisca dall'etichetta visualizzata nel form dell'elemento di lavoro.

Indicizzabile

È possibile abilitare l'indicizzazione per un campo per migliorare i tempi di risposta delle query quando si applica un filtro al campo. Per impostazione predefinita, vengono indicizzati i campi Assegnato a, Data di creazione, Modificato da, Stato, Motivo, ID area, ID iterazione e Tipo di elemento di lavoro.

Attributi di creazione report

È possibile modificare il nome del campo visualizzato in un report, il nome di riferimento del report e il tipo di creazione report. È possibile localizzare il nome descrittivo di creazione report.

Il tipo di creazione report determina se i dati di campo vengono scritti nel database warehouse relazionale, sia nel database warehouse relazionale che nel cubo OLAP o per generare una somma precalcolata dei valori durante l'elaborazione del cubo OLAP.

Per un elenco completo dei campi segnalabili predefiniti, vedere Riferimento ai campi segnalabili per Visual Studio ALM. Per altre informazioni sul cubo OLAP, vedere Prospettive e gruppi di misure forniti nel cubo di Analysis Services per Visual Studio.

Sincronizzazione

È possibile abilitare o disabilitare la sincronizzazione con Active Directory per i campi associati agli account utente.

Domande e risposte

D: Quali personalizzazioni si possono applicare se si continua a usare Configurazione guidata delle funzionalità per aggiornare il progetto team dopo un aggiornamento a TFS?

R: È possibile aggiungere campi personalizzati, personalizzare un elenco di selezione, aggiungere o modificare percorsi dell'area e dell'iterazione e aggiungere regole a un campo. Con la procedura guidata Configurazione funzionalità è possibile aggiornare i progetti team e accedere alle ultime funzionalità.

Per informazioni sulle personalizzazioni che è possibile applicare e quelle da evitare, vedere la sezione Prima di personalizzare, comprendere le implicazioni di aggiornamento e di manutenzione dell'argomento Personalizzare l'esperienza di verifica del lavoro.

D: Dove è possibile ottenere informazioni su tutti i campi e attributi di campo già definiti per un progetto team?

R: Per un elenco di campi definiti nei modelli di processo TFS predefiniti, vedere Riferimenti ai campi elemento di lavoro per Visual Studio ALM.

Oltre agli attributi modificabili, per un campo elemento di lavoro esistono numerosi attributi non modificabili e virtualmente nascosti. È possibile cercare le assegnazioni di questi campi usando lo strumento Esplorazione dei campi degli elementi di lavoro. Per accedere a questo strumento, usare Editor di processo dopo aver installato Power Tools di TFS.

Esplorazione dei campi degli elementi di lavoro

Finestra di esplorazione dei campi degli elementi di lavoro

Per una descrizione di ogni attributo, vedere questo post relativo agli modifiche consentite e non consentite agli attributi del campo degli elementi di lavoro.

D: Come si aggiunge un campo che supporta l'integrazione con il controllo di test, di compilazione e della versione?

A: Numerosi tipi di elemento di lavoro sono contenute le informazioni generate dai processi automatizzati che si integrano con il controllo della versione di Team Foundation Build, Microsoft Test Manager e Team Foundation. Per aggiungere uno di questi campi ai tipi di elemento di lavoro personalizzati, modificare la definizione di tipo di elemento di lavoro seguendo i passaggi descritti in precedenza in questo argomento.

È possibile ad esempio aggiungere i campi Rilevato in compilazione e Integrato nella compilazione visualizzati nelle definizioni dei tipi per i bug. Questi campi associano i bug alle compilazioni in cui vengono trovati o corretti. È possibile usare il frammento di codice seguente per aggiungere questi campi alla definizione di un tipo di elemento di lavoro.

<FIELD name="Found In" refname="Microsoft.VSTS.Build.FoundIn" type="String" reportable="dimension">
    <HELPTEXT>Product build number (revision) in which this item was found</HELPTEXT>
</FIELD>
<FIELD name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild" type="String" reportable="dimension">
    <HELPTEXT>Product build number this bug was fixed in</HELPTEXT>
</FIELD>

Per altre informazioni, vedere Campi che supportano l'integrazione con il test, la compilazione e il controllo della versione.

D: Quando è consigliabile usare un elenco globale anziché un elenco di selezione semplice?

R: Quando si usa un elenco in diversi tipi di elemento di lavoro o in diversi progetti team, un elenco globale consente di ridurre le attività di gestione. Inoltre, se è necessario visualizzare parti degli elenchi come parti diverse in più tipi di elemento di lavoro o progetti team, è possibile definire un elenco globale per una parte di un elenco di selezione. Vedere Definire elenchi di opzioni e Definire elenchi globali.

D: Sono presenti restrizioni sulla modifica dei campi di sistema?

R: Sì. Non è possibile rinominare i campi di sistema né è possibile applicarvi alcune regole. Non è possibile ad esempio copiare né effettuare impostazioni su campi vuoti usati per tenere traccia dell'utente che ha creato, modificato o chiuso un elemento di lavoro né su campi di data e ora usati dal sistema.

I nomi dei campi di sistema iniziano tutti con il prefisso "System" (ad esempio, System.ID). Tutti i campi di sistema sono definiti per tutti i tipi di elemento di lavoro, indipendentemente dalla presenza o meno nella definizione di tipi di elemento di lavoro. Per altre informazioni su ogni campo, vedere Riferimenti ai campi elemento di lavoro per Visual Studio ALM.

D: Esiste una sequenza in cui vengono valutate le regole?

R: Sì. Diversi fattori tuttavia influiscono sul modo in cui il sistema valuta più regole e pertanto il risultato finale non può essere sempre completamente noto fin dall'inizio. Per informazioni sul comportamento previsto e sulle interazioni, vedere Applicare una regola a un campo elemento di lavoro.

D: Come devono essere denominati i campi per supportare la creazione di report?

R: Per supportare la creazione di report, è possibile aggiungere campi o modificare gli attributi dei campi esistenti. Quando si aggiungono o si modificano campi, è necessario assegnare sistematicamente un nome ai campi in modo che sia possibile trovare il campo nel cubo di Analysis Services, perché i campi vengono raggruppati logicamente in cartelle. Per altre informazioni, vedere Aggiungere o modificare campi di elementi di lavoro per supportare la creazione di rapporti.

D: È possibile limitare il numero di nomi visualizzati nel campo Assegnato a?

R: Sì. Per impostazione predefinita, il menu a discesa relativo al campo Assegnato a visualizza tutti gli utenti a cui è stato concesso l'accesso a TFS. Questo è il gruppo di utenti validi per impostazione predefinita. L'eccezione a questa regola è quella in Team Web Access, i menu di scelta rapida che supportano l'assegnazione di elementi di lavoro sono limitati ai membri del team.

Il modo più efficace per applicare restrizioni di sicurezza consiste nel creare gruppi personalizzati da gestire in windows o in TFS.

  1. Creare il gruppo di sicurezza che si desidera usare e aggiungere gli account al gruppo. Ad esempio, creare un nuovo gruppo denominato Team Contributors. Vedere Aggiungere utenti ai progetti team.

  2. Modificare il file di definizione per ogni tipo di elemento di lavoro per cui si desidera limitare il set di utenti. Aggiungere l'elemento VALIDUSER alla definizione dell'elemento FIELD per il campo Assegnato a e specificare il gruppo TFS.

    Ad esempio, il frammento di codice seguente può essere aggiunto alla definizione di attività per limitare il set di utenti per il campo Assegnato a solo ai membri del team aggiunti al gruppo di attività del team TFS.

    <FIELD name="Assigned To" refname="System.AssignedTo" type="String" reportable="dimension" syncnamechanges="true">
       <HELPTEXT>The person currently working on this task</HELPTEXT>
       <ALLOWEXISTINGVALUE />
       <VALIDUSER group="Team Contributors" />
    </FIELD>
    

    Specificando l'elemento ALLOWEXISTINGVALUE, si evitano errori di convalida che altrimenti si verificherebbero quando i membri lasciano il team e non sono registrati più come collaboratori del progetto.

D: come si aggiungono i controlli personalizzati a un campo?

R: Il modello a oggetti per gestire gli elementi di lavoro consente di creare, modificare e individuare bug, attività e altri tipi di elemento di lavoro a livello di codice. È inoltre possibile creare controlli personalizzati che aggiungono funzionalità a un form dell'elemento di lavoro.

È possibile ad esempio aggiungere i seguenti controlli personalizzati, disponibili nella pagina relativa ai controlli personalizzati per la gestione di elementi di lavoro TFS nel progetto CodePlex:

  • Controllo schermata che consente un'operazione di taglia e incolla di immagini in un campo HTML.

  • Controllo Web browser che consente a un utente di ospitare una pagina Web e di passare i valori del campo a tale pagina.

  • Controllo multivalore che supporta l'input di più valori per un campo tramite la visualizzazione di un elenco di caselle di controllo.

D: Come si modificano i mapping dei campi che supportano l'integrazione di progetto TFS?

R: I progetti team creati da un modello di processo TFS predefinito includono un file di mapping di Microsoft Project predefinito. Se si usa Project per pianificare e tracciare gli elementi di lavoro archiviati in TFS, potrebbe essere necessario eseguire il mapping di ulteriori campi di Project o modificare la modalità di TFS per pubblicare e aggiornare un campo. È possibile eseguire questa operazione personalizzando il file di mapping di Microsoft Project.

Per informazioni sull'uso di Project con gli elementi di lavoro TFS, vedere Creare il backlog e le attività tramite Project.

D: Qual è il modo migliore per gestire un numero elevato di campi personalizzati?

R: se è necessario aggiungere un numero elevato di campi personalizzati che verranno usati in diversi tipi di elemento di lavoro o in diversi progetti team, usare il flusso di lavoro globale. È possibile semplificare le operazioni di manutenzione gestendo il set globale di campi e di elenchi di selezione tramite il flusso di lavoro globale. Vedere Riferimento agli elementi XML flusso di lavoro globale.

D: come si elimina un campo?

R: Quando un campo viene rimosso da uno specifico tipo di elemento di lavoro, questo non viene rimosso dalla raccolta o dal server database, anche se nessun tipo di elemento di lavoro vi fa più riferimento. Per rimuovere un campo, attenersi alla procedura seguente.

  1. Rimuovere la definizione di FIELD da tutte le definizioni di tipo di elemento di lavoro e da tutti i flussi di lavoro globali che vi fanno riferimento.

  2. Verificare che il campo non sia in uso. Ad esempio:

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact
    
    Field: MyCompany.CustomContact
    Name: Custom Contact
    Type: String
    Reportable As: dimension
    Use: Not In Use
    Indexed: False
    
  3. Eliminare il campo. Ad esempio:

    witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact
    
  4. Se il campo eliminato veniva usato per la creazione di report, ricompilare il data warehouse per cancellare il campo obsoleto e i relativi valori.

Per altre informazioni, vedere Gestire campi di elementi di lavoro [witadmin].

D: quali altre aree possono essere personalizzate?

R: Vedere Visualizzazione end-to-end di ciò che è possibile configurare e personalizzare in Visual Studio TFS.

D: A chi rivolgersi per eventuali domande?

R: È possibile rivolgere una domanda o cercare una risposta nel forum relativo alla gestione dei progetti e degli elementi di lavoro in Team Foundation Server forum.