Изменение или добавление полей для поддержки запросов, отчетов и рабочего процесса

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

Чтобы добавить правила поля, добавить настраиваемое поле или изменить метку поля в форме рабочего элемента, измените определение XML для типа рабочего элемента (WIT). Чтобы изменить атрибут поля или переименовать поле, используйте средство командной строки witadmin.

Имена определений полей, атрибуты и правила

Настройка списка выбора

Списки выбора — это перечислимые значения, отображаемые в раскрывающемся меню в форме рабочего элемента и в столбце Значение в редакторе запросов. Метод, используемый для настройки списка выбора, варьируется в зависимости от поля.

Универсальная строка или целочисленные поля

Чтобы изменить список выбора для большинства строк или целочисленных полей в форме рабочего элемента, требуется изменить определение типа WIT. Например, чтобы добавить пользовательское поле Resolution и список выбора, укажите приведенный ниже XML-код.



Пользовательское поле и список выбора

Выберите список для настраиваемого поля
<FIELD name="Resolution" refname="MyCompany.Resolution" type="String">    
<ALLOWEDVALUES>
   <LISTITEM value="By Design" />
   <LISTITEM value="Duplicate" />
   <LISTITEM value="External" />
   <LISTITEM value="Fixed" />
   <LISTITEM value="Not Repro" />
   <LISTITEM value="Postponed" />
   <LISTITEM value="Won’t Fix" />
</ALLOWEDVALUES>
</FIELD>

Правила поддерживают объединение списков, ограничение перечня лиц, к которым применяется список, и задание условий, при которых список отображается в форме рабочего элемента. Правила определяют, будет ли список рассылки раскрываться для показа отдельных членов или он будет фильтроваться с помощью необязательных атрибутов expanditems и filteritems. Используйте глобальные списки, чтобы свести к минимуму работу, необходимую для обновления списка, общего для нескольких типов WIT или командных проектов.

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

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

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

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

Добавление правил в поле

Для добавления пользовательского поля или добавления правил в поля требуется изменить определение типа WIT. Применение правил можно ограничить только конкретными пользователями или группами. Большинство правил поддерживают атрибуты for или not, указывая, к кому применяется, а к кому не применяется правило.

Например, с помощью следующего фрагмента кода можно применить правило, в соответствии с которым после создания рабочего элемента только члены определенной пользователем группы TFS "Management Team" могут изменять поле "Stack Rank".

<FIELD name="Stack Rank" refname="Microsoft.VSTS.Common.StackRank" type="Double" reportable="dimension">
   <FROZEN not="[project]\Management Team" />
   <HELPTEXT>Work first on items with lower-valued stack rank. Set in triage.</HELPTEXT>
</FIELD>

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

Для выполнения следующей операции:

Используйте XML-элемент:

Задание всплывающей подсказки.

HELPTEXT

Ограничение допустимых значений поля.

CANNOTLOSEVALUE, EMPTY, FROZEN, NOTSAMEAS, READONLY и REQUIRED.

Копирование значения или указание значения по умолчанию.

COPY, DEFAULT и SERVERDEFAULT

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

Атрибуты правила поля VALIDUSER, for и not

Применение сопоставления шаблонов в строковом поле.

MATCH

Условное применение правил на основе значений в других полях.

WHEN, WHENNOT, WHENCHANGED и WHENNOTCHANGED

Дополнительные сведения о применении правил полей см. в разделе Справочник по всем XML-элементам FIELD.

Изменение XML-файла определения типа рабочего элемента для добавления правил или добавление пользовательского поля

Для добавления правил или пользовательского поля требуется экспортировать файл определения типа WIT, внести изменения, затем импортировать этот файл.

Процесс настройки объекта WIT

С помощью witadmin можно импортировать и экспортировать файлы определения. К другим инструментам, которые вы можете использовать, относятся редактор процессов, доступный при загрузке инструментов TFS Power Tools или диспетчер TFS Team Project Manager — проект ресурсов сообщества на CodePlex.

Любое поле, которое требуется использовать для отслеживания данных, нужно добавить в файл определения WIT. Это справедливо для всех полей, кроме системных (полей, ссылочные имена которых начинаются с System.), которые автоматически определены для каждого WIT.

Для добавления пользовательского поля нужно отредактировать определение WIT, чтобы добавить элемент FIELD в раздел FIELDS и элемент Control в раздел FORM.

Добавление пользовательского поля

  1. Если у вас нет прав администратора проекта для командного проекта, получите их.

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

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

    В 64-разрядной версии Windows замените %programfiles% на %programfiles(x86)%. Team Explorer можно загрузить бесплатно.

  3. Экспортируйте файл определения WIT.

    witadmin exportwitd /collection:CollectionURL /p:ProjectName /n:TypeName /f:"DirectoryPath/FileName.xml"

    Пример CollectionURL — http://fabrikamprime:8080/tfs/DefaultCollection.

  4. Найдите раздел XML-файла, определяющий поля типа и начинающийся с FIELDS.

  5. Добавьте элемент FIELD, указывающий имя пользовательского поля для добавления. Необходимо указать следующие обязательные атрибуты: понятное name (имя), refname (имя ссылки) и type. Для получения дополнительной информации см. Справочник по элементам FIELD (определение).

    Следующий код определяет пользовательское поле, Запрашивающий пользователь, с использованием ссылочного имени FabrikamFiber.MyTeam.Requestor и списка выбора разрешенных значений со значением по умолчанию "Клиент".

    <FIELD name="Requestor" refname="FabrikamFiber.MyTeam.Requestor" type="String" reportable="Dimension">
       <ALLOWEDVALUES>
          <LISTITEM value="Customer" />
          <LISTITEM value="Executive Management" />
          <LISTITEM value="Other" />
          <LISTITEM value="Support" />
          <LISTITEM value="Team" />
          <LISTITEM value="Technicians" />
          <DEFAULTVALUE value="Customer" />
        </ALLOWEDVALUES>
    </FIELD>
    

    Совет

    Элементы списка всегда отображаются в алфавитно-цифровом порядке независимо от способа их ввода в файл определения XML.

    Ссылочное имя, или refname, является программным именем данного поля.Все прочие правила должны ссылаться на это значение refname.Для получения дополнительной информации см. Соглашения об именовании объектов отслеживания рабочих элементов.

  6. Добавьте элемент Control в разделе FORM, чтобы пользовательское поле отображалось на форме в пределах группы элементов, где оно должно отображаться.

    Например, следующий фрагмент кода добавляет поле запрашивающего объекта, отображаемое под полем "Причина" в форме рабочего элемента.

    <Column PercentWidth="50">
       <Group Label="Status">
          <Column PercentWidth="100">
             <Control FieldName="System.AssignedTo" Type="FieldControl" Label="Assi&amp;gned To:" LabelPosition="Left" />
             <Control FieldName="System.State" Type="FieldControl" Label="&amp;State:" LabelPosition="Left" />
             <Control FieldName="System.Reason" Type="FieldControl" Label="Reason:" LabelPosition="Left" ReadOnly="True" />
             <Control FieldName="FabrikamFiber.MyTeam.Requestor" Type="FieldControl" Label="Requestor:" LabelPosition="Left" ReadOnly="True" />
          </Column>
       </Group>
    </Column>
    

    Совет

    Определение схемы для отслеживания рабочих элементов определяет все дочерние элементы элемента FORM в формате Camel, а все остальные элементы — прописными буквами.Если при проверке файлов определения типов возникнут ошибки, проверьте регистр элементов.Кроме того, структура открывающих и закрывающих тегов должна соответствовать правилам синтаксиса XML.

    Для получения дополнительной информации см. Справочник по XML-элементу Control.

  7. Импортируйте файл определения WIT.

    witadmin importwitd /collection:CollectionURL /p:ProjectName /f:"DirectoryPath/FileName.xml"

  8. Откройте TWA или Team Explorer для просмотра изменений. Если клиент уже открыт, обновите страницу.

    Следующая иллюстрация показывает, что форма рабочего элемента для элемента невыполненной работы по продукту теперь содержит новое поле.

    Пользовательское поле, добавленное в определение типа и в форму

Дополнительные сведения об использовании witadmin см. в разделе Импорт и экспорт типов рабочих элементов и управление ими [witadmin].

Изменение метки поля в форме рабочего элемента

  1. Экспортируйте файл определения WIT.

    witadmin exportwitd /collection:CollectionURL /p:ProjectName /n:TypeName /f:"DirectoryPath/FileName.xml"

  2. В секциях FORM и Layout найдите определение поля, которое требуется изменить. В этом примере изменяется метка поля Название.

    <Column PercentWidth="70">
      <Control Type="FieldControl" FieldName="System.Title" Label="Title" LabelPosition="Left" />
    </Column>
    
  3. Измените подпись для поля так, чтобы сотрудники португальского филиала, работающие над конкретным командным проектом, могли прочитать имя поля Название при использовании формы рабочего элемента. Включите португальское слово Titulo (Название) в поле "Название".

    <Column PercentWidth="70">
      <Control Type="FieldControl" FieldName="System.Title" Label="Title (Título):" LabelPosition="Left" />
    </Column>
    
  4. Импортируйте файл определения WIT.

    witadmin importwitd /collection:CollectionURL /p:ProjectName /f:"DirectoryPath/FileName.xml"

Измените атрибут существующего поля

Для изменения атрибута существующего поля используется средство witadmin changefield. Например, следующая команда изменяет понятное имя, заданное для MyCompany.Type, на метод вычисления.

witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.Type /name:"Evaluation Method"

В следующей таблице перечислены атрибуты, которые можно изменять с помощью средства changefield witadmin.

Атрибут

Описание

Тип данных

Указывает тип данных, который принимает поле. Как правило, невозможно изменять тип данных поля после его определения. Можно переключать тип данных поля только для полей типа HTML или PlainText.

Понятное имя

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

Индексируемый

Можно разрешить индексирование для поля, чтобы улучшить время отклика на запрос при фильтрации по полю. По умолчанию индексируются следующие поля: "Кому назначено", "Дата создания", "Кем изменено", "Состояние", "Причина", "Идентификатор области", "Идентификатор итерации" и "Тип рабочего элемента".

Атрибуты отчетности

Можно изменить имя поля, как оно отображается в отчете, ссылочное имя отчета и тип отчетности. Можно локализовать понятное имя отчета.

Тип отчетности определяет, записываются ли данные поля только в базу данных реляционного хранилища, в базу данных реляционного хранилища и в куб OLAP, или для формирования предварительно вычисленной суммы значений при обработке куба OLAP.

Полный список полей, поддерживающих отчеты, по умолчанию см. в разделе Справочник по включаемым в отчеты полям для Visual Studio ALM. Дополнительные сведения о кубе OLAP см. в разделе Перспективы и группы мер, предоставляемые в кубе служб Analysis Services для Visual Studio.

Синхронизация

Можно включить или отключить синхронизацию с Active Directory для полей, которые связаны с учетными записями пользователей.

Вопросы и ответы

Вопрос. Какие настройки я могу сделать, не отказываясь от использования мастера настройки компонентов для обновления командного проекта после обновления TFS?

Ответ. Вы можете добавить настраиваемые поля, настроить список выбора, добавить или изменить область и пути итерации, а также добавить правила для полей Мастер настройки компонентов обновит командные проекты, и вы сможете получить доступ к компонентам последней версии.

Узнать, какие еще настройки вы можете вносить без последствий, а каких следует избегать, можно в статье Настройка отслеживания хода выполнения работы: оценка влияния обслуживания и обновления перед настройкой.

В. Где можно получить сведения обо всех полях и атрибутах полей, которые уже определены для моего командного проекта?

О. Алфавитный указатель полей, определенных в шаблонах процессов TFS по умолчанию, см. в разделе Справочник по полям рабочих элементов для Visual Studio ALM.

В дополнение к изменяемым атрибутам полей рабочих элементов у каждого поля есть несколько неизменяемых и практически скрытых атрибутов. Можно производить поиск назначение этих полей с помощью средства решения полей рабочих элементов. Открыть это средство можно из многофункционального инструмента "Редактор процессов" после установки TFS Power Tools.

Обозреватель полей рабочего элемента

Обозреватель полей рабочего элемента

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

В. Как добавить поле, поддерживающее интеграцию с тестированием, сборкой и системой управления версиями?

О. Несколько типов WIT содержат поля, предоставляющие информацию, которая создается автоматизированными процессами, интегрирующимися с Team Foundation Build, Microsoft Test Manager или Team Foundation (подсистема контроля версий). Для добавления одного из этих полей в пользовательские WIT необходимо изменить определение WIT в соответствии с приведенными ранее в этом разделе инструкциями.

Например, можно добавить поля "Найдено в сборке" и "Интегрировано в сборку", отображаемые в определениях типов для ошибок. Эти поля связывают ошибки со сборками, в которых они обнаружены или исправлены. Можно использовать следующий фрагмент кода для добавления этих полей в определение типа рабочего элемента.

<FIELD name="Found In" refname="Microsoft.VSTS.Build.FoundIn" type="String" reportable="dimension">
    <HELPTEXT>Product build number (revision) in which this item was found</HELPTEXT>
</FIELD>
<FIELD name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild" type="String" reportable="dimension">
    <HELPTEXT>Product build number this bug was fixed in</HELPTEXT>
</FIELD>

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

В. Когда следует использовать глобальный список вместо простого списка выбора?

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

В. Существуют ли ограничения на изменение системных полей?

Ответ. Да. Невозможно переименовать системные поля и нельзя применить к ним правила. Например, невозможно копировать или задать пустыми поля, используемые для отслеживания пользователя, создавшего, изменившего или закрывшего рабочий элемент, или поля даты и времени, используемые системой.

Имена всех системных полей начинаются с префикса System (например, System.ID). Все системные поля определены для всех типов WIT, независимо от того, включены ли они в определение типа WIT. Дополнительные сведения о каждом из полей см. в разделе Справочник по полям рабочих элементов для Visual Studio ALM.

В. Имеется ли какая-либо последовательность оценки правил?

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

В. Как назвать поля для использования в отчетности?

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

В. Существует ли возможность ограничить число имен, отображаемых в поле "Кому назначено"?

Ответ. Да. По умолчанию в раскрывающемся меню поля "Кому назначено" отображаются все пользователи, получившие доступ к серверу TFS. Это группа допустимых пользователей по умолчанию. Исключение из этого правила — в Team Web Access контекстные меню, которые поддерживают назначение рабочих элементов, ограничены членами команды.

Наиболее эффективный способ применения ограничений безопасности — создать пользовательские группы и управлять ими в Windows или в TFS.

  1. Создайте требуемую группу безопасности и добавьте в нее учетные записи. Например, создайте новую группу Участники команды. См. раздел Добавление пользователей в командные проекты.

  2. Измените файл определения для каждого типа рабочего элемента, для которого нужно ограничить выбор пользователей. Добавьте элемент VALIDUSER в определение элемента FIELD для поля "Кому назначено" и укажите группу TFS.

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

    <FIELD name="Assigned To" refname="System.AssignedTo" type="String" reportable="dimension" syncnamechanges="true">
       <HELPTEXT>The person currently working on this task</HELPTEXT>
       <ALLOWEXISTINGVALUE />
       <VALIDUSER group="Team Contributors" />
    </FIELD>
    

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

В. Как добавить в поле пользовательские элементы управления?

О. С помощью объектной модели для отслеживания рабочих элементов можно программным образом создавать, изменять и находить ошибки, задачи и другие типы рабочих элементов. Можно также создавать собственные пользовательские элементы управления, расширяющие функциональные возможности формы рабочего элемента.

Например, можно добавить следующие пользовательские элементы управления, которые доступны через проект CodePlex Пользовательские элементы управления для отслеживания рабочих элементов TFS:

  • элемент управления для снимков экрана, позволяющий выполнять операции вырезания и вставки изображений в поле HTML;

  • элемент управления веб-браузера, позволяющий пользователю размещать веб-страницу и передавать ей значения полей;

  • элемент управления с несколькими значениями, позволяющий вводить в поле несколько значений за счет отображения списка флажков.

В. Как изменить сопоставление полей, поддерживающее интеграцию проекта с TFS?

О. Командные проекты, созданные из шаблона процесса TFS по умолчанию, включают в себя файл сопоставления Microsoft Project по умолчанию. При использовании Project для планирования и отслеживания рабочих элементов, хранящихся в TFS, может потребоваться сопоставить дополнительные поля Project или изменить способ публикации и обновления поля TFS. Это можно сделать, настраивая файл сопоставления Microsoft Project.

Подробнее об использовании Project с рабочими элементами TFS см. в разделе Создание невыполненной работы и задач с помощью Project.

В. Как лучше всего управлять большим числом пользовательских полей?

О. Если необходимо добавить большое количество пользовательских полей, которые будут использоваться в нескольких типах WIT или в различных командных проектах, используйте глобальный рабочий процесс. Операции обслуживания упрощаются за счет поддержки глобального набора полей и списков выбора с помощью глобального рабочего процесса. См. раздел Справка по XML-элементу глобального рабочего процесса.

В. Как удалить поле?

О. При удалении поля из определенного типа рабочего элемента оно не удаляется из коллекции или с сервера баз данных, даже если на него больше не ссылается ни один тип рабочего элемента (WIT). Чтобы удалить поле, выполните следующие действия.

  1. Удалите определение FIELD из всех определений типов WIT и из всех глобальных рабочих процессов, которые ссылаются на него.

  2. Убедитесь, что поле не используется. Например:

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact
    
    Field: MyCompany.CustomContact
    Name: Custom Contact
    Type: String
    Reportable As: dimension
    Use: Not In Use
    Indexed: False
    
  3. Удалите поле. Например:

    witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomContact
    
  4. Если удаленное поле использовалось в отчетах, перестройте хранилище данных, чтобы удалить из него старое поле и его значения.

Для получения дополнительной информации см. Управление полями рабочих элементов [witadmin].

В. Какие другие области можно настраивать?

О. См. раздел Подробная информация о возможностях настройки в Visual Studio TFS.

В. Куда можно обратиться с другим вопросом?

Ответ. Чтобы найти ответы или задать вопросы, посетите форум Team Foundation Server — Project Management & Work Item (Team Foundation Server: управление проектами и рабочими элементами).