Partager via


Modifier ou ajouter un champ pour prendre en charge les requêtes, les rapports et le flux de travail

Votre projet d'équipe contient plus de 100 champs de données, selon le modèle de processus utilisé pour créer le projet d'équipe. Chaque champ est associé à une paire de noms, d'attributs et de règles. Vous pouvez modifier un champ existant ou ajouter un champ personnalisé pour prendre en charge le suivi des exigences de données supplémentaires. Par exemple, vous pouvez personnaliser la liste de choix d'un menu déroulant, ajouter une règle pour spécifier une valeur par défaut ou restreindre la valeur acceptée, ou encore modifier un attribut de champ.

Pour ajouter des règles de champ, ajouter un champ personnalisé ou modifier l'étiquette d'un champ dans un formulaire d'élément de travail, modifiez la définition XML du type d'élément de travail (WIT). Pour modifier un attribut de champ ou renommer un champ, utilisez l'outil en ligne de commande witadmin.

Noms, attributs et règles de définition de champ

Personnaliser une liste de choix

Les listes de choix sont les valeurs énumérées qui apparaissent dans un menu déroulant au sein d'un formulaire d'élément de travail, ainsi que dans la colonne Valeur de l'Éditeur de requêtes. La méthode utilisée pour personnaliser une liste de choix varie en fonction du champ.

Champs génériques de type string (chaîne) ou integer (entier)

Pour modifier la liste de choix de la plupart des champs de type string (chaîne) ou integer (entier) dans un formulaire d'élément de travail, modifiez la définition du type d'élément de travail (WIT). Par exemple, pour ajouter un champ personnalisé Résolution et une liste de choix, indiquez le code XML ci-dessous.



Champ personnalisé et liste de choix

Liste de sélection pour un champ personnalisé
<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>

Les règles prennent en charge la combinaison de listes, la restriction de la liste à une ou plusieurs personnes, ainsi que la définition de conditions liées à l'affichage de la liste dans le formulaire d'élément de travail. Les règles permettent de contrôler si une liste de distribution est développée pour afficher ses membres individuels ou si une liste est filtrée à l'aide des attributs facultatifs expanditems et filteritems. Utilisez des listes globales pour réduire le travail nécessaire à la mise à jour d'une liste partagée par des objets WIT ou des projets d'équipe.

Pour en savoir plus, consultez Définir les listes de choix et Définir les listes globales.

Champs spécifiques dont les listes de choix sont définis par d'autres moyens

Pour modifier les listes de choix des champs suivants, consultez la rubrique correspondante :

Pour tous les autres champs associés à des listes de choix (Activité, Statut Automation, Discipline, Priorité, etc.), vous pouvez rechercher les définitions de ces champs dans l'index des champs d'élément de travail.

Ajouter des règles à un champ

Pour ajouter un champ personnalisé ou ajouter des règles à un champ, modifiez la définition WIT. Vous pouvez limiter les règles pour qu'elles s'appliquent à des groupes ou à des utilisateurs spécifiques. La plupart des règles prennent en charge les attributs for ou not pour mettre l'accent sur les personnes auxquelles la règle s'applique et sur celles auxquelles elle ne s'applique pas.

Par exemple, avec l'extrait de code suivant, vous pouvez appliquer la règle pour que seuls les membres de l'équipe d'administration (un groupe TFS défini par le client) puissent modifier le champ Rang dans la pile une fois qu'un élément de travail a été créé.

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

Vous appliquez des règles pour accomplir les actions suivantes :

Pour accomplir cette action :

Utilisez cet élément XML :

Spécifier une info-bulle.

HELPTEXT

Qualifier la valeur possible d'un champ.

CANNOTLOSEVALUE, EMPTY, FROZEN, NOTSAMEAS, READONLY et REQUIRED

Copier une valeur ou spécifier une valeur par défaut.

COPY, DEFAULT et SERVERDEFAULT

Limiter les personnes autorisées à modifier un champ.

VALIDUSER, attributs de règle de champ for et not

Appliquer les critères spéciaux sur un champ de type string (chaîne).

MATCH

Appliquer de façon conditionnelle les règles basées sur les valeurs d'autres champs.

WHEN, WHENNOT, WHENCHANGED et WHENNOTCHANGED

Pour plus d'informations sur l'application des règles de champs, consultez Référence de tous les éléments XML FIELD.

Modifier le fichier de définition XML WIT pour ajouter des règles ou un champ personnalisé

Pour ajouter des règles ou un champ personnalisé, exportez, modifiez, puis importez le fichier de définition WIT.

Traiter un objet WIT à des fins de personnalisation

Avec witadmin, vous pouvez importer et exporter des fichiers de définition. Vous pouvez utiliser d'autres outils, parmi lesquels Process Editor, fourni avec le téléchargement de TFS Power Tools, ou TFS Team Project Manager, un projet de ressource communautaire disponible sur CodePlex.

Tout champ que vous voulez utiliser pour suivre les données doit être ajouté au fichier de définition des types d'éléments de travail. Il en est ainsi pour tous les champs à l'exception des champs système (champs dont le nom de référence commence par System.) qui sont automatiquement définis pour chaque type d'élément de travail.

Pour ajouter un champ personnalisé, modifiez la définition du type d'élément de travail (WIT) afin d'ajouter un élément FIELD dans la section FIELDS et un élément Control dans la section FORM.

Pour ajouter un champ personnalisé

  1. Si vous ne disposez pas des autorisations d'administrateur de projet pour votre projet d'équipe, demandez-les.

  2. Ouvrez une fenêtre d'invite de commandes à l'emplacement où Visual Studio ou Team Explorer est installé, puis entrez :

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

    Sur une édition 64 bits de Windows, remplacez %programfiles% par %programfiles(x86)%. Le téléchargement de Team Explorer est gratuit.

  3. Exportez la définition WIT.

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

    http://fabrikamprime:8080/tfs/DefaultCollection est un exemple de CollectionURL.

  4. Recherchez la section du fichier XML qui définit les champs du type et qui commence par FIELDS.

  5. Ajoutez l'élément FIELD qui spécifie le nom du champ personnalisé à ajouter. Vous devez spécifier les attributs obligatoires suivants : name convivial, refname (nom de référence) et type. Pour plus d'informations, consultez Référence des éléments FIELD (Définition).

    Le code suivant spécifie le champ personnalisé Requestor, avec FabrikamFiber.MyTeam.Requestor comme nom de référence, et une liste de choix de valeurs autorisées, avec Customer comme valeur par défaut.

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

    Conseil

    Les éléments de la liste apparaissent toujours dans l'ordre alphanumérique, indépendamment de la façon dont vous les entrez dans le fichier de définition XML.

    Le nom de la référence, ou refname, est le nom de programmation du champ.Toutes les autres règles doivent faire référence à ce refname.Pour plus d'informations, consultez Conventions d'affectation de noms pour les objets de suivi des éléments de travail.

  6. Ajoutez l'élément Control au sein de la section FORM de telle sorte que le champ personnalisé apparaisse sur le formulaire du groupe d'éléments où vous voulez qu'il apparaisse.

    Par exemple, l'extrait de code suivant ajoute le champ Requestor de façon à ce qu'il apparaisse sous le champ Reason du formulaire de l'élément de travail.

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

    Conseil

    La définition de schéma pour le suivi des éléments de travail définit tous les éléments enfants de l'élément FORM en casse mixte et tous les autres éléments en majuscules.Si vous rencontrez des erreurs lors de la validation de vos fichiers de définition de type, vérifiez la structure de casse de vos éléments.En outre, la structure de casse des balises d'ouverture et de fermeture doit respecter les règles pour la syntaxe XML.

    Pour plus d'informations, consultez Référence des éléments XML Control.

  7. Importez le fichier de définition du WIT.

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

  8. Ouvrez TWA ou Team Explorer pour afficher les modifications. Si le client est déjà ouvert, actualisez la page.

    L'illustration suivante montre que le formulaire d'élément de travail de l'élément du backlog de produit contient désormais le nouveau champ.

    Champ personnalisé ajouté à la définition de type et au formulaire

Pour plus d'informations sur l'utilisation de witadmin, consultez Importer, exporter et gérer des types d'éléments de travail [witadmin].

Pour modifier l'étiquette d'un champ dans un formulaire d'élément de travail

  1. Exportez le fichier de définition du WIT.

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

  2. Dans les sections FORM et Layout, recherchez la définition du champ que vous souhaitez modifier. Cet exemple modifie l'étiquette du champ Title :

    <Column PercentWidth="70">
      <Control Type="FieldControl" FieldName="System.Title" Label="Title" LabelPosition="Left" />
    </Column>
    
  3. Modifiez l'étiquette du champ de façon à ce que la filiale portugaise qui travaille sur ce projet d'équipe particulier puisse lire le nom du champ Title lorsqu'elle utilise le formulaire d'élément de travail. Incluez le mot portugais qui correspond au titre (Titulo) dans le champ Title.

    <Column PercentWidth="70">
      <Control Type="FieldControl" FieldName="System.Title" Label="Title (Título):" LabelPosition="Left" />
    </Column>
    
  4. Importez le fichier de définition du WIT.

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

Modifier un attribut d'un champ existant

Utilisez witadmin changefield pour modifier les attributs d'un champ existant. Par exemple, la commande suivante change le nom convivial défini pour MyCompany.Type en Evaluation Method (Méthode d'évaluation).

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

Le tableau suivant récapitule les attributs que vous pouvez modifier à l'aide de witadmin changefield.

Attribut

Description

Type de données

Spécifie le type de données que le champ accepte. En général, vous ne pouvez pas modifier le type de données de champ une fois qu'il est défini. Vous pouvez permuter le type de données de champ uniquement pour les champs de type HTML ou PlainText.

Nom convivial

Le nom convivial apparaît dans les menus déroulants des requêtes d'élément de travail et il doit être unique pour tous les champs définis dans une collection de projets d'équipe. Le nom convivial peut différer de l'étiquette de formulaire qui apparaît sur le formulaire de l'élément de travail.

Indexable

Vous pouvez activer l'indexation d'un champ pour améliorer les temps de réponse aux requêtes lors du filtrage du champ. Par défaut, les champs suivants sont indexés : Assigné à, Date de création, Modifié par, État, Raison, ID de zone, ID d'itération et Type d'élément de travail.

Enregistrement des attributs

Vous pouvez modifier le nom du champ tel qu'il apparaît dans un rapport, le nom de référence du rapport et le type de rapports. Vous pouvez localiser le nom convivial de création de rapports.

Le type de rapport détermine si les données du champ sont écrites dans la base de données relationnelle de l'entrepôt, dans la base de données relationnelle de l'entrepôt et le cube OLAP, ou pour générer une somme précalculée de valeurs lors du traitement du cube OLAP.

Pour une liste complète des champs signalables par défaut, consultez Référence des champs signalables pour Visual Studio ALM. Pour plus d'informations sur le cube OLAP, consultez Perspectives et groupes de mesures fournis dans le cube Analysis Services pour Visual Studio.

Synchronisation

Vous pouvez activer ou désactiver la synchronisation avec Active Directory pour les champs associés aux comptes d'utilisateurs.

Q et R

Q : Quelles personnalisations puis-je effectuer tout en continuant à utiliser l'Assistant Configurer les fonctionnalités pour mettre à jour mon projet d'équipe après une mise à niveau TFS ?

R : vous pouvez ajouter des champs personnalisés, personnaliser une liste de choix, ajouter ou modifier des chemins d'accès d'itération et de zone et ajouter des règles à un champ. L'Assistant Configurer les fonctionnalités mettra à jour vos projets d'équipe et vous aurez accès aux fonctionnalités les plus récentes.

Pour en savoir plus sur d'autres personnalisations que vous pouvez effectuer et celles à éviter, consultez Personnaliser l'expérience de suivi du travail : avant d'effectuer la personnalisation, comprendre les implications en matière de maintenance et de mise à jour.

Q : Où puis-je en savoir plus sur les champs et les attributs de champs déjà définis pour mon projet d'équipe ?

R : Pour obtenir l'index des champs définis avec les modèles de processus TFS par défaut, consultez Référence des champs d'éléments de travail pour Visual Studio ALM.

Outre les attributs que vous pouvez modifier pour un champ d'élément de travail, il existe plusieurs attributs non modifiables et pratiquement masqués pour chaque champ. Vous pouvez rechercher les assignations de ces champs à l'aide de l'outil Explorateur de champ d'élément de travail. Vous pouvez accéder à cet outil à partir de Processus Editor après avoir installé TFS Power Tools.

Explorateur de champ d'élément de travail

Explorateur de champ d'élément de travail

Pour obtenir une description de chaque attribut, consultez le billet suivant : Work Item Field Attributes - What You Can and Can't Change.

Q : comment ajouter un champ qui prend en charge l'intégration avec le test, la build et le contrôle de version ?

R : plusieurs types d'éléments de travail contiennent les champs fournissant les informations générées par les processus automatisés intégrés à Team Foundation Build, à Microsoft Test Manager et au contrôle de version Team Foundation. Pour ajouter l'un de ces champs à vos types personnalisés d'éléments de travail, modifiez la définition du type d'élément de travail en respectant les étapes définies précédemment dans cette rubrique.

Par exemple, vous pouvez ajouter les champs Found In (Trouvé dans) et Integrated in Build (Intégré dans la build), qui apparaissent dans les définitions de type des bogues. Ces champs associent les bogues aux builds dans lesquelles ils ont été trouvés ou résolus. Vous pouvez utiliser l'extrait de code suivant pour ajouter ces champs à une définition de type d'élément de travail.

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

Pour plus d'informations, consultez Champs prenant en charge l'intégration avec un test, une build et un contrôle de version.

Q : Quand dois-je utiliser une liste globale au lieu d'une simple liste de choix ?

R : Lorsque vous utilisez une liste dans plusieurs types d'éléments de travail ou plusieurs projets d'équipe, sa gestion comme liste globale réduit vos besoins en maintenance. De même, si vous devez avoir des parties de listes qui s'affichent différemment sur les types d'éléments de travail ou les projets d'équipe, vous pouvez définir une liste globale comme partie d'une liste de choix. Consultez Définir les listes de choix et Définir les listes globales.

Q : Existe-t-il des restrictions sur la modification des champs système ?

R : oui. Vous ne pouvez pas renommer les champs système et vous ne pouvez pas leur appliquer certaines règles. Par exemple, vous ne pouvez pas copier ou définir comme vides les champs utilisés pour suivre les personnes qui ont créé, modifié ou fermé un élément de travail, ou les champs date-heure utilisés par le système.

Les noms des champs système commencent tous par le préfixe « System » (par exemple, System.ID). Tous les champs système sont définis pour tous les types d'éléments de travail (WIT), que vous les ajoutiez ou non à la définition WIT. Pour en savoir plus sur chaque champ, consultez Référence des champs d'éléments de travail pour Visual Studio ALM.

Q : Existe-t-il une séquence selon laquelle les règles sont évaluées ?

R : Oui, cependant, plusieurs critères influent sur la façon dont le système évalue différentes règles, si bien que le résultat final ne peut pas toujours être intégralement connu au démarrage. Pour obtenir une idée du comportement et des interactions prévus, consultez Appliquer une règle à un champ d'élément de travail.

Q : Comment doit-on nommer les champs pour prendre en charge la création de rapports ?

R : Vous pouvez ajouter des champs ou modifier les attributs de champs existants pour prendre en charge la création de rapports. Lorsque vous ajoutez ou modifiez des champs, vous devez systématiquement les nommer afin de pouvoir les rechercher dans le cube Analysis Services, car les champs sont regroupés de façon logique dans des dossiers. Pour en savoir plus, consultez Ajouter et modifier des champs d'éléments de travail pour prendre en charge la création de rapports.

Q : existe-t-il une façon de limiter le nombre de noms affichés dans le champ Assigné à ?

R : oui. Par défaut, le menu déroulant du champ Assigné à affiche tous les utilisateurs qui ont reçu l'accès à TFS. Il s'agit du groupe d'utilisateurs valides par défaut. L'exception à cette règle est que dans Team Web Access, les menus contextuels qui prennent en charge l'assignation d'éléments de travail sont limités aux membres de l'équipe.

Le moyen le plus efficace d'appliquer des restrictions de sécurité consiste à créer des groupes personnalisés que vous gérez dans Windows ou TFS.

  1. Créez le groupe de sécurité que vous souhaitez utiliser et ajoutez les comptes au groupe. Par exemple, créez un groupe appelé Collaborateurs d'équipe. Consultez Ajouter des utilisateurs aux projets d'équipe.

  2. Modifiez le fichier de définition de chaque type d'élément de travail dont vous souhaitez limiter l'ensemble d'utilisateurs. Ajoutez l'élément VALIDUSER à la définition de l'élément FIELD pour le champ Assigné à, puis spécifiez le groupe TFS.

    Par exemple, l'extrait de code suivant peut être ajouté à la définition de tâche pour limiter l'ensemble d'utilisateurs pour le champ Assigné à aux membres de l'équipe ajoutés au groupe de tâches d'équipe 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>
    

    En spécifiant l'élément ALLOWEXISTINGVALUE, vous évitez les erreurs de validation éventuelles qui se produiraient lorsque les membres quitteraient l'équipe et ne seraient plus enregistrés comme collaborateurs de projet.

Q : comment ajouter des contrôles personnalisés à un champ ?

R : à l'aide du modèle objet pour le suivi des éléments de travail, vous pouvez créer, modifier et rechercher des bogues, des tâches et autres types d'éléments de travail (WIT) par programmation. Vous pouvez également créer vos propres contrôles personnalisés qui ajoutent des fonctionnalités à un formulaire d'élément de travail.

Par exemple, vous pouvez ajouter les contrôles personnalisés suivants disponibles via le projet CodePlex Contrôles personnalisés pour le suivi des éléments de travail TFS :

  • Contrôle de capture d'écran qui permet le couper-coller d'images dans un champ HTML.

  • Contrôle de navigateur web qui permet à un utilisateur d'héberger une page web et de passer des valeurs de champ à celle-ci.

  • Contrôle de valeurs multiples qui prend en charge l'entrée de plusieurs valeurs dans un champ en affichant une liste de cases à cocher.

Q : comment modifier les mappages de champs qui prennent en charge l'intégration de TFS à Project ?

R : les projets d'équipe créés à partir d'un modèle de processus TFS par défaut incluent un fichier de mappage Microsoft Project par défaut. Si vous utilisez Project afin de planifier et de suivre les éléments de travail stockés dans TFS, vous devrez peut-être mapper des champs Project supplémentaires ou modifier le mode de publication et d'actualisation d'un champ TFS. Pour ce faire, personnalisez le fichier de mappage Microsoft Project.

Pour en savoir plus sur l'utilisation de Project avec des éléments de travail TFS, consultez Créer votre journal des travaux en souffrance (backlog) et vos tâches à l'aide de Project.

Q : quelle est la meilleure façon de gérer un grand nombre de champs personnalisés ?

R : si vous devez ajouter un grand nombre de champs personnalisés qui seront utilisés dans plusieurs types d'éléments de travail (WIT) ou plusieurs projets d'équipe, utilisez un flux de travail global. Vous pouvez simplifier les opérations de maintenance en gérant votre ensemble global de champs et de listes de choix à l'aide du flux de travail global. Consultez Référence des éléments XML du workflow global.

Q : comment supprimer un champ ?

R : lorsque vous supprimez un champ d'un type d'élément de travail spécifique, il n'est pas supprimé de la collection ou du serveur de base de données, même s'il n'est plus référencé par aucun type d'élément de travail. Pour supprimer un champ, procédez comme suit.

  1. Supprimez la définition FIELD de toutes les définitions WIT et de tous les flux de travail globaux qui la référencent.

  2. Vérifiez que le champ n'est pas en cours d'utilisation. Par exemple :

    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. Supprimez le champ. Par exemple :

    witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact
    
  4. Si le champ supprimé était signalable, régénérez l'entrepôt de données pour vider l'ancien champ et ses valeurs.

Pour plus d'informations, consultez Gérer des champs d'éléments de travail (witadmin).

Q : quelles autres zones puis-je personnaliser ?

R : Consultez Une perspective complète de ce que vous pouvez configurer et personnaliser dans Visual Studio TFS.

Q : où m'adresser si j'ai d'autres questions ?

R : Pour trouver des réponses ou poser une question, visitez le forum : Team Foundation Server - Gestion de projet et élément de travail.