Аспекты

Аспект расширяет функционал типа данных без изменения самого типа.

Для просмотра существующих аспектов и их редактирования создан журнал Аспекты (Раздел администратора - Модель - Аспекты):

В журнале администратору с каждой записью доступен стандартный набор действий:

  • редактировать 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 - атрибуты для записи истории при создании



Отключить историю

../_images/history-config_11.png

При выставленном чекбоксе Отключить историю при изменении никакие данные не будут записываться в историю, и отражаться в виджете «История событий», соответственно.