Редактор связей

Этот раздел предназначен для редактирования связей между сущностями.

Редактирование связей осуществляется для выбранной сущности в разделе Ресурсы → Домены.

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

О связях

Отношения между сущностями в доменах определяются при помощи связей.

Связь задается в схеме домена отдельным массивом, где хранятся ссылки на связанные сущности и ряд специальных параметров.

Как и сущность, связь может обладать атрибутами.

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

Связи для сущности добавляются в разделе сущности домена, созданного по настроенной схеме, в панели компактного представления сущности.

  • 1-1 — позволяет связать сущность с другой сущностью по принципу "один — к одному". Сущности могут быть связаны этим типом связи только друг с другом.

    Пример связи (1-1)

    ПользовательИД

    У сущности Пользователь может быть только один уникальный идентификационный номер, и наоборот.

  • 1-N (или N-1) — позволяет связать одну сущность с несколькими сущностями по принципу "один — ко многим".

    Пример связи (N-1)

    Учетная записьПользователь

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

  • N-N — позволяет построить связи между многими сущностями по принципу "многие — ко многим". Несколько сущностей могут быть связаны этим типом связи с несколькими сущностями.

    Пример связи (N-N)

    СерверАдминистратор Сущность Сервер можно привязывать к нескольким администраторам. Администратор* также может быть связан с несколькими серверами.

В схеме домена мы всегда связываем одну сущность с другой. При этом в доменах, созданных на основе схемы, связываются объекты (экземпляры сущностей). Таким образом, в связях 1-1 связываются два объекта, а в связях 1-N и N-N один или несколько объектов связываются с несколькими объектами.

Симметричность связи

Симметричная связь — в левой и правой частях связи указана одна и та же сущность.

Пример

Линейная направленная связь типа N-N между сущностями Задача и Задача. Здесь Задача блокирует Задачу.

Асимметричная связь — в левой и правой частях связи указаны разные сущности.

Пример

Линейная направленная связь типа 1-N между сущностями Пользователь и Задача. Здесь Пользователь является исполнителем по Задаче.

Направленность связи

  • Направленная связь — имеет строго заданное направление от левой стороны связи к правой, определяя связанные с этим ограничения.

    Пример направленной связи.

    В системе имеются сущности Уязвимость и Задача. Их соединяет направленная связь. Действие направлено от Уязвимости к Задаче. В результате Уязвимость породила Задачу (на устранение уязвимости).

  • Ненаправленная связь — в отличие от направленной, не имеет строго заданного направления и возможна только для линейных связей типа N-N.

    Пример ненаправленной связи.

    В системе имеются сущности Оборудование 1 и Оборудование 2. Их соединяет связь, но направление при этом отсутствует.

Название связи

Название связи отображается в интерфейсе и отражает характер отношения между сторонами связи. Задается отдельно для каждой из сторон связи.

Пример

Линейная направленная связь типа 1-N между сущностями Пользователь и Оборудование:

  • название связи, отображаемое со стороны Пользователя — Владеет;

  • название связи, отображаемое со стороны Оборудования — Владелец.

Параметры связи

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

  • ID связи;

  • Название связи (опционально);

  • Описание связи, отображаемое в схеме домена (опционально).

  • Ссылки на сущности для сторон связи слева и справа;

  • Тип связи (1-1, 1-N, N-N);

  • Название связи для каждой стороны. Например, инцидент "блокирует задачу", задача "блокируется инцидентом".

  • Направление. Для связи типа N-N можно указать, является ли связь ненаправленной. По умолчанию связь направленная.

  • Атрибуты связи. Атрибуты связи задаются так же, как и атрибуты сущностей.

Работа со связями

В схеме домена можно настроить отображение в компактном представлении сущности одного из следующих типов редактора связей:

  • компактный редактор связей. Он задается для определенной стороны определенной связи. Для каждой связи отображается отдельное поле. Эти поля отображаются в списке в окне компактного представления сущности. Если для объекта уже выбраны объекты для связывания, их лейблы отображаются в поле связи. Лейбл — это комбинация атрибутов сущности для отображения в представлении.

  • расширенный редактор связей. Он включает в себя таблицы связей для объектов, связанных с текущим объектом. Для каждой связи отображается отдельная таблица. Таблицы связи можно сворачивать, нажав на стрелку рядом с их названиями.

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

    Вы можете настроить в схеме домена отображение как атрибутов связанных объектов, так и атрибутов связи. Для этого используется поле columns в настройках расширенного редактора связей. В нем нужно указать ID атрибутов связанных объектов или связи для отображения.

    ID атрибутов связанных объектов и связи не должны совпадать. В противном случае система отобразит в представлении значение для атрибута сущности, так как приоритет такого атрибута будет выше.

Доступные типы редакторов для сторон типов связи:

  • Для стороны N — компактный редактор (с выбором нескольких связанных экземпляров) и расширенный редактор.

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

  • Для стороны 1  —  только компактный редактор (с выбором одного связанного экземпляра).

В редакторах можно выполнять определенные действия, описанные ниже:

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

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

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

  • Текущий экземпляр сущности не отображается, так как связать экземпляр с ним же самим нельзя.

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

Создание связи в компактном редакторе

Чтобы создать связь:

  • Для имеющегося экземпляра сущности:

    1. Выберите экземпляр сущности в списочном представлении. Система отобразит компактное представление сущности в правой панели.

    2. Добавьте связь из поля связи:

      1. Выберите в компактном представлении из выпадающего меню Действия (more vertical) опцию Редактировать. Отобразится окно изменения сущности.

      2. Нажмите на стрелку в поле с названием связи. В выпадающем списке отобразятся допустимые для связывания объекты.

      3. Выберите сущность для связывания и нажмите кнопку Сохранить.

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

        Система свяжет выбранную сущность с текущей сущностью и отобразит в поле связи.

        Вместо использования меню Действия вы можете нажать на кнопку Редактировать (edit) рядом с полем связи и выбрать сущность для связи непосредственно в этом поле.

  • Для нового экземпляра сущности:

    1. Нажмите на кнопку plus (Создать) в списочном представлении сущности. Система отобразит окно создания экземпляра сущности.

    2. Нажмите на стрелку в поле с названием связи. В выпадающем списке отобразятся допустимые для связывания объекты.

    3. Выберите экземпляр сущности для связывания.

    4. Заполните поля в окне создания и нажмите кнопку Создать.

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

      Система свяжет выбранную сущность с текущей сущностью и отобразит в поле связи.

Создание связи в расширенном редакторе

Чтобы создать связь:

  • Для имеющегося экземпляра сущности:

    1. Выберите экземпляр сущности в списочном представлении. Система отобразит компактное представление сущности в правой панели. Отобразится таблица расширенного редактора связей.

    2. Нажмите на кнопку plus(Создать), расположенную справа сверху над таблицей редактора. Система отобразит таблицу добавления связей со списком всех экземпляров сущности, соответствующих характеристикам связи.

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

    4. Нажмите на кнопку Создать.

  • Для нового экземпляра сущности:

    1. Нажмите на кнопку plus (Создать) в списочном представлении сущности. Система отобразит окно создания объекта. В нем отобразится таблица расширенного редактора связей.

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

    3. Нажмите на кнопку Создать.

Если для экземпляра еще не заданы связи, вы также можете воспользоваться кнопкой Создать, отображаемой в таблице.

Просмотр связанного экземпляра сущности в компактном редакторе

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

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

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

  • Чтобы просмотреть выбранный связанный экземпляр, выполните одно из следующих действий (доступность действий определяется настройками схемы домена):

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

    • Нажмите правой кнопкой мыши на связанный экземпляр сущности и в отобразившемся стандартном меню браузера выберите одно из следующих действий:

      • Открыть ссылку в новом окне;

      • Открыть ссылку в новой вкладке.

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

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

Просмотр связанного экземпляра сущности в расширенном редакторе

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

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

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

  • Открыть (eye) — открыть связанный экземпляр для просмотра в текущей вкладке.

  • Открыть в новой вкладке (link) — открыть связанный экземпляр для просмотра в новой вкладке. Действие недоступно, если у связанного объекта отсутствует списочное представление.

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

Чтобы удалить для текущего экземпляра связь с другим экземпляром:

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

  2. Удалить связь можно одним из следующих способов:

    • Из поля связи:

      1. Нажмите на кнопку edit рядом с названием связи. Поле связи станет доступным для редактирования.

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

      3. Нажмите на кнопку Сохранить. Система удалит связь.

    • Из окна редактирования экземпляра сущности:

      1. Выберите в компактном представлении из выпадающего меню Действия (more vertical) опцию Редактировать. Отобразится окно редактирования экземпляра сущности.

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

      3. Нажмите на кнопку Сохранить. Система удалит связь.

Внимание! Связь удаляется без отображения окна с подтверждением удаления.

Удаление связи в расширенном редакторе

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

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

  2. Снимите флажки для экземпляров, связь с которыми нужно удалить.

  3. Нажмите на кнопку Сохранить. Система удалит выбранную связь с текущим экземпляром.

Внимание! Связь удаляется без отображения окна с подтверждением удаления.