Связь типа "Вложение"

Описание связи

Связь типа "Вложение" используется для отображения в системе фактической иерархии объектов, например, оргструктуры (отделы и сотрудники) или иерархический каталог услуг.

Связи между объектами оргструктуры

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

Между системными классами "Отдел" (ou) и "Сотрудник" (employee) преднастроены связи типа "Вложение":

  • в класс "Компания" (root) вложены объекты класса "Отдел" (ou);
  • в класс "Отдел" (ou) вложены объекты классов "Отдел" (ou) и "Сотрудник" (employee).

Объекты класса "Сотрудник" (employee) могут добавляться только в карточке отдела. Объекты класса "Отдел" (ou) могут добавляться в карточке компании и в карточке отдела.

Иерархический каталог услуг

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

В системном классе "Услуга" (slmService) для редактирования доступно свойство "Объекты вложены в". Если выбрано "не указано", то используется простой каталог услуг. Если выбрано "в объект своего класса", то формируется иерархический каталог услуг и услуга может содержать вложенные услуги.

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

Формирование вложенности классов объектов

Класс вложен в объект другого класса

При создании пользовательского класса в поле "Объекты вложены в" выбирается родительский класс объектов , см. Добавление пользовательского класса.

Пользовательские классы могут быть вложены в любые системные и пользовательские классы

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

Классы объектов, вложенные в другой класс, не наследуют настройки родительского класса.

Отображение связи в интерфейсе подробнее описано ниже Отображение связи в интерфейсе.

Класс вложен в объект своего класса

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

При редактировании пользовательского класса объектов и системного класса "Услуга" (slmService) можно выбрать значение "в объект своего класса", при условии что ранее связь типа "Вложение" для данного класса не создавалось (в поле "Объекты вложены в" было выбрано значение [не указано]).

Отображение связи в интерфейсе подробнее описано ниже Отображение связи в интерфейсе.

Отмена вложенности класса в объект своего класса

Вложенность "в объект своего класса" можно отменить.

При редактировании пользовательского класса объектов и системного класса "Услуга" (slmService) в поле "Объекты вложены в" выберите значение [не указано].

При выборе значения [не указано] удаляются контенты "Список вложенных объектов", атрибут "Родитель" (parent) и другие элементы отображения связи в интерфейсе, подробнее ниже Отображение связи в интерфейсе.

Отображение связи в интерфейсе

Свойства класса

Вложенные классы отображаются в свойствах родительского класса на вкладке "Атрибуты", см. Карточка класса/типа объектов.

Атрибут "Родитель" (parent)

У вложенного класса появляется атрибут "Родитель" (parent). Значением атрибута является ссылка на карточку родительского объекта, в котором создан данный объект.

Ключевые параметры атрибута:

  • Название — название атрибута на карточках объектов и формах, на которых размещен данный атрибут.
  • Код (нередактируемый) — parent.
  • Тип (нередактируемый) — "Ссылка на бизнес-объект".
  • Редактируемый (нередактируемый) — нет, значение атрибута не редактируется в интерфейсе оператора.
  • Редактируемый в списках (нередактируемый) — нет, значение атрибута в списке объектов не изменяется.
  • Обязательный (нередактируемый):

    • нет — вариант связи "Объекты вложены в объект своего класса";
    • да — вариант связи "Объекты вложены в объект другого класса"
  • Обязательный для заполнения в интерфейсе (нередактируемый) — нет.
  • Уникальный (нередактируемый) — нет, значение атрибута не уникально.
  • Класс объекта (нередактируемый) — класс объекта, с которым будет создана связь (кроме класса "Компания" (root)

  • Представление для отображения — указывает, как выглядит атрибут в интерфейсе оператора.

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

Список вложенных объектов

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

В списке вложенных объектов возможно добавление новых вложенных объектов. На панели действий списка по умолчанию размещена системная кнопка добавления объектов. . Подробное описание контента в разделе Контент "Список вложенных объектов".

Представление для редактирования

У вложенного класса изменяется представление для редактирования в атрибутах типа "Ссылка на бизнес-объект" и "Набор ссылок на бизнес-объект" со ссылкой на класс, который становится вложенным, списки выбора заменяются на деревья выбора.

Если вложенным становится класс "Услуга" (slmService), то добавляется представление для редактирования "Иерархический список (услуги)" для услуги на странице "Параметры запросов", подробнее в разделе Поле "Соглашение/Услуга".

При отмене вложенности класса в объект своего класса:

  • Представление "Иерархический список (услуги)" удаляется и заменятся на аналогичный список соглашений и услуг.
  • Представление для редактирования в атрибутах типа "Ссылка на бизнес-объект" и "Набор ссылок на бизнес-объект" со ссылкой на класс, который становится невложенным, деревья выбора заменяются на списки выбора.

История изменений объекта

События, произошедшие с вложенными объектами, отображаются в истории изменений самого объекта и также истории изменений объекта родительского класса в контенте "История изменений объекта". Подробное описание контента в разделе Контент "История изменений объекта".

Добавление вложенного объекта

Добавление вложенного объекта в списке

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

Контент "Иерархическое дерево" отображает произвольную иерархическую структуру на карточке объекта и не предназначен для добавления вложенных объектов. Произвольные (пользовательские) иерархические структуры описаны в разделе Структуры.

Особенности создания связанного объекта вложенного класса по атрибуту типа "Набор ссылок на бизнес-объекты" :

  • Связь вложение типа [объект вложен в объект своего класса]

    • если на форму добавления объекта выведен контент "Выбор родительского объекта", то у добавленного объекта атрибут "Родитель" (parent) заполняется указанным значением;
    • если контент "Выбор родительского объекта" отсутствует, то у добавленного объекта атрибут "Родитель" (parent) заполняется значением "Компания" (root).
  • Связь вложение типа [объект вложен в другой класс]

    • если на форму добавления объекта выведен контент "Выбор родительского объекта", то у добавленного объекта атрибут "Родитель" (parent) заполняется указанным значением;
    • если контент "Выбор родительского объекта" отсутствует, то выводится сообщение об ошибке.

Особенности создания связанного объекта вложенного класса в списке по атрибуту типа "Обратная ссылка": у добавленного объекта атрибут "Родитель" (parent) заполняется значением "Компания" (root).

Добавления вложенных объектов в меню

Вложенные объекты могут добавляться в верхнем меню или в левом меню.

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

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

Редактирование родительского объекта

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

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

При перемещении объекта изменяется значение атрибута "Родитель" (parent).

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