Partager via


Référence d'éléments XML de mappages de champs pour l'intégration de Team Foundation Server et de Project Server

Quand vous personnalisez les mappages de champs, vous pouvez définir quels champs de Visual Studio Team Foundation Server (TFS) et de Microsoft Project Server doivent être conservés lors de la synchronisation, et lesquels doivent être mis à jour dans la file d'attente des états de Project Server et de Team Foundation.

Notes

Les mappages de champs 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 sur le fichier de mappage, consultez Personnaliser le fichier de mappage des champs Microsoft Project.

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. Pour récupérer les mappages de champs, vous pouvez les télécharger sous forme de fichier depuis la collection. Une fois le fichier modifié, vous pouvez le charger vers la collection. Les modifications seront appliquées à l'ensemble des projets d'équipe définis dans la collection. Pour plus d'informations sur le téléchargement et le chargement des mappages de champs, consultez Personnaliser le mappage de champs entre TFS et Project Server.

Dans cette rubrique

  • Champs obligatoires

  • Champs par défaut mappés

  • Mappage d'éléments et d'attributs

  • Mappages de champs par défaut

Champs obligatoires

Les champs suivants doivent être mappés pour permettre la synchronisation des données. Si des champs personnalisés sont utilisés pour planifier le travail, vous devrez personnaliser les mappages de champs pour référencer les champs que vous utilisez.

  • System.Title doit être mappé vers pjTaskName.

  • System.AssignedTo doit être mappé vers pjResourceNames.

  • Le champ que vous utilisez pour effectuer le suivi du début des travaux dans Team Foundation doit être mappé vers pjTaskStart. Par défaut, ce champ est Microsoft.VSTS.Scheduling.StartDate.

  • Le champ que vous utilisez pour effectuer le suivi des travaux achevés dans Team Foundation doit être mappé vers pjTaskFinish. Par défaut, ce champ est Microsoft.VSTS.Scheduling.FinishDate.

Champs par défaut mappés

Pour chaque champ TFS, vous pouvez spécifier deux mappages. Dans le premier mappage, vous spécifiez le champ de Project que le champ de TFS mettra à jour dans la file d'attente des états. Dans le deuxième mappage, vous spécifiez le champ de Project qui mettra à jour le champ de TFS. De plus, vous pouvez spécifier si le champ TFS doit apparaître dans le formulaire d'élément de travail, ainsi que la façon dont les champs de référence et les champs miroir sont mis à jour.

Par défaut, tous les champs Project qui sont mappés sont également mis en miroir, ce qui signifie que leurs valeurs sont stockées dans TFS.

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, il ne faut pas supprimer les mappages par défaut si votre plan de projet d'entreprise est mappé vers un projet d'équipe créé à partir d'un modèle de processus basé sur Microsoft Solutions Framework (MSF) for Agile Software Development ou sur Capability Maturity Model Integration (CMMI) Process Improvement.

Cependant, si votre plan est mappé vers un projet d'équipe créé à l'aide du modèle de processus Visual Studio Scrum, vous devrez peut-être supprimer certains mappages par défaut.Si votre collection de projets contient uniquement des projets d'équipe créés à partir du modèle Scrum, un message d'erreur peut s'afficher quand vous configurez les deux produits serveurs.Pour un résultat optimal, ajoutez les champs Travail effectué (Microsoft.VSTS.Scheduling.CompletedWork) et Estimation d'origine (Microsoft.VSTS.Scheduling.OriginalEstimate) aux éléments de travail que vous comptez mapper.De plus, vous devrez supprimer les instructions de flux de travail <EMPTY /> de la définition de type de tâche.Pour plus d'informations, consultez Modifications requises en cas de mappage à un projet d'équipe créé à partir du modèle de processus Scrum.

Le tableau suivant décrit les mappages par défaut qui sont assignés aux champs de Team Foundation. Vous pouvez spécifier la manière dont vous voulez mettre à jour les champs de référence et les champs miroir. Vous pouvez définir OnConflict sur PSWins pour remplacer la valeur de Team Foundation par la valeur de Project Server. Si vous ne spécifiez pas l'attribut OnConflict, les champs conserveront chacun leur valeur. Pour plus d'informations, reportez-vous au tableau Éléments et attributs de champs plus loin dans cette rubrique.

Pour plus d'informations sur les champs miroir et le processus de synchronisation, consultez Comprendre comment sont gérées les mises à jour de certains champs en particulier.

Champ Team Foundation

Champ Project

Affiche le champ sous l'onglet Project Server du formulaire d'élément de travail (displayTfsField)

Affiche le champ miroir sous l'onglet Project Server du formulaire d'élément de travail (displayTfsMirror)

Mise à jour du champ (OnConflict)

Titre

Nom de la tâche

Non

Non

La valeur Project Server remplace la valeur dans Team Foundation.

Assigné à

Ressources

Non

Non

La valeur Project Server remplace la valeur dans Team Foundation.

Travail restant

Ressource Travail restant (File d'attente des états)

Tâche Travail restant (Project Server)

Oui

Oui

Chaque valeur est conservée.

Travail effectué

Ressources Travail réel (File d'attente des états)

Tâche Travail réel (Project Server)

Oui

Oui

Chaque valeur est conservée.

Estimation d'origine

Travail planifié

Non

Oui

La valeur Project Server remplace la valeur dans Team Foundation.

Date de début

Ressource Début (File d'attente des états)

Début de tâche (Project Server)

Non

Non

La valeur Project Server remplace la valeur dans Team Foundation.

Date de fin

Ressource Fin (File d'attente des états)

Fin de tâche (Project Server)

Non

Non

La valeur Project Server remplace la valeur dans Team Foundation.

Vous pouvez afficher davantage de champs Project sous l'onglet Project Server d'un formulaire d'élément de travail dans Team Foundation en les ajoutant aux mappages de champs. Pour plus d'informations sur cet onglet, consultez Champs Project Server ajoutés à TFS pour prendre en charge la synchronisation de données.

Mappage d'éléments et d'attributs

Vous pouvez utiliser un élément field pour spécifier un champ de référence 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

Quand vous mappez un champ de TFS vers Project Server, assurez-vous que les types de données des champs correspondent.Sinon, le message d'erreur suivant peut s'afficher si vous essayez de charger les mappages de champs :

L'index (de base zéro) doit être supérieur ou égal à zéro et inférieur à la taille de la liste des arguments.

Pour plus d'informations, consultez Restrictions du mappage des champs Project Server dans l'intégration de TFS et Project Server.

L'exemple suivant illustre la structure d'imbrication des éléments XML. Pour connaître 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 des éléments de champ

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 distinguer le nom de champ, ajoutez le préfixe "pj" au nom convivial concaténé. Par exemple, le nom de champ du gestionnaire d'état pourrait être pjGestionnaireÉtat, et le nom de champ de Personnalisé 01 pourrait être pjPersonnalisé01.

Éléments et attributs de champs

Le tableau suivant décrit les sous-éléments et les attributs de l'élément field. Vous mappez un champ Team Foundation vers un champ ressources Project dont vous voulez mettre à jour la valeur pendant la synchronisation des états. Vous mappez un champ Team Foundation vers un champ tâche Project dont la valeur mettra à jour Team Foundation Server pendant la synchronisation des publications. De plus, les unités des champs que vous mappez doivent répondre aux critères établis. Pour plus d'informations, consultez Restrictions du mappage des champs Project Server dans l'intégration de TFS et Project Server.

Élément

Attribut

Description

field

Spécifie le champ de Team Foundation à mapper et la manière dont il doit être mappé.

tfsName

Spécifie le nom de référence du champ de Team Foundation à synchroniser. Vous devez spécifier un champ défini dans la collection de projets d'équipe. Vous pouvez obtenir la liste de tous les champs d'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 stocker la valeur du champ Project Server dans Team Foundation Server. Vous pouvez ajouter le préfixe "Mirror" (miroir) au nom de référence. Par exemple, vous pouvez spécifier Mirror.System.Title pour System.Title.

Notes

Les champs miroir que vous spécifiez sont automatiquement créés.Vous n'avez pas à ajouter les champs miroir à la définition de type d'un élément de travail.

displayTfsField

Facultatif. Par défaut, cet attribut a la valeur true. Si cet attribut a la valeur true, le champ apparaît sous l'onglet Project Server du formulaire d'élément de travail dans Team Foundation. Si cet attribut a la valeur false, le champ n'apparaît pas dans le formulaire. Par défaut, seuls les champs Travail effectué et Travail restant figurent dans le formulaire.

displayTfsMirror

Facultatif. Par défaut, cet attribut a la valeur true. Si cet attribut a la valeur true, le champ apparaît sous l'onglet Project Server du formulaire d'élément de travail dans Team Foundation. Si cet attribut a la valeur false, le champ n'apparaît pas dans le formulaire.

onConflict

Facultatif. Spécifie la façon dont le moteur de synchronisation met à jour le champ de référence. La seule valeur valide est PSWin.

Quand cet attribut est défini sur PSWin, la valeur du champ de référence est mise à jour si la valeur actuelle qui est publiée depuis Project Server est différente de celle du miroir.

Si vous ne définissez pas cet attribut, vous indiquez que des versions parallèles doivent être conservées. En d'autres termes, la valeur de Project peut être différente de la valeur de Team Foundation. Par défaut, les valeurs de 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 peuvent contenir des valeurs différentes. Pour plus d'informations, consultez Updates to Fields that Contain Hours.

tfsToTarget

Spécifie le nom du champ de Project que Team Foundation mettra à jour.

target

Spécifie la cible qui doit recevoir les mises à jour de Team Foundation.

provider

Spécifie le nom du fournisseur de mises à jour. Pour tfsToTarget, la seule valeur valide est ProjectServerStatusQueue.

name

Spécifie le nom du champ de Project qui sera mis à jour avec la valeur de Team Foundation. Dans Project Server, vous ne pouvez mapper que des champs prédéfinis et des champs d'entreprise personnalisés. Pour obtenir la liste des champs disponibles, consultez Restrictions du mappage des champs Project Server dans l'intégration de TFS et Project Server.

targetToTfs

Spécifie le mappage de champ qui doit synchroniser les mises à jour de Project Server avec Team Foundation Server.

target

Spécifie la cible qui doit recevoir les mises à jour de Project Server.

provider

Spécifie le nom du fournisseur de mises à jour. Pour targetToTfs, la seule valeur valide est ProjectServerPublished.

name

Spécifie le nom du champ dans Project Server qui mettra à jour le champ dans Team Foundation. Vous ne pouvez mapper que des champs prédéfinis et des champs d'entreprise personnalisés. Pour obtenir la liste des champs disponibles, consultez Restrictions du mappage des champs Project Server dans l'intégration de TFS et Project Server.

transforms

Facultatif. Élément conteneur de l'élément transform.

transform

transformType

Spécifie le type de transformation à appliquer au champ. Vous pouvez uniquement spécifier transformType pour un targetToTfs, et uniquement pour les types de champs numériques. La seule valeur valide est ClearValueIfParent.

Quand le moteur de synchronisation détecte une hiérarchie sous l'élément de travail synchronisé avec Project Server, il calcule le cumul du travail et des assignations en vue de l'envoyer à Project Server. Cependant, si transformType est défini sur ClearValueIfParent, le moteur de synchronisation efface le contenu des champs de travail de l'élément de travail parent dans Team Foundation Server pour éviter que des données inexactes ne soient ajoutées aux rapports Team Foundation Server standard.

Mappages par défaut

Le code suivant répertorie les mappages de champs par défaut qui sont définis quand vous exécutez la commande TfsAdmin ProjectServer /UploadFieldMappings et spécifiez l'option /useDefaultFieldMappings. Vous pouvez télécharger ces mappages dans un fichier et y ajouter des éléments ou modifier les attributs des champs répertoriés.

Pour obtenir la liste de tous les champs ajoutés à un type d'élément de travail quand vous l'incluez dans la synchronisation des données, consultez Champs Project Server ajoutés à TFS 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>

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 dans l'intégration de TFS et Project Server

Champs Project Server ajoutés à TFS 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 TFS et Project Server