Поделиться через


Справка по XML-элементу сопоставления полей для интеграции Team Foundation Server и Project Server

Настроив сопоставления полей, можно определить, какие поля в Visual Studio Team Foundation Server 2010 и Project Server следует продолжать синхронизировать и какие поля обновляются в очереди состояний Project Server и Team Foundation.

Примечание

Сопоставления полей для интеграции Team Foundation Server и Project Server отличается от файла сопоставления для Microsoft Project.Дополнительные сведения об этом файле см. в разделе Файл сопоставления полей Microsoft Project.

Пользователь поддерживает один набор сопоставлений полей для каждой коллекции командных проектов, содержащей командные проекты, которые требуется синхронизировать с Project Server. Чтобы извлечь сопоставления полей, можно загрузить их в файл из коллекции. После внесения изменений файл можно отправить в коллекцию, и изменения будут применены ко всем командным проектам, определенным для этой коллекции. Дополнительные сведения о загрузке или отправке сопоставлений полей см. в разделе Настройка сопоставления полей между Project Server и Team Foundation Server.

Содержание раздела

  • Обязательные поля

  • Сопоставленные поля по умолчанию

  • Атрибуты и элементы сопоставления

  • Сопоставления полей по умолчанию

Обязательные поля

Для поддержки синхронизации данных необходимо сопоставить следующие поля. После настройки полей, используемых для планирования работы, необходимо настроить сопоставления полей для ссылки на используемые поля.

  • System.Title необходимо сопоставить с pjTaskName.

  • System.AssignedTo необходимо сопоставить с pjResourceNames.

  • Поле, используемое для отслеживания начала выполнения работы в Team Foundation, необходимо сопоставить с pjTaskStart. По умолчанию — это поле Microsoft.VSTS.Scheduling.StartDate.

  • Поле, используемое для отслеживания завершенной работы в Team Foundation, необходимо сопоставить с pjTaskFinish. По умолчанию — это поле Microsoft.VSTS.Scheduling.FinishDate.

К началу

Сопоставленные поля по умолчанию

Для каждого поля в Team Foundation можно указать два сопоставления. В первом сопоставлении укажите поле в Project, которое поле в Team Foundation обновляет в очереди состояний. Во втором сопоставлении укажите поле в Project, которое обновляет поле в Team Foundation. Кроме того, можно указать, должно ли поле Team Foundation отображаться в форме рабочего элемента, а также задать способ обновления эталонных и зеркальных полей.

По умолчанию все сопоставленные поля Project являются также зеркальными, т. е. их значения сохраняются в Team Foundation.

Важно!

В большинстве конфигураций не следует удалять сопоставления полей по умолчанию, поскольку они необходимы для процесса синхронизации.Например, если план корпоративного проекта сопоставляется командному проекту, созданному из шаблона процесса на базе Microsoft Solutions Framework (MSF) для гибкой разработки программного обеспечения версии 5.0 или Capability Maturity Model Integration (CMMI) Process Improvement версии 5.0, не удаляйте сопоставления по умолчанию.

Однако если план сопоставляется командному проекту, созданному с использованием шаблона процесса MSF Scrum 1.0, может потребоваться удалить некоторые сопоставления по умолчанию.Если коллекция проектов содержит только командные проекты, созданные с использованием шаблона Scrum, при настройке двух серверных продуктов может возникнуть ошибка.Для наилучших результатов добавьте завершенную работу (Microsoft.VSTS.Scheduling.CompletedWork) и исходную оценку (Microsoft.VSTS.Scheduling.OriginalEstimate) в рабочие элементы, которые предполагается сопоставить.Дополнительные сведения см. в разделе Добавление полей в типы рабочих элементов при сопоставлении командному проекту, созданному из шаблона процесса Scrum 1.0.

В следующей таблице описываются сопоставления по умолчанию, назначенные полям в Team Foundation. Можно указать способ обновления эталонных и зеркальных полей. Для атрибута OnConflict можно задать значение PSWins, чтобы перезаписать значение в Team Foundation значением из Project Server. Если не задать атрибут OnConflict, поля будут иметь разные значения. Дополнительные сведения см. в таблице Атрибуты и элементы поля далее в этом разделе.

Дополнительные сведения о зеркальных полях и трех типах синхронизации см. в разделе Общие сведения о процессе синхронизации для интеграции Team Foundation Server и Project Server.

Поле Team Foundation

Поле Project

Отображение поля на вкладке Project Server формы рабочего элемента (displayTfsField)

Отображение зеркального поля на вкладке Project Server формы рабочего элемента (displayTfsMirror)

Обновление полей (OnConflict)

Название

Имя задачи

Нет

Нет

Значение в Project Server заменяет значение в Team Foundation.

Кому назначено

Ресурсы

Нет

Нет

Значение в Project Server заменяет значение в Team Foundation.

Оставшаяся работа

Оставшиеся трудозатраты ресурса (очередь состояний)

Оставшиеся трудозатраты задачи (Project Server)

Да

Да

Поддерживается каждое значение.

Завершенная работа

Фактические трудозатраты ресурса (очередь состояний)

Фактические трудозатраты задачи (Project Server)

Да

Да

Поддерживается каждое значение.

Исходная оценка

Базовые трудозатраты

Нет

Да

Значение в Project Server заменяет значение в Team Foundation.

Дата начала

Начало ресурса (очередь состояний)

Начало задачи (Project Server)

Нет

Нет

Значение в Project Server заменяет значение в Team Foundation.

Дата окончания

Окончание ресурса (очередь состояний)

Окончание задачи (Project Server)

Нет

Нет

Значение в Project Server заменяет значение в Team Foundation.

Можно отобразить больше полей Project на вкладке Project Server формы рабочего элемента в Team Foundation, если добавить их в сопоставления полей. Дополнительные сведения об этой вкладке см. в разделе Поля Project Server, добавляемые для поддержки синхронизации данных.

К началу

Атрибуты и элементы сопоставления

Используйте элемент field, чтобы указать ссылочное поле в Team Foundation для синхронизации. Все элементы field содержатся в элементах контейнера mappingFile, persistables и Microsoft.TeamFoundation.Sync.Mapping.Impls.FieldMapping.

Важно!

При сопоставлении поля в Team Foundation Server с полем в Project Server убедитесь в соответствии типов данных этих полей.В противном случае при попытке отправить сопоставления полей может появиться следующее сообщение об ошибке:

Индекс (отсчитываемый от нуля) должен быть больше или равен нулю, но меньше размера списка аргументов.

Дополнительные сведения см. в разделе Типы данных и условия сопоставления полей.

В следующем примере показана вложенная структура XML-элементов. Дополнительные сведения о просмотре сопоставлений по умолчанию см. в подразделе Файл сопоставления по умолчанию далее в этом разделе.

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

Синтаксис элементов полей

Следующий синтаксис определяет атрибуты элемента field:

<field tfsName="FieldName" tfsMirrorName="FieldMirrorName" displayTfsField="true | false" displayTfsMirror=" true | false" onConflict="PSWin">

Синтаксис целевого элемента

Следующий синтаксис определяет атрибуты элемента target:

<target provider="ProviderName" name="ProjectFieldName" />

Чтобы определить имя поля, укажите для сцепленного понятного имени префикс pj. Например, именем поля для диспетчера состояния является pjStatusManager, а именем поля для Custom 01 — pjCustom01.

К началу

Атрибуты и элементы поля

В следующей таблице описаны подэлементы и атрибуты элемента field. Поле Team Foundation сопоставляется с полем ресурса Project, значение которого должно обновляться в процессе синхронизации состояния. Поле Team Foundation сопоставляется с полем задачи Project, значение которого будет обновлять Team Foundation Server в процессе синхронизации публикации. Кроме того, сопоставляемые элементы полей должны соответствовать заданному условию. Дополнительные сведения см. в разделе Ограничения на сопоставление полей Project Server при интеграции с Team Foundation Server.

Элемент

Атрибут

Описание

field

Указывает поле в Team Foundation для сопоставления и способ сопоставления поля.

tfsName

Указывает ссылочное имя поля в Team Foundation для синхронизации. Необходимо указать поле, определенное в коллекции командных проектов. Можно перечислить все поля в коллекции, выполнив команду witadmin listfields. Дополнительные сведения см. в разделе Управление полями рабочих элементов [witadmin].

tfsMirrorName

Обязательный. Указывает ссылочное имя, под которым хранится значение поля Project Server в Team Foundation Server. Для ссылочного имени можно указать префикс Mirror. Например, можно указать Mirror.System.Title для System.Title.

ПримечаниеПримечание
Указанные зеркальные поля создаются автоматически.Не нужно добавлять зеркальные поля в определение типа рабочего элемента.

displayTfsField

Необязательный. По умолчанию для этого атрибута задано значение true. Если для этого атрибута задать значение true, поле будет отображаться на вкладке Project Server в форме рабочего элемента в Team Foundation. Если для этого атрибута задано значение false, поле не отображается в форме. По умолчанию в форме отображаются только поля "Завершенная работа" и "Оставшиеся трудозатраты".

displayTfsMirror

Необязательный. По умолчанию для этого атрибута задано значение true. Если для этого атрибута задать значение true, поле будет отображаться на вкладке Project Server в форме рабочего элемента в Team Foundation. Если для этого атрибута задано значение false, поле не отображается в форме.

onConflict

Необязательный. Указывает способ обновления эталонных и зеркальных полей обработчиком синхронизации. Единственным допустимым значением является PSWin.

Если для этого атрибута задать значение PSWin, значение поля обновляется, если текущее значение, публикуемое из Project Server, отличается от значения в отражении.

Если этот атрибут не определен, задайте поддержку двух наборов книг. Другими словами, значение в Project может отличаться от значения в Team Foundation. По умолчанию значения в Project всегда заменяют значения полей "Название", "Кому назначено", "Дата начала" и "Дата окончания". По умолчанию только поля "Завершенная работа" и "Оставшиеся трудозатраты" ведутся с двумя наборами книг.

tfsToTarget

Указывает имя поля в Project, которое обновится системой Team Foundation.

target

Указывает целевой элемент для получения обновлений из Team Foundation.

provider

Задает имя поставщика обновлений. Для tfsToTarget единственным допустимым значением является ProjectServerStatusQueue.

name

Указывает имя поля Project, которое будет обновлено значением в Team Foundation. Можно сопоставлять только встроенные или настраиваемые поля предприятия в Project Server. Список доступных полей см. в разделе Fields Available for Mapping to the Status Queue.

targetToTfs

Указывает сопоставление полей для синхронизации обновлений в Project Server с Team Foundation Server.

target

Указывает целевой элемент для получения обновлений из Project Server.

provider

Задает имя поставщика обновлений. Для targetToTfs единственным допустимым значением является ProjectServerPublished.

name

Указывает имя поля в Project, которое обновит поле в Team Foundation. Можно сопоставлять только встроенные или настраиваемые поля предприятия. Список доступных полей см. в разделе Fields Available for Mapping from Project Server to Team Foundation Only.

К началу

Сопоставления по умолчанию

В следующем коде перечисляются сопоставления полей по умолчанию, определенные при запуске команды TfsAdmin ProjectServer /UploadFieldMappings и указании параметра /useDefaultFieldMappings. Эти сопоставления можно загрузить в файл, а затем добавить в него элементы или изменить атрибуты перечисленных полей.

Список всех полей, добавленных в тип рабочего элемента при указании этого типа для участия в синхронизации данных, см. в разделе Поля Project Server, добавляемые для поддержки синхронизации данных.

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

К началу

См. также

Другие ресурсы

Ограничения на сопоставление полей Project Server при интеграции с Team Foundation Server

Поля Project Server, добавляемые для поддержки синхронизации данных

Управление сопоставлениями полей для интеграции Team Foundation Server и Project Server

Настройка сопоставления полей между Project Server и Team Foundation Server

Администрирование интеграции Team Foundation Server и Project Server

Журнал изменений

Дата

Журнал

Причина

Апрель 2011

Удалены поля "Завершенная работа" и "Оставшиеся трудозатраты" из списка полей, обязательных для сопоставления. Уточнен процесс сопоставления полей Team Foundation с полями задач и ресурсов Project на этапах синхронизации состояния и публикации. Указано, что требуется атрибут tfsMirrorName.

Исправление ошибки содержимого.