Структура схемы домена
| Ознакомьтесь с правилами нотации в схеме домена. Это позволит присваивать корректные названия создаваемым элементам схемы. Эти названия будут отображаться в интерфейсе системы. |
Структура метаданных
Запись метаданных включает следующие поля:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
|---|---|---|---|---|---|
|
да |
Уникальный идентификатор схемы. |
строка |
Полное имя (FQDN) домена, который описывается схемой. |
|
|
да |
Тип элемента экспертизы. |
перечисление |
Всегда устанавливается значение |
|
|
да |
Версия схемы домена в формате Semantic Versioning. |
строка |
||
|
да |
Название схемы домена. |
строка |
Допустимы строчные и прописные буквы латинского и кириллического алфавитов ( |
|
|
нет |
Пустой массив |
Теги для классификации и поиска схемы в системе. |
массив строк |
|
|
нет |
Пустая строка |
Описание схемы домена. |
строка |
|
|
нет |
Пустая строка |
Имя и контактные данные автора. |
строка |
|
|
нет |
Теги для классификации и поиска схемы в системе. |
строка |
Структура entities
Поле entities представляет собой массив записей сущностей, входящих в состав домена. В запись сущности необходимо включить поле attributes, содержащее описание массива атрибутов сущности.
Запись сущности включает следующие поля:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
|---|---|---|---|---|---|
|
да |
Уникальный идентификатор сущности. |
Data ID |
Подставляется вместо поля |
|
|
нет |
Пустая строка |
Название сущности. Подставляется вместо поля |
строка |
|
|
нет |
Если не указано, используются идентификаторы объекта, домена и сущности. Ознакомьтесь с разделом о работе с полем. |
Комбинация атрибутов сущности для отображения в интерфейсе (лейбл). |
шаблон |
Поиск в домене осуществляется по атрибутам сущности, ссылки на которые добавлены в этом поле. В шаблоне нельзя ссылаться на поле Ознакомьтесь с разделом о работе с полем. |
|
нет |
Пустая строка |
Описание сущности. |
строка |
Не выводится в представлениях. Отображается на визуализации схемы домена. |
|
нет |
|
Вид сущности. |
перечисление |
В текущей реализации системой всегда обрабатываются сущности с видом |
|
нет |
Пустой массив |
Описание атрибутов сущности. |
массив |
Ознакомьтесь с описанием поля |
|
нет |
Пустой массив |
Описание правил сортировки, которые определяют наборы атрибутов, по которым будет осуществлена сортировка списка объектов. |
массив |
Ознакомьтесь с описанием поля |
|
нет |
Пустой массив |
Описание правил идентификации объектов, поступающих в систему. |
массив |
Ознакомьтесь с разделом о работе с полем. |
|
нет |
Пустой массив |
Описание правил реконсиляции объектов, поступающих в систему. |
массив |
Ознакомьтесь с разделом о работе с полем. |
|
нет |
Пустой массив |
Проекция, позволяющая посредством API в одном запросе получить атрибуты для отображения данных другой сущности. |
массив |
Ознакомьтесь с описанием поля |
|
нет |
Пустой массив |
Описание набора атрибутов, по которым будет осуществлен поиск в списке объектов. |
массив |
Ознакомьтесь с описанием поля |
|
нет |
Пустая строка |
Ссылка на сущность, которая является родителем для текущей сущности. |
Data ID Ref |
Ознакомьтесь с описанием поля |
Схема
Вариант схемы записи, согласно которой формируется описание сущности в схеме:
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 представляет собой массив записей атрибутов определенной сущности.
Запись атрибута в массиве описывается следующими полями:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
|---|---|---|---|---|---|
|
да |
Уникальный идентификатор атрибута |
Data ID |
||
|
нет |
Пустая строка |
Название атрибута |
строка |
|
|
нет |
Пустая строка |
Описание атрибута |
строка |
Не выводится в представлениях. Отображается в схеме домена. |
|
да |
Тип данных атрибута |
перечисление, Data ID Ref или FQID |
Можно указывать как встроенный тип данных, так и идентификатор пользовательского типа данных. Если пользовательский тип данных определен в другом домене, нужно указывать в этом поле FQID пользовательского типа данных. |
|
|
да (для |
Ссылка на сущность |
Data ID Ref или FQID |
Поле доступно только для типа данных |
|
|
нет |
Ссылка на последовательность для переиспользования в сущности |
FQID |
Ссылка на последовательность используется в описании атрибута для создания несегментированных идентификаторов. Поле доступно только для типа данных |
|
|
нет |
Шаблон идентификатора, определяющий его сегментацию по умолчанию |
строка из системных литералов и разделителей |
Поле доступно только для типа данных |
|
|
нет |
Сегменты, включенные в шаблон при переопределении конфигурации шаблона |
массив |
Поле доступно только для типа данных |
|
|
нет |
Префикс идентификатора по умолчанию |
строка |
Используется, если ни одно правило подстановки префикса не сработало. Поле доступно только для типа данных |
|
|
нет |
Правила подстановки префиксов |
массив |
Поле доступно только для типа данных |
|
|
нет |
Пустая строка |
Общее количество цифр в шаблоне идентификатора |
строка |
Определяет отступ из нулей в числовой последовательности. Может содержать от 2 до 10 нулей. Поле доступно только для типа данных |
|
нет |
Пустой массив |
Валидация атрибута |
массив |
Для каждого типа данных задается свой набор ограничителей с набором полей.
Ознакомьтесь с описанием поля |
|
да (для |
Ссылка на расчет, результат которого будет являться значением атрибута |
объект |
Поле доступно только для типа данных |
|
|
нет |
false |
Возможность редактирования атрибута |
булево |
Доступные значения:
|
Схема описания атрибута
attributes:
# Уникальный идентификатор атрибута.
- id:
# Название атрибута.
name:
# Описание атрибута.
description:
# Тип данных атрибута.
dataType:
# Массив описаний валидации атрибута.
constraints:
# Первое описание валидации.
- kind:
# Второе описание валидации.
- kind:
Правила атрибута (constraints)
В поле constraints задаются виды валидации атрибута.
| Поле | Обязательность и значение по умолчанию | Описание | Тип данных |
|---|---|---|---|
|
да |
Описание валидации. Ознакомьтесь со списком доступных значений. |
массив |
|
нет (по умолчанию — пустая строка) |
Сообщение об ошибке при срабатывании ограничителя на входящих данных. |
строка |
|
нет (по умолчанию — |
Минимальное значение. Поле применимо только для следующих видов ограничителей:
|
целое число |
|
нет (по умолчанию:
|
Максимальное значение. Поле применимо только для следующих видов ограничителей:
|
целое число |
|
нет |
Регулярное выражение. Поле применимо только для ограничителя |
строка |
|
нет |
Допустимые типы файлов. Поле применимо только для ограничителя |
массив |
Доступные значения в поле kind
Доступны следующие типы валидации:
-
required— обязательный атрибут, то есть значение атрибута не должно быть пустым. -
range— ограничения числового значения (используется только для числовых типов данных:Integer,Decimal,Float). -
length— ограничение количества символов в атрибуте. Необходимо указать максимальное и/или минимальное количество символов в поляхmaxиmin. -
regexp— задание текстового шаблона в формате регулярного выражения. Необходимо задать выражение в полеregexp. -
size— ограничение размера файла. Необходимо указать минимальный и/или максимальный объем файла в поляхminиmax. -
mime_types— ограничение типов для загрузки файлов в это поле. Необходимо указать допустимые типы файлов в полеmimeTypes. -
unique— ограничение на уникальность значения атрибута. Применимо только для следующих типов данных:-
строка;
-
целое число;
-
UUID;
-
ссылка;
-
массив;
-
таблица.
-
Структура calculation
В поле calculation указывается ссылка на расчет, результат которого будет являться значением атрибута.
Поле calculation позволяет выводить только числовые результаты расчетов. Чтобы выводить результаты расчетов всех типов, как числовые, так и нечисловые, рекомендуется использовать поле target расчета в схеме автоматизации.
|
| Поле | Обязательное поле | Описание | Тип данных |
|---|---|---|---|
|
да |
Идентификатор схемы, в которой определен требуемый расчет |
строка |
|
да |
Идентификатор расчета |
строка |
calculation для сущности Требование (requirement)entities:
- id: Requirement
attributes:
- id: assessmentIndex
name: Результат расчета индекса соответствия
dataType: Calculation
calculation:
schemaId: evo.compliance.audit.calculations
id: audit_assessment_compliance_index
Структура prefixRules
В поле prefixRules указываются правила подстановки префикса.
Правило подстановки описывается следующими полями:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
|---|---|---|---|---|---|
|
да |
Уникальный идентификатор правила |
Data ID |
||
|
да |
Атрибут |
Data ID Ref |
Атрибут текущей сущности. Правило сопоставляет его значение со значением атрибута в сущности-справочнике. Тип атрибута в этом поле должен совпадать с типом атрибута в поле |
|
|
да |
Источник |
объект |
Ознакомьтесь с описанием поля |
Структура source
В поле source задаются ссылки на источники данных для правил подстановки.
Это идентификаторы сущности и атрибутов, используемые в правилах. Источники описываются следующими полями:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
|---|---|---|---|---|---|
|
да |
Ссылка на сущность, которая является справочником. |
Entity ID Ref |
||
|
да |
Ссылка на атрибут сущности-справочника для сопоставления со значением атрибута текущей сущности. |
Data ID Ref |
Тип атрибута в этом поле должен совпадать с типом атрибута в поле |
|
|
да |
Ссылка на атрибут сущности-справочника для подстановки значения в префикс идентификатора при выполнении правила. |
Data ID Ref |
Тип атрибута в этом поле всегда должен быть |
Правила сортировки (sorting)
Поле sorting представляет собой массив записей, описывающих правила сортировки атрибутов сущности.
Запись правила сортировки включает следующие поля:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
|---|---|---|---|---|---|
|
да |
Уникальный идентификатор правила сортировки из описания сущности |
Data ID |
||
|
Название правила сортировки |
строка |
|||
|
да |
Сортируемые атрибуты, перечисленные в последовательности сортировки |
массив |
Ознакомьтесь с описанием поля |
|
|
нет |
Параметр, определяющий, будут ли индексироваться перечисленные атрибуты |
булево |
|
Структура by
Поле by представляет собой запись правила сортировки.
Запись правила сортировки включает следующие поля:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
|---|---|---|---|---|---|
|
да |
Ссылка на атрибут, по которому производится сортировка. |
Data ID Ref |
Если в правиле указана ссылка на атрибут с типом данных |
|
|
да |
|
Порядок сортировки |
перечисление |
Доступные значения:
|
Структура identification
В схеме домена можно опционально задавать правила идентификации и реконсиляции. Если правило отсутствует, каждый полученный объект считается уникальным и записывается в базу данных отдельно.
Система обрабатывает входящие данные пакетами. Правила работают с уже нормализованными данными. После того как вы измените параметры правил и в систему поступят новые данные, измененные правила будут применяться как к данным, поступившим в систему после сохранения изменений, так и к данным, уже хранившимся в базе данных.
Правила идентификации содержат ссылки на атрибут или набор атрибутов сущности. По этим атрибутам данные об объекте, получаемые из источников, проверяются на уникальность.
Алгоритм работы правила:
-
Система ищет дубликаты объектов во входящих данных и отфильтровывает их.
-
После отработки фильтрации дубликатов система сравнивает объекты с объектами, хранящимися в БД.
-
Если система находит в БД дубликаты объекта, они будут удалены. Остается по одному экземпляру объекта на стороне входящих данных и на стороне БД.
-
Система записывает данные о полученных объектах в БД.
По итогам идентификации система выявляет дубликаты объектов, который либо отфильтровываются, либо агрегируются — в зависимости от правил реконсиляции.
Логика формирования правил идентификации:
-
В правиле можно связывать атрибуты логическими операторами AND/OR, а также задавать вложенные условия. Допускается не более трех уровней вложенности.
-
На одном уровне вложенности можно одновременно использовать разные логические операторы.
-
Если в блоке задано несколько правил, между ними работает логика OR.
-
Правила располагаются в порядке убывания приоритета.
При обработке входящих данных можно дополнительно использовать фильтрацию данных с помощью правила на языке преобразования данных VRL (Vector Remap Language). VRL-правило фильтрации описывается в рамках правила идентификации в поле filter.
VRL-правило позволяет выполнить следующие действия:
-
Первичная дедупликация входящих данных. Данные сначала фильтруются согласно VRL-правилу, а затем дедуплицируются по атрибутам, заданным в правиле. Все найденные дубликаты перезаписываются объектом, который был идентифицирован первым во входящих данных.
-
Фильтрация данных, полученных из БД. Данные собираются на основе атрибутов, заданных в правиле, а затем фильтруются с помощью VRL-правила.
Поле identification представляет собой массив правил идентификации.
Запись включает следующие поля:
| Поле | Описание | Тип данных | Комментарий |
|---|---|---|---|
|
Уникальный идентификатор правила (обязательное поле). |
строка |
|
|
Описание правила. |
массив |
Ознакомьтесь с описанием поля |
|
Фильтрация входящих данных с помощью VRL-правила. |
массив |
Поле содержит команду на языке VRL, возвращающую ответ в булевом формате. |
Структура rule
Поле содержит массив ссылок на атрибуты, по которым происходит идентификация в рамках правила. Можно использовать до трех уровней вложений.
Запись включает следующие поля:
| Поле | Обязательное поле | Описание | Тип данных | Комментарий |
|---|---|---|---|---|
|
да |
Ссылка на атрибут, по которому происходит идентификация. |
строка |
|
|
нет |
Логический оператор И. |
строка |
Поле содержит массив ссылок на атрибуты, которые учитываются в правиле по логике И. Может использоваться на разных уровнях в правиле. |
|
нет |
Логический оператор ИЛИ. |
строка |
Поле содержит массив ссылок на атрибуты, которые учитываются в правиле по логике ИЛИ. Может использоваться на разных уровнях в правиле. |
Структура reconciliation
Поле reconciliation представляет собой массив правил реконсиляции. Правила реконсиляции определяют набор атрибутов объектов, подчиняющихся логике агрегации, и набор источников, данные от которых будут учитываться при перезаписи значений атрибутов.
Если правило отсутствует, по умолчанию система будет перезаписывать значения атрибутов по мере поступления от источников в порядке очередности.
| Для сущности нельзя определить правило реконсиляции, если не задано правило идентификации. |
Запись включает следующие поля:
| Поле | Обязательное поле | Описание | Тип данных | Комментарий |
|---|---|---|---|---|
|
нет |
Ссылка на атрибут и список приоритетных источников для этого атрибута |
строка |
Ознакомьтесь с описанием поля |
|
да |
Массив записей источников для всех атрибутов сущности по умолчанию |
массив |
Ознакомьтесь с описанием поля |
Логика задания источников в правилах реконсиляции
Для каждого атрибута в правиле задается список источников, которые считаются наиболее приоритетными при сборе данных по атрибуту. Идентификаторы источников в списке располагаются в порядке убывания приоритета.
Значение параметра "*" позволяет учитывать в правиле все источники, не указанные в правиле. Они будут иметь одинаково низкий приоритет по сравнению с указанными источниками.
| Всегда указывайте значение параметра "*" в правиле в кавычках. |
Если значение параметра "*" не задано в правиле, данные для реконсиляции берутся только из указанного списка источников.
Для всех атрибутов, не указанных в правиле, нужно создать единое правило приоритетов с помощью параметра default . Если нужно определить единую логику приоритизации источников для всех атрибутов сущности, задайте параметр default без указания конкретных атрибутов.
Логика перезаписи значений атрибутов
Перезапись значений происходит после срабатывания правила идентификации. При этом система учитывает заданные правила реконсиляции. Если правила реконсиляции не задавались, используется логика, заданная в поле default.
-
Данные из разных источников перезаписываются с учетом определенной в правиле приоритизации.
-
При обработке данных, поступивших в рамках одного запроса, учитываются самые последние полученные значения.
-
Если текущее значение не равно
nullи приоритет входящих данных не ниже приоритета текущих данных, данные перезаписываются. -
Значение не перезаписывается на
nullни при каких условиях.
Структура attribute
Поле attribute содержит ссылку на атрибут и массив записей источников, считающихся приоритетными для этого атрибута.
Запись включает следующие поля:
| Поле | Обязательное поле | Описание | Тип данных | Комментарий |
|---|---|---|---|---|
|
да |
Название приоритетного источника для атрибута |
массив |
Поле содержит массив значений поля Поле может принимать значения:
|
Структура default
Поле default содержит массив записей источников, считающихся приоритетными для всех атрибутов сущности, не указанных отдельно.
Запись включает следующие поля:
| Поле | Обязательное поле | Описание | Тип данных | Комментарий |
|---|---|---|---|---|
|
да |
Название источника |
строка |
Поле может принимать значения:
|
Структура projection
Проекция используется, если при определении атрибута текущей сущности необходимо сослаться в этом атрибуте на исходную сущность
и отображать ее данные в представлении. Для автоматического подбора дополнительных данных объекта исходной сущности при запросе
значения атрибута со ссылкой, в исходной сущности указывается проекция с перечислением всех необходимых атрибутов.
Проекция содержит массив записей избранных атрибутов исходной сущности и задается в поле projection.
Запись проекции описывается следующими полями:
| Поле | Обязательное поле | Описание | Тип данных |
|---|---|---|---|
|
да |
Ссылка на атрибут |
Data ID Ref |
Структура searching
Если в поле searching задано правило поиска, система будет производить поиск не только по лейблу, но и по указанным в правиле атрибутам связанной сущности.
Чтобы система производила поиск по связи, необходимо в самой связи в поле searchable установить значение true.
|
entities:
- id:
name: Device
# Поле, в котором задается правило поиска.
searching:
# Список атрибутов сущности, по которым производится поиск.
attributes:
- objectGuid
- commonName
Структура inherits
Наследование позволяет использовать описанные свойства сущностей при работе с другими сущностями. Оно задается при помощи поля inherits в описании сущности. Для сущности можно указать ссылку только на одного родителя.
Каждая новая сущность-потомок будет добавлять собственную структуру к наследуемой структуре и не влиять на структуру родителей при обновлении домена. При запросе данных объектов потомка данные родителей будут включаться в вывод данных, если это определено в схеме. К наследуемым свойствам относятся лейбл (человекочитаемый отображаемый ID), атрибуты и действия.
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. Правила задания ссылок на атрибуты при создании правил сортировки аналогичны правилам ссылок при описании представлений и действий.
Проекция, заданная для родителя, не наследуется потомком. Правила задания ссылок на атрибуты при создании проекций аналогичны правилам ссылок при описании представлений и действий.
Наследование действий
Если в действии объявлена сущность родителя, это действие может быть вызвано для его потомков. Для этого необходимо описать в представлении потомка виджет со ссылкой на это действие родителя. Действие создания объекта достаточно описать только для родителя. Если вы будете ссылаться в описании потомка на виджет родителя, которые использует это действие, оно станет доступно в интерфейсе потомка.
Работа с интерфейсами объекта и списка объектов
Рекомендуемый подход при создании схемы домена с использованием наследования:
-
Опишите все необходимые интерфейсы для сущности родителя, то есть определите для него все требуемые панели, модальные окна, группы и виджеты, а также настройки табличного отображения.
-
Выполните аналогичные настройки для интерфейсов сущностей потомков.
Таким образом, у каждой сущности будет собственный набор настроек для отображения ее объектов на всех уровнях.
Структура linkages
Поле linkages представляет собой массив записей с описанием связей между сущностями.
В схеме домена поддерживаются линейные и древовидные связи.
Линейные связи
Линейные связи определяют отношения между сущностями в домене и позволяют строить направленные и ненаправленные связи различных типов.
Запись включает следующие поля:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
|---|---|---|---|---|---|
|
да |
Идентификатор связи. |
Data ID |
||
|
нет |
Пустая строка |
Название связи. |
строка |
Поле с названием связи удобно использовать в случае, если сторону связи сложно определить из имеющихся данных, а поле |
|
нет |
Пустая строка |
Описание связи. |
строка |
Не выводится в представлениях. Отображается в схеме домена. |
|
да |
Ссылка на первую связываемую сущность в паре связи. |
Data ID Ref или FQID |
Левая сторона действия в связи (направление связи идет от сущности, ссылка на которую указывается в этом поле). Хотя бы одна сущность в связи должна присутствовать в домене, в котором описывается связь. |
|
|
да |
Ссылка на вторую связываемую сущность в паре связи. |
Data ID Ref или FQID |
Правая сторона действия в связи (направление связи идет к сущности, ссылка на которую указывается в этом поле). Хотя бы одна сущность в связи должна присутствовать в домене, в котором описывается связь. |
|
|
да |
Тип связи. |
перечисление |
Определяет тип отношений с каждой стороны связи. Доступные значения:
|
|
|
нет |
false |
Индикатор использования данных связи в поисковых запросах. |
перечисление |
|
|
нет |
|
Индикатор ненаправленной связи. |
булево |
Используется только при описании связи типа Доступные значения:
|
|
да |
Глаголы связей для каждой из сторон. |
объект |
Определяет глагольное описание связи с каждой стороны, отображаемое в представлениях. Для любой направленной связи глагольные формы должны быть разными. Ознакомьтесь с описанием поля |
|
|
нет |
Пустой массив |
Пользовательские поля связи. |
массив |
Атрибуты, описывающие связанные сущности. |
Структура nameFrom (в описании линейных связей)
Поле содержит описание глаголов связи.
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
|---|---|---|---|---|---|
|
да |
Глагол связи с левой стороны. |
строка |
Глагольная форма действия. Например, "блокирует". |
|
|
да |
Глагол связи с правой стороны. |
строка |
Глагольная форма воздействия. Например, "блокируется". |
Древовидные связи
Древовидная связь позволяет организовать взаимодействие между объектами, при котором соединения образуют иерархическую структуру, напоминающую дерево. В этой структуре существует один корневой узел (главный элемент), от которого ответвляются дочерние узлы. Эти узлы также могут иметь свои подчинённые элементы.
Запись включает следующие поля:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
|---|---|---|---|---|---|
|
да |
Идентификатор связи. |
Data ID |
||
|
нет |
Пустая строка |
Название связи. |
строка |
|
|
нет |
Пустая строка |
Описание связи. |
строка |
Не выводится в представлениях. Отображается в схеме домена. |
|
да |
Ссылка на сущность, со стороны которой идет связь, в паре связи. |
Data ID Ref или FQID |
||
|
да |
Ссылка на сущность, по направлению к которой идет связь, в паре связи. |
Data ID Ref или FQID |
||
|
да |
Тип связи. |
перечисление |
Для древовидной связи всегда указывается тип |
|
|
да |
Глаголы связей для каждой из сторон. |
объект |
Определяет глагольное описание связи с каждой стороны, отображаемое в представлениях. Глагольные формы должны быть разными. Ознакомьтесь с описанием поля |
Структура trees
Поле trees содержит описание древовидной связи между сущностями.
Запись включает следующие поля:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
|---|---|---|---|---|---|
|
да |
Идентификатор дерева (уникален в рамках домена). |
Data ID |
||
|
нет |
|
Тип дерева. |
перечисление |
Возможные значения:
Ознакомьтесь с разделом Изменение расположения узлов в дереве. |
|
нет |
Пустая строка |
Максимально допустимое количество связей дерева от корневого узла до листового узла. |
число |
Определяет максимальную вложенность дерева. |
|
нет |
Пустая строка |
Описание иерархии сущностей в дереве. |
объект |
Ознакомьтесь с описанием поля |
Структура hierarchy
Поле hierarchy содержит описание иерархии сущностей в дереве связей.
Запись включает следующие поля:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
|---|---|---|---|---|---|
|
да |
Ссылка на сущность в корневом узле. |
Data ID Ref или FQID |
Допустима ссылка на сущность в другом домене в формате FQDN/ID. |
|
|
нет |
Максимально допустимое количество объектов сущности в корневом узле. |
число |
Ограничивает создание объектов одной сущности в дереве. |
|
|
нет |
Максимально допустимое количество дочерних узлов для одного родительского узла через указанную связь. |
число |
Ограничивает создание связей между сущностями в корневом узле и дочерних узлах. |
|
|
нет |
Описание объектов, дочерних к сущности, на которую ссылается поле entity. |
массив |
Ознакомьтесь с описанием поля |
Структура children
Поле children содержит описание объектов, дочерних к сущности, на которую ссылается поле entity в блоке hierarchy.
Запись включает следующие поля:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
|---|---|---|---|---|---|
|
да |
Ссылка на идентификатор связи, описанной в поле |
Data ID Ref или FQID |
Необходимо сослаться на связь, описывающую отношения между сущностями в корневом узле и дочерних узлах. |
|
|
да |
Ссылка на идентификатор сущности, дочерней к сущности в корневом узле. |
Data ID Ref или FQID |
||
|
нет |
Максимально допустимое количество объектов одной сущности в разделе. |
число |
Это значение не может превышать значение параметра |
|
|
нет |
Максимально допустимое количество дочерних узлов для сущности, указанной в поле |
число |
Ограничивает количество связей между сущностями в поле |
|
|
нет |
Указывает на сторону связи, с которой находится родительская сущность. |
число |
По умолчанию принимает значение 1. |
Вы можете создать в схеме домена несколько вложенных блоков children для описания узлов ветвления разных уровней. Предварительно убедитесь, что значение параметра maxDepth в блоке trees позволяет это сделать.
Правила данных (dataRules)
В блоке dataRules схемы домена вы можете задавать специальные правила данных. Правила данных — это выражения, которые при выполнении определенных условий:
-
ограничивают возможные операции с атрибутами сущностей;
-
контролируют допустимые значения атрибутов.
Правила данных выполняются на уровне атрибутов сущностей и содержат следующие компоненты:
-
условие, которое должно выполняться;
-
параметр для атрибута, соответствующий условию.
Логика работы правил данных
|
Проверка согласно правилам данных выполняется только после успешной проверки согласно правилам атрибутов. Например, если для атрибута установлено правило |
-
Правила данных могут лишь дополнять и усиливать существующие ограничения и правила атрибутов, но не ослаблять их.
Например, если для атрибута установлено
readonly: true, в правиле данных нельзя сделать этот атрибут редактируемым. -
В правиле можно использовать все атрибуты сущности, включая системные, а также атрибуты типов
WorkflowиEnum.-
Для атрибута типа
Arrayобъектом правила может быть как весь массив, так и конкретный элемент массива. -
Для атрибута типа
Tableобъектом правила может быть как вся таблица, так и конкретный столбец таблицы.
-
-
Правила данных поддерживают наследование:
-
Правило можно определить как для Родителя, так и для Потомка. В правиле Потомка можно использовать атрибуты Родителя.
-
Если в правиле указана ссылка на сущность Родителя, правило применяется только для объектов Родителя.
-
Если в правиле указана ссылка на сущность Потомка, правило применяется только для объектов Потомка.
-
Структура поля dataRules
Поле dataRules представляет собой массив записей правил данных для атрибутов сущности.
Запись правила данных включает следующие поля:
| Поле | Обязательность и значение по умолчанию | Описание | Тип данных |
|---|---|---|---|
|
да |
Уникальный идентификатор правила. |
Data ID |
|
да |
Название правила. |
строка |
|
нет (по умолчанию — пустая строка) |
Описание правила. |
строка |
|
да |
Тип объекта. Указывается значение |
перечисление |
|
да |
Ссылка на идентификатор сущности. Позволяет определить сущность, к атрибутам которой применяется правило. Объектом может быть сущность, расположенная как в текущем, так и в другом домене. |
Data ID Ref |
|
да |
Логическое условие, при истинности которого применяется заданное правило. |
RQL-запрос |
|
да |
Описание действия правила. Ознакомьтесь с описанием поля |
объект |
|
нет (по умолчанию — пустая строка) |
Сообщение, отображаемое в случае ошибки выполнения правила. Доступно, если значение поля Ознакомьтесь с описанием поля |
строка |
|
нет (по умолчанию — пустая строка) |
Сообщение, отображаемое при наведении курсора на иконку справки. Доступно, если значение поля Ознакомьтесь с описанием поля |
строка |
Поле rule в правилах данных
Описание действия правила данных включает следующие поля:
| Поле | Обязательное поле | Описание | Тип данных |
|---|---|---|---|
|
да |
Действие, выполняемое над объектом при истинности условия. Ознакомьтесь с доступными значениями. |
перечисление |
|
да |
Массив определения значений для объектов правила. Ознакомьтесь с описанием поля |
массив |
Доступные значения поля effect и их влияние на поведение системы
Когда правило данных срабатывает, над объектом выполняется действие. Это действие обусловлено значением поля effect:
-
hidden— скрыть указанные атрибуты для отображения в пользовательском интерфейсе и API. -
readonly— сделать значение недоступным для редактирования. -
required— сделать поле обязательным для заполнения. -
default— использовать значение по умолчанию. -
allowed— проверить значения на допустимость или предоставить для выбора только допустимые значения.
|
Не рекомендуется применять эффект |
Эффект hidden скрывает виджеты атрибутов сущности, указанных в правиле:
-
В интерфейсе списка объектов скрываются значения в столбцах таблицы, соответствующих объекту правила.
-
В интерфейсе объекта и в модальных окнах скрывается объект правила.
-
При запросе через API данные об объекте правила не передаются.
Для атрибута типа Array скрываются все элементы массива.
Для атрибута типа Table с помощью параметра можно скрыть как всю таблицу, так и конкретный столбец:
-
Если объект правила — таблица, скрывается вся таблица.
-
Если объект правила — столбец таблицы, и для условия используется атрибут сущности, столбец скрывается во всех строках таблицы.
-
Если объект правила — столбец таблицы, и для условия используется столбец таблицы, значение столбца скрывается в строках таблицы, соответствующих условию.
Эффект hidden не поддерживается для атрибутов с типом Counter.
|
Эффект readonly не поддерживается для атрибутов с типами Identifier и Counter, а также для системных атрибутов, помимо organizationId.
|
Эффект readonly
Эффект readonly запрещает редактирование атрибутов сущности, указанных в правиле:
-
При запросе через API данные об объекте правила не редактируются.
-
Иконки и опции редактирования скрываются в компактном и полноэкранном представлениях, а также в модальном окне редактирования. Если объект правила — атрибут типа
TableилиArray, в редакторах таблиц и массивов скрываются иконки и опции редактирования.
Для атрибута типа Array параметр можно применять как ко всему массиву, так и к конкретному элементу:
-
Если объект правила — атрибут-массив, массив становится недоступным для редактирования. Опции добавления элементов, удаления и изменения массива скрываются.
-
Если объект правила — элемент массива, этот элемент становится недоступным для редактирования. Опции изменения и удаления элемента скрываются.
-
Если объект правила — элемент массива, и для условия используется атрибут сущности, указанные в правиле элементы массива становятся нередактируемыми.
-
Если объект правила — элемент массива, и для условия используется элемент массива, нередактируемыми становятся элементы, соответствующие условию.
Для атрибута типа Table параметр можно применять как ко всей таблице, так и к конкретному столбцу:
-
Если объект правила — таблица, атрибут таблицы становится недоступными для редактирования.
-
Если объект правила — столбец таблицы, и для условия используется атрибут сущности, столбец становится нередактируемым во всех строках таблицы.
-
Если объект правила — столбец таблицы, и для условия используется столбец таблицы, столбец становится нередактируемым в строках таблицы, соответствующих условию.
|
Не рекомендуется применять эффекты |
Эффект required
Эффект required делает обязательным заполнение атрибутов сущности, указанных в правиле. При запросе через API необходимо заполнить атрибуты сущности, указанные в правиле.
| При редактировании атрибута в карточке объекта может сработать правило об обязательности другого атрибута. Поскольку при таком редактировании значения сохраняются для каждого атрибута отдельно, выполнение условия обязательности становится невозможным. В таком случае система предложит пользователю перейти в модальное окно для редактирования объекта. |
Для атрибута типа Array параметр можно применять как ко всему массиву, так и к конкретному элементу массива:
-
Если объект правила — массив, необходимо добавить хотя бы один элемент массива.
-
Если объект правила — элемент массива, а для условия используется атрибут сущности, указанный элемент становится обязательным.
-
Если объект правила — элемент массива, и для условия используется элемент массива, обязательными становятся элементы, соответствующие условию.
Для атрибута типа table параметр можно применять как ко всей таблице, так и к конкретному столбцу:
-
Если объект правила — таблица, необходимо добавить хотя бы одну строку таблицы.
-
Если объект правила — столбец таблицы, а для условия используется атрибут сущности, столбец обязателен во всех строках таблицы.
-
Если объект правила — столбец таблицы, и для условия используется столбец таблицы, столбец обязателен в строках таблицы, соответствующих условию.
Эффект required не поддерживается для атрибутов с типами Identifier и Counter, а также для системных атрибутов, помимо organizationId.
|
|
Не рекомендуется применять эффекты |
Эффект default
Эффект default подставляет в объект правила данных значение по умолчанию, указанное в блоке values, если пользователь не указал иное значение.
| При редактировании атрибута в карточке объекта, может сработать правило об обязательности другого атрибута. Поскольку при таком редактировании значения сохраняются для каждого атрибута отдельно, выполнение условия обязательности становится невозможным. В таком случае система предложит пользователю перейти в модальное окно для редактирования объекта. |
Блок values содержит массив объектов "объект правила — значение". Объект должен быть уникален в рамках конкретного правила данных.
Значение по умолчанию можно задать следующими способами:
-
Указать статическое значение, соответствующее типу данных атрибута.
-
Задать RQL-выражение, которое генерирует значение, соответствующее типу данных атрибута.
Эффект default не поддерживается для системных атрибутов и атрибутов с типами Attachment, Workflow, Identifier, Counter и Reference.
|
Эффект allowed
Эффект allowed проверяет значение на допустимость:
-
Для атрибутов типа
EnumиWorkflowотфильтровывает список значений для выбора согласно заданному ограничению.-
При создании объекта значение для атрибута типа
Workflowвсегда будетinitial, эффектallowedне применяется. -
При редактировании объекта значения для атрибута типа
Workflowбудут отфильтрованы согласно эффектуallowedс учетом возможных переходов из текущего статуса согласно схеме домена.
-
-
Для остальных типов — проверяет введенное значение на допустимость согласно заданному ограничению.
Если в отношении одного и того же объекта правила срабатывает несколько правил, фильтры объединяются через логическое "И".
| При редактировании атрибута в карточке объекта может сработать проверка допустимости другого атрибута. Поскольку при таком редактировании значения сохраняются для каждого атрибута отдельно, выполнение условия допустимости становится невозможным. В таком случае система предложит пользователю перейти в модальное окно для редактирования объекта. |
Эффект allowed не поддерживается для атрибутов типа Counter.
|
Структура записи в поле attributes в правиле данных
Запись атрибута включает следующие поля:
| Поле | Обязательное поле | Описание | Тип данных |
|---|---|---|---|
|
да |
Ссылка на идентификатор атрибута сущности, подпадающего под действие правила. |
Data ID Ref |
|
да (при |
Выражение на языке RQL, которое определяет ограничение для возможных значений атрибута, например, выражение сравнения со значениями атрибутов объектов. Выражение должно возвращать логическое значение. Если в поле |
RQL-выражение или выражение сравнения |
|
да (подробности в описании) |
Значение по умолчанию для атрибута при Если в поле |
Значение соответствующего типа данных. |
|
да (подробности в описании) |
Выражение на языке RQL, которое возвращает вычисленное значение соответствующего типа данных. Если в поле
|
RQL-выражение |
|
нет |
Сообщение, отображаемое в случае ошибки выполнения правила. Доступно, если значение в поле Ознакомьтесь с описанием поля |
строка |
|
нет |
Сообщение, отображаемое при наведении курсора на иконку справки. Доступно, если значение в поле Ознакомьтесь с описанием поля |
строка |
|
да (для |
Определения значений для объектов правила. Доступно, если правило применяется к конкретным столбцам таблицы или элементам массива. Ознакомьтесь с описанием поля |
объект |
Поле nested в объекте правила данных
Поля items и attributes представляют собой массив записей атрибутов, подпадающих под действие правила, их возможных значений и отображаемых сообщений.
Запись объекта включает следующие поля:
| Поле | Обязательное поле | Описание | Тип данных |
|---|---|---|---|
|
да |
Тип атрибута. Возможные значения:
|
перечисление |
|
да (для |
Массив определения значений для объектов правила. Запись включает поле |
массив |
|
да (для |
Массив определения значений для объектов правила. Запись включает поле Доступные значения индекса:
|
массив |
Поле message в правиле данных
Поле message содержит текст сообщения, отображаемого при применении правила данных в интерфейса и ответе API:
-
В поле
messageвнутри блокаdataRulesсодержится единое сообщение для всех атрибутов объекта правила. -
В поле
messageвнутри записи действия для атрибута содержится сообщение для конкретного атрибута.
message для всех атрибутовdataRules:
- id: required_attributes
...
description: атрибуты становятся обязательными, если сработало условие в поле condition
target: entity
entity: incident
condition: !rql incidentStatus = 'Подтвержден'
message: "Укажите значения атрибутов!"
rule:
effect: required
attributes:
- attribute: incidentGuid
- attribute: registrationDate
- attribute: ipAddress
...
message для конкретных атрибутовdataRules:
- id: required_attributes
...
description: атрибуты становятся обязательными, если сработало условие в поле condition
target: entity
entity: incident
condition: !rql incidentStatus = 'Подтвержден'
rule:
effect: required
attributes:
- attribute: incidentGuid
message: "Укажите GUID!"
- attribute: registrationDate
message: "Укажите дату регистрации!"
- attribute: ipAddress
message: "Укажите IP-адрес!"
...
Поле help в правиле данных
Поле help содержит текст сообщения, отображаемого при наведении курсора на иконку справки.
-
В поле
helpвнутри блокаdataRulesсодержится единое сообщение для всех атрибутов объекта правила. -
В поле
helpвнутри записи действия для атрибута содержится сообщение для конкретного атрибута.
help для всех атрибутовdataRules:
- id: required_attributes
...
description: атрибуты становятся обязательными, если сработало условие в поле condition
target: entity
entity: incident
condition: !rql incidentStatus = 'Подтвержден'
help: "Необходимо заполнить все поля."
rule:
effect: required
attributes:
- attribute: incidentGuid
- attribute: registrationDate
- attribute: ipAddress
...
help для конкретных атрибутовdataRules:
- id: required_attributes
...
description: атрибуты становятся обязательными, если сработало условие в поле condition
target: entity
entity: incident
condition: !rql incidentStatus = 'Подтвержден'
rule:
effect: required
attributes:
- attribute: incidentGuid
help: "Необходимо указать GUID."
- attribute: registrationDate
help: "Необходимо дату регистрации инцидента."
- attribute: ipAddress
help: "Необходимо указать IP-адрес устройства."
...
Структура dataTypes
В схеме домена можно определять пользовательские типы данных для атрибутов типов данных, доступных в системе. С их помощью можно описывать перечисления, рабочие процессы и таблицы.
Поля dataTypes включают в себя:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
|---|---|---|---|---|---|
|
да |
Идентификатор типа данных. |
Data ID |
||
|
нет |
Пустая строка |
Название типа данных. |
строка |
|
|
нет |
Пустая строка |
Описание элемента домена. |
строка |
Не выводится в представлениях. Отображается в схеме домена |
|
да |
Описываемый тип данных. |
перечисление |
Ознакомьтесь со статьей Типы данных в схемах доменов. |
|
|
да (для |
Ссылка на сущность. |
Data ID Ref или FQID |
Поле доступно только для типа данных |
|
|
нет |
Пустой массив |
Ограничители типа данных атрибута. |
массив ограничителей типа данных |
Для каждого типа данных свой набор ограничителей со своим набором полей. |
|
да (для перечислений) |
Массив записей, входящих в перечисление. |
массив |
Доступно для перечислений. Ознакомьтесь с описанием поля |
|
|
нет |
Пустой массив |
Представление значений перечисления, статусов рабочего процесса, или табличное представление. |
массив |
Доступно для перечислений, рабочих процессов и таблиц. Ознакомьтесь с описанием поля |
|
да (для рабочих процессов) |
Статусы процесса. |
массив |
Доступно для рабочих процессов. Новые статусы в существующий рабочий процесс можно добавлять в любое место списка. Удалять или менять местами существующие статусы нельзя. Ознакомьтесь с описанием поля |
|
|
да (для рабочих процессов) |
Начальный статус процесса. |
строка |
Доступно для рабочих процессов. |
|
|
да (для рабочих процессов) |
Допустимые переходы между статусами. |
массив |
Доступно для рабочих процессов. Ознакомьтесь с описанием поля |
|
|
да (для таблиц) |
Массив атрибутов, которые могут отображаться в столбцах таблицы. |
массив |
Доступно для таблиц. Ознакомьтесь с описанием поля |
|
|
нет |
Максимальное количество записываемых строк в таблице. |
Доступно для таблиц. |
||
|
нет |
Правило сортировки. |
Ознакомьтесь с описание поля |
Структура values
Поле values включает следующие поля:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
|---|---|---|---|---|---|
|
да |
Идентификатор значения перечисления. |
строка |
||
|
нет |
Пустая строка |
Наименование значения перечисления. |
строка |
|
|
нет |
Пустая строка |
Описание элемента домена. |
строка |
Не выводится в представлениях. Отображается в схеме домена |
|
нет |
false |
Скрытие значения. |
булево |
Если установлено значение |
Структура view
Поле view используется для описания представления значений, а также цветов, с помощью которых отображаются статусы рабочего процесса.
| Поле | Обязательное поле | Описание | Тип данных | Комментарий |
|---|---|---|---|---|
|
нет |
Ссылка на значение перечисления. |
Data ID Ref |
Доступно для перечислений. |
|
да (для рабочих процессов) |
Ссылка на значение перечисления. |
Data ID Ref |
Доступно для рабочих процессов. |
|
нет |
Цвет значения. |
строка |
В этом поле можно задать цвета для требуемых значений перечисления или статусов (там, где это необходимо). Цвета задаются согласно схеме CSS. Можно использовать следующие обозначения цвета:
|
|
да (для таблиц) |
Массив описаний столбцов таблицы. |
массив |
Доступно для таблиц. Ознакомьтесь с описанием поля |
|
нет |
Описание правила сортировки. |
массив |
Доступно для таблиц. Ознакомьтесь с описанием поля |
|
нет |
Настройки количества записей, показываемых в таблице. |
Доступно для таблиц. Ознакомьтесь с описанием поля |
Структура columns (в таблице представлений значений)
Поле columns используется для описания столбцов таблицы.
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
|---|---|---|---|---|---|
|
да |
Идентификатор столбца таблицы. |
массив |
||
|
да |
Атрибут столбца. |
строка |
||
|
нет |
Пустая строка |
Лейбл столбца. |
строка |
В этом поле можно задать произвольное наименование столбца таблицы. Если поле не задано, система использует в качестве наименования значение поля |
|
нет |
Тип редактора, используемый в столбце, в соответствии с таблицей. |
строка |
Определяется системой автоматически на основе указанного атрибута. В этом поле можно изменить используемый по умолчанию тип редактора в столбце на другой допустимый тип или задать параметры редактора. Допустимые типы для разных контекстов представлены в таблице. |
|
|
нет |
Массив настроек размера и видимости столбца. |
массив |
Ознакомьтесь с описанием поля |
|
|
нет |
Высота строки таблицы по умолчанию в количестве текстовых строк. |
целое число |
Структура layout (в описании столбцов таблицы)
Поле layout содержит массив настроек размера столбца.
Настройка включает следующие поля:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
|---|---|---|---|---|---|
|
нет |
Ширина столбца (в пикселях). |
объект |
Ознакомьтесь с описанием поля |
Настройки ширины столбца (width)
Поле width содержит массив настроек ширины столбца.
Настройка включает следующие поля:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных |
|---|---|---|---|---|
|
да |
Ширина столбца по умолчанию, в пикселях. |
целое положительное число |
|
|
да |
Максимальная ширина столбца в пикселях. |
целое положительное число |
|
|
да |
Минимальная ширина столбца в пикселях. |
целое положительное число |
Структура statuses
Поле statuses используется для создания массива записей статусов рабочего процесса.
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарий |
|---|---|---|---|---|---|
|
Идентификатор статуса. |
Data ID |
|||
|
нет |
Пустая строка |
Название статуса. |
строка |
|
|
нет |
Пустая строка |
Описание элемента домена. |
строка |
Не выводится в представлениях. Отображается в схеме домена. |
|
нет |
false |
Скрытие значения. |
булево |
Если установлено значение |
Структура transitions
Поле transitions используется для создания массива записей допустимых переходов между статусами рабочего процесса.
| Поле | Описание | Тип данных | Комментарии |
|---|---|---|---|
|
Идентификатор статуса, для которого описывается переход. |
строка |
Значение |
|
Идентификатор статуса, в который может перейти исходный статус. |
строка |
Структура sequences
Поле sequences используется для задания числовых последовательностей, используемых в идентификаторах.
| Поле | Описание | Тип данных | Комментарии |
|---|---|---|---|
|
Идентификатор типа данных |
DataID |
|
|
Начальное число в последовательности |
число |
По умолчанию устанавливается значение |
|
Описание типа данных |
строка |
Нотация и стереотипные поля в схеме домена
Таблица нотации
| Идентификатор | Правила |
|---|---|
Домен |
Соответствуют стандартным соглашениям об именовании для доменных имен DNS. Пример: Ознакомьтесь с описанием FQID. |
Сущности (Data ID) |
Все слова пишутся с заглавной буквы. Разделителей между составными частями нет. Допустимы строчные и прописные буквы латинского алфавита ( Примеры:
|
Атрибуты (Data ID) |
Первое слово пишется со строчной буквы, следующие — с заглавной буквы. Разделителей между составными частями нет (кроме атрибута типа Допустимы строчные и прописные буквы латинского алфавита ( Примеры:
|
Типы данных (Data ID) |
Все слова пишутся с заглавной буквы. Разделителей между составными частями нет. Допустимы строчные и прописные буквы латинского алфавита ( Примеры:
|
Представления, группы, действия, виджеты (View ID) |
Первое слово пишется со строчной буквы, следующие — с заглавной буквы. Разделителей между составными частями нет. Можно добавлять произвольный префикс для обозначения группы (например, Допустимы строчные и прописные буквы латинского алфавита ( Длина не более 63 символов. Примеры:
|
Перечисления константных значений ( |
Слова разделяются символами подчеркивания. Допустимы строчные и прописные буквы латинского алфавита ( Примеры:
|
Пути в меню и группах меню |
Стандартный путь к местоположению ресурса URL. Примеры:
|
Медиаресурсы (иконки, изображения) |
Первое слово пишется со строчной буквы, следующие — с заглавной буквы. Разделителей между составными частями нет. Можно добавлять префикс для обозначения группы ( Допустимы строчные и прописные буквы латинского алфавита ( Примеры:
|
| Ограничения нотации являются формальными и применяются внутри исходных схем доменов, поставляемых системой. Они могут не соблюдаться, если пользователь создает свою собственную схему домена. Все идентификаторы являются регистрозависимыми. |
Определение доменов, сущностей и атрибутов в схеме домена
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 |
text |
text |
|
|
uuid |
text |
text |
||
|
timestamp |
timestamp |
timestamp |
text |
text |
|
date |
date |
date |
text |
text |
|
time |
time |
time |
text |
text |
|
timestamp_range |
timestamp_range |
text |
text |
|
|
text, text_area |
text, text_area |
text, text_area |
text, text_area |
text |
|
mac |
mac |
mac |
text |
text |
|
integer, integer_slider |
integer |
integer, integer_slider |
text |
text |
|
decimal, decimal_slider |
decimal |
decimal, decimal_slider |
text |
text |
|
float, float_slider |
float |
float, float_slider |
text |
text |
|
switch, checkbox |
switch, checkbox |
switch, checkbox, bool_text |
switch, checkbox, bool_text |
|
|
select, radio |
select |
select, radio |
tag, level |
text, level |
|
ip |
ip |
ip |
text |
text |
|
cidr |
cidr |
cidr |
text |
text |
|
file |
file |
file |
file, text |
file, text |
|
select, tag |
link, tag |
link, tag |
link, tag |
|
|
select |
select |
select |
select, level |
text, level |
|
link |
link |
link |
link |
link |
| Название | Комментарии |
|---|---|
|
флажок |
|
тег |
|
поле для ввода IP-адреса |
|
поле для выбора уровня |
|
ссылка |
|
радиокнопка |
|
ползунок Типы ползунка:
|
|
выпадающий список |
|
переключатель |
|
поле для ввода текста |
|
кнопка для выбора прикрепленного файла |
Вывод многострочного текста
Для типа данных String поддерживается вывод многострочного текста в поле таблицы или массива.
Использование в типах данных Table и Array:
-
Если высота поля ввода текста не задана, используется значение по умолчанию. Высоту можно задать в настройках столбца таблицы.
-
Если введенный текст не помещается в границы поля, часть текста, выходящая за пределы видимой области, будет скрыта. В конце видимой строки появится многоточие, сигнализирующее, что текст продолжается. При наведении курсора мыши на поле всплывает подсказка, содержащая весь текст.
Системные атрибуты
В ходе своей работы система для каждого объекта по умолчанию создает набор системных атрибутов и автоматически заполняет их значения.
Обычные (несистемные) атрибуты задаются для объекта — в поле attributes схемы домена. В отличие от них системные атрибуты не нужно специально задавать в схеме домена. Они уже созданы системой.
На системные атрибуты объектов можно ссылаться при описании виджетов атрибутов. Ссылка на системный атрибут в виджете атрибутов выглядит точно так же, как ссылка на обычный атрибут. Вы можете отображать системные атрибуты в интерфейсах объектов и списков объектов — там, где это нужно пользователю.
У каждого системного атрибута есть неизменяемое название на русском языке (ознакомьтесь с таблицей). Это название системного атрибута будет отображаться в виджете атрибута в пользовательском интерфейсе.
| При использовании системного атрибута в списочном представлении необходимо помнить, что можно отредактировать название столбца, где отображается такой атрибут, а название системного атрибута в виджете атрибута отредактировать нельзя. |
В таблице ниже приведен список существующих системных атрибутов объекта, на которые вы можете ссылаться при создании виджетов атрибутов:
| Название системного атрибута объекта | Тип данных | Описание | Отображаемое название атрибута |
|---|---|---|---|
|
UUID |
Идентификатор объекта в текущем экземпляре домена |
Идентификатор объекта |
|
Reference (Tenant) |
Отображаемое название организации, присвоенное объекту. В схеме домена определяется необходимость отображения виджета атрибута в модальном окне.
|
Организация |
|
String (FQDN) |
Идентификатор домена из схемы домена |
Идентификатор домена |
|
String (Definition ID) |
Идентификатор сущности из схемы домена |
Идентификатор сущности |
|
Timestamp |
Дата и время создания объекта с точностью до секунд |
Дата создания |
|
Reference (User) |
Отображаемое имя пользователя, который создал объект. |
Создал |
|
Timestamp |
Последняя дата и время обновления объекта с точностью до секунд |
Дата изменения |
|
Reference (User) |
Отображаемое имя пользователя, который последний раз обновил объект. |
Изменил |
|
Reference (Tenant) |
Отображаемое название тенанта, который является владельцем объекта. |
Идентификатор тенанта |
|
String |
Неуникальный человекочитаемый идентификатор объекта, предназначенный для пользователя |
Лейбл |
|
Integer |
Версия объекта |
Версия объекта |
Составление схемы домена
Для создания схемы домена:
-
Укажите в метаданных схемы информацию, необходимую для создания домена (функциональной области).
-
Опишите сущности, которые будут отображаться в домене на основе схемы.
Например, домен Активы с сущностями Оборудование и Пользователи.
-
Для сущностей опишите атрибуты, которыми характеризуется сущность.
Например, у сущности Оборудование могут быть атрибуты Имя, IP-адрес, Домен.
-
При необходимости задайте пользовательские типы данных для атрибутов с использованием типов данных, доступных в системе. С их помощью можно описать перечисления, таблицы и рабочие процессы.
-
Опишите параметры сортировки данных при работе с описанием интерфейса списка объектов.
-
Если необходимо автоматически подбирать дополнительные данные для хранимых ссылок на определенные объекты, опишите проекции для этих сущностей.
-
Задайте связи для сущностей, которые будут отображаться в домене на основе схемы.
-
Если сущность является потомком другой сущности, задайте параметры наследования.
-
Опишите интерфейс объекта:
-
Опишите структуру меню для раздела домена и его сущностей, отображаемого в главном меню системы — название пунктов меню и параметры их отображения, группировку элементов меню и ссылки на используемые иконки.
-
Опишите виджеты, которые будут отображаться в представлениях.
-
Опишите элементы меню, отображаемые во вкладках и панелях.
-
Опишите панели и модальные окна, которые будут отображаться для экземпляров сущности.
Опишите визуальные элементы, которые будут включаться в панели и модальные окна. К ним относятся вкладки, состоящие из блоков, а также формы создания и редактирования сущностей.
-
Опишите интерфейс списка объектов:
-
Укажите ссылки на идентификаторы действий, которые будут выполняться со списком объектов (например, массовые действия удаления, импорта и экспорта).
-
Укажите ссылки на виджеты действий, которые будут отображаться в панели действий интерфейса (например, кнопки удаления, импорта и экспорта).
-
Сформируйте список атрибутов сущности, которые будут отображаться в табличном отображении.
-
Укажите настройки ширины и видимости столбцов таблицы.
-
Укажите параметры табличного отображения: фильтрация, сортировка и группировка по столбцам, количество показываемых записей, настройки обновления данных, настройки возможности выбора строк.
-
Конфигурация рабочего процесса
В схеме домена можно задать рабочий процесс, доступные статусы процесса и возможность перехода между статусами. В настройках процесса должны быть указаны как минимум два статуса: начальный и конечный.
В компактном представлении домена в поле Статус отображается текущий статус рабочего процесса.
При попытке перехода в другой статус в ходе рабочего процесса система может отображать следующую информацию:
-
Уведомление об ошибке — если для перехода необходимо загрузить файл или ввести данные.
-
Информационное уведомление — если для перехода необходимо получить обновленные данные сущности. Отображается окно с кнопкой обновления данных.
В поле Статус в компактном представлении домена отображается текущий статус рабочего процесса.
Пользовательские типы данных
В схеме домена можно определять пользовательские типы данных для атрибутов с использованием типов данных, доступных в системе. С их помощью можно описывать перечисления, рабочие процессы и таблицы.
Компактное представление сущности
Настройки компактного представления сущности определяют отображение детальной информации о выбранном экземпляре сущности.
Действия
При добавлении схемы домена для каждой его сущности можно выбрать действия с экземплярами сущности, которые будут доступны в разделе сущности. Названия кнопок, инициирующих действия, задаются в схеме произвольно.
В системе доступны следующие действия:
-
добавление экземпляра сущности;
-
редактирование атрибута экземпляра сущности непосредственно в окне системы (без вызова отдельного окна редактирования);
-
удаление экземпляра сущности;
-
редактирование атрибутов экземпляра сущности в отдельном окне редактирования;
-
запуск плейбука из списка;
-
открытие в соседней вкладке списочного представления с контекстом.
Сортировка экземпляров сущностей
В списочном представлении доступна сортировка экземпляров сущностей по столбцам таблицы, определенным в правилах сортировки. В таблице можно отображать не все атрибуты, которые участвуют в сложном правиле сортировки — система все равно будет отображать экземпляры, отсортированные по таким атрибутам. Для удобочитаемости таблицы рекомендуется отображать первый атрибут, участвующий в правиле сортировки.
Правила сортировки экземпляров сущностей определяются в схеме домена. Если хотя бы одно правило сортировки не определено в схеме домена, система сортирует экземпляры в таблице по времени поступившей о них информации за секундный интервал и далее сортирует их по идентификатору экземпляра.
Группировка экземпляров сущностей
В списочном представлении доступна группировка экземпляров сущностей по столбцу таблицы, определенному в правиле группировки.
Сгруппированные данные в таблице по умолчанию отсортированы согласно правилу сортировки. Правила группировки экземпляров сущностей определяются в схеме домена.
Работа с организациями в списочном представлении
В схеме домена можно отметить системный атрибут organizationid как обязательный для заполнения и использовать его в представлениях объектов. Если виджет этого атрибута используется в модальном окне создания объектов, то он примет вид раскрывающегося списка с лейблом виджета. Значения списка зависят от тенанта, в рамках которого работает пользователь.
Значения атрибута organizationid задаются только при создании объекта.
|
Если для работы в системе выбран Основной тенант, в раскрывающемся списке отображаются организации, соответствующие дочерним тенантам.
Если для работы в системе выбран какой-либо дочерний тенант, в раскрывающемся списке отображается организация, соответствующая этому тенанту.
Если атрибут organizationid не заполняется пользователем, объект будет доступен для отображения во всех списках.
Была ли полезна эта страница?