Управление полями рабочих элементов [witadmin]

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

  • Команда changefield изменяет один или несколько атрибутов поля. Изменяя один из следующих атрибутов, вы изменяете его для всех типов рабочих элементов и командных проектов в коллекции командных проектов.

    • Тип данных для полей PlainText и HTML.

      Важно!

      При переходе на Team Foundation Server с более ранних версий назначение типа для поля Описание (Описание системы) автоматически преобразуется из PlainText в HTML.С помощью команды changefield можно восстановить содержимое этого поля, в котором будет отображаться обычный текст.

    • Понятное имя, которое отображается в запросе рабочего элемента. Это имя может отличаться от того, которое отображается в форме рабочего элемента.

    • Атрибуты отчета включают имя поля, как оно отображается в отчете, ссылочное имя отчета и тип отчетности.

    • Синхронизация с Active Directory — можно включить или отключить синхронизацию полей имен людей.

  • Команда deletefield удаляет указанное поле.

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

  • Команда listfields выводит список атрибутов всех полей или указанного поля.

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

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

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

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

Примечание

Создавать и изменять поля рабочих элементов можно с помощью редактора процессов, средства из набора Power Tools для Visual Studio.Это средство не поддерживается.Дополнительные сведения см. в следующей статье: Team Foundation Server Power Tools.

Требования

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

  • Для удаления или переименования полей или изменения их атрибутов необходимо быть членом группы безопасности Администраторы Team Foundation или Администраторы коллекции проектов.

Для получения дополнительной информации см. Справочник по разрешениям Team Foundation Server.

Примечание

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

witadmin changefield /collection:CollectionURL /n:RefName    [/name:NewName]     [/syncnamechanges:true | false]    [/reportingname:ReportingName]     [/reportingrefname:ReportingRefName]    [/reportingtype:Type]    [/reportingformula:Formula]    [/type:PlainText | HTML]    [/noprompt]

witadmin deletefield /collection:CollectionURL /n:RefName [/noprompt]

witadmin indexfield /collection:CollectionURL /n:Name /index:on|off 

witadmin listfields /collection:CollectionURL /n:RefName [/unused]

Параметры

Параметр

Описание

/collection:CollectionURL

Задает универсальный код ресурса (URI) коллекции командных проектов. URI необходимо указать в следующем формате: http://ИмяСервера:Порт/ИмяВиртуальногоКаталога/ИмяКоллекции.

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

http://ИмяСервера:Порт/ИмяКоллекции.

/n:RefName

/n:Name

Ссылочное имя поля рабочего элемента.

/index

Задает включение или отключение индексирования для указанного поля. Укажите параметр on для включения и off для отключения индексирования.

/name:NewName

Задает новое имя для поля.

/syncnamechanges

Задает использование поля рабочего элемента для хранения имен и обновления при внесении изменений в Active Directory или в рабочей группе. Этот параметр допустим, только если для параметра typename указано поле с типом данных «строка».

Для включения синхронизации поля данных задайте значение true, а для отключения — значение false.

/reportingname:ReportingName

Задает имя поля в хранилище данных, которое будет использоваться для создания отчетов.

/reportingrefname:ReportingRefName

Задает ссылочное имя поля в хранилище данных, которое будет использоваться для создания отчетов.

/reportingtype:Type

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

  • dimension: используется для типов полей «Целое», «Строка» или «Дата и время».

  • detail: используется для типов полей «Целое», «Двойное», «Строка» или «Дата и время».

  • measure: используется для типов полей «Целое» и «Двойное». Тип статистической обработки по умолчанию — «сумма». Можно указать другой тип статистической обработки, используя параметр formula.

  • none: используется для отключения возможности создания отчетов для поля.

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

/reportingformula:Formula

Задает формулу статистической обработки, которая будет использоваться, если поле передается как measure. Единственная поддерживаемая формула —sum.

/type:HTML | PlainText

Задает преобразование содержимого поля из PlainText в HTML или из HTML в PlainText. Этот параметр можно указать только для полей, тип назначения которых PlainText или HTML. См. раздел Справочник по элементам FIELD (определение).

/unused

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

/noprompt

Отключает запрос подтверждения.

/? or help

Отображает справку по команде в окне командной строки.

Примечания

Индексированные поля

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

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

Синхронизация имен людей с Active Directory

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

Для всех системных полей со ссылками, в которых отображаются имена людей, необходимо задать для атрибута syncnamechanges значение true. Такие поля включают System.AuthorizedAs, System.AssignedTo, System.ChangedBy и System.CreatedBy. Синхронизация включена для всех полей с именами людей, которые определены в одном из шаблонов процессов по умолчанию. Для получения дополнительной информации см. Справочник по полям назначений и рабочих процессов.

После включения синхронизации в поле больше не отображается статическая строка. Вместо нее в нем отображается имя, связанное с учетной записью пользователя. При изменении имени пользователя в Active Directory или в рабочей группе в поле с атрибутом syncnamechanges, для которого задано значение true, автоматически отображается новое имя.

При назначении атрибута syncnamechanges строковому полю, поле всегда принимает допустимые имена пользователей. Тем не менее, поле не поддерживает имена групп, хранимые в Team Foundation Server или в Active Directory, если одно из следующих условий не соблюдается:

  • правило VALIDUSER указано для всех типов рабочих элементов;

  • правило VALIDUSER указано для типа рабочего элемента;

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

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

Атрибуты, которые можно изменить для каждого типа рабочего элемента

Изменив определение типа рабочего элемента, в котором отображается поле, можно изменить следующие атрибуты или значения, заданные для поля:

Примеры

Если не указано иначе, во всех примерах применяются следующие значения:

  • URI-адрес коллекции командных проектов: http://AdventureWorksServer:8080/tfs/DefaultCollection

  • Имя поля рабочего элемента: AdventureWorks.Field

  • Кодировка по умолчанию: UTF-8

Список полей

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

Просмотр атрибутов в поле рабочего элемента

  • Введите следующую команду, чтобы создать список атрибутов, определенных для указанного поля, например Microsoft.VSTS.Common.Issue.

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:Microsoft.VSTS.Common.Issue
    

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

    Field: Microsoft.VSTS.Common.Issue
    Name: Issue
    Type: String
    Reportable As: dimension
    Use: Adventure Works (Shared Steps), AW Future (Shared Steps), AW Current (Shared Steps)
    Indexed: False
    

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

Создание списка всех полей в коллекции командных проектов

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

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection
    

    Будут выведены описания всех полей для указанной коллекции проектов. См. раздел Справочник по полям рабочих элементов для Visual Studio ALM.

Создание списка полей, которые не используются

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

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /unused
    

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

    Field: Microsoft.VSTS.CMMI.TaskType
    Name: Task Type
    Type: String
    Reportable As: dimension
    Use: Not In Use
    Indexed: False
    
    Field: Microsoft.VSTSUE.Common.Flag
    Name: Flag
    Type: String
    Reportable As: dimension
    Use: Not In Use
    Indexed: False
    
    Field: Microsoft.VSTSUE.Common.Progress
    Name: Progress
    Type: String
    Reportable As: dimension
    Use: Not In Use
    Indexed: False
    

Переименование поля

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

Переименование поля рабочего элемента

  1. Введите следующую команду, чтобы изменить понятное имя, назначенное полю Microsoft.VSTS.Common.Rank, на Important Rank (Важный ранг).

    witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:Microsoft.VSTS.Common.Rank /name:"Important Rank"
    
  2. В запросе на подтверждение введите y и нажмите клавишу ВВОД. Дождитесь получения следующего сообщения:

    Field renamed.

Проверка импорта изменений в отдельный проект

  1. В Team Explorer нажмите кнопку ОбновитьОбновить.

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

  2. Нажмите кнопку Создать запрос, чтобы создать запрос.

  3. В редакторе запросов щелкните ссылку Щелкните здесь, чтобы добавить предложение, чтобы добавить строку, выберите пустую ячейку Поле и введите Rank в этой ячейке. Над списком результатов будет выведено следующее сообщение. Это сообщение указывает, что невозможно найти Rank.

    Запустите запрос, чтобы просмотреть результаты запроса. TF51005: Запрос ссылается на несуществующее поле. Причина ошибки: <<Rank>>.

  4. Удалите значение Rank в ячейке Поле и введите вместо него Important Rank.

  5. В ячейке Оператор выберите <> и введите «1» в ячейку Значение.

  6. На панели инструментов Запрос нажмите кнопку Выполнение запроса (Team Explorer)Выполнить.

  7. Откройте контекстное меню для любой строки в результатах и выберите пункт Параметры столбца. Прокрутите список Доступныестолбцы. Обратите внимание, что поля Rank больше нет, зато появилось поле Important Rank.

  8. Выберите Important Rank в поле Доступные столбцы, а затем нажмите кнопку > (добавить выбранные столбцы). Нажмите кнопку ОК.

    Обратите внимание, что понятное имя для поля Microsoft.VSTS.Common.Rank было изменено с Rank на Important Rank во всех компонентах построителя запросов и списке результатов.

  9. Закройте запрос. В приглашении сохранить запрос выберите Нет.

  10. Создайте новый рабочий элемент «Задача». Щелкните ссылку Новые рабочие элементы и выберите Задача.

    Этот рабочий элемент создается на основе измененного и импортированного вами типа рабочего элемента.

  11. Обратите внимание, что в поле Состояние метка для переименованного поля Rank не изменилась. Это связано с тем, что метки полей в формах рабочих элементов определяются родительским командным проектом и независимы от имени поля на уровне сервера, которое вы только что указали.

    Примечание

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

  12. Закройте созданную задачу и в запросе на сохранение рабочего элемента выберите Нет.

Изменение значения «передать как» для поля

Следующая команда задает возможность передачи типа «Дата и время» поля AdventureWorks.CreatedOn в измерение. Данные этого поля поступают в хранилище и базы данных Analysis Services, чтобы их можно было использовать для фильтрации отчетов.

witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:AdventureWorks.CreatedOn /reportingtype:dimension

Следующая команда задает возможность передачи типа «Двойное» поля AdventureWorks.Field в меру. Все меры агрегируются по сумме.

witadmin reportfield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:AdventureWorks.Field /reportingtype:measure

Включение синхронизации настраиваемых полей имен людей

Следующая команда включает синхронизацию для поля рабочего элемента AW.CustomerName, определенного для коллекции Collection1 на сервере AdventureWorksServer.

Проверка типа данных преобразуемого поля

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

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomerName
    

Включение синхронизации

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

    witadmin changefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.CustomerName /syncnamechanges:true
    
  2. Появится следующий запрос на подтверждение:

    This will change properties for field {0} on the Team Foundation Server. Do you want to continue?

  3. Введите 0, чтобы подтвердить изменение поля, или 1, чтобы отменить запрос.

    В случае успешного изменения запроса на экран будет выведено следующее подтверждение:

    The field was updated.

    В случае сбоя запроса появится сообщение об ошибке. Самые распространенные ошибки: попытка изменить поле со ссылкой на систему или попытка изменить поле, тип данных которого отличается от «Строка». Эти операции не поддерживаются.

Удаление поля

Прежде чем удалять поле, убедитесь, что оно не используется. Если поле используется, необходимо сначала удалить его из использующих его типов рабочих элементов, и только затем — из коллекции командных проектов. Следующая команда удаляет поле AdventureWorks.Field из коллекции Collection1:

witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:AdventureWorks.Field

Проверка того, что поле не используется

  1. Введите следующую команду, указав ссылочное имя для поля рабочего элемента, например MyCompany.MyProcess.MyField.

    witadmin listfields /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:MyCompany.MyProcess.MyField
    

    Просмотрите сведения, отображаемые для поля, и убедитесь, что в поле Use отображается значение «Not In Use», как показано в этом примере.

    Field: MyCompany.MyProcess.MyField
    Name: MyField
    Type: String
    Reportable As: dimension
    Use: Not In Use
    Indexed: False
    
  2. Если значение поля Use указывает, что поле используется, необходимо удалить его из каждого типа рабочего элемента для всех командных проектов в списке. Например, для поля Microsoft.VSTS.TCM.SystemInfo указывается, что оно используется типами рабочих элементов «Ошибка» и «Дефект кода» для четырех проектов: Arroyo, Desert, Palm и Springs.

    Field: Microsoft.VSTS.TCM.SystemInfo
    Name: System Info
    Type: Html
    Reportable As: None
    Use: Arroyo (Bug), Desert (Bug), Palm (Bug), Springs (Bug, Code Defect)
    Indexed: False
    

    Прежде чем удалять это поле, необходимо удалить его из всех типов рабочих элементов, указанных для всех командных проектов, в которых они определены. Чтобы удалить поле, необходимо изменить определение типа рабочего элемента, удалив элементы FIELD и Control, содержащие имя ссылки поля. См. Импорт и экспорт типов рабочих элементов и управление ими [witadmin], Справочник по элементам FIELD (определение) и Справочник по XML-элементу Control.

Удаление поля из коллекции командных проектов

  • Введите следующую команду, чтобы удалить поле MyCompany.MyProcess.MyField, а затем нажмите клавишу ВВОД.

    witadmin deletefield /collection:http://AdventureWorksServer:8080/tfs/DefaultCollection /n:RefName
    

    Чтобы завершить это действие, в запросе на подтверждение введите y.

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

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

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

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

См. также

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

Разрешение конфликтов схемы, возникающих в хранилище данных

Добавление и изменение полей рабочих элементов для поддержки отчетов

Справочник по полям рабочих элементов для Visual Studio ALM

Справочник по включаемым в отчеты полям для Visual Studio ALM

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

witAdmin. Настройка объектов для отслеживания рабочих элементов и управление этими объектами