Особенности хранения данных элементов
Для каждого процесса имеется свой набор элементов. В этом плане иерархия аналогична инфоблокам, где процесс - это тип инфоблока, а элементы - это элементы инфоблока. Только вместо свойств инфоблока используются пользовательские поля из ядра.
Большая часть кода, отвечающего за хранение элементов и значений пользовательских свойств сосредоточена в папке 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().