Предыдущая статья курса: Быстрый старт
Общая информация

Классы являются основой всех систем и приложений, разрабатываемых на платформе Эра. Набор классов в пакетее реализует структуру данных, с которой взаимодействуют остальные элементы пакета. Каждый класс определяется набором параметров, полей и действий. Параметры класса определяют его наименование, поведение, способ хранения данных, структуру наследования и т.д. Обзор параметров класса будет произведен ниже в данной статье.
Набор полей определяет структуру данных класса, а также формирует связь объектов этого класса с другими классами (в рамках всех пакетов системы).
Набор действий может определять некоторые операции, которые могут производиться над объектами данного класса. С помощью действий может реализовываться часть логики работы с классом. Также для реализации логики работы с данными можно использовать обработчики (handlers) и сервисы (services).
Для каждого класса, после активации пакета создается хранилище, соответствующее настройкам класса.
Хранилище может размещаться в оперативной памяти, в распределенной объектной БД, в реляционной БД Postgres (с партициями для исторических данных и без), в брокере Kafka, а также сохранять данные в аналитической колоночной БД Clickhouse.
Параметры класса

У класса достаточно большой набор настраиваемых параметров. Для удобства, рассмотрим их в порядке группировки в окне редактирования.
Name and Location

| Название параметра | Значение по-умолчанию | Комментарий |
|---|---|---|
| package | [текущий выбранный пакет] | Определяет, к какому пакету будет относиться данный класс |
| folderName | Определяет имя папки для группировки классов | |
| name | Системное наименование класса в единственном числе (используется в API) | |
| multiName | Системное наименование класса во множественном числе числе (используется в API) | |
| fullName | [package]/[folderName]/[name] | Формируется автоматически, используется для доступа к данным через API |
| fullMultiName | [package]/[folderName]/[multiName] | Формируется автоматически, используется для доступа к данным через API |
| caption | Заголовок класса, используется для отображения данных пользователю (напр., при отображении карточки редактирования) | |
| multiCaption | Заголовок класса, используется для отображения данных пользователю (напр., при отображении реестра данных класса) |

Data
| Название параметра | Значение по-умолчанию | Комментарий |
|---|---|---|
| storageMode | category | Определяет тип хранилища, создаваемого для класса
ram/runtime/category/history
|
| storageInstance | Используется только для storage_mode = category, history, transactionlog
Данным параметром задается ключ инстанса для хранения данных. При отсутствии настроенного хранилища с кодом 'auto' класс автоматически привязывается к модельной базе ('era_model_DOMAIN'), созданной через основное подключение к БД Postgres домена). | |
| section | Имя секции для выбора экземпляра DMS | |
| integrityMode | sync_fast_notify
|
Режим обеспечения целостности (приоритетность применения изменений в хранилище и рассылки уведомлений)
|
| partitionPropertyName | Используется только для storage_mode = history, transactionlog
Является опциональным для режима history, и обязательным для transactionlog В данном параметре определяется имя поля (с типом datetime), которое будет использоваться для построения партиции в Postgresql / префикса ключа в Kafka+Clickhouse | |
| maxLimit | Максимальное количество строк при чтении одной страницы. Используется в API при пагинации данных | |
| realtime | Обеспечение обновлений данных в реальном времени (путем подписки на изменения). Данный параметр в том чилсе, влияет на работу в интерфейсе (когда два пользователя пытаются изменять один и тот же объект этого класса). | |
| serverCacheMode | none | Режим кэширования данных на сервере (слой платформы, роль DMS)
|
| clientCacheMode | temp | Режим кэширования данных на клиенте (в приложениях и микросервисах продуктового слоя).
Возможные значения аналогичны serverCacheMode |
| classDataSource | model | Источник данных класса
Возможные значения:
|
| restURL | URL сервиса для получения данных. Используется только при dataSource = root | |
| dataFactoryServiceName | Имя сервиса, который используется в качестве фабрики данных (вместо классического REST) | |
| dataFactoryMethodName | Имя метода сервиса, который используется в качестве фабрики данных (вместо классического REST) | |
| tuningOptions | Дополнительные опции (opts) для design/classes
Полный список опций доступен в документации к классу |