Partager via


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 2010 et Project Server qui doivent être synchronisés et les champs sont mis à jour dans la file d'attente d'état de Project Server et dans Team Foundation.

Notes

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 Personnalisation du 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 est mappé à un projet d'équipe créé à partir d'un modèle de processus basé sur un modèle de processus Microsoft Solutions Framework (MSF), Agile Software Development v5.0 ou Capability Maturity Model Integration (CMMI) Process Improvement v5.0.

Toutefois, si votre plan est mappé à un projet d'équipe créé à l'aide du modèle de processus Scrum 1.0 MSF, vous devrez peut-être 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. Pour plus d'informations, consultez Ajout de champs aux types d'éléments de travail lors d'un mappage vers un projet d'équipe ayant été créé à partir du modèle de processus Scrum 1.0.

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 les trois types de synchronisation, consultez Vue d'ensemble du processus de synchronisation pour Team Foundation Server et Project Server Integration.

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 Types de données et critères de mappage de champs.

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 Gestion des champs d'éléments de travail (witadmin).

tfsMirrorName

Obligatoire. 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.

RemarqueRemarque
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

Facultatif. 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

Facultatif. 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

Facultatif. Spécifie la façon dont le moteur de synchronisation met à jour les champs de référence et mis en miroir. La seule valeur valide est PSWin.

Lorsque cet attribut a la valeur PSWin, la valeur du champ est mise à jour lorsque la valeur actuelle publiée à partir de Project Server diffère de la valeur mise 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.

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.

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" />
        </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" />
        </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

Autres ressources

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

Gestion des mappages de champs pour l'intégration de Team Foundation Server et Project Server

Personnalisation du mappage de champs entre Project Server et Team Foundation Server

Administration de l'intégration de Team Foundation Server et Project Server

Historique des modifications

Date

Historique

Motif

Avril 2011

Suppression des champs Travail effectué et Travail restant dans la liste des champs obligatoires qui doivent être mappés. Clarification du mappage des champs dans Team Foundation aux champs de tâche et de ressource Project pendant les étapes de synchronisation des états et de synchronisation des publications. Indication du caractère obligatoire de l'attribut tfsMirrorName.

Résolution des bogues de contenu.