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

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

Предоставить пользователям возможность создавать ссылочные отношения между рабочими элементами и другими объектами в базе данных Team Foundation можно с помощью атрибута LinksControl элемента ControlType. Затем можно с помощью дочерних элементов LinksControlOptions определить параметры управления тем, какие связи члены команды могут добавлять в рабочий элемент, и на какие типы рабочих элементов или объекты могут указывать эти связи. Также можно определить столбцы, которые должны отображаться по умолчанию в списке связей в этом элементе управления.

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

В этом разделе

  • Задание элемента управления связями

  • Управление ссылочными отношениями

  • Ограничение ссылочных отношений рабочими элементами

  • Ограничение ссылочных отношений наборами изменений, гиперссылками и прочими элементами, не являющимися рабочими элементами

  • Ограничение ссылочных отношений определенными типами рабочих элементов

  • Задание столбцов для отображения по умолчанию

Задание элемента управления связями

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

Можно настроить форму таким образом, чтобы на одной вкладке отображались только связи "родитель-потомок", а на другой вкладке — все остальные типы связей. В следующем примере создается вкладка с названием "All Links", которую члены команды могут использовать для добавления связей всех типов. Также по умолчанию на вкладке отображаются столбцы "Идентификатор", "Тип рабочего элемента", "Название", "Кому назначено", "Состояние" и "Комментарий связи".

Элемент управления связями

Пример элемента управления ссылками, добавляемый в форму рабочего элемента

<Tab Label="All Links">
   <Control Type="LinksControl" Name="All" >
      <LinksControlOptions>
         <LinkColumns>
            <LinkColumn RefName="System.ID" />
            <LinkColumn RefName="System.WorkItemType" />
            <LinkColumn RefName="System.Title" />
            <LinkColumn RefName="System.AssignedTo" />
            <LinkColumn RefName="System.State" />
            <LinkColumn LinkAttribute="System.Links.Comment" />
         </LinkColumns>
      </LinksControlOptions>
   </Control>
</Tab>

К началу

Управление ссылочными отношениями

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

Элемент

Описание

WorkItemLinkFilters

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

ExternalLinkFilters

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

WorkItemTypeFilters

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

Filter

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

К началу

Ограничение ссылочных отношений рабочими элементами

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

<WorkItemLinkFilters FilterType="include | exclude | includeAll | excludeAll">
   <Filter LinkType="linkTypeRefName" FilterOn="reversename | forwardname" />
</WorkItemLinkFilters>

Атрибут

Описание

FilterType

Обязательный атрибут элемента WorkItemLinkFilters.

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

  • exclude: используется для запрета создания связей из типов связей, перечисленных в элементах Filter.

  • excludeAll: используется для запрета всех типов связей.

  • include: используется для разрешения только типов связей, перечисленных в элементах Filter.

  • includeAll: используется для разрешения создания связей из всех типов связей.

LinkType

Обязательный атрибут элемента Filter.

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

FilterOn

Необязательный атрибут элемента Filter.

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

  • forwardname: используется для фильтрации по имени прямой связи, определенном для типа связи.

  • reversename: используется для фильтрации по имени обратной связи, определенном для типа связи.

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

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

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

<Control Type="LinksControl" Name="UniqueName">
   <LinksControlOptions>
      <WorkItemLinkFilters FilterType="exclude">
         <Filter LinkType="MyLinks.LinkTypes.Requirement" /> 
         <Filter LinkType="System.LinkTypes.Hierarchy" /> 
      </WorkItemLinkFilters>
      <ExternalLinkFilters FilterType="excludeAll" /> 
   </LinksControlOptions>
. . .
</Control>

К началу

Ограничение ссылочных отношений наборами изменений, гиперссылками и прочими элементами, не являющимися рабочими элементами

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

<ExternalLinkFilters FilterType="include | exclude | includeAll | excludeAll">
   <Filter LinkType="externalLinkName" />
</ExternalLinkFilters>

Атрибут

Описание

FilterType

Необязательный атрибут элемента ExternalLinkFilters.

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

  • exclude: используется для запрета создания связей из типов связей, перечисленных в элементах Filter.

  • excludeAll: используется для запрета всех типов связей.

  • include: используется для разрешения только типов связей, перечисленных в элементах Filter.

  • includeAll: используется для разрешения создания связей из всех типов связей.

Если этот атрибут не задан, исключаются все связи с внешними рабочими элементами.

LinkType

Обязательный атрибут элемента Filter.

Задает ссылочное имя включаемого или исключаемого типа связи. Можно указать следующие типы связей:

  • "Исправлено в наборе изменений";

  • "Присоединение результата";

  • "Файл с исходным кодом";

  • "Результат теста";

  • "Гиперссылка на рабочий элемент".

Пример: исключение всех связей с элементами, не являющимися рабочими элементами

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

<Control Type="LinksControl" Name="UniqueName">
   <LinksControlOptions>
      <WorkItemLinkFilters FilterType="includeAll" /> 
      <ExternalLinkFilters FilterType="excludeAll" /> 
   </LinksControlOptions>
</Control>

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

<Control Type="LinksControl" Name="UniqueName">
   <LinksControlOptions>
      <WorkItemLinkFilters FilterType="excludeAll"/>
      <ExternalLinkFilters FilterType="include" /> 
         <Filter LinkType="Fixed in Changeset" />
      </ExternalLinkFilters> 
 </LinksControlOptions>
. . .
</Control>

К началу

Ограничение ссылочных отношений определенными типами рабочих элементов

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

<WorkItemTypeFilters Scope=" project | all" FilterType=" include | exclude | includeAll" >
   <Filter WorkItemType="workItemTypeReferenceName" />
</WorkItemTypeFilters>

Атрибут

Описание

Scope

Необязательный атрибут элемента WorkItemTypeFilters.

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

  • all: используется для разрешения создания связей со всеми типами рабочих элементов, заданными в элементах Filter.

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

Если этот атрибут не задан, разрешены связи со всеми типами рабочих элементов.

FilterType

Обязательный атрибут элемента WorkItemTypeFilters.

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

  • exclude: используется для запрета типов рабочих элементов, перечисленных в элементах Filter.

  • excludeAll: используется для запрета всех типов рабочих элементов.

  • include: используется для разрешения типов рабочих элементов, перечисленных в элементах Filter.

  • includeAll: используется для разрешения всех типов рабочих элементов.

WorkItemType

Обязательный атрибут элемента Filter.

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

Пример: ограничение ссылочных отношений рабочими элементами типа "задача"

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

<Control Type="LinksControl" Name="UniqueName">
   <LinksControlOptions>
      <WorkItemLinkFilters FilterType="include">
         <Filter LinkType="System.LinkTypes.Hierarchy" />
      </WorkItemLinkFilters>
      <ExternalLinkFilters FilterType="excludeAll"/>
      <WorkItemTypeFilters Scope ="project" FilterType="include" />
         <Filter WorkItemType="Task" />
      </WorkItemTypeFilters> 
   </LinksControlOptions>
. . .
</Control>

К началу

Задание столбцов для отображения по умолчанию

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

<LinkColumns>
   <LinkColumn RefName="reference name" | LinkAttribute=" link attribute name" />
</LinkColumns>

Порядок перечисления элементов определяет порядок отображения полей столбцов в форме рабочего элемента. Перечень ссылочных имен и атрибутов связей см. в разделе Справочник по полям рабочих элементов для Visual Studio ALM. Следующий синтаксис определяет отображение четырех столбцов: "Идентификатор", "Состояние", "Название" и атрибута связи "Комментарий".

<Control Type="LinksControl">
. . .
   <LinksControlOptions>
      <LinkColumns>
         <LinkColumn RefName="System.ID" />
         <LinkColumn RefName="System.State" />
         <LinkColumn RefName="System.Title" />
         <LinkColumn LinkAttribute="System.Links.Comment" />
      </LinkColumns>
   </LinksControlOptions>
</Control>

К началу

См. также

Ссылки

Элементы LinksControlOptions

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

Справочник по элементам управления, ограничениям и полям связей

Справочник по элементам типов связей

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