Best practice
Раздел содержит рекомендации по настройке и использованию ключевых компонентов платформы ECOS: типов данных, форм и шаблонов уведомлений. Следование приведённым практикам позволяет выстраивать решения, которые легко поддерживать и масштабировать.
Типы данных
При создании типа данных необходимо руководствоваться следующим правилом для выбора типа родителя:
Кейс - тип для хранения записи, статус которой изменяется в процессе жизненного цикла автоматически в ходе бизнес-процесса, или вручную (например, при использовании канбан-доски). Маркером того, что тип будет кейсом является необходимость прикрепления к нему процесса и указания при создании общей информации, атрибутов, ролей, статусов и матрицы прав.
Справочник - тип для хранения наборов бизнес-данных, которые будут использоваться как статические данные для документов, не участвующие непосредственно в бизнес-процессах. Маркером того, что тип будет справочником является указание при его создании только общей информации и перечня атрибутов.
Документ - TBD
Файл библиотеки документов - TBD
Публикация - TBD
Остальное - иные созданные ранее типы данных.
Подробно о типах данных
Формы
Подробно о формах
Атрибуты
Авто-заполнение из связанной сущности (Dual-Layer Default Pattern)
Данный паттерн применяется, когда нужно автоматически подставить значение атрибута из связанного объекта (например, из проекта в релиз), оставляя возможность пользователю изменить его вручную.
Задача:
Дочерний тип (например, Релиз) должен наследовать значение поля по умолчанию от родительской сущности (например, от связанного Проекта), но пользователь должен иметь возможность переопределить значение при необходимости.
Решение — два слоя:
Слой |
Механизм |
Когда срабатывает |
|---|---|---|
1. Уровень типа данных |
Вычисляемый атрибут типа Attribute, метод хранения On empty |
При создании записи: если поле пустое — подтягивается значение из атрибута связанного объекта |
2. Уровень формы |
Компонент формы с чекбоксом «Текущий пользователь по умолчанию» |
Резервный вариант: если атрибут связанного объекта тоже пустой — подставляется текущий пользователь |
Конфигурация вычисляемого атрибута (слой 1):
Перейдите в тип данных → вкладка Атрибуты → раздел Вычисляемые атрибуты и добавьте атрибут со следующими параметрами:
Тип |
|
Значение |
Путь к атрибуту связанной сущности, например: |
Метод хранения |
|
Совет
Тип Attribute поддерживает глубокую вложенность через точку. Например, если у типа «Релиз» есть ассоциация project (ссылка на «Проект»), а у «Проекта» есть атрибут responsible, то путь будет: project.responsible?id
Подробнее о синтаксисе вложенных атрибутов см. Вычисляемые атрибуты.
Конфигурация формы (слой 2, резервный):
Если нужен дополнительный резервный вариант (например, подставить текущего пользователя, если атрибут в связанном объекте тоже не заполнен), настройте форму:
Откройте форму типа данных в редакторе форм.
Найдите компонент нужного поля (например, «Ответственный»).
Перейдите на вкладку «Кастомные» компонента.
Установите чекбокс «Текущий пользователь по умолчанию».
Сохраните компонент и форму.
Примечание
Слой формы работает только при открытии формы создания в браузере и не влияет на программные мутации через Records API. Для надёжного резерва лучше полагаться на слой типа данных.
Пример: Ответственный в Релизе из Проекта
Сценарий: тип «Релиз» связан с типом «Проект» через атрибут project. При создании релиза поле «Ответственный`` должно автоматически заполняться значением поля responsible из связанного проекта.
Вычисляемый атрибут в типе «Релиз»:
# В YAML-определении типа данных (секция computedAtts)
- id: responsible
type: ATTRIBUTE
config:
attribute: "project.responsible?id"
storingType: ON_EMPTY
Порядок применения значений по умолчанию:
Создание записи
│
▼
[Слой 1] Вычисляемый атрибут (On empty)
│ project.responsible?id → значение из проекта
│
▼ (если атрибут проекта пуст)
[Слой 2] Форма: «Текущий пользователь по умолчанию»
│
▼
Поле заполнено / пользователь может изменить вручную
Преимущества паттерна:
Значение заполняется автоматически — пользователю не нужно вводить его вручную в большинстве случаев.
Значение остаётся редактируемым — поле не «заморожено», пользователь может изменить его при необходимости.
Метод хранения
On emptyгарантирует, что однажды установленное значение не будет перезаписано при последующих изменениях записи.Слои независимы: слой типа данных работает всегда (включая программные мутации), слой формы — только в UI.
См. также: Вычисляемые атрибуты | Типы данных
Шаблон уведомления
Подробно о шаблонах уведомлений