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


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

Чтобы синхронизировать данные между планом корпоративного проекта и командным проектом, вам необходимо сопоставить поля рабочих элементов в Visual Studio Team Foundation Server (TFS) с полями в Microsoft Project Server. Вы можете добавить поля и указать способ их синхронизации, настроив сопоставления полей. Вы можете сопоставлять как встроенные, так и настраиваемые поля в Project. Например, вы можете совместно использовать данные, которые не связаны с расписаниями (например, места возникновения затрат, имена команд или состояние работоспособности), если добавите в сопоставления поля, которые содержат такие типы данных.

Для каждой коллекции командных проектов, содержащей командные проекты, которые требуется синхронизировать с Project Server, создается один набор сопоставлений полей. Следует определить сопоставления полей для каждой коллекции командного проекта, сопоставленной с экземпляром Project Web Access или Project Web App (PWA). Вы можете отправить сопоставления по умолчанию либо настроить и отправить файл сопоставлений. Чтобы отправить сопоставления по умолчанию, см. подраздел Отправка сопоставлений ниже.

Примечание

Сопоставления для интеграции TFS и Project Server отличаются от файла сопоставлений для Microsoft Project.Для получения дополнительной информации см. Настройка файла сопоставления полей Microsoft Project.

Как показано на следующем рисунке, вы настраиваете сопоставления за пять шагов:

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

Рабочий процесс для сопоставления полей PS-TFS

Примечание

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

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

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

  • Определение дополнительных полей для сопоставления

  • Загрузка сопоставлений в файл

  • Обновление сопоставлений

  • Отправка сопоставлений

  • (Необязательно.) Настройка вкладки "Project Server"

Примечание

Демонстрационное видео см. на следующей странице веб-сайта корпорации Майкрософт: Управление сопоставлением полей для интеграции Team Foundation Server и Project Server.

Требования

Для выполнения приведенных здесь процедур необходимо задать для разрешения Администрирование интеграции Project Server значение Разрешить. Кроме того, учетной записи службы для Team Foundation Server должно быть назначено разрешение Администрирование интеграции Project Server. Для получения дополнительной информации см. Назначение разрешений для поддержки интеграции TFS и Project Server.

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

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

  • Для синхронизации публикации данные в Team Foundation обновляются данными в Project Server. Чтобы указать поле в Project Server, обновляющее поле в Team Foundation, используется элемент targetToTfs.

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

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

В следующей таблице перечислен набор полей, сопоставленных между Team Foundation и Project Server. В таблице также указано, какие типы рабочих элементов используют эти поля в соответствии с шаблонами процессов по умолчанию в TFS. Вам не следует изменять эти сопоставления при сопоставлении с командным проектом, который был создан из шаблона процесса, основанного на Agile Software Development, или улучшении процесса Capability Maturity Model Integration (CMMI). Если вы осуществляете сопоставление с командным проектом, который был создан из шаблона процесса Scrum, потребуется внести некоторые изменения, описанные в подразделе Требуемые изменения при сопоставлении с командным проектом, созданным из шаблона процесса Scrum ниже.

Дополнительные сведения о сопоставлениях и синхронизации см. в разделе Справочник по XML-элементу сопоставления полей для интеграции TFS и Project Server.

Поле Team Foundation

Поле Project Server

Поле очереди состояния

Типы рабочих элементов в Agile

Типы рабочих элементов в CMMI

Типы рабочих элементов в Scrum

Заголовок

Имя задачи

Заголовок

Все

Все

Все

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

Ресурсы

Ресурсы

Все

Все

Все

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

Фактические трудозатраты задачи

Фактические трудозатраты ресурса

Задача

Задача

Нет

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

Оставшаяся работа задачи

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

Задача

Задача

Задача

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

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

  

Задача

Ошибка, запрос на изменение, проблема, требование, риск и задача

Нет

Дата начала

Начало задачи

Начало ресурса

Задача и пользовательская история

Задача и требование

Нет

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

Окончание задачи

Окончание ресурса

Задача и пользовательская история

Задача и требование

Нет

Требуемые изменения при сопоставлении с командным проектом, созданным из шаблона процесса Scrum

Существует два изменения, которые необходимо внести, чтобы обеспечить поток данных из командного проекта, созданного на базе шаблона процесса Microsoft Visual Studio Scrum. Вы должны добавить поля "Завершенная работа" и "Исходная оценка" в тип рабочего элемента "Задача", а также удалить те элементы, которые требуют, чтобы при изменении членом команды состояния на Готово или Удалено поле "Оставшаяся работа" было пустым.

Обновление определения типа задачи Scrum

  1. Откройте окно командной строки там, где установлены Visual Studio или Team Explorer, и введите следующее:

    cd %programfiles(x86)%\Microsoft Visual Studio 12.0\Common7\IDE
    

    В 32-разрядной версии Windows замените %programfiles(x86)% на %programfiles%.

  2. Чтобы экспортировать определение типа для задачи, введите следующую команду, подставляя свои данные для показанных в примере аргументов, где CollectionURL задает URL-адрес коллекции командных проектов, ProjectName — имя командного проекта, определенного в коллекции, а "DirectoryPath\FileName.xml" — имя и расположение экспортируемого файла. Затем нажмите клавишу ВВОД.

    witadmin exportwitd /collection: /p:"ProjectName" /n:"Task" /f:"DirectoryPath\FileName.xml"
    
  3. В текстовом редакторе или в Visual Studio откройте файл, который вы экспортировали.

  4. В разделе определения FIELDS добавьте данный фрагмент кода перед элементом для оставшейся работы:

    <FIELD name="Completed Work" refname="Microsoft.VSTS.Scheduling.CompletedWork" type="Double" reportable="measure" formula="sum">
       <HELPTEXT>The number of units of work that have been spent on this task</HELPTEXT>
    </FIELD>
    <FIELD name="Original Estimate" refname="Microsoft.VSTS.Scheduling.OriginalEstimate" type="Double" reportable="measure" formula="sum">
       <HELPTEXT>Initial value for Remaining Work - set once, when work begins. </HELPTEXT>
    </FIELD>
    
  5. В разделе <WORKFLOW> удалите следующий фрагмент кода из определений <STATE value="Done"> и <STATE value="Removed">:

    <FIELD refname="Microsoft.VSTS.Scheduling.RemainingWork">
       <EMPTY />
    </FIELD>
    
  6. В разделе <FORM> добавьте следующие элементы Control:

    <Control FieldName="Microsoft.VSTS.Scheduling.OriginalEstimate" Type="FieldControl" Label="Original Estimate:" LabelPosition="Left" />
    <Control FieldName="Microsoft.VSTS.Scheduling.CompletedWork" Type="FieldControl" Label="Completed:" LabelPosition="Left" />
    
  7. Сохраните и закройте файл.

  8. Импортируйте файл, подставив свои данные для показанных аргументов.

    witadmin importwitd /collection: /p:"ProjectName" /f:"DirectoryPath\FileName.xml"
    
  9. Обновите командный проект или страницу рабочих элементов, чтобы проверить изменения.

Дополнительные сведения см. в разделах Экспорт и импорт типов рабочих элементов [перенаправление], Определение полей рабочих элементов и Проектирование и настройка формы рабочего элемента [перенаправление].

Определение дополнительных полей для сопоставления

Определите следующие сведения для каждого из полей, которое вы хотите синхронизировать в дополнение к полям по умолчанию.

  • Имя ссылки поля в Team Foundation. Если вы хотите синхронизировать поле в Project Server с полем, которое требуется создать в Team Foundation, сначала создайте это поле в каждом из типов рабочих элементов, для которых выполняется синхронизация. Дополнительные сведения см. в разделах Справочник по полям рабочих элементов для Visual Studio ALM и Определение полей рабочих элементов.

  • Имя поля в Project Server, обновляющее поле в Team Foundation. Список доступных полей см. в разделе Ограничения на сопоставление полей Project Server при интеграции TFS и Project Server.

  • Имя обновляемого поля в Project Server и поля в Project Server, которое обновит поле зеркальной копии в Team Foundation Server.

  • Требуется ли отображать поля на форме рабочего элемента. Задайте для атрибута displayTfsField значение true у тех полей, которые должны отображаться на форме рабочих элементов. Задайте для атрибута displayTfsMirror значение true для формы рабочих элементов.

  • Требуется ли разрешать конфликты данных, позволяя значению поля в Team Foundation перезаписать значение поля в Project Server, или сохранить оба значения. Это решение определяет значение атрибута onConflict. Когда задан onConflict=”PsWins”, значение поля в Team Foundation перезаписывается значением поля в Project Server. Дополнительные сведения см. в разделе Элементы и атрибуты полей.

  • Дополнительные значения, которые требуется определить для поддержки списков выбора или настраиваемых таблиц подстановки в Project Server.

Ограничения для сопоставления данных

Когда вы определите, какие поля требуется сопоставить, примите во внимание следующие ограничения.

  • Вы можете отправлять из Project Server в Team Foundation Server только информацию уровня задач — поля pjTask*.

  • Вы можете отправлять из Team Foundation Server в очередь состояния Project Server только информацию уровня ресурсов — поля pjResource*.

  • Поле заголовка является единственным полем, которое можно отправить как в Team Foundation Server, так и в очередь состояния.

  • Для полей "Кому назначено", "Завершенная работа" и "Оставшаяся работа" автоматически вычисляется сводка. Вы не можете сопоставить дополнительные поля и вычислить для них сводку. Для получения дополнительной информации см. Работа со сверткой ресурсов в корпоративных проектах, сопоставленных командным проектам.

  • Вам следует убедиться, что типы данных или единицы измерения каждого сопоставляемого поля соответствуют условиям сопоставления полей для стандартных и настраиваемых корпоративных полей. Дополнительные сведения см. в подразделе "Критерии сопоставления типов данных и полей" раздела Ограничения на сопоставление полей Project Server при интеграции TFS и Project Server.

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

Для получения дополнительной информации см. Ограничения на сопоставление полей Project Server при интеграции TFS и Project Server.

Пример: сопоставление имени команды для отображения в Project

В следующем примере настраиваемое поле строки MyCompany.MyOrg.DevTeamName в Team Foundation сопоставляется с корпоративным настраиваемым текстовым полем в Project Server — My Company Team Name. Вы можете использовать данный пример, чтобы отобразить в Project Профессиональный имя команды, сопоставленной с задачей.

<field tfsName="MyCompany.MyOrg.DevTeamName" tfsMirrorName="Mirror.MyCompany.MyOrg.DevTeamName" displayTfsField="false" displayTfsMirror="false" onConflict="DoNothing">
   <tfsToTarget>
   <target provider="ProjectServerStatusQueue" name=" My Company Team Name" />
   </tfsToTarget>
   <targetToTfs>
      <target provider="ProjectServerPublished" name=" My Company Team Name" />
   </targetToTfs>
</field>

Ни одно из полей не отображается на форме рабочего элемента. Кроме того, если значения не совпадают, каждое поле сохраняет свое значение.

К началу

Пример: отображение путей к итерациям и областям в Project

Вы можете сопоставить поля Область (System.AreaPath) и Итерация (System.IterationPath) в Team Foundation, чтобы они отображались в ваших планах проектов. Поскольку эти поля путей в форме дерева часто изменяются, в Project их следует сопоставить в качестве текстовых полей. Руководители проектов, использующие эти поля, должны вручную ввести полный путь к области или итерации.

Важно!

Текущая реализация интеграции Team Foundation Server и Project Server не поддерживает автоматическую синхронизацию списков разрешенных значений, списков выбора, глобальных списков или списков путей в форме дерева, которые определены для полей, сопоставленных между двумя серверными продуктами.Рекомендуется вручную внести в план проекта записи, соответствующие аналогичным записям в Team Foundation.Если указана недопустимая запись, при публикации плана отображается диалоговое окно проверки.

Чтобы добавить поля области и итерации в план проекта, выполните следующие действия.

  1. Добавьте два настраиваемых корпоративных поля в Project Server, назначив им метки Area (TFS) и Iteration (TFS).

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

  2. Экспортируйте сопоставления полей из коллекции командного проекта, где определены командные проекты.

    Дополнительные сведения см. в подразделе Загрузка сопоставлений в файл ниже.

  3. Добавьте в файл следующий код:

    <field tfsName="System.AreaPath" tfsMirrorName="Mirror.System.AreaPath" displayTfsField="true" displayTfsMirror="true">
            <tfsToTarget>
              <target provider="ProjectServerStatusQueue" name="Area (TFS)" />
            </tfsToTarget>
            <targetToTfs>
              <target provider="ProjectServerPublished" name="Area (TFS)" />
            </targetToTfs>
          </field>
          <field tfsName="System.IterationPath" tfsMirrorName="Mirror.System.IterationPath" displayTfsField="true" displayTfsMirror="true">
            <tfsToTarget>
              <target provider="ProjectServerStatusQueue" name="Iteration (TFS)" />
            </tfsToTarget>
            <targetToTfs>
              <target provider="ProjectServerPublished" name="Iteration (TFS)" />
            </targetToTfs>
          </field>
    
  4. Импортируйте обновленный файл сопоставлений полей, как описано в подразделе Отправка сопоставлений ниже.

  5. Синхронизируйте план проекта с Project Server.

  6. Добавьте в план проекта два новых столбца для новых полей "Area (TFS)" и "Iteration (TFS)".

Изменения, внесенные в поля Область и Итерация в Team Foundation, будут синхронизированы вместе с полями в ваш план проекта. Кроме того, вы можете обновить эти поля в Project и опубликовать изменения в Team Foundation, если укажете значения, определенные в Team Foundation.

К началу

Загрузка сопоставлений в файл

Примечание

Вы можете загрузить сопоставления только из коллекции командного проекта, в которую они были отправлены.Если вы хотите загрузить сопоставления по умолчанию в файл, сначала необходимо отправить их в соответствии с описанием, приведенным в подразделе Порядок отправки сопоставлений по умолчанию ниже.Кроме того, можно скопировать содержимое сопоставлений по умолчанию.Для получения дополнительной информации см. Справочник по XML-элементу сопоставления полей для интеграции TFS и Project Server.

Порядок загрузки сопоставлений в файл

  1. Для запуска инструмента командной строки TfsAdmin откройте окно командной строки там, где установлено либо Visual Studio, либо Team Explorer, и введите следующее:

    cd %programfiles%\Microsoft Visual Studio 11.0\Common7\IDE
    

    В 64-разрядной версии Windows замените %programfiles% на %programfiles(x86)%..

  2. Введите следующую команду и нажмите клавишу ВВОД.

    TfsAdmin ProjectServer /DownloadFieldMappings /collection:tpcUrl /filePath:MappingFile
    

    Замените tpcUrl на URL-адрес коллекции командного проекта, а также MappingFile на путь и имя настраиваемого файла.

  3. Дождитесь появления следующих сообщений.

    Загрузка MappingFile в коллекцию командного проекта tpcUrl.

    Вы успешно загрузили файл сопоставлений полей MappingFile в коллекцию командного проекта tpcUrl.

Обновление сопоставлений

Для каждого поля, которое вы хотите добавить в файл сопоставлений, нужно указать элемент field, а также его дочерние элементы и атрибуты. Для получения дополнительной информации см. Справочник по XML-элементу сопоставления полей для интеграции TFS и Project Server.

Отправка сопоставлений

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

Порядок отправки сопоставлений по умолчанию

  1. В командной строке введите следующую команду и нажмите клавишу ВВОД.

    TfsAdmin ProjectServer /UploadFieldMappings /collection:tpcUrl /usedefaultfieldmappings
    

    Замените tpcUrl на URL-адрес коллекции командных проектов.

  2. Дождитесь появления следующих сообщений.

    Отправка сопоставлений полей по умолчанию в CollectionUri.

    Вы успешно отправили сопоставления полей в коллекцию CollectionUri.

Порядок отправки сопоставлений из файла

  1. В командной строке введите следующую команду и нажмите клавишу ВВОД.

    TfsAdmin ProjectServer /UploadFieldMappings /collection:tpcUrl /filePath:MappingFile /force
    

    Замените tpcUrl на URL-адрес коллекции командного проекта, а также MappingFile на путь и имя настраиваемого файла сопоставлений. Укажите параметр /force, если выполняется обновление имеющихся сопоставлений.

  2. Дождитесь появления следующих сообщений.

    Отправка MappingFile в коллекцию командного проекта tpcUrl.

    Вы успешно отправили файл сопоставлений полей MappingFile в коллекцию командного проекта tpcUrl.

Настройка вкладки "Project Server"

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

Вкладка "Project Server"

Поля Project Server по умолчанию

Важно!

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

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

См. также

Задачи

Настройка интеграции TFS и Project Server

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

Задание типов рабочих элементов для синхронизации

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