Ajouter ou modifier un champ pour suivre le travail

Azure DevOps Server 2022 – Azure DevOps Server 2019

Votre projet contient 100 champs de données ou plus, en fonction du processus utilisé pour créer votre projet, tel que Agile, Basic, Scrum ou CMMI. Chaque élément de travail est associé à un type d’élément de travail (WIT) et les données que vous pouvez suivre correspondent aux champs attribués au WIT. Vous mettez à jour les données d’un élément de travail en modifiant le champ de données dans un élément de travail.

Remarque

Pour Azure DevOps Services ou pour les collections de projets qui utilisent le modèle de processus hérité, consultez Ajouter un champ personnalisé à un type d’élément de travail.

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 sélections dans un menu déroulant ou ajouter une règle pour spécifier une valeur par défaut ou restreindre la valeur qu’elle peut prendre.

Toutes les listes de sélection ne sont pas définies de la même façon. Certaines listes sont définies par le biais de l’interface utilisateur, du flux de travail d’un WIT ou en ajoutant des comptes d’utilisateur à un projet, comme indiqué dans le tableau suivant.

Prérequis

  • Pour répertorier les champs, vous devez disposer de l’autorisation Afficher les informations au niveau du projet dans la collection définie sur Autoriser.
  • Pour ajouter ou personnaliser un champ, vous devez être membre du groupe Administrateurs de projet ou disposer de l’autorisation Modifier les informations au niveau du projet sur Autoriser.
  • Pour supprimer ou renommer des champs ou modifier un attribut d’un champ, vous devez être membre du groupe de sécurité Administrateurs Team Foundation ou du groupe de sécurité Administrateurs de regroupement de projets.

Pour être ajouté en tant qu’administrateur, modifiez les autorisations au niveau de la collection de projets.

Méthodes par lesquelles les champs d’élément de travail sont ajoutés

Vous utilisez des champs d’élément de travail pour suivre les données d’un type d’élément de travail et définir les critères de filtre pour les requêtes, ainsi que pour générer des rapports. Tout élément de données, à l’exception des champs système, que vous souhaitez suivre doit être défini comme champ d’élément de travail. Vous pouvez définir des champs d’élément de travail dans la définition d’un type d’élément de travail ou d’un flux de travail global.

Les champs d’élément de travail sont conservés pour une collection de projets. Vous ajoutez des champs lorsque vous effectuez l’une des tâches suivantes :

  • Créer un projet. Tous les champs définis dans les définitions des types d’éléments de travail ou du flux de travail global et définis pour le modèle de processus sélectionné sont créés. Les champs système principaux sont automatiquement définis pour chaque type d’élément de travail défini pour un projet. Pour obtenir la liste de ces champs, consultez l’index de champ d’élément de travail.

  • Importez une définition WIT. Tous les nouveaux champs définis dans la définition d’un type d’élément de travail sont ajoutés à la collection. Pour plus d’informations, consultez toutes les informations de référence sur les éléments XML WITD.

  • Importez une définition globale de flux de travail. Tous les nouveaux champs définis dans le flux de travail global sont ajoutés à la collection. Vous définissez un flux de travail global lorsque vous souhaitez conserver un ensemble de champs d’élément de travail que plusieurs types d’éléments de travail partagent. Pour plus d’informations, consultez Personnaliser le flux de travail global.

Tous les champs définis dans tous les WIT et tous les flux de travail globaux pour tous les projets composent l’ensemble complet de champs définis dans la collection. Vous pouvez modifier l’attribut des champs existants, renommer et supprimer les champs existants. Toutefois, vous entraînez certains coûts lorsque vous apportez ces types de modifications, en particulier pour le serveur local et la création de rapports.

Pour ajouter ou personnaliser un champ pour une collection, modifiez le contenu XML de la définition WIT. Définissez chaque champ via un élément FIELD dans la section FIELDS de la définition WIT. Pour plus d’informations sur la structure et l’emplacement de ces fichiers, consultez les informations de référence sur tous les éléments XML FIELD.

Ajouter un champ, appliquer une règle ou modifier un attribut

Pour ajouter un champ personnalisé, ajouter des règles de champ ou modifier l’étiquette d’un champ sur un formulaire d’élément de travail, vous modifiez le type d’élément de travail (WIT) ou les types qui utilisent le champ. Suivez la séquence de personnalisation qui correspond à votre modèle de processus.

Pour modifier un attribut de champ ou renommer un champ, utilisez l’outil de ligne de commande witadmin . Sinon, pour modifier un champ, vous ajoutez ou modifiez les règles associées au champ dans une définition WIT.

Résumé des attributs de champ et des règles de champ

Pour modifier un fichier de définition WIT

Pour ajouter des règles ou ajouter un champ personnalisé, exporter, modifier, puis importer le fichier de définition WIT.

Conseil

Avec witadmin, vous pouvez importer et exporter des fichiers de définition. D’autres outils que vous pouvez utiliser incluent l’éditeur de processus (nécessite que vous ayez installé une version de Visual Studio). Installez l’éditeur de modèle de processus à partir de la Place de marché Visual Studio.

Tout champ que vous souhaitez utiliser pour suivre les données doit être ajouté au fichier de définition WIT. Cela est vrai pour tous les champs système (champs dont le nom de référence commence par System.). Tous les champs système sont définis pour tous les WIT, que vous les incluiez ou non dans la définition WIT. Pour plus d’informations sur chaque champ, consultez l’index du champ Élément de travail.

Ajouter une case à cocher ou un champ booléen

Utilisez la syntaxe suivante pour ajouter un champ booléen dans la section FIELDS de la définition WIT.

<FIELD name="Triage" refname="Fabrikam.Triage" type="Boolean" >
   <DEFAULT from="value" value="False" />
   <HELPTEXT>Triage work item</HELPTEXT>
</FIELD>

Ajoutez ensuite la syntaxe suivante dans la section FORM pour que le champ apparaisse sur le formulaire.

<Control Label="Triage" Type="FieldControl" FieldName="Fabrikam.Triage" />

Le champ s’affiche sous forme de case à cocher dans le formulaire.

Personnaliser une liste de sélections

Les listes de sélection sont les valeurs énumérées qui apparaissent dans un menu déroulant dans un formulaire d’élément de travail et la colonne Valeur dans l’éditeur de requête. La méthode que vous utilisez pour personnaliser une liste de sélections varie en fonction du champ.

Pour modifier la liste de sélection pour la plupart des champs de chaîne ou d’entier dans un formulaire d’élément de travail, modifiez la définition WIT. Par exemple, pour ajouter un champ de résolution personnalisé et une liste de choix, spécifiez le code XML comme indiqué.

Champ personnalisé et liste de sélection
Liste de sélections personnalisée

<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 à laquelle une liste s’applique et la définition de conditions lorsqu’une liste apparaît sur le formulaire d’élément de travail. Les règles contrôlent 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 expanditems et filteritems facultatifs. Utilisez des listes globales pour réduire le travail nécessaire pour mettre à jour une liste partagée entre les wiTs ou les projets.

Lorsque vous utilisez une liste dans plusieurs wits ou sur plusieurs projets, la maintenir en tant que liste globale réduit vos besoins de maintenance. En outre, si vous avez besoin d’afficher des parties de listes comme différentes dans les wiTs ou les projets, vous pouvez définir une liste globale pour une partie d’une liste de sélection. Voir Définir des listes de sélection et Définir des listes globales.

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 à appliquer à des utilisateurs ou groupes spécifiques. La plupart des règles prennent en charge les attributs pour que la règle se concentre sur qui la règle s’applique et ne s’applique pas.

Par exemple, avec l’extrait de code suivant, vous pouvez appliquer la règle que seuls les membres de l’équipe de gestion, un groupe TFS défini par le client, peuvent modifier le champ Stack Rank 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 effectuer les actions suivantes :

Pour accomplir cette action : Utilisez cet élément XML :
Spécifiez une info-bulle. HELPTEXT
Qualifier la valeur qu’un champ peut avoir. CANNOTLOSEVALUE, EMPTY, FROZEN, NOTSAMEAS, READONLY et REQUIRED
Copiez une valeur ou spécifiez une valeur par défaut. COPY, DEFAULT et SERVERDEFAULT
Restreindre les personnes autorisées à modifier un champ. VALIDUSER, pour et non les attributs de règle de champ
Appliquer la correspondance de modèle sur un champ de chaîne. MATCH
Appliquez des règles de manière conditionnelle en fonction des valeurs dans d’autres champs. WHEN, WHENNOT, WHENCHANGED et WHENNOTCHANGED

Les champs système, dont les noms commencent tous par le préfixe « Système » (par exemple, System.ID), sont limités en termes de règles que vous pouvez appliquer. Par exemple, vous ne pouvez pas copier ou définir sur des champs vides utilisés pour suivre qui a créé, modifié ou fermé un élément de travail ou des champs date-heure utilisés par le système.

Pour plus d’informations sur l’application de règles et de restrictions de champ, consultez Règles et évaluation des règles.

Pour ajouter un champ personnalisé

Pour ajouter un champ personnalisé, modifiez la définition WIT pour ajouter un élément FIELD dans la section FIELDS et un élément Control dans la section FORM.

  1. Exportez le fichier de définition WIT en fonction du modèle de processus que vous utilisez.

  2. Recherchez la section du fichier XML qui commence par FIELDS.

  3. Ajoutez l’élément FIELD qui spécifie le nom du champ personnalisé à ajouter. Vous devez spécifier les attributs requis suivants : convivial name, refname (nom de référence) et type. Pour plus d’informations, consultez la référence d’élément FIELD (Definition).

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

    <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, quelle que soit la façon dont vous les entrez dans le fichier de définition XML. Le nom de référence, ou refname, est le nom programmatique du champ. Toutes les autres règles doivent faire référence au refname. Pour plus d’informations, consultez Restrictions de nommage et conventions d’affectation de noms.

  4. Ajoutez l’élément Control dans la FORM section afin que le champ personnalisé s’affiche sur le formulaire dans le groupe d’éléments dans lequel vous souhaitez qu’il apparaisse.

    Par exemple, l’extrait de code suivant ajoute le champ Demandeur pour apparaître sous le champ Motif du formulaire d’é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 travaux définit tous les éléments enfants de l’élément FORM en tant que cas de chameau et tous les autres éléments comme tous capitalisés. 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 étiquettes d’ouverture et de fermeture doit respecter les règles pour la syntaxe XML. Pour plus d’informations, consultez référence d’élément XML Control.

  5. Importez le fichier de définition WIT en fonction du modèle de processus que vous utilisez.

  6. Ouvrez le portail web 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 de backlog produit contient désormais le nouveau champ.

    Nouveau champ sous forme

Pour modifier l’étiquette de champ sur un formulaire d’élément de travail

Pour modifier l’étiquette de champ, modifiez la valeur affectée à l’attribut d’élément Control Label . Pour supprimer un champ du formulaire élément de travail, supprimez l’élément Control associé au champ.

  1. Exportez le fichier de définition WIT en fonction de votre modèle de processus.

  2. Dans les sections et Layout les FORM sections, recherchez la définition du champ à modifier. Cet exemple modifie l’étiquette du champ Titre :

    <Column PercentWidth="70">  
       <Control Type="FieldControl" FieldName="System.Title" Label="Title" LabelPosition="Left" />  
    </Column>
    
  3. Modifiez l’étiquette du champ afin que le bureau de succursale portugais travaillant sur ce projet particulier puisse lire le nom du champ Titre lorsqu’il travaille avec le formulaire d’élément de travail. Incluez le mot portugais pour le titre (Titulo) dans le champ Titre.

    <Column PercentWidth="70">  
       <Control Type="FieldControl" FieldName="System.Title" Label="Title (Titulo):" LabelPosition="Left" />  
    </Column>
    
  4. Importez la définition WIT modifiée.

Ajouter un contrôle personnalisé

À l’aide des API REST pour le suivi des éléments de travail, vous pouvez créer, modifier et rechercher des bogues, des tâches et d’autres objets 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.

Vous pouvez également ajouter un contrôle personnalisé disponible via Visual Studio Marketplace. Par exemple :

  • Contrôle à valeurs multiples qui prend en charge l’entrée de plusieurs valeurs pour un champ en affichant une liste de cases à cocher
  • Contrôle de liste de sélection de couleurs qui prend en charge l’ajout de couleur pour sélectionner des éléments de liste
  • Forme d’élément de travail une action en un clic qui fournit une extension de groupe avec un ensemble personnalisable de règles qui prennent en charge une action en un clic.

Pour ajouter un contrôle personnalisé au nouveau formulaire web, consultez Les éléments WebLayout et Control.

Modifier un attribut d’un champ existant

Vous utilisez witadmin changefield pour modifier les attributs d’un champ existant. Par exemple, la commande suivante modifie le nom convivial défini pour MyCompany.Type en 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 changer 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 doit être unique dans tous les champs définis dans une collection de projets. Le nom convivial peut différer de l’étiquette de formulaire qui apparaît sur le formulaire d’élément de travail.
Attributs de création de rapports 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 rapport. 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 de l’entrepôt relationnel, dans la base de données de l’entrepôt relationnel et dans le cube OLAP, ou pour générer une somme précalculée de valeurs lors du traitement du cube OLAP.

Pour obtenir la liste complète des champs reportables par défaut, consultez la référence des champs reportables. Pour plus d’informations sur les attributs reportables, consultez les champs et attributs d’élément de travail, attributs reportables.
Synchronization Vous pouvez activer ou désactiver la synchronisation pour les champs de nom de personne avec Active Directory.

Modifier l’attribut d’index d’un champ

Vous pouvez activer l’indexation d’un champ pour améliorer les temps de réponse des requêtes lors du filtrage sur le 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.

Pour activer ou désactiver l’indexation d’un champ, utilisez la commande witadmin indexfield.

Supprimer un champ

Lorsque vous supprimez un champ d’un type spécifique d’élément de travail, ce champ 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 un wiT. Pour supprimer un champ, procédez comme suit.

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

  2. Vérifiez que le champ n’est pas utilisé. 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 reportable et que votre projet utilise SQL Server Reporting Services, 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 les champs d’élément de travail.

Champs de test, de génération et de contrôle de version

Plusieurs types d’éléments de travail contiennent des champs qui fournissent des informations générées par des processus automatisés qui s’intègrent à Team Foundation Build, Microsoft Test Manager et team Foundation version control. Pour ajouter l’un de ces champs à vos WIT personnalisés, vous modifiez la définition WIT en fonction des étapes décrites précédemment dans cette rubrique.

Par exemple, vous pouvez ajouter les champs De build trouvés et intégrés dans les champs de build qui apparaissent dans les définitions de type pour les 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 Requête basée sur les champs de génération et d’intégration de test.

Noms de champs et rapports

Vous pouvez ajouter des champs ou modifier les attributs des champs existants pour prendre en charge la création de rapports. Lorsque vous ajoutez ou modifiez des champs, vous devez les nommer systématiquement afin que vous puissiez trouver le champ dans le cube Analysis Services, car les champs sont regroupés logiquement dans des dossiers. Pour plus d’informations, consultez Ajouter ou modifier des champs d’élément de travail pour prendre en charge la création de rapports.

Cet article a abordé comment ajouter et personnaliser des champs pour les modèles de processus XML hébergés et XML locaux. Pour plus d’informations sur l’ajout et la personnalisation des types d’éléments de travail pour les modèles de processus XML hébergés et XML locaux, consultez Ajouter ou modifier un type d’élément de travail. Pour le modèle de processus d’héritage, consultez Personnaliser un processus.

Autres rubriques ou ressources connexes :