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


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

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Внимание

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

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

  • changefield: изменяет один или несколько атрибутов поля. При изменении одного из следующих атрибутов измените его для всех типов рабочих элементов и проектов в коллекции проектов:
    • Тип данных для PlainText или HTML полей.

      Внимание

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

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

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

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

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

Примечание.

Команда witadmin indexfield устарела с помощью Azure DevOps Server 2019 и более поздних версий. Поля индексирования больше не требуются.

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

Чтобы запустить программу командной witadmin строки, откройте окно командной строки, в котором установлена Visual Studio. Средство witadmin командной строки устанавливает любую версию Visual Studio. Вы можете получить доступ к этому средству, установив бесплатную версию Visual Studio Community или Visual Studio Team Explorer.

Примечание.

Чтобы подключиться к Azure DevOps Services, рекомендуется использовать последнюю версию Visual Studio или Visual Studio Community.

Примечание.

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

Для Visual Studio 2022

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

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

Для Visual Studio 2019

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

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

для Visual Studio 2017;

%programfiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

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

В 32-разрядном выпуске Windows замените %programfiles(x86)% %programfiles%. Вы можете установить Visual Studio Community (который предоставляет доступ к Team Explorer) или Visual Studio Team Explorer 2017 бесплатно.

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

Совет

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

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

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

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

Примечание.

Даже при входе с правами администратора необходимо открыть окно командной строки с повышенными привилегиями, чтобы выполнить эту функцию на сервере под управлением 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 listfields /collection:CollectionURL /n:RefName [/unused]  

Параметры

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

Локальный формат: http://ServerName:Port/VirtualDirectoryName/CollectionName
Если виртуальный каталог не используется, используйте следующий формат: http://ServerName:Port/CollectionName
/n:RefName
/n:Name
Имя ссылки поля типа рабочего элемента.
/index Указывает, чтобы включить или отключить индексирование для указанного поля. Укажите , чтобы включить индексирование и отключить индексирование.
/name:NewName Задает новое имя поля.
/syncnamechanges Указывает, чтобы использовать поле рабочего элемента для хранения имен и обновления изменений в 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 Указывает, чтобы преобразовать содержимое поля из или из PlainText HTML HTML PlainTextнего в . Этот параметр можно указать только для полей, назначение типов которых имеет PlainText значение или HTML. См . справочник по элементу FIELD (Definition).
/unused Выводит список всех полей, которые не используются любым проектом, определенным в коллекции проектов.
/noprompt Отключает запрос на подтверждение.
/? или help Отображает справку о команде в окне командной строки.

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

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

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

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

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

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

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

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

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

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

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

    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. В Редактор запросов выберите ссылку "Щелкните здесь", чтобы добавить ссылку на предложение, чтобы добавить строку, выбрать пустую ячейку Поля и в ячейке введите ранг. Следующее сообщение, которое отображается над списком результатов. Это сообщение указывает, что не удается найти ранг.

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

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

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

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

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

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

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

  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.

Проверьте тип данных поля, которое требуется преобразовать

  1. Проверьте тип данных, назначенный полю, например 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} на Team Foundation 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 в запросе на подтверждение, чтобы завершить этот шаг.