Dynamic Model
Динамическая модель позволяет расширять модель данных работающего приложения: вы можете добавлять атрибуты к существующим сущностям и определять совершенно новые сущности без изменения исходного кода и перезапуска приложения. Расширение может включать UI времени выполнения, такой как экраны и пункты меню.
Основные возможности:
-
Добавление динамических атрибутов к существующим (статическим) сущностям и определение новых динамических сущностей.
-
Хранение расширенных данных в выделенных таблицах базы данных — дополнительных таблицах для статических сущностей и выделенных таблицах для динамических сущностей — для хорошей производительности.
-
Настройка UI времени выполнения путём объявления новых экранов и пунктов меню.
-
Определение валидации, уникальности атрибутов и безопасности на основе ресурсных ролей.
-
Использование динамических перечислений, ссылок, коллекций и вычисляемых атрибутов.
-
Предоставление локализованных имён и сообщений для динамической модели.
-
Модель редактируется в графическом административном UI и хранится как версионируемое YAML-определение.
| Дополнение Dynamic Model в настоящее время находится в экспериментальном состоянии и может значительно измениться в следующем релизе Jmix. |
Dynamic Model и Dynamic Attributes
Jmix предлагает два различных дополнения для расширения модели данных во время выполнения.
Dynamic Attributes хранят дополнительные значения в структуре Entity-Attribute-Value. Они хорошо подходят для определяемых администратором пользовательских полей, добавляемых к существующим сущностям.
Dynamic Model добавляет настоящие атрибуты и новые сущности, опирающиеся на выделенные таблицы базы данных. Помимо данных, она может определять экраны и пункты меню времени выполнения, а её определение модели является редактируемым и версионируемым. Выбирайте Dynamic Model, когда вам нужны новые сущности, выделенные таблицы, UI времени выполнения или управляемое, версионируемое определение модели.
Установка
|
Для этого дополнения требуется Enterprise подписка. Если у вас нет подписки, ознакомьтесь с разделом Пробная Enterprise+BPM подписка, чтобы получить пробную версию. |
Для автоматической установки через Jmix Marketplace следуйте инструкциям в разделе Дополнения.
Для ручной установки выполните следующие шаги.
-
Настройте доступ к премиум-репозиторию.
-
Добавьте премиум-репозиторий в свой
build.gradle:repositories { // ... maven { url = 'https://nexus.jmix.io/repository/premium' credentials { username = rootProject['premiumRepoUser'] password = rootProject['premiumRepoPass'] } } } -
Добавьте учетные данные премиум-репозитория в
~/.gradle/gradle.properties:premiumRepoUser=123456123456 premiumRepoPass=abcdefabcdefПолучите учетные данные репозитория из вашего лицензионного ключа: первая часть ключа перед тире – это имя пользователя репозитория, часть после тире – пароль. Например, если ваш ключ выглядит как
123456-abcdef abcdef, имя пользователя –123456, а пароль –abcdef abcdef.
-
-
Добавьте зависимости в ваш
build.gradle:implementation 'io.jmix.dynmodel:jmix-dynmodel-starter' implementation 'io.jmix.dynmodel:jmix-dynmodel-flowui-starter'
|
Важное примечание для приложений в режиме меню Single mode Если ваше приложение использует режим меню Single mode, вам следует вручную добавить пункты меню после установки дополнения.
Этот шаг необходим, потому что приложения в режиме Single mode не выполняют автоматическое слияние меню дополнений с существующей структурой. |