Personnaliser le mappage de champs entre TFS et Project Server
Pour synchroniser les données entre un plan de projet d'entreprise et un projet d'équipe, vous devez associer les champs d'élément de travail de Visual Studio Team Foundation Server (TFS) aux champs de Microsoft Project Server. Vous pouvez ajouter des champs et spécifier la façon dont ils doivent être synchronisés en personnalisant les mappages de champs. Dans Project, vous pouvez mapper des champs prédéfinis et des champs personnalisés. Par exemple, vous pouvez partager des données qui n'ont pas de rapport avec le calendrier des projets (telles que les centres de coûts, les noms des équipes ou l'état d'intégrité) en ajoutant aux mappages les champs qui stockent ces types de données.
Vous gérez un seul ensemble de mappages de champs pour chaque collection de projets d'équipe qui héberge des projets d'équipe à synchroniser avec Project Server. Vous devez définir les mappages de champs pour chaque collection de projets d'équipe que vous avez mappée à une instance de Project Web Access ou de Project Web App (PWA). Vous pouvez charger les mappages par défaut vers le serveur ou vous pouvez personnaliser un fichier de mappage et le charger vers le serveur. Pour charger des mappages par défaut vers le serveur, consultez Chargement de mappages vers le serveur plus loin dans cette rubrique.
Notes
Les mappages pour l'intégration de TFS et de Project Server sont différents de ceux du fichier de mappage de Microsoft Project.Pour plus d'informations, consultez Personnaliser le fichier de mappage des champs Microsoft Project.
Comme le montre l'illustration suivante, vous pouvez personnaliser les mappages en cinq étapes :
Personnalisation des mappages de champs entre Team Foundation Server et Project Server
Notes
Vous pouvez mettre à jour le fichier de mappage aussi souvent que vous le voulez.Les champs qui apparaissent sous l'onglet Project Server sont mis à jour pour chaque élément de travail qui est inclus dans la synchronisation des données.Vous devez modifier manuellement les définitions de l'onglet Project Server.Pour plus d'informations, consultez Personnaliser l'onglet Project Server plus loin dans cette rubrique.
Dans cette rubrique
Mappages par défaut
Déterminer des champs supplémentaires à mapper
Télécharger des mappages dans un fichier
Mettre à jour les mappages
Charger les mappages
(Facultatif) Personnaliser l'onglet Project Server
Notes
Pour regarder une vidéo de démonstration, consultez la page suivante du site Microsoft : Managing Field Mappings for Integration of Team Foundation Server and Project Server.
Spécifications
Pour effectuer les procédures de cette rubrique, l'autorisation Administrer l'intégration Project Server doit avoir la valeur Autoriser. De plus, le compte de service de Team Foundation Server doit disposer de l'autorisation Administrer l'intégration Project Server. Pour plus d'informations, consultez Accorder les autorisations pour prendre en charge l'intégration de TFS et Project Server.
Mappages par défaut
Les mappages déterminent quels champs seront synchronisés quand un utilisateur met à jour des informations dans Team Foundation ou Project Server. Chacun des types de synchronisation ci-dessous possède son propre ensemble de mappages :
Pour la synchronisation des publications, les données de Project Server mettent à jour les données de Team Foundation. L'élément targetToTfs permet de spécifier le champ dans Project Server qui met à jour le champ dans Team Foundation.
Pour la synchronisation des états, les données dans Team Foundation sont envoyées vers la file d'attente des états de Project Server. L'élément tfsToTarget permet de spécifier le champ qui met à jour la file d'attente des états dans Project Server.
Pour plus d'informations sur ces deux types de synchronisation, consultez Vue d'ensemble du processus de synchronisation pour l'intégration de TFS et Project Server.
Le tableau suivant répertorie l'ensemble de champs par défaut qui sont mappés entre Team Foundation et Project Server. Le tableau indique également quels types d'éléments de travail utilisent les champs en fonction des modèles de processus par défaut fournis par TFS. Vous ne devez pas modifier ces mappages si vous effectuez un mappage vers un projet d'équipe créé à partir d'un modèle de processus basé sur Agile Software Development ou sur Capability Maturity Model Integration (CMMI) Process Improvement. Si vous effectuez un mappage vers un projet d'équipe créé à partir d'un modèle de processus Scrum, vous devrez procéder à quelques modifications, comme décrit dans Modifications requises en cas de mappage à un projet d'équipe créé à partir du modèle de processus Scrum plus loin dans cette rubrique.
Pour plus d'informations sur les mappages et le processus de synchronisation, consultez Référence d'éléments XML de mappages de champs pour l'intégration de Team Foundation Server et de Project Server.
Champ Team Foundation |
Champ Project Server |
Champ File d'attente des états |
Types d'éléments de travail dans Agile |
Types d'éléments de travail dans CMMI |
Types d'éléments de travail dans Scrum |
---|---|---|---|---|---|
Titre |
Nom de la tâche |
Titre |
Tous |
Tous |
Tous |
Assigné à |
Ressources |
Ressources |
Tous |
Tous |
Tous |
Travail effectué |
Tâche Travail réel |
Ressources Travail réel |
Tâche |
Tâche |
None |
Travail restant |
Tâche Travail restant |
Ressource Travail restant |
Tâche |
Tâche |
Tâche |
Estimation d'origine |
Travail planifié |
|
Tâche |
Bogue, demande de modification, problème, spécification, risque et tâche |
None |
Date de début |
Début de tâche |
Ressource Début |
Tâche et récit utilisateur |
Tâche et spécification |
None |
Date de fin |
Fin de tâche |
Ressource Fin |
Tâche et récit utilisateur |
Tâche et spécification |
None |
Modifications requises en cas de mappage à un projet d'équipe créé à partir du modèle de processus Scrum
Deux modifications doivent être apportées pour permettre le flux de données depuis un projet d'équipe créé à partir d'un modèle de processus Microsoft Visual Studio Scrum. Vous devez ajouter les champs Travail effectué et Estimation d'origine au type d'élément de travail Tâche, et vous devez supprimer les éléments qui nécessitent que le champ Travail restant soit vide quand un membre d'équipe remplace l'état Terminé par l'état Supprimé.
Pour mettre à jour la définition de type de tâche Scrum
Ouvrez une fenêtre d'invite de commandes à l'emplacement où Visual Studio ou Team Explorer est installé, puis entrez :
cd %programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE
Sur une édition 32 bits de Windows, remplacez %programfiles(x86)% par %programfiles%.
Pour exporter la définition de type Tâche, tapez la commande suivante et remplacez vos données par les arguments qui sont indiqués ici, où CollectionURL représente l'URL d'une collection de projets d'équipe, ProjectName spécifie le nom d'un projet d'équipe défini dans la collection et DirectoryPath\FileName.xml spécifie le nom et l'emplacement du fichier à exporter. Puis, choisissez Entrée.
witadmin exportwitd /collection: /p:"ProjectName" /n:"Task" /f:"DirectoryPath\FileName.xml"
Dans un éditeur de texte ou dans Visual Studio, ouvrez le fichier exporté.
Dans la section de définition FIELDS, ajoutez cet extrait de code avant l'élément pour Travail restant :
<FIELD name="Completed Work" refname="Microsoft.VSTS.Scheduling.CompletedWork" type="Double" reportable="measure" formula="sum"> <HELPTEXT>The number of units of work that have been spent on this task</HELPTEXT> </FIELD> <FIELD name="Original Estimate" refname="Microsoft.VSTS.Scheduling.OriginalEstimate" type="Double" reportable="measure" formula="sum"> <HELPTEXT>Initial value for Remaining Work - set once, when work begins. </HELPTEXT> </FIELD>
Dans la section <WORKFLOW>, supprimez l'extrait de code suivant des définitions <STATE value="Done"> et <STATE value="Removed"> :
<FIELD refname="Microsoft.VSTS.Scheduling.RemainingWork"> <EMPTY /> </FIELD>
Dans la section <FORM>, ajoutez les éléments Control suivants :
<Control FieldName="Microsoft.VSTS.Scheduling.OriginalEstimate" Type="FieldControl" Label="Original Estimate:" LabelPosition="Left" /> <Control FieldName="Microsoft.VSTS.Scheduling.CompletedWork" Type="FieldControl" Label="Completed:" LabelPosition="Left" />
Enregistrez et fermez le fichier.
Importez le fichier, en remplaçant les arguments affichés par vos données.
witadmin importwitd /collection: /p:"ProjectName" /f:"DirectoryPath\FileName.xml"
Actualisez la page du projet d'équipe ou des éléments de travail pour vérifier les modifications.
Pour plus d'informations, consultez Exporter et importer des types d'éléments de travail [redirection], Modifier ou ajouter un champ pour prendre en charge les requêtes, les rapports et le flux de travail et Concevoir et personnaliser un formulaire d'élément de travail [redirection].
Déterminer des champs supplémentaires à mapper
Déterminez les informations suivantes pour chaque champ à synchroniser en plus des champs par défaut :
Le nom de référence du champ dans Team Foundation. Si vous voulez synchroniser un champ dans Project Server avec un champ que vous devez créer dans Team Foundation, créez d'abord ce champ dans chaque type d'élément de travail à synchroniser. Pour plus d’informations, consultez Référence des champs d'éléments de travail pour Visual Studio ALM et Modifier ou ajouter un champ pour prendre en charge les requêtes, les rapports et le flux de travail.
Le nom du champ dans Project Server qui mettra à jour le champ dans Team Foundation. Pour obtenir la liste des champs disponibles, consultez Restrictions du mappage des champs Project Server dans l'intégration de TFS et Project Server.
Le nom du champ dans Project Server à mettre à jour et le nom du champ dans Project Server qui mettra à jour le champ miroir dans Team Foundation Server.
Si les champs doivent être affichés dans le formulaire d'élément de travail. Définissez l'attribut displayTfsField sur la valeur true pour les champs qui doivent s'afficher dans le formulaire d'élément de travail. Définissez l'attribut displayTfsMirror sur la valeur true pour le formulaire d'élément de travail.
Si les conflits de données doivent être résolus en permettant à la valeur du champ dans Team Foundation de remplacer celle du champ dans Project Server, ou si les deux valeurs doivent être conservées. Cette décision détermine la valeur de l'attribut onConflict. Quand onConflict=”PsWins” est défini, la valeur du champ dans Project Server remplace la valeur du champ dans Team Foundation. Pour plus d'informations, voir Éléments et attributs de champs.
Les autres valeurs que vous devez définir pour la prise en charge des listes de choix et des tables de choix personnalisées dans Project Server.
Restrictions sur les données à mapper
Après avoir déterminé quels champs vous voulez mapper, vous devez prendre en compte les restrictions suivantes :
Vous ne pouvez envoyer que des informations relatives aux tâches (les champs pjTask*) depuis Project Server vers Team Foundation Server.
Vous ne pouvez envoyer que des informations relatives aux ressources (les champs pjResource*) depuis Team Foundation Server vers la file d'attente des états de Project Server.
Le champ Titre est le seul champ que vous pouvez envoyer à fois vers Team Foundation Server et vers la file d'attente des états.
Le cumul du travail et des ressources est automatiquement calculé pour les champs Assigné à, Travail effectué et Travail restant. Vous ne pouvez pas mapper des champs supplémentaires et calculer le cumul du travail et des ressources pour ces derniers. Pour plus d'informations, consultez Utiliser un correctif cumulatif de ressource dans les projets d'entreprise mappés aux projets d'équipe.
Vous devez vous assurer que les types ou unités de données de chaque champ que vous mappez répondent aux critères de mappage pour les champs d'entreprise standard et personnalisés. Pour plus d'informations, consultez "Critères de types de données et de mappage de champs" dans Restrictions du mappage des champs Project Server dans l'intégration de TFS et Project Server.
Vous pouvez mapper des champs associés à des listes de choix dans Team Foundation. En revanche, vous devez créer des tables de choix dans Project Server qui correspondent aux listes de choix. Vous ne pouvez pas synchroniser automatiquement des listes de choix et des tables de choix.
Pour plus d'informations, consultez Restrictions du mappage des champs Project Server dans l'intégration de TFS et Project Server.
Exemple : mappage du nom d'équipe qui apparaît dans Project
Dans l'exemple suivant, le champ de chaîne personnalisé dans Team Foundation (MyCompany.MyOrg.DevTeamName) est mappé vers un champ de texte d'entreprise personnalisé dans Project Server (My Company Team Name). Vous pouvez utiliser cet exemple pour afficher le nom de l'équipe associée à une tâche dans Project Professionnel.
<field tfsName="MyCompany.MyOrg.DevTeamName" tfsMirrorName="Mirror.MyCompany.MyOrg.DevTeamName" displayTfsField="false" displayTfsMirror="false" onConflict="DoNothing">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name=" My Company Team Name" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name=" My Company Team Name" />
</targetToTfs>
</field>
Aucun des champs n'apparaîtra dans le formulaire d'élément de travail. De plus, si les valeurs ne correspondent pas, chaque champ conserve sa propre valeur.
Retour au début
Exemple : affichage des chemins d'itération et de zone dans Project
Vous pouvez mapper les champs Zone (System.AreaPath) et Itération (System.IterationPath) dans Team Foundation pour qu'ils apparaissent dans vos plans de projet. Étant donné que ces champs de chemin d'arborescence sont amenés à changer fréquemment, vous devez les mapper en tant que champs de texte dans Project. Les responsables de projet qui utilisent ces champs doivent entrer manuellement le chemin de zone ou d'itération complet.
Important
L'implémentation actuelle de l'intégration de Team Foundation Server et de Project Server ne prend pas en charge la synchronisation automatique des listes de valeurs, listes de choix, listes globales et listes de chemins d'arborescence autorisées qui sont définies pour les champs mappés entre les deux produits serveurs.Pour une utilisation optimale, vous devez créer des entrées manuellement dans le plan de projet qui correspondent à celles de Team Foundation.Si vous spécifiez une entrée non valide, une boîte de dialogue de validation s'affichera quand vous publierez le plan.
Pour ajouter les champs Zone et Itération à un plan de projet, effectuez ce qui suit :
Ajoutez deux champs d'entreprise personnalisés à Project Server, puis nommez-les Zone (TFS) et Itération (TFS).
Pour plus d'informations, consultez la page suivante sur le site web de Microsoft : Création de tables de choix et de champs d'entreprise personnalisés.
Exportez les mappages de champs depuis la collection de projets d'équipe où les projets d'équipe sont définis.
Pour plus d'informations, consultez Télécharger des mappages dans un fichier plus loin dans cette rubrique.
Ajoutez le code suivant au fichier :
<field tfsName="System.AreaPath" tfsMirrorName="Mirror.System.AreaPath" displayTfsField="true" displayTfsMirror="true"> <tfsToTarget> <target provider="ProjectServerStatusQueue" name="Area (TFS)" /> </tfsToTarget> <targetToTfs> <target provider="ProjectServerPublished" name="Area (TFS)" /> </targetToTfs> </field> <field tfsName="System.IterationPath" tfsMirrorName="Mirror.System.IterationPath" displayTfsField="true" displayTfsMirror="true"> <tfsToTarget> <target provider="ProjectServerStatusQueue" name="Iteration (TFS)" /> </tfsToTarget> <targetToTfs> <target provider="ProjectServerPublished" name="Iteration (TFS)" /> </targetToTfs> </field>
Importez le fichier de mappage de champs mis à jour, comme décrit dans la section Chargement de mappages vers le serveur plus loin dans cette rubrique.
Synchronisez votre plan de projet avec Project Server.
Ajoutez les deux nouvelles colonnes des nouveaux champs Zone (TFS) et Itération (TFS) à votre plan de projet.
Les modifications apportées aux champs Zone et Itération dans Team Foundation seront synchronisées avec ces champs dans votre plan de projet. De plus, vous pouvez mettre à jour ces champs dans Project et publier vos modifications sur Team Foundation si vous spécifiez des valeurs ayant été définies dans Team Foundation.
Retour au début
Télécharger des mappages dans un fichier
Notes
Vous ne pouvez télécharger des mappages que depuis une collection de projets d'équipe vers laquelle ils ont été chargés.Si vous voulez télécharger les mappages par défaut dans un fichier, vous devez d'abord charger les mappages par défaut, comme décrit dans la section Pour charger des mappages par défaut vers le serveur plus loin dans cette rubrique.Vous pouvez également modifier le contenu des mappages par défaut.Pour plus d'informations, consultez Référence d'éléments XML de mappages de champs pour l'intégration de Team Foundation Server et de Project Server.
Pour télécharger des mappages dans un fichier
Pour exécuter l'outil en ligne de commande TfsAdmin, ouvrez une fenêtre d'invite de commandes à l'endroit où Visual Studio ou Team Explorer est installé, puis entrez :
cd %programfiles%\Microsoft Visual Studio 11.0\Common7\IDE
Sur une édition 64 bits de Windows, remplacez %programfiles% par %programfiles(x86)%..
Tapez la commande suivante, puis appuyez sur Entrée.
TfsAdmin ProjectServer /DownloadFieldMappings /collection:tpcUrl /filePath:MappingFile
Remplacez tpcUrl par l'URL de la collection de projets d'équipe, puis remplacez MappingFile par le chemin d'accès et le nom du fichier que vous allez personnaliser.
Patientez jusqu'à ce que les messages suivants apparaissent :
Téléchargement de MappingFile vers la collection de projets d'équipe tpcUrl.
Vous avez téléchargé des mappages de champs ( MappingFile ) dans la collection de projets d'équipe tpcUrl.
Mettre à jour les mappages
Pour chaque champ à ajouter au fichier de mappage, vous devez spécifier l'élément field et ses sous-éléments et attributs. Pour plus d'informations, consultez Référence d'éléments XML de mappages de champs pour l'intégration de Team Foundation Server et de Project Server.
Charger les mappages vers le serveur
Pour charger les mappages vers le serveur, utilisez la commande UploadFieldMappings. L'option /usedefaultfieldmapping vous permet de charger les mappages par défaut. Sinon, vous devez spécifier un fichier qui contienne les éléments de mappage.
Pour charger des mappages par défaut vers le serveur
À l'invite de commandes, tapez la commande suivante, puis choisissez Entrée.
TfsAdmin ProjectServer /UploadFieldMappings /collection:tpcUrl /usedefaultfieldmappings
Remplacez tpcUrl par l'URL de la collection de projets d'équipe.
Patientez jusqu'à ce que les messages suivants apparaissent :
Chargement des mappages de champs par défaut vers CollectionUri.
Vous avez téléchargé les mappages de champs vers la collection de projets d'équipe CollectionUri.
Pour charger des mappages depuis un fichier
À l'invite de commandes, tapez la commande suivante, puis choisissez Entrée.
TfsAdmin ProjectServer /UploadFieldMappings /collection:tpcUrl /filePath:MappingFile /force
Remplacez tpcUrl par l'URL de la collection de projets d'équipe, puis remplacez MappingFile par le chemin d'accès et le nom de votre fichier de mappage personnalisé. Si vous mettez à jour des mappages existants, spécifiez /force.
Patientez jusqu'à ce que les messages suivants apparaissent :
Téléchargement des mappages de champs de MappingFile vers la collection de projets d'équipe tpcUrl.
Vous avez téléchargé les mappages de champs de MappingFile vers la collection de projets d'équipe tpcUrl.
Personnaliser l'onglet Project Server
Quand vous associez un plan de projet d'entreprise à un projet d'équipe, l'onglet Project Server est ajouté au formulaire d'élément de travail, comme le montre l'illustration ci-dessous. L'onglet est ajouté uniquement aux types d'éléments de travail que vous incluez dans la synchronisation des données. Pour personnaliser cet onglet, définissez les attributs displayTfsField ou displayTfsMirror sur true pour les champs qui doivent apparaître dans le formulaire.
Onglet Project Server
Important
Les mappages de champs définis pour la collection de projets d'équipe détermine les champs qui apparaîtront sous l'onglet Project Server.Une fois cet onglet ajouté au type d'élément de travail d'un projet d'équipe, vous pouvez le mettre à jour en modifiant les mappages de champs de la collection.Si vous personnalisez manuellement l'élément de travail en ajoutant des champs à l'onglet Project Server ou en modifiant son emplacement dans le formulaire, il est possible que l'onglet ne soit plus mis à jour automatiquement la prochaine fois que vous apporterez des modifications aux mappages de champs.Si cela se produit, vous pouvez modifier l'onglet manuellement.Pour plus d'informations, consultez Éléments XML ajoutés à la définition du type d'élément de travail.
Pour plus d'informations sur chacun des champs par défaut qui apparaissent sous l'onglet Project Server, consultez Champs Project Server ajoutés à TFS pour prendre en charge la synchronisation de données.
Voir aussi
Tâches
Configurer l'intégration de TFS et Project Server
Concepts
Spécifier les types d'éléments de travail à synchroniser
Administrer l'intégration de Team Foundation Server et Project Server