Особенности хранения данных элементов
Для каждого процесса имеется свой набор элементов. В этом плане иерархия аналогична инфоблокам, где процесс - это тип инфоблока, а элементы - это элементы инфоблока. Только вместо свойств инфоблока используются пользовательские поля из ядра.
Большая часть кода, отвечающего за хранение элементов и значений пользовательских свойств сосредоточена в папке modules/main/lib/userfield/internal
В этой статье можно прочитать подробно про общие процессы динамического создания таблиц и колонок.
Классы в rpa
, отвечающие за таблицы процессов, элементов и обвязка, являются наследниками классов из ядра.
Системные поля
Все таблицы элементов в rpa
имеют набор системных полей:
См. подробнее \Bitrix\Rpa\Model\PrototypeItem.
Пользовательская сортировка элементов в канбане
Каждый пользователь может задать произвольный порядок элементов в каждой стадии на канбане.
Эта сортировка будет работать только в рамках этой стадии и только для этого пользователя.
Без этой сортировки сверху колонки отображаются элементы с наибольшей датой смены стадии (см \Bitrix\Rpa\Model\Stage::getUserSortedItems()
)
Таблица b_rpa_item_sort
.
Класс \Bitrix\Rpa\Model\ItemSortTable.
Полнотекстовый индекс
Для каждого процесса помимо таблицы элементов создается динамически таблица для хранения полнотекстовского индекса.
Заполняется индекс автоматически на событиях (\Bitrix\Rpa\Model\DataManager::onAfterAdd
, \Bitrix\Rpa\Model\DataManager::onAfterUpdate
)
Класс \Bitrix\Rpa\Model\PrototypeItemIndex.
Сами таблицы создаются тут \Bitrix\Rpa\Model\TypeTable::onAfterAdd
.
История изменений
Все действия, выполняемые с элементами, подробно логируются в отдельной таблице.
Заполнение таблицы происходит не на событиях, а в \Bitrix\Rpa\Command::saveToHistory()
.