Структура схемы домена

Ознакомьтесь с правилами нотации в схеме домена. Это позволит присваивать корректные названия создаваемым элементам схемы. Эти названия будут отображаться в интерфейсе системы.

Структура метаданных

Запись метаданных включает следующие поля:

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарий

id

да

Уникальный идентификатор схемы.

строка

Полное имя (FQDN) домена, который описывается схемой.

type

да

Тип элемента экспертизы.

перечисление

Всегда устанавливается значение domain.

version

да

Версия схемы домена в формате Semantic Versioning.

строка

name

да

Название схемы домена.

строка

Допустимы строчные и прописные буквы латинского и кириллического алфавитов (a—​z, A—​Z, а—​я, А—​Я), цифры (0—​9), точки (.), подчеркивания (_) и дефис (-) без пробелов.

tags

нет

Пустой массив

Теги для классификации и поиска схемы в системе.

массив строк

description

нет

Пустая строка

Описание схемы домена.

строка

author

нет

Пустая строка

Имя и контактные данные автора.

строка

tags

нет

Теги для классификации и поиска схемы в системе.

строка

Структура entities

Поле entities представляет собой массив записей сущностей, входящих в состав домена. В запись сущности необходимо включить поле attributes, содержащее описание массива атрибутов сущности.

Запись сущности включает следующие поля:

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарии

id

да

Уникальный идентификатор сущности.

Data ID

Подставляется вместо поля label, если не определены поля label и name.

name

нет

Пустая строка

Название сущности. Подставляется вместо поля label, если оно не определено.

строка

label

нет

Если не указано, используются идентификаторы объекта, домена и сущности. См. раздел о работе с полем.

Комбинация атрибутов сущности для отображения в интерфейсе (лейбл).

шаблон

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

В шаблоне нельзя ссылаться на поле label и атрибуты другого объекта через ссылку на объект.

См. раздел о работе с полем.

description

нет

Пустая строка

Описание сущности.

строка

Не выводится в представлениях. Отображается на визуализации схемы домена.

kind

нет

regular

Вид сущности.

перечисление

В текущей реализации системой всегда обрабатываются сущности с видом regular — стандартная сущность.

attributes

нет

Пустой массив

Описание атрибутов сущности.

массив

См. описание поля attributes.

sorting

нет

Пустой массив

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

массив

См. описание поля sorting.

identification

нет

Пустой массив

Описание правил идентификации объектов, поступающих в систему.

массив

См. раздел о работе с полем.

reconciliation

нет

Пустой массив

Описание правил реконсиляции объектов, поступающих в систему.

массив

См. раздел о работе с полем.

projection

нет

Пустой массив

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

массив

См. описание поля projection.

searching

нет

Пустой массив

Описание набора атрибутов, по которым будет осуществлен поиск в списке объектов.

массив

См. описание поля searching.

inherits

нет

Пустая строка

Ссылка на сущность, которая является родителем для текущей сущности.

Data ID Ref

См. описание поля inherits.

Схема

Вариант схемы записи, согласно которой формируется описание сущности в схеме:

entities:
 # Уникальный идентификатор сущности.
 - id:
   # Название сущности.
   name:
   # Описание лейбла сущности для представлений.
   label:
   # Описание сущности.
   description:
   # Перечисление элементов массива атрибутов для сущности.
   attributes:

Структура label

Поле label задается в схеме домена опционально, через указание шаблона. Если поле задано, то в представлениях сущности система будет использовать в качестве отображаемых названий объектов значения атрибута или атрибутов объектов, указанных в шаблоне.

Поле label со ссылкой на один атрибут задается в следующем формате: label: "{<attribute>}". Здесь <attribute> — ссылка на атрибут сущности, позволяющий идентифицировать объект в представлении.

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

Если поле label не задано, то в представлении для отображения названия объекта используются идентификаторы объекта, домена и сущности: {id} ({domainId}/{entityId}).

Пример

В домене assets.example.com задана сущность Оборудования с идентификатором asset. Для сущности Оборудования не задано поле label.

В представлении объекта с UUID, равным ajdmbfdd, вместо названия объекта Оборудования будет отображаться следующая связка: ajdmbfdd (assets.example.com/asset)

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

Структура attributes (сущность)

Поле attributes представляет собой массив записей атрибутов определенной сущности.

Запись атрибута в массиве описывается следующими полями:

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарии

id

да

Уникальный идентификатор атрибута

Data ID

name

нет

Пустая строка

Название атрибута

строка

description

нет

Пустая строка

Описание атрибута

строка

Не выводится в представлениях. Отображается в схеме домена.

dataType

да

Тип данных атрибута

перечисление, Data ID Ref или FQID

Можно указывать как встроенный тип данных, так и идентификатор пользовательского типа данных. Если пользовательский тип данных определен в другом домене, нужно указывать в этом поле FQID пользовательского типа данных.

entity

да (для Reference)

Ссылка на сущность

Data ID Ref или FQID

Поле доступно только для типа данных Reference.

constraints

Пустой массив

Валидация атрибута

массив

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

См. описание поля constraints.

readonly

нет

false

Возможность редактирования атрибута

булево

Доступные значения:

  • true — значение атрибута задается при его создании. В дальнейшем это значение обновлять нельзя. Пример: ID из внешней системы, который задается при синхронизации и больше не обновляется.

  • false — значение атрибута можно обновлять.

calculation

да (для Calculation)

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

объект

Поле доступно только для типа данных Calculation.

Схема описания атрибута
attributes:
  # Уникальный идентификатор атрибута.
  - id:
    # Название атрибута.
    name:
    # Описание атрибута.
    description:
    # Тип данных атрибута.
    dataType:
    # Массив описаний валидации атрибута.
    constraints:
      # Первое описание валидации.
      - kind:
      # Второе описание валидации.
      - kind:

Структура constraints

В поле constraints задаются виды валидации атрибута.

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарии

kind

да

Описание валидации

массив

message

нет

Пустая строка

Сообщение об ошибке

строка

Сообщение об ошибке при срабатывании ограничителя на входящих данных.

min

нет

0

Минимальное возможное количество символов в атрибуте

целое число

Поле применимо только для следующих видов ограничителей:

  • range;

  • length.

max

нет

231-1 (для числа символов)

4 МБ (для размера файла)

  • Максимальное возможное количество символов в атрибуте.

  • Максимальный размер файла.

целое число

Поле применимо только для следующих видов ограничителей:

  • range;

  • length;

  • size.

regexp

нет

Регулярное выражение

строка

Поле применимо только для ограничителя regexp.

application

нет

Допустимые типы файлов

строка

Поле применимо только для ограничителя mime_types.

Доступные значения в поле kind

Доступны следующие типы валидации:

  • required — обязательный атрибут, то есть значение атрибута не должно быть пустым.

  • range — ограничения числового значения (используется только для числовых типов данных: Integer, Decimal, Float).

  • length — ограничение количества символов в атрибуте. Необходимо указать максимальное и/или минимальное количество символов в полях max и min.

  • regexp — задание текстового шаблона в формате регулярного выражения. Необходимо задать выражение в поле regexp.

  • size — ограничение размера файла. Необходимо указать минимальный и/или максимальный объем файла в полях min и max.

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

Структура calculation

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

Поле Обязательное поле Описание Тип данных

schemaId

да

Идентификатор схемы, в которой определен требуемый расчет

строка

id

да

Идентификатор расчета

строка

Пример 1. Пример описания поля calculation для сущности Требование (requirement)
entities:
  - id: Requirement
    attributes:
      - id: assessmentIndex
        name: Результат расчета индекса соответствия
        dataType: Calculation
        calculation:
          schemaId: evo.compliance.audit.calculations
          id: audit_assessment_compliance_index

Правила сортировки (sorting)

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

Запись правила сортировки включает следующие поля:

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарии

id

да

Уникальный идентификатор правила сортировки из описания сущности

Data ID

name

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

строка

by

да

Сортируемые атрибуты, перечисленные в последовательности сортировки

массив

См. описание поля by.

createIndex

нет

Параметр, определяющий, будут ли индексироваться перечисленные атрибуты

булево

  • true — атрибуты индексируются.

  • false — атрибуты не индексируются.

Структура by

Поле by представляет собой запись правила сортировки.

Запись правила сортировки включает следующие поля:

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарии

attribute

да

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

Data ID Ref

Если в правиле указана ссылка на атрибут с типом данных Reference, система подставляет при сортировке объектов вместо значения самого атрибута значение поля label объекта, на который указывает ссылка.

direction

да

asc

Порядок сортировки

перечисление

Доступные значения:

  • asc — по возрастанию.

  • desc — по убыванию.

Структура identification

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

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

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

Алгоритм работы правила:

  1. Система ищет дубликаты объектов во входящих данных и отфильтровывает их.

  2. После отработки фильтрации дубликатов система сравнивает объекты с объектами, хранящимися в БД.

  3. Если система находит в БД дубликаты объекта, они будут удалены. Остается по одному экземпляру объекта на стороне входящих данных и на стороне БД.

  4. Система записывает данные о полученных объектах в БД

По итогам идентификации система выявляет дубликаты объектов, который либо отфильтровываются, либо агрегируются — в зависимости от правил реконсиляции.

Логика формирования правил идентификации:

  1. В правиле можно связывать атрибуты логическими операторами AND/OR, а также задавать вложенные условия. Допускается не более трех уровней вложенности.

  2. На одном уровне вложенности можно одновременно использовать разные логические операторы.

  3. Если в блоке задано несколько правил, между ними работает логика OR.

  4. Правила располагаются в порядке убывания приоритета.

При обработке входящих данных можно дополнительно использовать фильтрацию данных с помощью правила на языке преобразования данных VRL (Vector Remap Language). VRL-правило фильтрации описывается в рамках правила идентификации в поле filter.

VRL-правило позволяет выполнить следующие действия:

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

  2. Фильтрация данных, полученных из БД. Данные собираются на основе атрибутов, заданных в правиле, а затем фильтруются с помощью VRL-правила.

Поле identification представляет собой массив правил идентификации.

Запись включает следующие поля:

Поле Описание Тип данных Комментарий

id

Уникальный идентификатор правила (обязательное поле).

строка

rule

Описание правила.

массив

См. описание поля rule.

filter

Фильтрация входящих данных с помощью VRL-правила.

массив

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

Структура rule

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

Запись включает следующие поля:

Поле Обязательное поле Описание Тип данных Комментарий

attribute

да

Ссылка на атрибут, по которому происходит идентификация.

строка

and

нет

Логический оператор И.

строка

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

or

нет

Логический оператор ИЛИ.

строка

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

Структура reconciliation

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

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

Для сущности нельзя определить правило реконсиляции, если не задано правило идентификации.

Запись включает следующие поля:

Поле Обязательное поле Описание Тип данных Комментарий

attribute

нет

Ссылка на атрибут и список приоритетных источников для этого атрибута

строка

См. описание поля attribute.

default

да

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

массив

См. описание поля default.

Логика задания источников в правилах реконсиляции

Для каждого атрибута в правиле задается список источников, которые считаются наиболее приоритетными при сборе данных по атрибуту. Идентификаторов источников в списке располагаются в порядке убывания приоритета.

Значение параметра "*" позволяет учитывать в правиле все источники, не указанные в правиле. Они будут иметь одинаково низкий приоритет по сравнению с указанными источниками.

Всегда указывайте значение параметра "*" в правиле в кавычках.

Если значение параметра "*" не задано в правиле, данные для реконсиляции берутся только из указанного списка источников.

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

Логика перезаписи значений атрибутов

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

  • Данные из разных источников перезаписываются с учетом определенной в правиле приоритизации.

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

  • Если текущее значение не равно null и приоритет входящих данных не ниже приоритета текущих данных, данные перезаписываются.

  • Значение не перезаписывается на null ни при каких условиях.

Структура attribute

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

Запись включает следующие поля:

Поле Обязательное поле Описание Тип данных Комментарий

sourcePriority

да

Название приоритетного источника для атрибута

массив

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

Поле может принимать значения:

  • название источника;

  • звездочка ("*"). В этом случае все источники, не указанные в списке, также учитываются при реконсиляции, но имеют одинаково низкий приоритет по сравнению с указанными источниками.

Структура default

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

Запись включает следующие поля:

Поле Обязательное поле Описание Тип данных Комментарий

source

да

Название источника

строка

Поле может принимать значения:

  • название источника;

  • звездочка ("*"). В этом случае все источники, не указанные в списке, также учитываются при реконсиляции, но имеют одинаково низкий приоритет по сравнению с указанными источниками.

Логика обработки пользовательских данных

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

Структура projection

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

Запись проекции описывается следующими полями:

Поле Обязательное поле Описание Тип данных

attribute

да

Ссылка на атрибут

Data ID Ref

Структура searching

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

Чтобы система производила поиск по связи, необходимо в самой связи в поле searchable установить значение true.
Пример 2. Пример
entities:
 - id:
   name: Device
   # Поле, в котором задается правило поиска.
   searching:
      # Список атрибутов сущности, по которым производится поиск.
      attributes:
         - objectGuid
         - commonName

Структура inherits

Наследование позволяет использовать описанные свойства сущностей при работе с другими сущностями. Оно задается при помощи поля inherits в описании сущности. Для сущности можно указать ссылку только на одного родителя.

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

Пример 3. Пример для родителя и потомка, находящихся в одном домене
entities:
  - id: Device
    name: Оборудование
    description: Оборудование
  - id: Server
    name: Сервер
    description: Сервер
    # В этом поле задается наследование: сущность Сервер является потомком сущности Оборудование.
    inherits: Device

Родитель и потомок могут находиться в одном или в разных доменах. Это нужно учитывать при задании ссылки на родителя.

Местонахождение сущностей Формат ссылки на родителя

Сущности находятся в одном домене.

Data ID Ref (ссылка на ID сущности в текущей схеме).

Сущности находятся в разных доменах.

FQID (полный доменный идентификатор).

Поле label (лейбл) является дополнительным неуникальным, но дружелюбным к пользователю идентификатором объекта. Если лейбл не задан явно для потомка, в представлениях для потомка наследуется лейбл родителя.

В поле attributes в описании потомка включаются только его собственные атрибуты. Ссылки на атрибуты родителя в описание не включаются.

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

  • На атрибут потомка можно ссылаться кратко, указывая только ID атрибута. Формат: ID атрибута.

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

    • указывать только ID сущности и ID атрибута. Формат: ID сущности.ID атрибута;

    • указывать FQDN домена, ID сущности и ID атрибута. Формат: FQDN/ID сущности.ID атрибута.

На атрибут родителя в другом домене нужно ссылаться, упоминая FQDN домена, ID сущности и ID атрибута. Формат: FQDN/ID сущности.ID атрибута.

Ссылка на атрибут указывается от той сущности, в которой он изначально объявлен. Таким образом, полная ссылка на атрибут в формате FQDN/ID сущности.ID атрибута может использоваться во всех случаях.

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

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

Наследование действий

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

Работа с интерфейсами объекта и списка объектов

Рекомендуемый подход при создании схемы домена с использованием наследования:

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

  2. Выполните аналогичные настройки для интерфейсов сущностей потомков.

Таким образом, у каждой сущности будет собственный набор настроек для отображения ее объектов на всех уровнях.

Структура linkages

Поле linkages представляет собой массив записей с описанием связей между сущностями.

В схеме домена поддерживаются линейные и древовидные связи.

Линейные связи

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

Запись включает следующие поля:

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарий

id

да

Идентификатор связи.

Data ID

name

нет

Пустая строка

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

строка

Поле с названием связи удобно использовать в случае, если сторону связи сложно определить из имеющихся данных, а поле label для элемента управления в представлении не определено.

description

нет

Пустая строка

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

строка

Не выводится в представлениях. Отображается в схеме домена.

side1

да

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

Data ID Ref или FQID

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

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

side2

да

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

Data ID Ref или FQID

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

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

type

да

Тип связи.

перечисление

Определяет тип отношений с каждой стороны связи.

Доступные значения:

  • 1_1 — позволяет создавать пары связей двух сущностей, в которых ID объектов не повторяются.

  • 1_n — позволяет создавать пары связей двух сущностей, в которых на одной стороне ID объектов могут повторяться, а на другой — нет.

  • n_n — позволяет создавать пары связей двух сущностей, в которых ID объектов могут повторяться на обеих сторонах.

useForSearch

нет

false

Индикатор использования данных связи в поисковых запросах.

перечисление

  • true — данные этой связи и связанных объектов могут быть использованы в поисковых запросах.

  • false — данные этой связи и связанных объектов не могут быть использованы в поисковых запросах.

undirected

нет

false

Индикатор ненаправленной связи.

булево

Используется только при описании связи типа n_n.

Доступные значения:

  • true — ненаправленная связь. Обе стороны одновременно осуществляют действие и подвергаются воздействию по отношению друг к другу.

  • false — направленная связь. Одна сторона является стороной действия, а другая — стороной воздействия.

nameFrom

да

Глаголы связей для каждой из сторон.

объект

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

Для любой направленной связи глагольные формы должны быть разными.

См. описание поля nameFrom.

attributes

нет

Пустой массив

Пользовательские поля связи.

массив

Атрибуты, описывающие связанные сущности.

Структура nameFrom (в описании линейных связей)

Поле содержит описание глаголов связи.

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарий

side1

да

Глагол связи с левой стороны.

строка

Глагольная форма действия. Например, "блокирует".

side2

да

Глагол связи с правой стороны.

строка

Глагольная форма воздействия. Например, "блокируется".

Древовидные связи

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

Запись включает следующие поля:

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарий

id

да

Идентификатор связи.

Data ID

name

нет

Пустая строка

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

строка

description

нет

Пустая строка

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

строка

Не выводится в представлениях. Отображается в схеме домена.

side1

да

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

Data ID Ref или FQID

side2

да

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

Data ID Ref или FQID

type

да

Тип связи.

перечисление

Для древовидной связи всегда указывается тип 1_n.

nameFrom

да

Глаголы связей для каждой из сторон.

объект

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

См. описание поля nameFrom.

Структура trees

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

Запись включает следующие поля:

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарий

id

да

Идентификатор дерева (уникален в рамках домена).

Data ID

type

нет

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

перечисление

Если изменение расположения узлов этого дерева разрешено, в поле устанавливается значение orderable.

См. раздел Изменение расположения узлов в дереве.

maxDepth

нет

Пустая строка

Максимально допустимое количество связей дерева от корневого узла до листового узла.

число

Определяет максимальную вложенность дерева.

hierarchy

нет

Пустая строка

Описание иерархии сущностей в дереве.

объект

См. описание поля hierarchy.

Структура hierarchy

Поле hierarchy содержит описание иерархии сущностей в дереве связей.

Запись включает следующие поля:

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарий

entity

да

Ссылка на сущность в корневом узле.

Data ID Ref или FQID

Допустима ссылка на сущность в другом домене в формате FQDN/ID.

maxInstances

нет

Максимально допустимое количество объектов сущности в корневом узле.

число

Ограничивает создание объектов одной сущности в дереве.

maxChildren

нет

Максимально допустимое количество дочерних узлов для одного родительского узла через указанную связь.

число

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

children

нет

Описание объектов, дочерних к сущности, на которую ссылается поле entity.

массив

См. описание поля children.

Структура children

Поле children содержит описание объектов, дочерних к сущности, на которую ссылается поле entity в блоке hierarchy.

Запись включает следующие поля:

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарий

linkage

да

Ссылка на идентификатор связи, описанной в поле linkages

Data ID Ref или FQID

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

entity

да

Ссылка на идентификатор сущности, дочерней к сущности в корневом узле.

Data ID Ref или FQID

maxInstances

нет

Максимально допустимое количество объектов одной сущности в разделе.

число

Это значение не может превышать значение параметра maxChildren в описании сущности в корневом узле.

maxChildren

нет

Максимально допустимое количество дочерних узлов для сущности, указанной в поле entity, через связь, указанную в поле linkages, в этом блоке.

число

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

side

нет

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

число

По умолчанию принимает значение 1.

Вы можете создать в схеме домена несколько вложенных блоков children для описания узлов ветвления разных уровней. Предварительно убедитесь, что значение параметра maxDepth в блоке trees позволяет это сделать.

Структура dataTypes

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

Поля dataTypes включают в себя:

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарий

id

да

Идентификатор типа данных.

Data ID

name

нет

Пустая строка

Название типа данных.

строка

description

нет

Пустая строка

Описание элемента домена.

строка

Не выводится в представлениях. Отображается в схеме домена

dataType

да

Описываемый тип данных.

перечисление

См. статью Типы данных в схемах доменов.

entity

да (для Reference)

Ссылка на сущность.

Data ID Ref или FQID

Поле доступно только для типа данных Reference.

constraints

нет

Пустой массив

Ограничители типа данных атрибута.

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

Для каждого типа данных свой набор ограничителей со своим набором полей.

values

да (для перечислений)

Массив записей, входящих в перечисление.

массив

Доступно для перечислений, см. описание поля values.

view

нет

Пустой массив

Представление значений перечисления, статусов рабочего процесса, или табличное представление.

массив

Доступно для перечислений, рабочих процессов и таблиц, см. описание поля view.

statuses

да (для рабочих процессов)

Статусы процесса.

массив

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

См. описание поля statuses.

initial

да (для рабочих процессов)

Начальный статус процесса.

строка

Доступно для рабочих процессов.

transitions

да (для рабочих процессов)

Допустимые переходы между статусами.

массив

Доступно для рабочих процессов, см. описание поля transitions.

attributes

да (для таблиц)

Массив атрибутов, которые могут отображаться в столбцах таблицы.

массив

Доступно для таблиц, см. описание поля attributes.

maxRows

нет

Максимальное количество записываемых строк в таблице.

Доступно для таблиц.

sorting

нет

Правило сортировки.

См. описание поля sorting.

Структура values

Поле values включает следующие поля:

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарий

id

да

Идентификатор значения перечисления.

строка

name

нет

Пустая строка

Наименование значения перечисления.

строка

description

нет

Пустая строка

Описание элемента домена.

строка

Не выводится в представлениях. Отображается в схеме домена

hidden

нет

false

Скрытие значения.

булево

Если установлено значение true, указанное значение становится недоступным (скрывается) для записи в атрибуты объектов в любых операциях для любых пользователей. Для всех операций чтения и применения в фильтрах скрытое значение по-прежнему остается доступным.

Структура view

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

Поле Обязательное поле Описание Тип данных Комментарий

value

нет

Ссылка на значение перечисления.

Data ID Ref

Доступно для перечислений.

status

да (для рабочих процессов)

Ссылка на значение перечисления.

Data ID Ref

Доступно для рабочих процессов.

color

нет

Цвет значения.

строка

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

Цвета задаются согласно схеме CSS.

Можно использовать следующие обозначения цвета:

  • название (например, blue)

  • HEX-код (например, #0000ff). Если задать код в шаблоне #rgb (например: #00f), система автоматически распознает его как #rrggbb.

columns

да (для таблиц)

Массив описаний столбцов таблицы.

массив

Доступно для таблиц, см. описание поля columns.

sortingBy

нет

Описание правила сортировки.

массив

Доступно для таблиц, см. описание поля sortingBy.

paging

нет

Настройки количества записей, показываемых в таблице.

Доступно для таблиц, см. описание поля paging.

Структура columns (в таблице представлений значений)

Поле columns используется для описания столбцов таблицы.

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарий

id

да

Идентификатор столбца таблицы.

массив

attribute

да

Атрибут столбца.

строка

label

нет

Пустая строка

Лейбл столбца.

строка

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

control

нет

Тип редактора, используемый в столбце, в соответствии с таблицей.

строка

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

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

Допустимые типы для разных контекстов представлены в таблице.

layout

нет

Массив настроек размера и видимости столбца.

массив

См. описание поля layout.

Структура layout (в описании столбцов таблицы)

Поле layout содержит массив настроек размера столбца.

Настройка включает следующие поля:

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарий

width

нет

Ширина столбца (в пикселях).

объект

См. описание поля width.

Настройки ширины столбца (width)

Поле width содержит массив настроек ширины столбца.

Настройка включает следующие поля:

Поле Обязательное поле Значение по умолчанию Описание Тип данных

default

да

Ширина столбца по умолчанию, в пикселях.

целое положительное число

min

да

Максимальная ширина столбца в пикселях.

целое положительное число

max

да

Минимальная ширина столбца в пикселях.

целое положительное число

Структура statuses

Поле statuses используется для создания массива записей статусов рабочего процесса.

Поле Обязательное поле Значение по умолчанию Описание Тип данных Комментарий

id

Идентификатор статуса.

Data ID

name

нет

Пустая строка

Название статуса.

строка

description

нет

Пустая строка

Описание элемента домена.

строка

Не выводится в представлениях. Отображается в схеме домена.

hidden

нет

false

Скрытие значения.

булево

Если установлено значение true, указанное значение становится недоступным (скрывается) для записи в атрибуты объектов в любых операциях для любых пользователей. Для всех операций чтения и применения в фильтрах скрытое значение по-прежнему остается доступным.

Структура transitions

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

Поле Описание Тип данных Комментарии

from

Идентификатор статуса, для которого описывается переход.

строка

Значение * позволяет задать переход из любого статуса.

to

Идентификатор статуса, в который может перейти исходный статус.

строка

Нотация и стереотипные поля в схеме домена

Таблица нотации

Идентификатор Правила

Домен

Соответствуют стандартным соглашениям об именовании для доменных имен DNS.

Пример: common.domain.tld

Ознакомьтесь с описанием FQID.

Сущности (Data ID)

Все слова пишутся с заглавной буквы. Разделителей между составными частями нет.

Допустимы строчные и прописные буквы латинского алфавита (a—​z, A—​Z), цифры (0—​9). Длина не более 30 символов.

Примеры:

  • Asset

  • DeviceConfiguration

Атрибуты (Data ID)

Первое слово пишется со строчной буквы, следующие — с заглавной буквы. Разделителей между составными частями нет (кроме атрибута типа Reference).

Допустимы строчные и прописные буквы латинского алфавита (a—​z, A—​Z), цифры (0—​9). Длина не более 30 символов.

Примеры:

  • os;

  • updatedAt

Типы данных (Data ID)

Все слова пишутся с заглавной буквы. Разделителей между составными частями нет.

Допустимы строчные и прописные буквы латинского алфавита (a—​z, A—​Z), цифры (0—​9). Длина не более 63 символов.

Примеры:

  • String;

  • Uuid;

  • MyTable.

Представления, группы, действия, виджеты (View ID)

Первое слово пишется со строчной буквы, следующие — с заглавной буквы. Разделителей между составными частями нет. Можно добавлять произвольный префикс для обозначения группы (например, buttons, btns, actions, act, widgets, forms).

Допустимы строчные и прописные буквы латинского алфавита (a—​z, A—​Z), цифры (0—​9) и точка (.). Для других идентификаторов точку использовать нельзя, так как в этом случае точка будет являться специальным символом.

Длина не более 63 символов.

Примеры:

  • deviceView (вариант: lists.device);

  • deviceCreateButton (вариант: buttons.createDevice);

  • deviceCreateAction (вариант: actions.createDevice).

Перечисления константных значений (type, kind)

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

Допустимы строчные и прописные буквы латинского алфавита (a—​z, A—​Z), цифры (0—​9). Длина не более 63 символов.

Примеры:

  • abstract;

  • open_modal.

Пути в меню и группах меню

Стандартный путь к местоположению ресурса URL.

Примеры:

  • /assets;

  • /assets/main-devices.

Медиаресурсы (иконки, изображения)

Первое слово пишется со строчной буквы, следующие — с заглавной буквы. Разделителей между составными частями нет. Можно добавлять префикс для обозначения группы (icons, images).

Допустимы строчные и прописные буквы латинского алфавита (a—​z, A—​Z), цифры (0—​9). Длина не более 63 символов.

Примеры:

  • iconsassets;

  • iconsdevice.

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

Определение доменов, сущностей и атрибутов в схеме домена

Data ID — идентификатор элемента хранения. Не может быть равен имени любого системного поля или зарезервированному имени устройства Windows.

View ID — идентификатор элемента представления. Не может быть равен зарезервированному имени устройства.

Системные поля объектов и связей в доменах
  • id — идентификатор объекта или связи в текущем домене.

  • organisationId — идентификатор организации.

  • domainId — идентификатор домена из схемы домена.

  • entityId — идентификатор сущности из схемы домена.

  • createdAt — дата и время создания объекта или связи.

  • createdBy — пользователь, который создал объект или связь.

  • updatedAt — дата и время последнего обновления объекта или связи.

  • updatedBy — пользователь, который в последний раз обновил объект или связь.

  • tenantId — тенант, который является владельцем объекта.

  • label — человекопонятный идентификатор объекта для пользователя.

  • version — версия объекта.

Зарезервированные имена устройств
  • aux

  • com1

  • com2

  • com3

  • com4

  • com5

  • com6

  • com7

  • com8

  • com9

  • lpt1

  • lpt2

  • lpt3

  • lpt4

  • lpt5

  • lpt6

  • lpt7

  • lpt8

  • lpt9

  • con

  • nul

  • prn

Data ID Ref — ссылка на Data ID элемента хранения домена, который уже определен в другом месте. По ссылке система может получить все необходимые метаданные.

View ID Ref — ссылка на View ID элемента хранения домена, который уже определен в другом месте. По ссылке система может получить все необходимые метаданные.

Data ID Ref и View ID Ref — короткие формы полного идентификатора. Они всегда являются локальным идентификатором по отношению к текущей схеме домена. Для большинства элементов схемы домена вместо короткой формы можно указывать полный идентификатор — FQID, который может ссылаться на другой домен.

Домены, сущности и атрибуты определяются в схеме домена при помощи FQID (Fully Qualified ID — полностью определенного идентификатора) согласно следующим правилам:

  • Домен: FQID домена определяется как его FQDN (Fully Qualified Domain Name — полностью определенное доменное имя).

  • Сущность: FQID сущности определяется как FQDN/ID сущности. Если сущность определена внутри текущего домена, можно опустить FQDN и указать просто ID сущности.

  • Атрибут: FQID атрибута какой-либо сущности определяется как FQID сущности/ID атрибута:

    • Если сущность определена внутри текущего домена, можно опустить FQID сущности и указать просто ID атрибута.

    • Если сущность определена в другом домене, необходимо сослаться на домен: FQDN/ID сущности.ID атрибута.

    • Если атрибут относится к типу Reference, его FQID определяется как: FQID атрибута-ссылки.ID атрибута из проекции.

Редакторы и представления атрибутов

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

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

Тип данных атрибута Редактор в форме значения атрибута (модальное окно) Редактор значения атрибута по месту (панель) Нередактируемое предзаполненное представление значения атрибута (модальное окно) Представление значения атрибута (панель) Представление значения атрибута (ячейка таблицы)

Uuid

uuid

uuid

text

text

Timestamp

timestamp

timestamp

timestamp

text

text

Date

date

date

date

text

text

Time

time

time

time

text

text

TimestampRange

timestamp_range

timestamp_range

text

text

String

text, text_area

text, text_area

text, text_area

text, text_area

text

MAC

mac

mac

mac

text

text

Integer

integer, integer_slider

integer

integer, integer_slider

text

text

Decimal

decimal, decimal_slider

decimal

decimal, decimal_slider

text

text

Float

float, float_slider

float

float, float_slider

text

text

Bool

switch, checkbox

switch, checkbox

switch, checkbox, bool_text

switch, checkbox, bool_text

Enum

select, radio

select

select, radio

tag, level

tag, level

IpAddress

ip

ip

ip

text

text

CIDR

cidr

cidr

cidr

text

text

Attachment

file

file

file, text

file, text

Reference

link, tag

link, tag

link, tag

link, tag

Workflow

select

select

select

select, level

tag, level

Таблица 1. Описание некоторых редакторов
Название Комментарии

checkbox

флажок

tag

тег

ip

поле для ввода IP-адреса

level

поле для выбора уровня

link

ссылка

radio

радиокнопка

slider

ползунок

Типы ползунка:

  • float_slider — в качестве чисел шкалы используются числа с плавающей точкой;

  • integer_slider — используются целые числа;

  • decimal_slider — используются числа с заданной точностью.

select

выпадающий список

switch

переключатель

text_area

поле для ввода текста

Системные атрибуты

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

Обычные (несистемные) атрибуты задаются для объекта — в поле attributes схемы домена. В отличие от них системные атрибуты не нужно специально задавать в схеме домена. Они уже созданы системой.

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

У каждого системного атрибута есть неизменяемое название на русском языке (см. в таблице). Это название системного атрибута будет отображаться в виджете атрибута в пользовательском интерфейсе.

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

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

Название системного атрибута объекта Тип данных Описание Отображаемое название атрибута

id

UUID

Идентификатор объекта в текущем экземпляре домена

Идентификатор объекта

organizationId

Reference (Tenant)

Отображаемое название организации, присвоенное объекту.

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

  • Если виджет отображается, пользователь может выбрать доступную организацию.

  • Если пользователь не выбирает организацию, система автоматически считает объект справочником.

Организация

domainId

String (FQDN)

Идентификатор домена из схемы домена

Идентификатор домена

entityId

String (Definition ID)

Идентификатор сущности из схемы домена

Идентификатор сущности

createdAt

Timestamp

Дата и время создания объекта с точностью до секунд

Дата создания

createdBy

Reference (User)

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

Создал

updatedAt

Timestamp

Последняя дата и время обновления объекта с точностью до секунд

Дата изменения

updatedBy

Reference (User)

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

Изменил

tenantId

Reference (Tenant)

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

Идентификатор тенанта

label

String

Неуникальный человекочитаемый идентификатор объекта, предназначенный для пользователя

Лейбл

version

Integer

Версия объекта

Версия объекта

Составление схемы домена

Для создания схемы домена:

  1. Укажите в метаданных схемы информацию, необходимую для создания домена (функциональной области).

  2. Опишите сущности, которые будут отображаться в домене на основе схемы.

    Например, домен Активы с сущностями Оборудование и Пользователи.

  3. Для сущностей опишите атрибуты, которыми характеризуется сущность.

    Например, у сущности Оборудование могут быть атрибуты Имя, IP-адрес, Домен.

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

  5. Опишите параметры сортировки данных при работе с описанием интерфейса списка объектов.

  6. Если необходимо автоматически подбирать дополнительные данные для хранимых ссылок на определенные объекты, опишите проекции для этих сущностей.

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

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

  9. Опишите интерфейс объекта:

    1. Опишите действия, которые будут выполняться над объектами.

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

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

  11. Опишите виджеты, которые будут отображаться в представлениях.

  12. Опишите элементы меню, отображаемые во вкладках и панелях.

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

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

  14. Опишите интерфейс списка объектов:

    1. Укажите ссылки на идентификаторы действий, которые будут выполняться со списком объектов (например, массовые действия удаления, импорта и экспорта).

    2. Укажите ссылки на виджеты действий, которые будут отображаться в панели действий интерфейса (например, кнопки удаления, импорта и экспорта).

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

    4. Укажите настройки ширины и видимости столбцов таблицы.

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

Конфигурация рабочего процесса

В схеме домена можно задать рабочий процесс, доступные статусы процесса и возможность перехода между статусами. В настройках процесса должны быть указаны как минимум два статуса: начальный и конечный.

В компактном представлении домена в поле Статус отображается текущий статус рабочего процесса.

При попытке перехода в другой статус в ходе рабочего процесса система может отображать следующую информацию:

  • Уведомление об ошибке — если для перехода необходимо загрузить файл или ввести данные.

  • Информационное уведомление — если для перехода необходимо получить обновленные данные сущности. Отображается окно с кнопкой обновления данных.

В поле Статус в компактном представлении домена отображается текущий статус рабочего процесса.

Пользовательские типы данных

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

Компактное представление сущности

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

Действия

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

В системе доступны следующие действия:

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

  • редактирование атрибута экземпляра сущности непосредственно в окне системы (без вызова отдельного окна редактирования);

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

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

  • запуск плейбука из списка;

  • открытие в соседней вкладке списочного представления с контекстом.

Множественный выбор экземпляров сущностей

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

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

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

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

Группировка экземпляров сущностей

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

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

Работа с организациями в списочном представлении

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

Значения атрибута organizationid задаются только при создании объекта.

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

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

Если атрибут organizationid не заполняется пользователем, объект будет доступен для отображения во всех списках.

Фильтрация и определение контекстов списочного представления в рамках тенанта

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

Последующие фильтры и контексты применяются к итоговой выборке объектов.