Référence des éléments XML du mappage de champs pour l'intégration de Team Foundation Server et Project Server
En personnalisant les mappages de champs, vous pouvez définir les champs dans Visual Studio Team Foundation Server 2012 et Microsoft Project server doivent être conservés synchronisés et les champs sont mis à jour dans la file d'attente d'état de Project Server et dans Team Foundation.
[!REMARQUE]
Les mappages de champs pour l'intégration de Team Foundation Server avec Project Server sont distincts du fichier de mappage de Microsoft Project.Pour plus d'informations sur le dernier fichier, consultez Fichier de mappage de champs Microsoft Project.
Vous gérez un ensemble de mappages de champs pour chaque collection de projets d'équipe hébergeant des projets d'équipe à synchroniser avec Project Server.Pour extraire les mappages de champs, vous pouvez les télécharger dans un fichier à partir de la collection.Après avoir modifié le fichier, vous pouvez le télécharger dans la collection. Ainsi, les modifications s'appliqueront à tous les projets d'équipe définis pour cette collection.Pour plus d'informations sur le téléchargement des mappages de champs, consultez Personnaliser le mappage de champs entre Project Server et Team Foundation Server.
Dans cette rubrique
Champs obligatoires
Champs par défaut mappés
Mappage des éléments et des attributs
Mappages de champs par défaut
Champs obligatoires
Les champs suivants doivent être mappés pour prendre en charge la synchronisation de données.Si vous avez personnalisé les champs utilisés pour planifier le travail, vous devez personnaliser les mappages de champs pour référencer les champs que vous utilisez.
System.Title doit être mappé à pjTaskName.
System.AssignedTo doit être mappé à pjResourceNames.
Le champ que vous utilisez pour effectuer le début du travail dans Team Foundation doit être mappé à pjTaskStart.Par défaut, ce champ est Microsoft.VSTS.Scheduling.StartDate.
Le champ que vous utilisez pour effectuer le suivi du travail effectué dans Team Foundation doit être mappé à pjTaskFinish.Par défaut, ce champ est Microsoft.VSTS.Scheduling.FinishDate.
Retour au début
Champs par défaut mappés
Pour chaque champ dans Team Foundation, vous pouvez spécifier deux mappages.Dans le premier mappage, spécifiez le champ dans Project que le champ dans Team Foundation met à jour dans la file d'attente d'état.Dans le second mappage, spécifiez le champ dans Project qui met à jour le champ dans Team Foundation.En outre, vous pouvez indiquer si le champ dans Team Foundation s'affiche sur le formulaire d'élément de travail et spécifier le mode de mise à jour des champs de référence et mis en miroir.
Par défaut, tous les champs de Project mappés sont également mis en miroir, ce qui signifie que leurs valeurs sont stockées dans Team Foundation.
Important
Dans la plupart des configurations, vous ne devez pas supprimer les mappages de champs par défaut car le processus de synchronisation en a besoin.Par exemple, ne supprimez pas les mappages par défaut si votre plan de projet d'entreprise vers un projet d'équipe créé à partir d'un modèle de processus basé sur Microsoft Solutions Framework (MSF) for Agile Software développement ou l'amélioration des processus integration (CMMI) de modèle de maturity model integration).
Toutefois, si votre plan à un projet d'équipe créé à l'aide de le modèle de processus scrum d' Visual Studio , vous pouvez devoir supprimer certains mappages par défaut.Si votre collection de projets contient uniquement des projets d'équipe créés à l'aide du modèle Scrum, vous pouvez recevoir une erreur lors de la configuration des deux produits serveurs.Pour de meilleurs résultats, ajoutez Travail effectué (Microsoft.VSTS.Scheduling.CompletedWork) et Estimation d'origine (Microsoft.VSTS.Scheduling.OriginalEstimate) aux éléments de travail que vous projetez de mapper.De plus, vous devez supprimer les instructions de flux de travail d' <EMPTY /> de la définition de type de tâche.Pour plus d'informations, consultez Modifications requises pour effectuer lors d'un mappage vers un projet d'équipe créé à partir de le modèle de processus scrum.
Le tableau suivant décrit les mappages par défaut assignés aux champs dans Team Foundation.Vous pouvez indiquer le mode de mise à jour des champs de référence et mis en miroir.Vous pouvez définir OnConflict sur PSWins pour remplacer la valeur dans Team Foundation avec la valeur de Project Server.Si vous laissez l'attribut OnConflict non spécifié, les champs gèrent des valeurs différentes.Pour plus d'informations, consultez Éléments et attributs des champs plus loin dans cette rubrique.
Pour plus d'informations sur les champs mis en miroir et le processus de synchronisation, consultez l' Comprendre comment sont gérées les mises à jour de certains champs en particulier.
Champ Team Foundation |
Champ de projet |
Champ d'affichage sous l'onglet Project Server du formulaire de l'élément de travail (displayTfsField) |
Champ d'affichage mis en miroir sous l'onglet Project Server du formulaire de l'élément de travail (displayTfsMirror) |
Mises à jour de champs (OnConflict) |
---|---|---|---|---|
Titre |
Nom de la tâche |
Non |
Non |
La valeur dans Project Server remplace la valeur dans Team Foundation. |
Assigné à. |
Ressources |
Non |
Non |
La valeur dans Project Server remplace la valeur dans Team Foundation. |
Travail restant |
Travail restant de la ressource (file d'attente d'état) Travail restant de la tâche (Project Server) |
Oui |
Oui |
Chaque valeur est conservée. |
Travail effectué |
Travail réel de la ressource (file d'attente d'état) Travail réel de la tâche (Project Server) |
Oui |
Oui |
Chaque valeur est conservée. |
Estimation d'origine |
Travail planifié |
Non |
Oui |
La valeur dans Project Server remplace la valeur dans Team Foundation. |
Date de début |
Démarrage des ressources (file d'attente d'état) Démarrage des tâches (Project Server) |
Non |
Non |
La valeur dans Project Server remplace la valeur dans Team Foundation. |
Date de fin |
Fin des ressources (file d'attente d'état) Fin des tâches (Project Server) |
Non |
Non |
La valeur dans Project Server remplace la valeur dans Team Foundation. |
Vous pouvez afficher d'autres champs Project sous l'onglet Project Server d'un formulaire d'élément de travail dans Team Foundation si vous les ajoutez aux mappages de champs.Pour plus d'informations sur cet onglet, consultez Champs Project Server ajoutés pour prendre en charge la synchronisation de données.
Retour au début
Mappage des éléments et des attributs
Utilisez un élément field pour spécifier un champ de référence dans Team Foundation à synchroniser.Tous les éléments field sont contenus dans les éléments conteneurs mappingFile, persistables et Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping.
Important
Lorsque vous mappez un champ de Team Foundation Server à Project Server, assurez-vous de mettre en correspondance les types de données de ces champs.Sinon, l'erreur suivante peut s'afficher lorsque vous essayez de télécharger les mappages de champs :
L'index (base zéro) doit être supérieur ou égal à zéro et inférieur à la taille de la liste d'arguments.
Pour plus d’informations, consultez Data Types and Field Mapping Criteria.
L'exemple suivant illustre l'imbrication des structures des éléments XML.Pour afficher les mappages par défaut, consultez Fichier de mappage par défaut plus loin dans cette rubrique.
<mappingFile>
<persistables>
<Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
<field tfsName="System.Title" tfsMirrorName="Mirror.System.Title" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjTaskName" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskName" />
</targetToTfs>
</targetToTfs>
</field>
. . .
</Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
</persistables>
</mappingFile>
Syntaxe de l'élément Field
La syntaxe suivante définit les attributs de l'élément field :
<field tfsName="FieldName" tfsMirrorName="FieldMirrorName" displayTfsField="true | false" displayTfsMirror=" true | false" onConflict="PSWin">
Syntaxe des éléments cibles
La syntaxe suivante définit les attributs de l'élément target :
<target provider="ProviderName" name="ProjectFieldName" />
Pour déterminer le nom du champ, ajoutez le préfixe « pj » au nom convivial concaténé.Par exemple, le nom du champ du gestionnaire d'état est pjStatusManager, et le nom du champ Custom 01 est pjCustom01.
Retour au début
Éléments et attributs des champs
Le tableau suivant décrit les sous-éléments et les attributs de l'élément field.Vous mappez un champ Team Foundation à un champ de ressource Project dont vous voulez mettre à jour la valeur pendant la synchronisation des états.Vous mappez un champ Team Foundation à un champ de tâche Project dont vous la valeur doit mettre à jour Team Foundation Server pendant la synchronisation des publications.En outre, vous devez vous assurer que les unités des champs que vous mappez respectent les critères définis.Pour plus d’informations, consultez Restrictions du mappage des champs Project Server pour l'intégration avec Team Foundation Server.
Élément |
Attribut |
Description |
---|---|---|
field |
Spécifie le champ dans Team Foundation à mapper et le mode de mappage du champ. |
|
tfsName |
Spécifie le nom de référence du champ dans Team Foundation à synchroniser.Vous devez spécifier un champ défini dans la collection de projets d'équipe.Vous pouvez répertorier tous les champs dans une collection en exécutant la commande witadmin listfields.Pour plus d’informations, consultez Gérer des champs d'éléments de travail (witadmin). |
|
tfsMirrorName |
Requis.Spécifie le nom de référence sous lequel vous souhaitez stocker la valeur du champ Project Server dans Team Foundation Server.Vous pouvez ajouter au nom de référence le préfixe "Mirror". Par exemple, vous pouvez spécifier Mirror.System.Title pour System.Title.
Remarque
Les champs mis en miroir que vous spécifiez sont créés automatiquement.Vous n'êtes pas obligé d'ajouter des champs mis en miroir à la définition de type d'un élément de travail.
|
|
displayTfsField |
Optionnel.Par défaut, cet attribut a la valeur true.Si cet attribut a la valeur true, le champ s'affiche sous l'onglet Project Server du formulaire d'élément de travail dans Team Foundation.Si cet attribut a la valeur false, le champ ne s'affiche pas sur le formulaire.Par défaut, seuls les champs Travail effectué et Travail restant s'affichent sur le formulaire. |
|
displayTfsMirror |
Optionnel.Par défaut, cet attribut a la valeur true.Si cet attribut a la valeur true, le champ s'affiche sous l'onglet Project Server du formulaire d'élément de travail dans Team Foundation.Si cet attribut a la valeur false, le champ ne s'affiche pas sur le formulaire. |
|
onConflict |
Optionnel.Spécifie comment le moteur de synchronisation met à jour le champ de référence.La seule valeur valide est PSWin. Lorsque cet attribut a la valeur PSWin, la valeur du champ de référence est conservée lorsque la valeur actuelle publiée Project Server diffère de la valeur en miroir. Si vous ne définissez pas cet attribut, vous indiquez que les deux copies doivent être conservées.En d'autres termes, la valeur dans Project peut différer de la valeur dans Team Foundation.Par défaut, les valeurs dans Project remplacent toujours les valeurs des champs Titre, Assigné à, Date de début et Date de fin.Par défaut, seuls les champs Travail effectué et Travail restant sont conservés avec deux copies.Pour plus d’informations, consultez Mises à jour des champs qui contiennent des heures. |
|
tfsToTarget |
Spécifie le nom du champ dans Project que Team Foundation mettra à jour. |
|
target |
Spécifie la cible des mises à jour de Team Foundation. |
|
provider |
Spécifie le nom du fournisseur de mise à jour.Pour tfsToTarget, la seule valeur valide est ProjectServerStatusQueue. |
|
name |
Spécifie le nom du champ dans Project qui sera mis à jour avec la valeur présente dans Team Foundation.Vous pouvez mapper uniquement les champs personnalisés intégrés ou d'entreprise dans Project Server.Pour obtenir la liste des champs disponibles, consultez Fields Available for Mapping to the Status Queue. |
|
targetToTfs |
Spécifie le mappage de champs permettant de synchroniser les mises à jour de Project Server avec Team Foundation Server. |
|
target |
Spécifie la cible des mises à jour de Project Server. |
|
provider |
Spécifie le nom du fournisseur de mise à jour.Pour targetToTfs, la seule valeur valide est ProjectServerPublished. |
|
name |
Spécifie le nom du champ dans Project qui mettra à jour le champ dans Team Foundation.Vous pouvez mapper uniquement les champs personnalisés intégrés ou d'entreprise.Pour obtenir la liste des champs disponibles, consultez Fields Available for Mapping from Project Server to Team Foundation Only. |
|
transforms |
Optionnel.Élément conteneur de cet élément d' transform . |
|
transform |
transformType |
Spécifie le type de transformation à appliquer au champ.Vous pouvez spécifier qu' transformType pour targetToTfs et uniquement pour les types de champs numériques.La seule valeur valide est ClearValueIfParent. Lorsque le moteur de synchronisation détecte une hiérarchie à un élément de travail qui est synchronisée avec Project Server, il effectue une cigarette roulée pour que le travail et les assignations les envoyer à Project Server.Toutefois, avec transformType défini à ClearValueIfParent, le moteur de synchronisation efface les champs travail sur l'élément de travail parent dans Team Foundation Server pour éviter des données non valides dans les rapports standard d' Team Foundation Server . |
Retour au début
Mappages par défaut
Le code suivant répertorie les mappages de champs par défaut définis quand vous exécutez la commande TfsAdmin ProjectServer /UploadFieldMappings et que vous spécifiez l'option /useDefaultFieldMappings.Vous pouvez télécharger ces mappages dans un fichier, puis lui ajouter des éléments ou modifier les attributs des champs répertoriés.
Pour obtenir une liste de tous les champs ajoutés à un type d'élément de travail lorsque vous ajoutez ce type pour participer à la synchronisation de données, consultez Champs Project Server ajoutés pour prendre en charge la synchronisation de données.
<mappingFile>
<persistables>
<Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
<field tfsName="System.Title" tfsMirrorName="Mirror.System.Title" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjTaskName" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskName" />
</targetToTfs>
</field>
<field tfsName="System.AssignedTo" tfsMirrorName="Mirror.System.AssignedTo" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjTaskResourceNames" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskResourceNames" />
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.CompletedWork" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.CompletedWork" displayTfsField="true" displayTfsMirror="true">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjResourceActualWork" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskActualWork" />
<transforms>
<transform transformType="clearValueIfParent">
</transforms>
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.RemainingWork" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.RemainingWork" displayTfsField="true" displayTfsMirror="true">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjResourceRemainingWork" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskRemainingWork" />
<transforms>
<transform transformType="clearValueIfParent">
</transforms>
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.OriginalEstimate" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.OriginalEstimate" displayTfsField="false" displayTfsMirror="true" onConflict="PSWin">
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskBaselineWork" />
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.StartDate" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.StartDate" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjResourceStart" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskStart" />
</targetToTfs>
</field>
<field tfsName="Microsoft.VSTS.Scheduling.FinishDate" tfsMirrorName="Mirror.Microsoft.VSTS.Scheduling.FinishDate" displayTfsField="false" displayTfsMirror="false" onConflict="PSWin">
<tfsToTarget>
<target provider="ProjectServerStatusQueue" name="pjResourceFinish" />
</tfsToTarget>
<targetToTfs>
<target provider="ProjectServerPublished" name="pjTaskFinish" />
</targetToTfs>
</field>
</Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping>
</persistables>
</mappingFile>
Retour au début
Voir aussi
Référence
Gérer des mappages de champs pour l'intégration de Team Foundation Server et Project Server
Concepts
Restrictions du mappage des champs Project Server pour l'intégration avec Team Foundation Server
Champs Project Server ajoutés pour prendre en charge la synchronisation de données
Administrer l'intégration de Team Foundation Server et Project Server
Autres ressources
Personnaliser le mappage de champs entre Project Server et Team Foundation Server