Gérer des champs d'éléments de travail

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

Important

Pour le modèle de processus XML local, vous pouvez utiliser witadmin pour répertorier, importer, exporter et modifier un processus pour un projet. Pour les modèles de processus XML hérités et hébergés, vous pouvez uniquement utiliser witadmin pour répertorier et exporter des informations de processus. Pour obtenir une vue d’ensemble des modèles de processus et de ce qui est pris en charge, consultez Personnaliser votre expérience de suivi du travail.

Vous pouvez gérer les champs définis pour les types d’éléments de travail définis pour une collection de projets (XML local) à l’aide des commandes witadmin suivantes. Si vous souhaitez ajouter un champ global (valide pour le code XML local), vous pouvez le faire en modifiant le fichier de flux de travail global et en l’important dans la collection.

  • changefield: modifie un ou plusieurs attributs d’un champ. Lorsque vous modifiez l’un des attributs suivants, vous le modifiez pour tous les types et projets d’éléments de travail dans la collection de projets :
    • Type de données pour PlainText ou HTML champs.

      Important

      Lorsque vous mettez à niveau Team Foundation Server d’une version antérieure vers la version actuelle, l’affectation de type pour le champ Description (System.Description) est automatiquement convertie PlainText en HTML. Avec la changefield commande, vous pouvez restaurer le contenu de ce champ pour afficher du texte brut.

    • Nom convivial qui s’affiche dans la requête d’élément de travail. Ce nom peut différer de celui affiché sur le formulaire d’élément de travail.

    • Attributs de création de rapports qui incluent le nom du champ tel qu’il apparaît dans un rapport, le nom du rapport de référence et le type de rapport.

    • Synchronisation avec Active Directory : vous pouvez activer/désactiver la synchronisation des champs de nom de personne.

  • deletefield: supprime le champ spécifié.
  • listfields: répertorie les attributs de tous les champs ou d’un champ spécifié.

Remarque

La witadmin indexfield commande a été déconseillée avec Azure DevOps Server 2019 et versions ultérieures. Les champs d’indexation ne sont plus obligatoires.

Exécuter l’outil witadmin en ligne de commande

Pour exécuter l’outil witadmin en ligne de commande, ouvrez une fenêtre d’invite de commandes où Visual Studio est installé. L’outil witadmin en ligne de commande s’installe avec n’importe quelle version de Visual Studio. Vous pouvez accéder à cet outil en installant la version gratuite de Visual Studio Community ou de Visual Studio Team Explorer.

Remarque

Pour vous connecter à Azure DevOps Services, nous vous recommandons d’utiliser la dernière version de Visual Studio ou de Visual Studio Community.

Remarque

Pour vous connecter à un serveur local, nous vous recommandons d’utiliser la même version ou ultérieure de Visual Studio que votre serveur Azure DevOps. Par exemple, si vous vous connectez à Azure DevOps Server 2019, connectez-vous à votre projet à partir d’une version de Visual Studio 2019.

Pour Visual Studio 2022

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

Enterprise ou Professional à la place de , en fonction de Communityla version que vous avez installée.

Pour Visual Studio 2019

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

Enterprise ou Professional à la place de , en fonction de Communityla version que vous avez installée.

Pour Visual Studio 2017

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

Professional ou TeamExplorer à la place de , en fonction de Enterprisela version que vous avez installée.

Sur une édition 32 bits de Windows, remplacez %programfiles(x86)% par %programfiles%. Vous pouvez installer Visual Studio Community (qui fournit gratuitement l’accès à Team Explorer) ou Visual Studio Team Explorer 2017 .

Pour obtenir une vue d’ensemble des champs définis dans un modèle de processus par défaut, consultez l’index de champ Élément de travail.

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.

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 supprimer ou renommer des champs ou modifier un attribut d’un champ, vous devez être membre du groupe de sécurité Team Foundation Administration istrators ou du groupe de sécurité project collection Administration istrators.

Pour plus d’informations, consultez Modifier les autorisations au niveau de la collection de projets.

Remarque

Même si vous vous connectez avec des autorisations d’administration, vous devez ouvrir une fenêtre d’invite de commandes avec élévation de privilèges pour effectuer cette fonction sur un serveur exécutant Windows Server 2008. Pour ouvrir une fenêtre d’invite de commandes avec élévation de privilèges, choisissez Démarrer, ouvrez le menu contextuel Invite de commandes, puis exécutez en tant que Administration istrateur. Pour plus d’informations, consultez le site web Microsoft : Contrôle d’accès utilisateur.

Syntaxe

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]  

Paramètres

Paramètre Description
/collection:CollectionURL Spécifie l’URI de la collection de projets. Par exemple :

Format local :http://ServerName:Port/VirtualDirectoryName/CollectionName
Si aucun répertoire virtuel n’est utilisé, utilisez le format suivant : http://ServerName:Port/CollectionName.
/n:RefName
/n:Name
Nom de référence d’un champ de type d’élément de travail.
/index Spécifie d’activer ou de désactiver l’indexation pour le champ spécifié. Spécifiez l’activation de l’indexation et de la désactivation de l’indexation.
/name:NewName Spécifie le nouveau nom du champ.
/syncnamechanges Spécifie d’utiliser le champ d’élément de travail pour stocker les noms et mettre à jour à mesure que les modifications sont apportées dans Active Directory ou un groupe de travail. Cette option est valide uniquement lorsqu’un champ avec le type de données String est spécifié pour le typename.

Spécifiez true pour activer la synchronisation pour le champ de données, spécifiez false pour désactiver la synchronisation pour le champ de données.
/reportingname:ReportingName Spécifie le nom du champ dans l’entrepôt de données à utiliser pour la création de rapports.
/reportingrefname:ReportingRefName Spécifie le nom de référence du champ dans l’entrepôt de données à utiliser pour la création de rapports.
/reportingtype:Type Spécifie la façon dont le champ est utilisé dans l’entrepôt pour la création de rapports. Les valeurs suivantes sont valides :

- dimension: Utilisé pour les champs Integer, String ou DateTime.
- detail: Utilisé pour les champs Integer, Double, String ou DateTime.
- measure: Utilisé pour les champs Entier et Double. Le type d’agrégation par défaut est somme. Vous pouvez spécifier un autre type d’agrégation à l’aide du paramètre de formule .
- none: Permet de désactiver la reportabilité sur le champ.

Pour plus d’informations, consultez À propos des champs et des attributs d’élément de travail.
/reportingformula:Formula Spécifie la formule d’agrégation à utiliser lorsque le champ est signalé en tant que measure. La seule formule prise en charge est sum.
/type:HTML | PlainText Spécifie de convertir le contenu du champ de PlainText vers HTML ou de HTML vers PlainText. Vous pouvez spécifier cette option uniquement pour les champs dont l’attribution de type est PlainText ou HTML. Consultez la référence d’élément FIELD (Definition).
/unused Répertorie tous les champs qui ne sont pas utilisés par un projet défini dans la collection de projets.
/noprompt Désactive l’invite de confirmation.
/? ou help Affiche de l’aide sur la commande dans la fenêtre d’invite de commandes.

Synchronisation des noms de personnes avec Active Directory

Vous devez activer manuellement la synchronisation de tous les champs d’élément de travail personnalisés utilisés pour affecter des noms de personnes qui font référence à Active Directory. Vous devez activer la synchronisation pour chaque champ pour chaque collection de projets qui contient les champs personnalisés.

Tous les champs de référence système qui indiquent que les noms de personne ont l’attribut syncnamechanges défini sur true. Ces champs incluent System.AuthorizedAs, System.AssignedTo, System.ChangedBy et System.CreatedBy. Synchronisation activée pour chaque champ de nom de personne défini dans l’un des modèles de processus par défaut. Pour plus d’informations, consultez Affectations et champs de flux de travail.

Une fois la synchronisation activée, le champ n’affiche plus de chaîne statique. Au lieu de cela, le champ affiche le nom associé à un compte d’utilisateur. Lorsque vous modifiez le nom d’utilisateur dans Active Directory ou dans Le groupe de travail, un champ défini syncnamechanges pour true afficher automatiquement le nouveau nom.

Lorsque vous attribuez l’attribut syncnamechanges à un champ String, le champ accepte toujours les noms d’utilisateur valides. Toutefois, le champ n’autorise pas les noms de groupes stockés dans Team Foundation Server ou dans Active Directory si l’une des conditions suivantes est true:

  • La VALIDUSER règle est spécifiée dans tous les types d’éléments de travail

  • La VALIDUSER règle est spécifiée pour un type d’élément de travail

  • La ALLOWEDVALUES règle est spécifiée pour un type d’élément de travail et cette règle a un critère de filtre qui exclut les groupes

    Pour plus d’informations, consultez Tous les éléments FIELD.

Attributs que vous pouvez modifier pour chaque type d’élément de travail

Vous modifiez les attributs ou valeurs suivants définis pour un champ en modifiant la définition de type d’élément de travail dans laquelle le champ apparaît :

  • Nom qui s’affiche sur le formulaire d’élément de travail. Consultez les éléments WebLayout et Control ou la référence d’élément XML Control.
  • Texte d’aide. Consultez Règles et évaluation des règles.
  • Valeurs ou éléments autorisés dans un menu déroulant ou liste déroulante. Consultez les éléments XML ALLOWEDVALUES, SUGGESTEDVALUES et PROHIBITEDVALUES.

Exemples

Sauf indication contraire, les valeurs suivantes s’appliquent dans chaque exemple :

  • URI de la collection de projets : http://AdventureWorksServer:8080/tfs/DefaultCollection
  • Nom du champ d’élément de travail : AdventureWorks.Field
  • Encodage par défaut : UTF-8

Champs de liste

Permet witadmin listfields d’afficher l’ensemble de champs en cours d’utilisation pour en sélectionner un à ajouter à un type d’élément de travail. En outre, vous pouvez répertorier les attributions d’attributs définies pour un champ spécifique et déterminer les champs utilisés par les projets.

Afficher les attributs d’un champ d’élément de travail

  • Entrez la commande suivante pour répertorier les attributs définis pour un champ spécifié, tel que Microsoft.VSTS.Common.Issue.

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

    Des informations sur les champs et les attributs apparaissent pour le champ nommé, comme le montre l'exemple suivant.

    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  
    

    Le paramètre Use indique le nom de chaque projet et le type d’élément de travail dans lequel le champ est utilisé. Pour plus d’informations sur les attributs de champ, consultez Index des champs d’élément de travail.

Répertorier tous les champs d’une collection de projets

  • Entrez la commande suivante pour répertorier tous les champs définis pour une collection de projets.

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

    Les informations de champ pour tous les champs de la collection de projets nommée s’affichent. Voir Index des champs d’élément de travail.

Répertorier les champs qui ne sont pas utilisés

  • Entrez la commande suivante pour répertorier les champs qui ne sont plus utilisés dans la collection de projets par n’importe quel type d’élément de travail.

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

    Les informations de champ et d’attribut s’affichent pour chaque champ qui n’est pas utilisé, comme illustré dans cet exemple.

    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  
    

Renommer un champ

Vous pouvez modifier le nom convivial d’un champ d’élément de travail pour respecter les conventions d’affectation de noms que votre équipe utilise. Notez que le nouveau nom est appliqué à tous les types d’éléments de travail qui référencent le champ modifié dans tous les projets de la collection de projets. Le nom convivial s’affiche lorsque vous définissez des critères de filtre dans une requête d’élément de travail. Le nom qui apparaît sur un formulaire d’élément de travail peut être différent du nom convivial défini pour le champ.

Pour renommer un champ d’élément de travail

  1. Entrez la commande suivante pour renommer le nom convivial affecté au Microsoft.VSTS.Common.Rankrang important.

    witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:Microsoft.VSTS.Common.Rank /name:"Important Rank"  
    
  2. À l’invite de confirmation, tapez y , puis appuyez sur Entrée. Attendez que vous receviez le message suivant :

    Champ renommé.

Pour vérifier les modifications importées dans un seul projet

  1. Dans Team Explorer, choisissez RefreshActualiser.

    Les dernières mises à jour sont téléchargées à partir du serveur, notamment les modifications que vous venez d’apporter au nom du champ. Attendez plusieurs secondes pour que l’actualisation se termine.

  2. Choisissez Nouvelle requête pour créer une requête.

  3. Dans le Éditeur de requête, choisissez le lien Cliquer ici pour ajouter un lien de clause pour ajouter une ligne, sélectionnez la cellule Champ vide, puis, dans la cellule, tapez Rank. Message suivant qui apparaît au-dessus de la liste des résultats. Ce message indique que le classement est introuvable.

    Exécutez la requête pour afficher les résultats de la requête. TF51005 : la requête fait référence à un champ qui n’existe pas. L’erreur est due à <<Rank>>.

  4. Supprimez la valeur Rank de la cellule Field, puis tapez Important Rank dans la cellule.

  5. Sélectionnez <> la cellule Opérateur , puis tapez 1 dans la cellule Value .

  6. Dans la barre d’outils Requête, choisissezExécuter la requête Exécuter.

  7. Ouvrez le menu contextuel de n’importe quelle ligne dans les résultats et sélectionnez Options de colonne. Faites défiler vers le bas dans la liste colonnes disponibles. Notez que le champ Rank n’est plus présent, mais que le champ Classement important est présent.

  8. Sélectionnez Classement important dans la zone Colonnes Disponibles, puis choisissez le > bouton (ajouter des colonnes sélectionnées). Choisissez OK.

    Notez que le nom convivial de Microsoft.VSTS.Common.Rank a été renommé de Rank à Important Rank dans le générateur de requêtes et la liste des résultats.

  9. Fermez la requête. Choisissez Non lorsque vous êtes invité à enregistrer la requête.

  10. Créez un élément de travail de tâche. Choisissez le lien Nouveaux éléments de travail, puis choisissez Tâche.

    Cet élément de travail est créé à partir du type d’élément de travail que vous avez modifié et importé.

  11. Notez, dans la zone État, que l’étiquette du champ renommé, Rank, n’a pas changé. Cela est dû au fait que les étiquettes de champ des formulaires d’élément de travail sont étendues au projet parent et sont indépendantes du nom de champ à l’échelle du serveur spécifiée.

    Remarque

    Pour plus d’informations sur la modification des étiquettes de champ sur les formulaires d’éléments de travail, consultez référence d’élément XML Control.

  12. Fermez la nouvelle tâche et choisissez Non lorsque vous êtes invité à enregistrer l’élément de travail.

Modifier le rapport en tant que valeur pour un champ

La commande suivante spécifie la possibilité de signaler le type du champ DateTime AdventureWorks.CreatedOn à la dimension. Les données de ce champ entrent dans les bases de données de l’entrepôt et Analysis Services afin qu’elles puissent être utilisées pour filtrer les rapports.

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

La commande suivante spécifie la possibilité de signaler le type du champ Double AdventureWorks.Field à mesurer. Toutes les mesures sont agrégées par somme.

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

Activer la synchronisation d’un champ de nom de personne personnalisé

La commande suivante active la synchronisation pour le champ d’élément de travail AW. CustomerName défini pour Collection1 sur AdventureWorksServer.

Vérifier le type de données du champ que vous souhaitez convertir

  1. Vérifiez le type de données affecté au champ, tel que MyCompany.CustomerName, que vous souhaitez synchroniser en entrant la commande suivante :

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

Activer la synchronisation

  1. Pour activer la synchronisation pour un champ nommé par la personne, tapez la commande suivante, en remplaçant vos données par les arguments présentés ici :

    witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomerName /syncnamechanges:true  
    
  2. L’invite de confirmation suivante s’affiche :

    Cela modifie les propriétés du champ {0} sur Team Foundation Server. Voulez-vous continuer ?

  3. Tapez 0 pour confirmer que vous souhaitez modifier le champ, ou 1 pour annuler la demande.

    Si la demande de modification réussit, le message de confirmation suivant s’affiche :

    Le champ a été mis à jour.

    Si la demande de modification échoue, un message d’erreur s’affiche. Les erreurs les plus courantes qui peuvent être effectuées tentent de modifier un champ de référence système ou d’essayer de modifier un champ d’un type de données autre que String. Ces opérations ne sont pas prises en charge.

Supprimer un champ

Avant de supprimer un champ, vérifiez que le champ n’est pas utilisé. Si le champ est utilisé, vous devez d’abord supprimer le champ des types d’éléments de travail qui l’utilisent avant de le supprimer de la collection de projets. La commande suivante supprime le champ AdventureWorks.Field de Collection1 :

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

Vérifier qu’un champ n’est pas utilisé

  1. Entrez la commande suivante, en spécifiant le nom de référence du champ d’élément de travail, par MyCompany.MyProcess.MyFieldexemple .

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

    Dans les informations affichées pour le champ, vérifiez que la valeur de l’utilisation est « Not In Use » comme suit dans cet exemple.

    Field: MyCompany.MyProcess.MyField  
    Name: MyField  
    Type: String  
    Reportable As: dimension  
    Use: Not In Use  
    Indexed: False  
    
  2. Si le champ Use indique que le champ est utilisé, vous devez le supprimer de chaque type d’élément de travail pour chaque projet répertorié. Par exemple, le Microsoft.VSTS.TCM.SystemInfo champ indique qu’il est utilisé par les types d’éléments de travail Bug et Code Defect pour quatre projets : Arroyo, Desert, Palm et 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  
    

    Avant de pouvoir supprimer ce champ, vous devez le supprimer de chacun des types d’éléments de travail répertoriés pour chaque projet pour lequel il est défini. Pour supprimer le champ, vous modifiez la définition du type d’élément de travail en supprimant les FIELD éléments qui Control contiennent le nom de référence du champ. Consultez Importer, exporter et gérer les types d’éléments de travail, référence d’élément FIELD (Definition) et Control.

Supprimer un champ d’une collection de projets

Entrez la commande suivante pour supprimer le MyCompany.MyProcess.MyField champ, puis choisissez Entrée.

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

Entrez y à l’invite de confirmation pour terminer cette étape.