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
ouHTML
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
enHTML
. Avec lachangefield
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 Community
la 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 Community
la 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 Enterprise
la 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é Administrateurs Team Foundation ou du groupe de sécurité Administrateurs de regroupement de projets.
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 De l’invite de commandes, puis sélectionnez Exécuter en tant qu’administrateur. 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 travailLa
VALIDUSER
règle est spécifiée pour un type d’élément de travailLa
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 groupesPour 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
Entrez la commande suivante pour renommer le nom convivial affecté au
Microsoft.VSTS.Common.Rank
rang important.witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:Microsoft.VSTS.Common.Rank /name:"Important Rank"
À 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
Dans Team Explorer, choisissez Actualiser.
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.
Choisissez Nouvelle requête pour créer une requête.
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>>.
Supprimez la valeur Rank de la cellule Field, puis tapez Important Rank dans la cellule.
Sélectionnez <> la cellule Opérateur , puis tapez 1 dans la cellule Value .
Dans la barre d’outils Requête, choisissez Exécuter.
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.
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.
Fermez la requête. Choisissez Non lorsque vous êtes invité à enregistrer la requête.
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é.
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.
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
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
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
L’invite de confirmation suivante s’affiche :
Cela modifie les propriétés du champ {0} sur Team Foundation Server. Voulez-vous continuer ?
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é
Entrez la commande suivante, en spécifiant le nom de référence du champ d’élément de travail, par
MyCompany.MyProcess.MyField
exemple .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
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 quiControl
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.