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


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

Путем настройки сопоставления полей можно указать, какие поля Visual Studio Team Foundation Server 2012 и сервере проекта (Майкрософт) должны быть метки, поля обновлены и сохраняются в очереди состояния сервера проекта и в 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) для гибкой разработки программного обеспечения или process improvement capability maturity model integration (CMMI).

Однако если в сопоставлении к командному проекту, который был создать с помощью шаблона процессов scrum Visual Studio, планов могут удалить некоторые сопоставления по умолчанию.Если коллекция проектов содержит только командные проекты, созданные с использованием шаблона Scrum, при настройке двух серверных продуктов может возникнуть ошибка.Для наилучших результатов добавьте завершенную работу (Microsoft.VSTS.Scheduling.CompletedWork) и исходную оценку (Microsoft.VSTS.Scheduling.OriginalEstimate) в рабочие элементы, которые предполагается сопоставить.Также потребуется удалить выписки рабочего процесса <EMPTY /> из определения типа задачи.Дополнительные сведения см. в разделе Изменения, необходимые для выполнения при сопоставлении к командному проекту, который был создан из шаблонов процессов scrum.

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

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

Поле 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 убедитесь в соответствии типов данных этих полей.В противном случае при попытке отправить сопоставления полей может появиться следующее сообщение об ошибке:

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

Дополнительные сведения см. в разделе Data Types and Field Mapping Criteria.

В следующем примере показана вложенная структура 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>

Gg412657.collapse_all(ru-ru,VS.110).gifСинтаксис элементов полей

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

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

Gg412657.collapse_all(ru-ru,VS.110).gifСинтаксис целевого элемента

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

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

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

К началу

Gg412657.collapse_all(ru-ru,VS.110).gifАтрибуты и элементы поля

В следующей таблице описаны подэлементы и атрибуты элемента 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 может отличаться от значения в 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.

transforms

Необязательный параметр.Элемент контейнера для элементов transform.

transform

transformType

Указывает тип преобразование для применения к полю.Можно указать только transformType для targetToTfs и доступна только для числовых типов полей.Единственным допустимым значением является ClearValueIfParent.

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

К началу

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

В следующем коде перечисляются сопоставления полей по умолчанию, определенные при запуске команды 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" />
            <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>

К началу

См. также

Ссылки

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

Основные понятия

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

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

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

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

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