Аспекты
Аспект расширяет функционал типа данных без изменения самого типа.
Для просмотра существующих аспектов и их редактирования создан журнал «Аспекты» (Рабочее пространство «Раздел администратора» - Модель):
В журнале администратору с каждой записью доступен стандартный набор действий:
редактировать json-файл;
редактировать свойства;
скачать;
удалить.
См. больше информации о разработке
Создание нового аспекта
Форма создания нового аспекта состоит из 2 вкладок.
Вкладка «Основные»:
п/п |
Наименование |
Описание |
---|---|---|
1 |
Идентификатор |
уникальный идентификатор аспекта |
2 |
Префикс |
Предназанчен, чтобы различать атрибуты из разных аспектов.
Префикс добавляется ко всем атрибутам аспекта по шаблону
{prefix}:{attribute.id} .Таким образом атрибуты могут быть доступны в формах, конфигах действий, мутации записей.
Если префикс отдельно не задан, то по умолчанию равен идентификатору.
|
3 |
Название |
локализованное наименование |
4 |
Форма конфигурации |
Функционал позволяет расширять конфигурацию типа, не меняя форму типа.
Форма может быть выбрана из ранее созданных или создана.
|
Вкладка «Атрибуты»:
Атрибуты аспекта и системные атрибуты аспекта, которые будут добавлены к сущностям с данным аспектом.
п/п |
Наименование |
Описание |
Пример заполнения |
---|---|---|---|
1 |
Id |
идентификатор поля, по которому оно будет доступно на форме, в журнале. |
testAttribute (camelCase) |
2 |
Имя |
имя поля для отображения пользователю. |
Тестовый атрибут |
3 |
Тип |
тип поля. Поддерживаемые типы данных |
выбирается из списка предлагаемых. По умолчанию выставляется text. |
4 |
Множественный |
множественный ввод разрешен |
флаг |
5 |
Обязательный |
поле обязательно к заполнению |
флаг |
6 |
Вычисляемые атрибуты |
функионал, позволяющий установить выражение-зависимость, позволяющий гибко создавать производные атрибуты См. подробно |
настройка конфигурации в зависимости от типа и сложности вычисления атрибута |
В поле _aspects
как и при добавлении любого другого аспекта вносится информация об аспекте.
Примечание
Каждый аспект может быть добавлен как явно (во вкладке Аспекты), так и автоматически (см. ниже Учет времени)
Примеры
Связан с другим документом
Аспект «Связан с другим документом» создан для работы виджета «Связи документа» (добавение и отображение связей с сущностью ):
В поле assoc:associatedWith
вносится информация о связанных сущностях.
Имеет штрихкод
Аспект «Имеет штрихкод» создан для формирования штрихкода к документу:
В аспекте нет атрибутов, но есть форма настройки:
При выборе аспекта в типе данных можно настроить формат штрих-кода и атрибут, из которого брать данные для формирования штрих-кода (по умолчанию номер документа _docNum
).
Для реализацции сложной логики - необходимо создать вычисляемый атрибут, и на основе него добавить аспект и далее брать настройку штрих-кода из атрибута.
Учет времени
Аспект «Учет времени» создает записи о потраченном времени по задаче:
В аспекте есть атрибут timeTracking
- запись о потраченном времени:
Отражается в виде дочерней ассоциации: time-trackable:timeTracking
:
При таком выборе атрибут аспекта является дочерней ассоциацией.
Следовательно, по сущности timeTracking
можно перейти к родителю. В атрибуте timeTracking
, соответственно, содержатся ссылки на все дочерние сущности.
Таким образом образуется двухсторонняя связь:
от дочернего к родителю по системному атрибуту
_parent
,от родителя к дочернему по настроенному атрибуту.
Если удаляется родитель, то удаляются дочерние сущности по всем ассоциациям.
Если заданы права по умолчанию, то дочерние наследуют права от родителей. Соответственно, просматривать timeTracking
могут все, у кого доступ к документу.
При создании timeTracking
- сущности доступны 2 атрибута, которые позволяют сделать связь с родителем:
_parent?str: "emodel/type@document" //Заявка, с которой мы связываем родителя.
_parentAtt?str: "time-trackable:timeTracking" //Атрибут от родителя к дочерней сущности, куда его нужно добавить.
Конфигурация истории
Аспект «Конфигурация истории» создан для возможности конфигурации записи свойств в историю.
Для настройки необходимо добавить этот аспект в тип данных на вкладке Аспекты:
Исключенные атрибуты
По кнопке Настроить в строке Исключенные атрибуты доступен выбор атрибутов типа данных, информация об изменении которых не будет записываться в историю, и отражаться в виджете «История событий», соответственно.
Например, если в карточке изменить информацию о наименовании, категории и стоимости, то в виджете «История событий» отразится информация только об измененной стоимости:
Если в типе данных настроены аспекты (например, Версионные данные, Имеет документы), то атрибуты из них так же можно выбрать:
Атрибуты для записи истории при создании
По кнопке Настроить в строке Атрибуты для записи истории при создании доступен выбор атрибутов типа данных, информация о создании которых будет записываться в историю, и отражаться в виджете «История событий», соответственно.
Например:
Так же можно вносить атрибуты непосредственно в json:
excludedAtts - исключенные атрибуты;
onCreationHistoricalAtts - атрибуты для записи истории при создании
Отключить историю

При выставленном чекбоксе Отключить историю при изменении никакие данные не будут записываться в историю, и отражаться в виджете «История событий», соответственно.
Импорт данных
Аспект import-data-config (Импорт данных) - необходим для настройки вариантов импорта данных.

Форма настройки:

id - id варианта.
Название - название варианта, которое будет отображаться в журнале.
Camel DSL - Camel DSL с типом IMPORT_DATA, в котором описана обработка данных.
Разрешен для - можно указать группы или пользователей напрямую. Если оставить пустым, вариант будет доступен всем.
Для типа данных может быть добавлено несколько конфигураций импорта.
Созданные конфигурации будут доступны в журнале по кнопке Импорт:

Вариант «По умолчанию»

Если вариант «По умолчанию» включен, можно указать Маппинг для ассоциаций.
Указывается атрибут в Типе данных и атрибут в связанном типе, для поиска. Атрибутов для поиска может быть указано несколько. Если поле оставить пустым, то поиск будет вестись по системному атрибуту _name.
Примечание
Шаблон для варианта «По умолчанию» формируется по журналу, в котором выполняется скачивание шаблона.
Если в типе присутствуют обязательные атрибуты, которых не в журнале, они будут добавлены в конец столбцов в шаблоне.
В шаблон не выгружаются системные, вычисляемые (созданные и в типе данных, и в журнале), вложенные поля.
Для варианта «По умолчанию» добавлен универсальный CamelDSL default-import-data.
Имеет активности
Чтобы письмо обрабатывалось и добавлялось как активность необходимо:
Добавить в тип данных аспект Имеет активности (has-ecos-activities) и настроить его конфигурацию:

Указать алиас, по которому будет осуществляться поиск типа данных в заголовке письма, выбрать атрибут типа данных.
В Теме сообщения в конце указывать связь в формате (Алиас: Значение)

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

Для включения обработки писем в виджете «Активности» необходимо указать почтовый ящик в настройке mail-inbox-activity.
Файл библиотеки документов
TBD