# Attribute Linker

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

Source: https://widgets.doorsnext.com/ru/widgets/attribute-linker/

- Дисциплина: Связи и трассируемость
- Где работает: Модуль IBM DOORS Next
- Поддерживаемые продукты: RM (IBM Engineering Requirements Management DOORS Next (Requirements Management))
- Изменяет данные
- Keywords: создать связи из атрибута, импорт трассируемости, Parent ID, связи после импорта Excel, импорт ReqIF, миграция DOORS 9, старый идентификатор, массовое создание связей, трассируемость
- Версия: 1.19 (Выпущено 2026-10-27)
- Vendor: SmarterProcess (https://doorsnext.com, info@smarterprocess.pl)
- Ход работы: 1. Settings: атрибут со ссылками, тип связи, направление → 2. Whole module (При необходимости: Или выделите артефакты: Selection) → 3. Create links: после подтверждения → 4. Проверьте список и неразрешённые ссылки → 5. Отчёт об изменениях в Excel

## Что это и зачем
Когда требования приходят из Excel, ReqIF или DOORS 9, трассируемость почти никогда не приходит в виде связей. Она приходит текстом: столбец вроде «Parent ID», «Satisfies» или «Derived from» с одним или несколькими идентификаторами или старыми ключами. В стандартном интерфейсе каждую такую ссылку приходится превращать в связь вручную, артефакт за артефактом.

Attribute Linker читает этот атрибут, находит артефакт, на который указывает каждая ссылка, и создаёт связи за один запуск. Цели ищутся по идентификатору DOORS Next во всём проекте или по значению атрибута (например, «Legacy ID») в целевом модуле.

## Какие проблемы решает
- Трассируемость импортирована текстом в атрибут, а не связями.
- После миграции сотни или тысячи связей нужно создавать вручную.
- Ссылки, которые никуда не ведут или ведут на несколько артефактов, обнаруживаются гораздо позже.
- Нет записи о том, какие связи созданы и какие ссылки не удалось разрешить.

## Преимущества
- **Учтена каждая ссылка:** после запуска каждая ссылка указана в списке как Linked, Already linked, Not found, Ambiguous или Self reference.
- **Никаких догадок:** ссылка, подходящая к нескольким артефактам, пропускается и выводится в списке вместе с кандидатами.
- **Гибкое сопоставление:** по идентификатору DOORS Next или по старому ключу в атрибуте целевого модуля; списки через запятую, точку с запятой, пробел или с новой строки.
- **Безопасные настройки по умолчанию:** связи создаются в контексте модуля, как это делает DOORS Next внутри модуля; на базовых артефактах только по вашему выбору.
- **Запуски, которые можно возобновить:** существующие связи пропускаются, прогресс и Stop, продолжение после остановки на очень больших модулях, ошибки с Retry, список неразрешённых ссылок в Excel и отчёт об изменениях в Excel.

## Как пользоваться
1. Добавьте виджет на ELM Mini Dashboard рядом с модулем.
2. В разделе **Settings** нажмите **Change** и укажите **Reference attributes** со ссылками, разделители, способ поиска целей (**Artifact ID** или **Attribute in a module** целевого модуля), **Link type** и **Direction**, затем нажмите **Done**.
3. В разделе **Links** выберите **Whole module** или выделите артефакты и выберите **Selection**.
4. Нажмите **Create links**, прочитайте подтверждение и подтвердите. Виджет за один запуск находит ссылки и создаёт недостающие связи.
5. Проверьте блок результата и список **References**: фильтр **Not resolved** показывает каждую ссылку, которую не удалось связать, с причиной. При необходимости выгрузите их в Excel и скачайте отчёт об изменениях через **Log**.

## Полезно знать
- Неоднозначные ссылки и ссылки на сам артефакт никогда не связываются; они выводятся в списке и могут быть выгружены в Excel.
- Если значение атрибута изменилось во время запуска, этот артефакт не затрагивается и попадает в список: снова запустите Create links.
- Необязательная настройка очищает атрибут, когда все его ссылки связаны; по умолчанию она выключена.
- При работе в глобальной конфигурации целевой модуль и артефакты, найденные по ID, могут находиться и в другом компоненте той же глобальной конфигурации; тогда связи соединяют компоненты. В отдельном потоке (stream) или базовой линии (baseline) используется только открытый компонент.
- Всегда работайте в change set: только его отмена возвращает созданные связи.
