# Работа в IntelliJ IDEA ## Подключение XSD-схем к редактору кода Для проверки синтаксиса и работы подсказчика при редактировании xml-файлов (avm.xml, odm.xml, global3.config.xml), необходимо подключить к редактору xsd-схемы. Схемы хранятся в библиотеке `C:\programs\gsf-cli\workspace\dists\pgdev\Global3se\server\lib\engine\engine-1.0.jar` | xmlns | xsd -схема | |-|-| | http://www.global-system.ru/xsd/global3-module-1.0 | C:\programs\gsf-cli\workspace\dists\pgdev\Global3se\server\lib\engine\engine-1.0.jar!\schemas\global3-module-1.0.xsd | | http://www.global-system.ru/xsd/global3-view-1.0 | C:\programs\gsf-cli\workspace\dists\pgdev\Global3se\server\lib\engine\engine-1.0.jar!\schemas\global3-view-1.0.xsd | | http://www.global-system.ru/xsd/global3-view-template-1.0 | C:\programs\gsf-cli\workspace\dists\pgdev\Global3se\server\lib\engine\engine-1.0.jar!\schemas\global3-view-template-1.0.xsd | | http://www.global-system.ru/xsd/global3.config.1.0 | C:\programs\gsf-cli\workspace\dists\pgdev\Global3se\server\lib\engine\engine-1.0.jar!\schemas\global3.config.1.0.xsd | Подключить схемы можно в настройках IDE IntelliJ Idea: `File > Settings > Languages & Frameworks > Schemas and DTDs` ## Создание сущностей без конфигуратора Допускается создание сущностей фреймворка в ручном режиме прямо в IDE Intellij Idea ### Создание Odm файла класса Создание класса начинается с создания odm файла (объектно-документного представления сущности): `application/{модуль}/src/main/resources/ru/bitec/app/{модуль}/{имя_сущности}.odm.xml` Для создания можно воспользоваться файловым шаблоном из контекстного меню: `New > odm AllTypes` В качестве примера, откройте файл: `../bs/src/main/resources/ru/bitec/app/bs/Bs_Contras.odm.xml` ### Использование генератора кода Для формирования базового кода для работы с сущностями предназначена утилита `ru.bitec.app.gtk.meta.SourceGenerator`. Генератор подключен к IDE Intellij Idea как внешняя утилита (External Tool). Доступ к генератору кода осуществляется через контекстное меню в обозревателе проекта или заголовка закладки: `External Tools > Generate sources` ```{note} Для настройки утилиты см. главу "Начало работы". ``` Запуск утилиты возможен от любого файла, относящегося к сущности: - `*.orm.xml` - `*.odm.xml` - `*.avm.xml` - `*Avi.scala` - `*Dvi.scala` - `*Api.scala` - `*Dpi.scala` При работе утилиты создаются следующие файлы: - В каталоге `../main/java/ru/bitec/app/{модуль}/` - `{имя_сущности}.java` \ Pojo-класс сущности - В каталоге `../main/scala/ru/bitec/app/{модуль}/` - `{имя_сущности}Dpi.scala` \ Не изменяемая бизнес логика контроллера - `{имя_сущности}Api.scala` Изменяемая бизнес логика контроллера ```{attention} Создается только если нет Api файла ``` - `{имя_сущности}Dvi.scala` \ Не изменяемая бизнес логика представления (View). Шаблон - `{имя_сущности}Avi.scala` \ Изменяемая бизнес логика представления (View). ```{attention} Создается только если нет Avi файла ``` - В каталоге `../main/resources/ru/bitec/app/{модуль}/` - `{имя_сущности}.orm.xml` \ Метаданные сущности для Orm - `{имя_сущности}.avm.xml` Xml-разметка представления ```{attention} Создается только если нет Avm файла ``` При запуске формирования кода для сущности, у которой есть коллекции, так же будет пересозданы коды для коллекций. Для массовой перегенерации файлов, можно вызвать перегенерацию для каталога, содержащего `odm.xml` – файлы. В этом случае будут пересозданы исходные коды для всех `odm.xml` в каталоге. При вызове перегенерации от корневого каталога проекта, будут пересозданы исходные коды для всех сущностей. ### Тонкая настройка Orm Для тонкой настройки формируемого `orm.xml` файла допускается создавать файл-шаблон c именем `{имя_класса}.erm.xml` по формату, идентичному `{имя_класса}.orm.xml` файлу, и включать в него элементы и свойства, необходимые для тонкой настройки. При формировании `orm.xml`, будет прочитан erm.xml, и всё его содержимое будет добавлено в сформированный файл `orm.xml`. ### Обновление схемы БД Для корректной работы системы схема БД должна быть согласована с кодом. В процессе разработки модуля, или при подключении нового модуля к проекту требуется обновлять схему БД специальной утилитой. Так же, как и генератор кода, утилита обновления схемы БД может быть запущена от любой сущности системы. Таблицы создаются на основе метаданных, объявленных в файлах `*.odm.xml`. Создание таблиц с использованием EclipseLink отключено. Утилита генерации схемы запускается из контекстного меню: `External Tools > Generate Tables` ```{note} При обновлении бинарного кода в продакшн-режиме согласование схемы запускается автоматически после обновления jar файлов проекта. ``` ```{note} Для настройки утилиты см. главу "Начало работы". ``` ### Создание главной выборки приложения Для создания нового прикладного приложения, создайте в своём модуле Avi-класс унаследованный от `ProjectApplicationAvi`. Если требуется создать приложение с глобальными фильтрами, то Avi-класс должен быть унаследован от `Bs_ApplicationAvi`. Для создания файла `avm.xml` используйте шаблон "avm Application" в меню создания файлов IntelliJ Idea. Avi-класс, должен быть зарегистрирован в файле META-INF/applications.xml своего модуля.