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


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

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

Внимание

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

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

Что можно сделать с помощью команд поля witadmin

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

  • changefield: измените атрибуты поля, которые применяют широкие коллекции, включая:
    • Преобразование типов данных между PlainText и HTML форматами

    Внимание

    При обновлении Azure DevOps Server поле описания (System.Description) автоматически преобразуется в PlainTextHTML. changefield При необходимости используйте команду, чтобы вернуть эту команду.

    • Понятные имена , отображаемые в запросах рабочих элементов (могут отличаться от меток формы)
    • Атрибуты отчетов для интеграции с хранилищем данных
    • Синхронизация удостоверений с идентификатором Microsoft Entra id или Active Directory
  • deletefield: удаление неиспользуемых полей из коллекции
  • listfields: просмотр атрибутов полей и использования в проектах

Совет

  • Чтобы добавить глобальные поля в локальные XML-среды, измените глобальный файл рабочего процесса и импортируйте его в коллекцию.
  • Команда witadmin indexfield устарела. Индексирование полей происходит автоматически.

Запустите программу командной строки witadmin

Программа командной строки witadmin устанавливается в Visual Studio. Откройте окно командной строки и перейдите в каталог, в котором установлена Visual Studio. Вы также можете установить бесплатный выпуск Visual Studio Community .

Примечание.

Для Azure DevOps Services используйте последнюю версию Visual Studio.

Примечание.

Для локального сервера Azure DevOps используйте ту же или более позднюю версию Visual Studio. Например, используйте Visual Studio 2019 или более поздней версии для подключения к Azure DevOps Server 2019.

%programfiles(x86)%\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

Professional EnterpriseЗамените или в Community зависимости от установленной версии.

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

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

Совет

С помощью witadmin можно импортировать и экспортировать файлы определений. Другие средства, которые можно использовать, включают редактор процессов (требуется, чтобы вы установили версию Visual Studio). Установите редактор шаблона процесса из Visual Studio Marketplace.

Необходимые компоненты

Задача Необходимые разрешения
Список полей Просмотр набора разрешений на уровне проекта, чтобы разрешить проект в коллекции
Удаление или переименование полей Член группы безопасности администраторов коллекции проектов
Изменение атрибутов поля Член группы безопасности администраторов коллекции проектов

Дополнительные сведения см. в разделе Изменение разрешений на уровне коллекции проекта.

Примечание.

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

Синтаксис

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

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 listfields /collection:CollectionURL /n:RefName [/unused]  

Параметры

Параметр Description
/collection:CollectionURL Задает универсальный код ресурса (URI) коллекции проектов. Например:

Локальный формат:http://ServerName:Port/VirtualDirectoryName/CollectionName
Если виртуальный каталог не используется, используйте следующий формат: http://ServerName:Port/CollectionName
/n:RefName
/n:Name
Имя ссылки поля типа рабочего элемента.
/name:NewName Задает новое имя поля.
/syncnamechanges Указывает, чтобы использовать поле рабочего элемента для хранения имен и обновления изменений в идентификаторе Microsoft Entra, Active Directory или рабочей группе. Этот параметр действителен только в том случае, если для поля с типом данных string задано typenameзначение .

Укажите true , чтобы включить синхронизацию для поля данных. Укажите false , чтобы отключить синхронизацию для поля данных.
/reportingname:ReportingName Указывает имя поля в хранилище данных, которое будет использоваться для создания отчетов.
/reportingrefname:ReportingRefName Указывает имя ссылки поля в хранилище данных, которое будет использоваться для создания отчетов.
/reportingtype:Type Указывает, как поле используется в хранилище отчетов. Допустимы следующие значения:

- dimension: Используется для полей Integer, String или DateTime.
- detail: Используется для полей Integer, Double, String или DateTime.
- measure: Используется для целых и двойных полей. Тип агрегирования по умолчанию — sum. Можно указать другой тип агрегирования с помощью параметра формулы .
- none: Используется для отключения отчетов в поле.

Дополнительные сведения см. в разделе "Сведения о полях и атрибутах рабочих элементов".
/reportingformula:Formula Указывает формулу агрегирования, которая будет использоваться, когда поле сообщается как .measure Единственной поддерживаемой формулой является sum.
/type:HTML | PlainText Указывает, чтобы преобразовать содержимое поля из или из PlainTextHTMLHTMLPlainTextнего в . Этот параметр можно указать только для полей, назначение типов которых имеет PlainText значение или HTML. См . справочник по элементу FIELD (Definition).
/unused Выводит список всех полей, которые не используются любым проектом, определенным в коллекции проектов.
/noprompt Отключает запрос на подтверждение.
/? или help Отображает справку о команде в окне командной строки.

Синхронизация имен пользователей с идентификатором Microsoft Entra и Active Directory

Настройте поля настраиваемого имени пользователя для автоматического обновления при изменении имен пользователей в поставщике удостоверений.

Когда необходимо включить синхронизацию

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

Системные поля: все встроенные поля имени пользователя автоматически включают синхронизацию:

  • System.AssignedTo
  • System.ChangedBy
  • System.CreatedBy

Поддержка поставщиков удостоверений

Окружающая среда Поставщик удостоверений
Azure DevOps Services Майкрософт Ентра айди
Сервер Azure DevOps Active Directory или рабочая группа

Как работает синхронизация

Государство Поведение
Перед включением Поле отображает статические текстовые строки
После включения Поле отображает текущее имя пользователя от поставщика удостоверений
При изменении имен Поля с syncnamechanges=true автоматическим обновлением

Ограничения имени группы

Если атрибут включен syncnamechanges в поле String, он принимает допустимые имена пользователей, но не разрешает имена групп , если применяются какие-либо из этих условий:

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

Область конфигурации

Внимание

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

Дополнительные сведения можно найти здесь

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

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

Примеры

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

  • Универсальный код ресурса (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 указывает имя каждого проекта и тип рабочего элемента, в котором используется поле. Дополнительные сведения об атрибутах полей см. в разделе "Индекс полей рабочего элемента".

Вывод списка всех полей в коллекции проектов

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

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

Отображаются сведения о полях для именованной коллекции проектов. См . индекс полей рабочего элемента.

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

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

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рангу.

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

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

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

  1. В Team Explorer выберите Refresh"Обновить".

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

  2. Выберите новый запрос , чтобы создать запрос.

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

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

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

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

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

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

  8. Выберите важный ранг в поле "Доступные столбцы" и нажмите > кнопку (добавить выбранные столбцы). Выберите OK.

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

  9. Закройте запрос. Нажмите кнопку "Нет ", когда вам будет предложено сохранить запрос.

  10. Создайте рабочий элемент задачи. Выберите ссылку "Новые рабочие элементы" и нажмите кнопку "Задача".

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

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

    Примечание.

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

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

Изменение отчета в качестве значения для поля

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

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

Следующая команда указывает возможность сообщать о типе объекта Double field 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. Появится следующая строка подтверждения:

    Это приведет к изменению свойств поля {0} на сервере Azure DevOps Server. Вы действительно хотите продолжить?

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

    Если запрос на изменение выполнен успешно, появится следующее сообщение подтверждения:

    Поле было обновлено.

    Если запрос на изменение завершается сбоем, появится сообщение об ошибке. Наиболее распространенные ошибки, которые можно сделать, пытаются изменить системное справочное поле или попытаться изменить поле типа данных, отличного от String. Эти операции не поддерживаются.

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

Перед удалением поля убедитесь, что поле не используется. Если поле используется, необходимо сначала удалить поле из типов рабочих элементов, которые используют его перед удалением из коллекции проектов. Следующая команда удаляет поле 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  
    

    В сведениях, отображаемых для поля, убедитесь, что значение "Не используется", как показано в этом примере.

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

    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 содержащие имя ссылки на поле. См. сведения о импорте, экспорте и управлении типами рабочих элементов, справочником по элементам FIELD (Definition) и Control.

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

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

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

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