Атрибуты сущностей
Этот раздел описывает атрибуты сущностей в домене.
| Ознакомьтесь с правилами нотации в схеме домена. Это позволит присваивать корректные названия создаваемым элементам схемы. Эти названия будут отображаться в интерфейсе системы. |
Общие поля для всех типов атрибутов
Путь в схеме: entities[].attributes[]
Поле attributes представляет собой массив записей атрибутов определенной сущности. Описания виджетов включают как общие, так и специфические поля, зависящие от типа конкретного виджета.
Описание каждого атрибута включает следующие поля:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
да |
Data ID |
Уникальный идентификатор атрибута |
|
нет (по умолчанию — пустая строка) |
строка |
Название атрибута |
|
нет (по умолчанию — пустая строка) |
строка |
Описание атрибута. Не выводится в представлениях. Отображается в схеме домена. |
|
да |
перечисление, Data ID Ref или FQID |
Тип данных атрибута. Можно указывать как встроенный тип данных, так и идентификатор пользовательского типа данных. Если пользовательский тип данных определен в другом домене, нужно указывать в этом поле FQID пользовательского типа данных. |
|
нет (по умолчанию — пустой массив) |
массив |
Валидация атрибута. Для каждого типа данных задается свой набор ограничителей с набором полей. Ознакомьтесь с описанием поля |
|
нет (по умолчанию — |
логическое |
Переключатель возможности редактирования атрибута. Ознакомьтесь с описанием поля |
Схема описания атрибута
attributes:
# Уникальный идентификатор атрибута.
- id:
# Название атрибута.
name:
# Описание атрибута.
description:
# Тип данных атрибута.
dataType:
# Массив описаний валидации атрибута.
constraints:
# Первое описание валидации.
- kind:
# Второе описание валидации.
- kind:
Правила атрибута (constraints)
Путь в схеме: entities[].attributes[].constraints[]
В поле constraints задаются виды валидации атрибута. Каждый элемент массива имеет следующую структуру:
| Поле | Обязательность и значение по умолчанию | Описание | Тип данных |
|---|---|---|---|
|
да |
Описание валидации. Ознакомьтесь со списком доступных значений. |
массив |
|
нет (по умолчанию — пустая строка) |
Сообщение об ошибке при срабатывании ограничителя на входящих данных. |
строка |
|
нет (по умолчанию — |
Минимальное значение. Поле применимо только для следующих видов ограничителей:
|
целое число |
|
нет (по умолчанию:
|
Максимальное значение. Поле применимо только для следующих видов ограничителей:
|
целое число |
|
нет |
Регулярное выражение. Поле применимо только для ограничителя |
строка |
|
нет |
Допустимые типы файлов. Поле применимо только для ограничителя |
массив |
Виды валидации (kind)
Путь в схеме: entities[].attributes[].constraints[].kind
Доступны следующие типы валидации:
-
required— обязательный атрибут, то есть значение атрибута не должно быть пустым. -
range— ограничения числового значения (используется только для числовых типов данных:Integer,Decimal,Float). -
length— ограничение количества символов в атрибуте. Необходимо указать максимальное и/или минимальное количество символов в поляхmaxиmin. -
regexp— задание текстового шаблона в формате регулярного выражения. Необходимо задать выражение в полеregexp. -
size— ограничение размера файла. Необходимо указать минимальный и/или максимальный объем файла в поляхminиmax. -
mime_types— ограничение типов для загрузки файлов в это поле. Необходимо указать допустимые типы файлов в полеmimeTypes. -
unique— ограничение на уникальность значения атрибута. Применимо только для следующих типов данных:-
строка;
-
целое число;
-
UUID;
-
ссылка;
-
массив;
-
таблица.
-
Возможность редактирования атрибута (readonly)
Путь в схеме: entities[].attributes[].readonly
Значение поля readonly определяет возможность редактирования атрибута:
-
true— значение атрибута задается при его создании и не может быть обновлено.Пример: идентификатор из внешней системы, который задается при синхронизации и больше не обновляется. -
false— значение атрибута можно обновлять.
Атрибут типа Массив (Array)
Массив представляет собой таблицу с одним столбцом. Все элементы массива должны принадлежать одному и тому же базовому типу данных. Свойства элемента массива описываются в поле item.
В массивах можно использовать атрибуты типа Enum (перечисление), Workflow (рабочий процесс) и Reference (связанный объект).
Описание атрибута типа Array дополнительно включает поля:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
нет |
объект |
Параметры элемента массива. Ознакомьтесь с описанием поля |
Ограничения по количеству элементов массива
Для атрибута можно задавать следующие ограничения:
-
минимальная длина — задается минимальное количество элементов, которое нужно заполнить при работе с массивом.
-
максимальная длина — задается максимальное количество элементов массива.
Параметры элемента массива (item)
Путь в схеме: entities[].attributes[].item
В схеме определяются параметры для элемента массива. Поле имеет следующую структуру:
| Поле | Обязательное поле | Описание | Тип данных |
|---|---|---|---|
|
да |
Тип данных атрибута. |
перечисление, Data ID Ref или FQID |
|
нет |
Ограничения, соответствующие типу данных атрибута. Ознакомьтесь с описанием поля |
массив |
Примеры задания атрибута типа Массив
Пример с обязательным атрибутом, позволяющим хранить список данных
attributes:
- id: array
name: Массив данных
# Тип данных атрибута массива
dataType: Array
# Ограничения атрибута массива
constraints:
# Описание валидации по обязательности наличия атрибута
- kind: required
# Описание элемента массива
item:
# Тип данных элемента массива
dataType: String
# Ограничения элемента массива
constraints:
# Описание валидации по обязательности наличия элемента
- kind: required
Пример с обязательным атрибутом, позволяющим хранить прикрепленные файлы форматов JSON, PDF, ZIP, PNG и выдающим предупреждение, если размер файла будет меньше 1 КБ.
attributes:
- id: array
name: Массив прикрепленных файлов
# Тип данных атрибута массива
dataType: Array
# Ограничения атрибута массива
constraints:
# Описание валидации по обязательности
- kind: required
# Описание элемента массива
item:
# Тип данных элемента массива
dataType: Attachment
# Ограничения элемента массива
constraints:
# Описание валидации по допустимым типам файлов
- kind: mime_types
mimeTypes:
- application/json
- application/pdf
- application/zip
- image/png
# Описание валидации по минимальному размеру файла
- kind: size
min: 1kB
# Текст сообщения, которое отображается, если размер файла меньше допустимого
message: Размер файла не может быть меньше 1 КБ.
Атрибут типа Файл (Attachment)
Ограничения
Для атрибута существуют следующие ограничения:
-
По размеру. Размер файла не может превышать 4 МБ.
-
По MIME-типу. Необходимо указать значение MIME-типа при описании атрибута.
В схеме домена можно перечислить любые расширения файлов, которые система отобразит в диалоге выбора формата при загрузке файла. Все загруженные текстовые файлы с расширениями TXT, JSON, MD, XML, YAML сохраняются в хранилище с этими расширениями. Все загруженные текстовые файлы с другими расширениями по умолчанию сохраняются в формате TXT.
| Если элемент имеет формат TXT, но система определит его как бинарный, элемент будет сохранен в формате, определенном системой. |
Пример задания атрибута типа Файл
Пример задания обязательного атрибута, позволяющего загрузить файл формата PDF размером не более 100 КБ.
- id: manual
# Тип данных прикрепленного файла
dataType: Attachment
# Задание ограничений для атрибута
constraints:
# Обязательность заполнения атрибута
- kind: required
# Описание валидации по максимальному размеру файла
- kind: size
max: 100 KB
# Описание валидации по допустимым типам файлов
- kind: mime_types
mimeTypes:
- application/pdf
Атрибут типа Calculation
Описание атрибута типа Array дополнительно включает поля:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
да |
объект |
Ссылка на расчет, результат которого будет являться значением атрибута. Ознакомьтесь с описанием поля |
Ссылка на расчет (calculation)
Путь в схеме: entities[].attributes[].calculation
В поле calculation указывается ссылка на расчет, результат которого будет являться значением атрибута.
Поле calculation позволяет выводить только числовые результаты расчетов. Чтобы выводить результаты расчетов всех типов, как числовые, так и нечисловые, рекомендуется использовать поле target расчета в схеме автоматизации.
|
Поле имеет следующую структуру:
| Поле | Обязательное поле | Описание | Тип данных |
|---|---|---|---|
|
да |
Идентификатор схемы, в которой определен требуемый расчет |
строка |
|
да |
Идентификатор расчета |
строка |
Пример задания атрибута типа Calculation
calculation для сущности Требование (requirement)entities:
- id: Requirement
attributes:
- id: assessmentIndex
name: Результат расчета индекса соответствия
dataType: Calculation
calculation:
schemaId: evo.compliance.audit.calculations
id: audit_assessment_compliance_index
Атрибут типа Счетчик (Counter)
Счетчики позволяют вести отсчет времени. Есть два типа счетчиков:
-
Счетчики без лимита ведут отсчет времени с начала запуска.
-
Счетчики с лимитом ведут отсчет времени, оставшегося до времени срабатывания. После достижения лимита записывается соответствующее событие аудита.
Счетчик можно создать следующими способами:
-
Объявить для сущности в схеме домена атрибут с типом
Counter. В этом случае счетчик создается для каждого экземпляра сущности.Сущность может иметь несколько независимых атрибутов счетчиков. -
Создать счетчик с помощью скрипта через API. Такой счетчик не привязан к какой-либо сущности.
Запускать и останавливать счетчики можно с помощью API.
Настройка цветовой схемы для атрибута типа Счетчик (counterColorPattern)
Путь в схеме: counterColorPattern
Поле counterColorPattern используется для настройки цветовой схемы счетчика. В нем указывается значение параметра, при достижении которого счетчик изменяет цвет. Доступные опции:
-
время, прошедшее с начала отсчета;
-
количество процентов времени, прошедшего с начала отсчета.
Правила настроек цветовой схемы счетчика описываются в поле counterColorPattern на первом уровне схемы домена. Правило, заданное для определенного счетчика, применяется только к этому счетчику.
Каждый элемент массива имеет следующую структуру:
| Поле | Обязательное поле | Описание | Тип данных | Комментарии |
|---|---|---|---|---|
|
да |
Уникальный идентификатор правила изменения цветовой индикации |
объект |
В рамках схемы домена можно создавать более одного правила. |
|
да |
Значение параметра, при котором цвет счетчика меняется на красный. |
строка |
Значение в этом поле должно быть больше значения в поле |
|
да |
Значение параметра, при котором цвет счетчика меняется на желтый. |
строка |
Значение в этом поле должно быть меньше значения в поле |
Значения для полей red и yellow в рамках правила должны быть указаны в одном формате. Задавать временные промежутки в этих полях можно только целыми числами.
|
Пример задания цветовых схем счетчика с учетом времени или количества процентов времени, прошедшего с начала отсчета
… # Поле, содержащее правила настроек цветовой схемы счетчиков. counterColorPattern: # Идентификатор правила с указанием времени, прошедшего с начала отсчета. - id: counterColorTime red: 1w2d3h5m yellow: 2d # Идентификатор правила с указанием количества процентов времени, прошедшего с начала отсчета. - id: counterColorPercentage red: 60% yellow: 40% …
Чтобы система использовала заданное правило цветовой схемы счетчика вместо правила по умолчанию, его необходимо объявить в полях widgets и columns.
Пример ссылки на заданную цветовую схему счетчика в настройках виджета в интерфейсе объекта
views:
- id: deviceView
widgets:
# Описание виджета счетчика.
- id: CounterTime
type: attribute
attribute: counter
# Ссылка на идентификатор цветовой схемы счетчика.
counterColorPattern: counterColorTime
label: Счетчик времени
description: Счетчик времени
Пример ссылки на заданную цветовую схему счетчика в настройках табличного отображения
views:
- id: listsDevices
table:
columns:
- id: counterPercentage
attribute: counter
counterColorPattern: counterColorPercentage
label: Счетчик времени
layout:
width:
default: 200
min: 50
max: 450
Атрибут типа Идентификатор (Identifier)
В схеме домена можно задавать человекочитаемые идентификаторы, которые помогают быстро находить необходимые объекты. Идентификаторы описываются с помощью атрибутов типа данных Identifier.
Поддерживаются следующие типы идентификаторов:
-
несегментированный — идентификаторы этого типа используют единую последовательность чисел для создания уникальных значений.
-
сегментированный — идентификаторы этого типа представляют собой совокупность отдельных сегментов и используют разные последовательности чисел для создания уникальных значений.
Описание атрибута типа Array дополнительно включает поля:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
нет |
FQID |
Ссылка на последовательность для переиспользования в сущности. Используется в описании атрибута для создания несегментированных идентификаторов. |
|
нет |
строка |
Шаблон идентификатора, определяющий его сегментацию по умолчанию. Задается строкой из системных литералов и разделителей. |
|
нет |
массив |
Сегменты, включенные в шаблон при переопределении конфигурации шаблона. Поле доступно только для типа данных |
|
нет |
строка |
Префикс идентификатора по умолчанию. Используется, если ни одно правило подстановки префикса не сработало. |
|
нет |
массив |
Правила подстановки префиксов. Ознакомьтесь с описанием поля |
|
нет (по умолчанию — пустая строка) |
строка |
Общее количество цифр в шаблоне идентификатора. Определяет отступ из нулей в числовой последовательности. Может содержать от 2 до 10 нулей. |
Несегментированный идентификатор
Несегментированный идентификатор задается с помощью последовательностей.
Примеры несегментированных идентификаторов
-
3 -
25 -
107
Правила создания несегментированных идентификаторов
Чтобы описать несегментированный идентификатор для сущности в схеме домена:
-
Задайте последовательность в поле
sequences. -
Сошлитесь на последовательность в поле
sequenceв описании атрибута типаIdentifierэтой сущности. -
Если нужно отобразить в идентификаторе определенное количество ведущих нулей, укажите в поле
incrementTemplateатрибута общее количество цифр в шаблоне идентификатора.
Пример описания несегментированного идентификатора в схеме домена
# домен сущности
it.domain.ru
# массив записей последовательностей
sequences:
# запись массива
- id: SequenceId
# начальное значение последовательности
startFrom: 1
# описание последовательности
description: последовательность с начальным значением 1
entities:
- id: Incident
attributes:
# атрибут типа Identifier, в описании которого указывается FQID последовательности
- id: incidentId
# тип атрибута Identifier
dataType: Identifier
# ссылка на FQID последовательности, используемой в атрибуте
sequence: it.domain.ru/SequenceId
Последовательности (sequences)
Путь в схеме: sequences[]
Последовательность сохраняет текущее состояние счетчика и позволяет переиспользовать счетчик в атрибутах сущности типа Identifier. Последовательность описывается в массиве sequences на первом уровне схемы домена.
Если вы сослались в описании атрибута на последовательность в поле sequence , этот атрибут можно использовать только для настройки несегментированного идентификатора.
|
Каждый элемент массива имеет следующую структуру:
| Поле | Описание | Тип данных | Комментарии |
|---|---|---|---|
|
Идентификатор типа данных |
DataID |
|
|
Начальное число в последовательности |
число |
По умолчанию устанавливается значение |
|
Описание типа данных |
строка |
Сегментированный идентификатор
В доменной схеме можно задавать сегментированные идентификаторы разных типов. Они различаются набором сегментов, из которых состоит идентификатор.
-
По дате — содержит сегменты даты и порядкового номера.
Примеры идентификаторов по дате
-
25-04-15-1 -
25-04-16-2.
-
-
По префиксу — содержит сегменты префикса и порядкового номера.
Примеры идентификаторов по префиксу
-
REQ-1 -
REQ-2
-
-
По дате и префиксу — содержит сегменты даты, префикса и порядкового номера.
Примеры идентификаторов по дате и префиксу
-
INC-25-03-10-1 -
INC-25-03-10-2
-
Правила создания сегментированных идентификаторов
Чтобы описать сегментированный идентификатор для сущности в схеме домена:
-
Определите требуемый тип идентификатора.
-
Задайте его шаблон в поле
templateв свойствах атрибута типаIdentifierэтой сущности. -
Для идентификатора типов По префиксу и По дате и префиксу:
-
задайте префикс по умолчанию в поле
defaultPrefixв свойствах атрибута; -
при необходимости задайте правила подстановки префикса в идентификатор в поле
prefixRulesв свойствах атрибута; -
если изменение префикса в идентификаторе не должно приводить к сбросу инкремента, укажите соответствующие сегменты шаблона в поле
segmentв свойствах атрибута; -
если нужно отобразить в идентификаторе определенное количество ведущих нулей, задайте в поле
incrementTemplateв свойствах атрибута общее количество цифр в шаблоне.
-
Шаблон идентификатора (template)
Путь в схеме: entities[].attributes[].template
Шаблон задает состав сегментов идентификатора и определяет порядок их отображения. Он задается в поле template в свойствах атрибута типа Identifier и состоит из системных литералов. Сегменты идентификатора формируются в соответствии с логикой, заданной системными литералами.
Примеры шаблонов, состоящих из системных литералов
-
"{@MM}-{@DD}-{@inc}" -
"{@prefix}-{@MM}-{@DD}-{@inc}".
Системные литералы
Литералы задаются в описании атрибута типа Identifier в поле template, заключаются в фигурные скобки и содержат символ @ после открывающей скобки.
Пример литерала
-
{@DD}
Литерал {@inc} является обязательным и всегда должен указываться в составе шаблона.
|
В системе доступны следующие системные литералы:
| Литерал | Описание |
|---|---|
|
Литерал даты. Подставляется текущий год. |
|
Литерал даты. Подставляется текущий месяц |
|
Литерал даты. Подставляется текущая дата. |
|
Литерал инкремента. Определяет порядковый номер идентификатора. |
|
Литерал префикса. Определяет настраиваемый префикс в составе идентификатора. |
Допустимые разделители в литералах:
-
тире;
-
подчеркивание;
-
косая черта;
-
обратная косая черта.
Литерал {@inc} является обязательным и всегда должен указываться в составе шаблона.
|
Идентификаторы по дате
Шаблон должен содержать литералы даты и литерал инкремента {@inc}. Литералы даты не могут повторяться в шаблоне.
Примеры шаблонов с идентификатором "По дате"
-
{@YYYY}-{@MM}-{@DD}-{@inc}" -
"{@YYYY-{@MM}-{@inc}" -
"{@YY}-{@MM}-{@inc}" -
"{@MM}-{@inc}" -
"{@MM}-{@DD}-{@inc}"
Идентификаторы по префиксу
Шаблон должен содержать литерал инкремента {@inc} и литерал префикса {@prefix}. Система подставляет в литерал префикса одно из следующих значений:
-
префикс по умолчанию. Является обязательным и задается в поле
defaultPrefix. Используется, если ни одно правило подстановки префикса не сработало. -
префикс, найденный в соответствии с правилами подстановки префикса, заданными в массиве
prefixRules. Правила подстановки задавать не обязательно.
Примеры шаблонов с идентификатором "По префиксу"
-
"{@prefix}-{@inc}" -
"{@inc}-{@prefix}"
Идентификаторы по дате и префиксу
Правила создания шаблона:
-
Шаблон должен содержать литерал префикса
{@prefix}. В его значение подставляется:-
префикс по умолчанию. Он является обязательным и задается в поле
defaultPrefix. Префикс подставляется, если ни одно правило подстановки префикса не сработало. -
префикс, найденный по правилам подстановки префикса, заданным в массиве
prefixRules. Правила подстановки задавать не обязательно.
-
-
Шаблон должен содержать литералы даты. Эти литералы не могут повторяться в рамках шаблона.
-
Шаблон должен содержать литерал инкремента
{@inc}.
Примеры шаблонов с идентификатором "По дате и префиксу"
-
"{@prefix}-{@YYYY}-{@MM}-{@DD}-{@inc}" -
"{@prefix}-{@YYYY}-{@MM}-{@inc}" -
"{@prefix}-{@MM}-{@DD}-{@inc}"
Правила подстановки префиксов (`prefixRules)
Путь в схеме: entities[].attributes[].prefixRules[]
В схеме домена описывается шаблон идентификатора текущей сущности. Правила подстановки префиксов позволяют автоматически использовать в качестве префикса идентификатора значение атрибута другой сущности. Другая сущность выступает в роли справочника.
Правило сопоставляет значение атрибута текущей сущности со значением атрибута сущности-справочника. В правиле нужно задать:
-
атрибут текущей сущности;
-
атрибут сущности-справочника, который будет сравниваться с атрибутом текущей сущности;
-
атрибут сущности-справочника, который будет подставляться в идентификатор, если атрибут текущей сущности и сравниваемый атрибут сущности-справочника идентичны, то есть, если правило выполняется.
Алгоритм подстановки префиксов системой:
-
Система ищет первое удовлетворяющее запросу правила из массива правил подстановки префикса.
-
Система подставляет в идентификатор значение атрибута, указанного в этом правиле.
-
Если не удается найти удовлетворяющее запросу правило подстановки, система подставляет в идентификатор префикс по умолчанию. Он описывается в поле
defaultPrefixатрибута типаIdentifier.
Правила подстановки префикса задаются в поле prefixRules атрибута типа Identifier. Правило подстановки описывается следующими полями:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
|---|---|---|---|---|---|
|
да |
Уникальный идентификатор правила |
Data ID |
||
|
да |
Атрибут |
Data ID Ref |
Атрибут текущей сущности. Правило сопоставляет его значение со значением атрибута в сущности-справочнике. Тип атрибута в этом поле должен совпадать с типом атрибута в поле |
|
|
да |
Источник |
объект |
Ознакомьтесь с описанием поля |
Структура source
В поле source задаются ссылки на источники данных для правил подстановки.
Это идентификаторы сущности и атрибутов, используемые в правилах. Источники описываются следующими полями:
| Поле | Обязательное поле | Значение по умолчанию | Описание | Тип данных | Комментарии |
|---|---|---|---|---|---|
|
да |
Ссылка на сущность, которая является справочником. |
Entity ID Ref |
||
|
да |
Ссылка на атрибут сущности-справочника для сопоставления со значением атрибута текущей сущности. |
Data ID Ref |
Тип атрибута в этом поле должен совпадать с типом атрибута в поле |
|
|
да |
Ссылка на атрибут сущности-справочника для подстановки значения в префикс идентификатора при выполнении правила. |
Data ID Ref |
Тип атрибута в этом поле всегда должен быть |
Пример использования правила подстановки
В домене имеются сущности Инцидент и Организация. В схеме домена нужно настроить формирование идентификаторов для текущей сущности Инцидент.
Что делает правило: отображает в идентификаторе инцидента префикс, указывающий на организацию, из которой получен инцидент.
Сущность Организация выступает как справочник. Система будет использовать значения ее атрибутов в префиксах идентификаторов инцидентов согласно заданному правилу.
При создании правила подстановки нужно указать данные в полях настройки правила.
Поля правила описываются в атрибуте типа Identifier текущей сущности Инцидент.
Алгоритм работы правила в примере:
-
Запоминается атрибут, указанный в поле
attributeтекущей сущности Инцидент.Пример: атрибут
inc_organizationсо значением NorthCompany. -
Запоминается атрибут, указанный в поле
keyсущности-справочника Организация.Пример: атрибут
organization_nameсо значением NorthCompany. -
Сравниваются значения атрибутов:
-
Если значения совпадают, правило использует значение атрибута сущности-справочника, указанного в поле
value, для подстановки в префикс идентификатора.В примере — атрибут
short_nameсо значением NC.
-
-
Если значения не совпадают, запускается следующее описанное в схеме правило подстановки.
-
Если ни одно правило не сработало, используется префикс по умолчанию, указанный в поле
defaultPrefix.
В результате идентификатор объекта будет содержать префикс NC.
Фрагмент схемы домена:
entities:
- id: Incident
attributes:
# Уникальный идентификатор атрибута
- id: incidentId
# Название атрибута
name: ИД инцидента
# Тип данных атрибута (обязательно указывается identifier)
dataType: Identifier
# Описание шаблона идентификатора (тип: по префиксу)
template: "{@prefix}-{@inc}"
# Префикс, используемый по умолчанию
defaultPrefix: INC
# Массив правил подстановки
prefixRules:
# ИД правила 1
- id: Rule_1
# Атрибут текущей сущности, значение которого используется для сравнения
attribute: inc_organization
source:
# Сущность-справочник
entity: organization
# Атрибут сущности-справочника, значение которого используется для сравнения
key: organization_name
# Атрибут сущности-справочника, значение которого используется как префикс, если значения атрибутов в полях attribute и key совпадают
value: short_name
Переопределение конфигурации сегментированного идентификатора
Схема домена позволяет переопределить структуру сегментов идентификатора из шаблона, описанного в поле template. Это позволяет не учитывать изменение префикса в идентификаторе как триггер сброса инкремента.
Для настройки переопределения необходимо перечислить в поле segment литералы конфигурации для включения в идентификатор.
Литералы всегда перечисляются в поле segment в следующем порядке:
| Порядковый номер | Литерал |
|---|---|
1 |
|
2 |
|
3 |
|
4 |
|
Пример переопределения конфигурации
Изначально в описание шаблона в поле template включены следующие литералы: префикс, год, месяц, день, инкремент. Литерал инкремента всегда включается в идентификатор и не участвует в переопределении.
template: "{@prefix}-{@YY}-{@MM}-{@DD}-{@inc}"
Идентификаторы, созданные на основе этого шаблона, могут выглядеть следующим образом:
-
INC-25-04-15-1 -
INC-25-04-15-2 -
INC-25-04-15-3 -
REQ-25-04-15-1 -
REQ-25-04-15-2
При появлении нового префикса REQ инкремент сбрасывается до начального значения.
|
Можно переопределить шаблон, перечислив в поле segment литералы дня, месяца и года. В идентификаторах, созданных на основе этого шаблона, изменение литерала префикса будет игнорироваться инкрементом.
entities:
# Сущность "Инцидент"
- id: Incident
attributes:
# Уникальный идентификатор атрибута
- id: IncidentId
# Название атрибута
name: ИД инцидента
# Тип данных атрибута (обязательно указывается identifier)
dataType: Identifier
# Описание шаблона идентификатора (тип: по дате и префиксу)
template: "{@prefix}-{@YY}-{@MM}-{@DD}-{@inc}"
# Перечисление литералов сегментов для включения в переопределенный шаблон идентификатора
segment:
- YYYY
- MM
- DD
Идентификаторы, созданные на основе переопределенного шаблона, будут иметь следующий вид:
-
INC-25-04-15-1 -
INC-25-04-15-2 -
INC-25-04-15-3 -
REQ-25-04-15-4 -
REQ-25-04-15-5
После переопределения при появлении префикса REQ инкремент не сбрасывается.
|
Настройки инкремента (incrementTemplate)
Путь в схеме: entities[].attributes[].incrementTemplate
Несегментированные и сегментированные идентификаторы могут дополняться ведущими нулями. Для этого в поле incrementTemplate нужно задать общее количество цифр в шаблоне.
Количество ведущих нулей вычисляется как значение поля incrementTemplate минус текущее значение литерала {@inc}.
Пример настройки инкремента
incrementTemplate = 0000000000 (содержит 10 цифр).
Литерал {@inc} для идентификатора принимает значение 111 (содержит 3 цифры).
С учетом настройки поля incrementTemplate литерал {@inc} в идентификаторе принимает значение 0000000111.
Здесь количество ведущих нулей равно 7. Это результат выражения: 10 — 3.
Фрагмент схемы домена:
entities:
# Сущность "Инцидент"
- id: Incident
attributes:
# Уникальный идентификатор атрибута
- id: IncidentId
# Название атрибута
name: ИД инцидента
# Тип данных атрибута (обязательно указывается identifier)
dataType: Identifier
# Описание шаблона идентификатора (тип: по дате)
template: "{@prefix}-{@YY}-{@MM}-{@DD}-{@inc}"
# Общее количество цифр в шаблоне
incrementTemplate: "0000000000"
Система создает идентификаторы вида:
-
"2025-04-0000000001"
-
"2025-04-0000000002"
-
"2025-04-0000000009"
-
"2025-04-0000000010"
|
Рекомендуется задавать достаточное количество цифр в поле |
Пример переполнения значений
incrementTemplate = 0000. Содержит 4 цифры.
С учетом настройки поля incrementTemplate литерал {@inc} в идентификаторе принимает значение 8356. Содержит 4 цифры.
Количество ведущих нулей равно 0. Это результат выражения: 4 — 4.
Атрибут типа Референс (Reference)
Атрибут типа Reference позволяет выбрать из списка объектов другой сущности один или несколько объектов и добавить их в качестве значения поля. При просмотре эти связанные объекты отображаются как теги. Нажав на тег, можно просмотреть поля связанного объекта.
Описание атрибута типа Array дополнительно включает поля:
| Поле | Обязательность и значение по умолчанию | Тип данных | Описание |
|---|---|---|---|
|
да |
Data ID Ref или FQID |
Ссылка на сущность. Поле доступно только для типа данных |
Пример использования атрибута типа Reference
Пользователь работает с сущностями Администратор и Оборудование. При выборе определенного администратора в списочном представлении можно выполнить следующие действия в его компактном представлении:
-
Отобразить раскрывающийся список имеющегося оборудования в поле Отвечает за оборудование в виде значения атрибута или набора атрибутов сущности. В примере используется следующая комбинация атрибутов: название + номер + отдел. Например, принтер "356TGH Бухгалтерия".
-
Выбрать объект оборудования в качестве значения этого поля.
-
При нажатии на объект оборудования в компактном представлении администратора отобразить карточку этого объекта, а затем по нажатии кнопки Назад в карточке вернуться к просмотру компактного представления администратора.
Описание сущности Администратор:
entities:
# Уникальный идентификатор сущности
- id: Administrator
# Название сущности
name: Администратор
# Описание сущности
description: Администратор
# Перечисление элементов массива атрибутов для сущности
attributes:
- id: label_name
name: Имя
dataType: string
- id: RefDevice
name: Отвечает за оборудование
# Для атрибута задается тип Reference
dataType: Reference
# В описании атрибута указывается сущность Оборудование, на которую ссылается атрибут
entity: Device
Описание сущности Оборудование:
entities:
# Уникальный идентификатор сущности
- id: Device
# Название сущности
name: Оборудование
# Описание сущности
description: Оборудование
# Настройка отображения комбинации атрибутов сущности
label: " {device_name} {device_number} {device_facility} "
# Перечисление элементов массива атрибутов для сущности
attributes:
- id: device_name
name: Название оборудования
dataType: string
- id: device_number
name: Номер оборудования
dataType: string
- id: device_facility
name: Отдел, за которым закреплено оборудование
dataType: string
Системные атрибуты
Система автоматически создает набор системных атрибутов для каждого объекта и связи, заполняя их значения. В отличие от обычных, несистемных атрибутов, системные атрибуты не требуется задавать в схеме домена.
|
Значения системных атрибутов, кроме |
Системные атрибуты объектов можно использовать при описании виджетов атрибутов и представления списка объектов. Ссылка на системный атрибут выглядит так же, как и на обычный атрибут.
Каждый системный атрибут имеет неизменяемое название на русском языке, которое указано в таблице. Это название будет отображаться в виджете атрибута в пользовательском интерфейсе.
| При использовании системного атрибута в списочном представлении можно изменить название столбца, где отображается атрибут. Название системного атрибута в виджете изменить нельзя. |
В таблице представлены существующие системные атрибуты объектов:
| Название системного атрибута объекта | Тип данных | Описание | Отображаемое название атрибута |
|---|---|---|---|
|
Uuid |
Идентификатор объекта в текущем экземпляре домена |
Идентификатор объекта |
|
Reference (Organization) |
Отображаемое название организации, присвоенное объекту. Ознакомьтесь с описанием атрибута. |
Организация |
|
String (FQDN) |
Идентификатор домена из схемы домена |
Идентификатор домена |
|
String (Definition ID) |
Идентификатор сущности из схемы домена |
Идентификатор сущности |
|
String |
Название сущности из поля |
Название сущности |
|
Timestamp |
Дата и время создания объекта с точностью до секунд |
Дата создания |
|
Reference (User) |
Отображаемое имя пользователя, который создал объект. |
Создал |
|
Timestamp |
Последние дата и время обновления объекта с точностью до секунд |
Дата изменения |
|
Reference (User) |
Отображаемое имя пользователя, который последний раз обновил объект. |
Изменил |
|
Reference (Tenant) |
Отображаемое название тенанта, который является владельцем объекта. |
Идентификатор тенанта |
|
String |
Неуникальный человекочитаемый идентификатор объекта, предназначенный для пользователя |
Лейбл |
|
Integer |
Версия объекта |
Версия объекта |
Привязка к организации через атрибут organizationId
Привязка объекта к организации осуществляется через значение атрибута organizationId.
Пользователь может выбрать значение organizationId при создании объекта. Отредактировать значение organizationId можно с помощью плейбука.
В схеме домена определяется необходимость отображения виджета атрибута в модальном окне создания объекта:
-
Если виджет отображается, пользователь может выбрать доступную организацию.
-
Если пользователь не выбирает организацию, система автоматически считает объект справочником. Объекты-справочники видны пользователям вне зависимости от выбранных и доступных организаций.
По умолчанию атрибут organizationId заполнять необязательно. Обязательность можно задать с помощью эффекта required в правилах данных.
|
Была ли полезна эта страница?