Общие сведения
В данном разделе описан порядок формирования сценариев базы данных для сущностей ТЕЗИС в THESIS Studio. Сведения предназначены для администратора или разработчика, выполняющего настройку и сопровождение проекта.
Для созданных сущностей ТЕЗИС, помимо стандартных сценариев DDL и DCL, формируются сценарии DML. Они используются для добавления нумераторов, ограничений доступа, типов карточек, видов документов и других служебных данных.
Сценарии формируются не при создании сущности, а при выполнении действия Generate Database Scripts. Действие доступно в меню THESIS и в контекстном меню выбранного источника данных Data Store.
При создании карточек, документов и справочников сведения о них регистрируются в локальном кэше проекта. Кэш хранится в файле:
.idea/thesis-entities-info.xml
В этот же файл записываются префикс нумератора и поля вида документа. Эти сведения не хранятся в других местах и используются при формировании сценариев базы данных, включая вставку нумератора и вида документа.
Все начальные DML-сценарии помещаются в файл 30.create-db.sql и выделяются комментариями вида:
-- begin ${operation}
...
-- end ${operation}
DML-сценарии обновления помещаются в отдельные файлы с описательными именами. Логика формирования подробно описывается отдельно для каждого сценария.
Важно!
Не рекомендуется изменять текст автоматически сформированных комментариев и имена файлов. Такие изменения могут нарушить логику обновления и удаления сценариев и привести к ошибкам, в том числе к невозможности запуска системы.
Генерация сценариев для разных сущностей
Карточка
Для карточки формируются следующие сценарии:
-
вставка нумератора;
-
вставка ограничений для группы Ограниченный доступ;
-
вставка типа карточки.
Для ограничения группы Ограниченный доступ используются следующие параметры:
| Параметр | Значение |
|---|---|
Выражение join |
left outer join {E}.aclList acl |
Выражение where |
acl.user.id =:session$userId or acl.global = true |
| UUID группы | 8e6306e2-9e10-414a-b437-24c91ffef804 |
При вставке типа карточки в fields.xml включаются все атрибуты, кроме коллекций.
Шаблон карточки
Для шаблона карточки формируется сценарий вставки ограничений для группы Ограниченный доступ.
Для ограничения используются следующие параметры:
| Параметр | Значение |
|---|---|
Выражение join |
left outer join {E}.aclList acl |
Выражение where |
acl.user.id =:session$userId or acl.global = true |
| UUID группы | 8e6306e2-9e10-414a-b437-24c91ffef804 |
Документ
Для документа формируются следующие сценарии:
-
вставка нумератора;
-
вставка типа карточки;
-
добавление типа карточки в стандартные процессы: Согласование, Резолюция, Ознакомление, Регистрация;
-
вставка вида документа;
-
вставка разрешений.
Справочник
Для справочника формируется сценарий вставки разрешений.
Расширенная сущность
Для расширенной сущности формируется сценарий обновления дискриминатора.