Jmix.ru – Telegram
Jmix.ru
646 subscribers
358 photos
44 videos
1 file
436 links
Jmix — платформа быстрой разработки B2B и B2G веб-приложений на Java.

🤝 Наш коммьюнити-чат: https://news.1rj.ru/str/jmixchat

⚙️ Начать бесплатно: https://www.jmix.ru/get-started/
Download Telegram
‼️ Не забудьте зарегистрироваться на вебинар про сокращение затрат при разработке решений на Java!

9 апреля в 16:00 по мск Jmix и Axiom JDK
предложат решение, как перестать изобретать "велосипеды" и не сжигать ресурсы при создании проекта.

А еще поговорим про:

🔹 Ситуацию с программным обеспечением на ИТ рынке 2025.
🔹 Вызовы при создании внутренних цифровых активов компании.
🔹 Пути разработки на Java. Подходы к построению архитектуры web-приложения.

🔗 Регистрация по ссылке

Ждем вас!

#мероприятия
👍12
🚀 OpenBPM Control – приложение на Jmix

Вы, наверное, слышали, что Haulmont выпускает новый продукт — платформу для автоматизации бизнес-процессов OpenBPM? Если ещё нет, то срочно бегите смотреть на сайте openbpm.ru 🔗

Но сегодня мы хотели сказать о другом: о том, что Jmix идеально приспособлен для разработки самых разнообразных административных панелей ⚙️

С помощью Jmix вы можете быстро создать модель данных и CRUD-экраны для манипулирования вашими сущностями и справочниками.

Затем добавляете бизнес-логику для административных функций, генерите клиента для OpenAPI и управляете любыми вашими серверами.

Вишенкой на торте 🍒 станут отчёты и графики на дашбордах 📊

За примерами далеко ходить не надо: именно так был разработан OpenBPM Control — приложение для администраторов систем BPM с движком Camunda.

Построенное на базе фреймворка Jmix, приложение предоставляет удобный интерфейс для мониторинга и управления бизнес-процессами. Оно позволяет администраторам запускать, останавливать и отслеживать выполнение процессов, а также проверять их корректность.

По своей функциональности OpenBPM Control сопоставим с Camunda Cockpit, но выделяется возможностью подключения нескольких движков и легко кастомизируется благодаря Jmix.

Заметьте, что управление бизнес-процессами — отнюдь не самая простая предметная область! Однако, разработка OpenBPM Control заняла всего пару месяцев, а результат получился отличный!

Кстати, OpenBPM Control — это open source, всё, как мы любим 🧡
Вы можете скачать его из репозитория на GitHub и оценить в работе, если у вас есть сервера Camunda.

#Camunda #кейсы_клиентов
🔥10👍5🤩4
Поваренная книга от Jmix, выпуск 3:
📌 Полезные UI-рецепты


Вот несколько интересных примеров, которые не связаны напрямую с данными приложения, но могут улучшить пользовательский интерфейс!

1️⃣ Копирование текста в буфер обмена
Легко копируйте текст в буфер обмена с помощью асинхронной JavaScript-функции. Поскольку копирование возможно только на стороне клиента, этот метод обеспечивает корректную работу.

2️⃣ Кастомная форма логина
Настройте внешний вид страницы входа с помощью CSS и добавьте фоновое изображение.
📌 Совет: Храните изображение в папке темы приложения, чтобы оно было доступно на клиенте.

3️⃣ Отображение статического PDF в IFrame
Выводите статические PDF-файлы с помощью компонента IFrame.
📂 Совет: Храните файлы в папке META-INF/resources и настройте директиву безопасности frame-ancestors для корректного доступа.

4️⃣ Загрузка PDF через REST в IFrame
Выводите PDF-файлы, хранящиеся в виде FileRef, с помощью REST API.
🔧 Совет: Используйте кастомный контроллер (CustomFileDownloadController.java) и настройте фильтр безопасности (CustomRestSecurityConfiguration.java) для безопасного доступа к файлам.

5️⃣ Мастер (Wizard) для пошагового ввода данных
Реализуйте мастер для ввода данных!

📌 Пример: Мастер для создания записи о сотруднике с этапами:
Ввод основной информации
Добавление адреса
Проверка введенных данных

Мастер основан на tabSheet, каждый шаг — это отдельная вкладка с валидацией. Пользователь может свободно переключаться между шагами.

🛠 Эти небольшие, но мощные улучшения значительно повысят удобство работы с приложением! Следите за новыми полезными советами.

#cookbook #гайд
🔥16
🎬 Запись вебинара Jmix и Axiom JDK: Как перестать изобретать "велосипеды" и не сжигать ресурсы при создании проекта на Java

Дата проведения: 09.04.2025 год

Эфир получился активный, наполненный инсайтами от коллег по разработке и, конечно, программистскими шуточками 🙃 Особенно была интересна дискуссия про AI 😎

Благодарим нашего партнера Axiom JDK за интересную и полезную встречу! Надеемся, вам было также увлекательно обсуждать разные подходы к построению архитектуры web-приложений на Java, как и нам.

Не смогли присоединиться онлайн?
Ловите запись встречи:
😄ВК
😉YOUTUBE

#мероприятия
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥91
This media is not supported in your browser
VIEW IN TELEGRAM
Jmix 2.5: Расширенный экран списка задач BPM

В Jmix BPM кроме стандартного экрана задач, можно добавить расширенный экран, который стал более дружественным к пользователю.

Но главное его достоинство не в этом. Этот экран вам будет проще дорабатывать.

Потому что он создается при помощи визарда экранов — просто выбираете из списка шаблонов BPM Advanced task list view —и готово! Этот экран является частью вашего проекта, с ним можно работать обычным образом —изменять дизайн, добавлять поля и т.д.

Кстати, специально для тех, кто в своих проектах изрядно доработал стандартный список задач, мы оставили старый экран на прежнем месте и в том же виде, чтобы не было проблем с совместимостью.

А для новых проектов сразу берите новый экран!

Лайфхак: можно создать сколько угодно таких экранов в проекте!
— Зачем это нужно? Например, чтобы сделать разные экраны для разных категорий пользователей и типов задач.

Так вы создаёте не просто экран, а UX, который нужен вашим пользователям.

#jmix25 #фича
🔥10👍4
⚙️ Мастер-класс по UI: Быстрое создание пользовательского приложения на Jmix

Дмитрий Кремнев успевает всё! И разработкой заниматься, и наш новый худи выгуливать, и мастер-класс приготовить по Jmix UI 🌪

23 апреля в 16:00 по мск Дима вместе с Антоном Решановым, Руководителем продаж, продолжит тему про пользовательский интерфейс и вместе с вами создаст пример экрана пользователя в социальной сети. Напомним, что в прошлом году мы разобрали теоретическую часть Jmix UI.
📌 Рекомендуем ознакомиться с прошлым вебинаром.

В этот раз вы научитесь реализовывать пользовательский CSS и создавать приложения со специфичным CSS. Дима поделится лучшими практиками и ответит на любые вопросы!

🔗 Регистрация на вебинар тут.

Всем жмых! 👨‍💻

#мероприятия
🤩12👍3🔥1
‼️ ЗАВТРА! Вебинар Данные в действии: Как Jmix BPM превращает бизнес-процессы в эффективные механизмы

Мы продолжаем открывать для вас инструменты Jmix BPM!

Каждый месяц Станислав Макаров, продуктовый аналитик Jmix, с увлечением готовит для вас новый вебинар. Стас даже придумал себе фирменный элемент одежды. Какой? Подсказка на картинке 😉

В этот раз Стас расскажет как Jmix BPM позволяет реализовать сложные сценарии обработки данных в виде сервисных задач бизнес-процесса.

На встрече вы узнаете:

▪️Что такое процессные переменные и как их правильно использовать.
▪️Когда и как применять Entity Data Task, и когда их использовать не стоит.
▪️Как реализовать Service Task по обработке данных.
▪️Каковы лучшие практики и риски при использовании бизнес-данных в процессе.

Встречаемся онлайн 16 апреля в 16:00 по мск 🙌

#мероприятия
🔥82👍1
⚡️ Вебинар "Данные в действии: Как Jmix BPM превращает бизнес-процессы в эффективные механизмы" начнется через 5 минут по ссылке ➡️ https://my.mts-link.ru/j/104598363/666770320

Присоединяйтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Jmix на форуме «Облака в деле: реальные кейсы, опыт партнеров и новые возможности»

22 апреля Облакотека, интеграционная облачная система, проводит IT-форум в Казахстане. Конечно, мы не могли пропустить это мероприятие!

🎙 Виктор Фадеев, Product Manager Jmix, выступит с докладом "Быстрый старт в «облаках» через профессиональную Dev-платформу Jmix”. Если есть возможность, приходите! Виктор также будет рад встречи, его телеграм для связи.

Форум проходит на базе площадки Qazaq IT Community с 09.30 до 13.30 часов.

➡️ РЕГИСТРАЦИЯ НА ФОРУМ

📍г. Алматы, SmArt.Point, Коворкинг-центр, ​БЦ Almaty Towers​ Улица Байзакова, 280, Конференц-зал Smart Space

До встречи в Алматы!

#мероприятия
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥101
Продолжаем рассказывать про Jmix 2.5📢

В 2024 году стандарт UUIDv7 был официально принят в RFC 9562, и теперь он используется в Jmix для генерации значений UUID, аннотированных @JmixGeneratedValue.

📌 Почему UUIDv7 – лучше, чем раньше?

До принятия UUIDv7 в Jmix использовались случайные UUID, но у них были серьезные недостатки:

Плохая работа с индексами БД – UUIDv4 генерируется случайно, поэтому новые записи вставляются в разные места индекса, вызывая его фрагментацию и снижая производительность запросов.
Нестабильный порядок вставки – Из-за хаотичной структуры UUIDv4 вставка новых записей может замедляться, особенно в больших таблицах.

📌 Почему UUIDv7 – лучший выбор для идентификаторов сущностей?

Основан на времени – UUIDv7 включает временную метку, что делает его естественно упорядоченным. Это особенно полезно для ключей в базе данных, так как новые записи вставляются в правильном порядке.
Оптимизация индексов – В отличие от случайных UUIDv4, которые могут вызывать фрагментацию индексов, UUIDv7 помогает сохранять производительность запросов и снижает нагрузку на базу данных.
Автоматическое использование в Jmix – UuidProvider.createUuidV7() используется по умолчанию в EntityUuidGenerator, так что вам не нужно ничего менять вручную.

Впрочем, если вы хотите, чтоб все осталось как было раньше, со случайными UUID, добавьте в application.properties параметр
jmix.core.legacy-entity-uuid=true

Но лучше все-таки перейти на новый стандарт.
Используйте UUIDv7 для стабильной и эффективной работы базы данных! 🎉

По нашему опыту, только благодаря использованию UUIDv7 на некоторых операциях с базой данных можно получить прирост производительности в два раза! 🚀🚀

#фича #jmix25
🔥9👍31
На прошедшем вебинаре по Jmix BPM могло показаться, что все не работает, процесс падает и вообще непонятно что с этим делать.

Но таков и был замысел автора! Вживую показать, где разложены грабли, чтобы на проде у вас таких ситуаций не возникало.

Продемонстрировать один простой процесс легко. Но это будет далеко от реальной жизни. И мы не хотим, чтоб у вас осталось обманчивое ощущение простоты, которое затем превратится в разочарование, когда придется делать настоящий процесс.

Потому что BPM—штука реально сложная, и никуда от этого не деться. Но и пугаться или совсем от него отказываться из-за сложности не следует. Надо просто принять как факт, что эту тему придется погружаться глубоко, только знания BPMN недостаточно. Еще надо понимать, как именно процесс исполняется движком и какие могут быть проблемы.

Пожалуй, самая большая боль это Optimistic Locking Exception.

Возьмем типичный случай: вам поступают заказы и надо резервировать товар на складе. Пока вы запускаете единичный процесс, все работает как часы. Но когда процессов становится много, и они одновременно пытаются обновить одну и ту же запись в базе данных, то как раз и случается оптимистическая блокировка.

На вебинаре мы как раз смоделировали такую ситуацию и попробовали разные методы, как ее разрулить. И вот что в итоге:

Обычный процесс синхронными задачами может просто упасть, потому что напарывается на оптимистическую блокировку и откатывает транзакцию. А может и выполнится успешно, это как повезет.

Была гипотеза ловить это исключение, кидать BPMN Error и обрабатывать его в процессе. Но тут другая беда: чистый OptimisticLokingException может быть обернут в разные спринговые исключения, например, TransactionSystemException. И таких вариантов несколько. То есть, обрабатывать эту цепочку исключений программно получается довольно громоздко.

Переход к асинхронным задачам немного улучшает ситуацию, но не решает ее кардинально. Такой процесс уже не падает, движок честно сам пытается несколько раз задачу все-таки выполнить, а если не получилось, отмечает ее как Failed job, которую можно потом перезапустить вручную.

Попробовали пессимистическую блокировку. (Вы же знаете, что в Jmix есть такой специальный адд-он, да?) — Тоже неидеальное решение. Все потому, что в недрах Spring наш OptimisticLockingException может обернуться совсем другим классом.

И что в итоге?

Самый действенный метод борьбы с оптимистическими блокировками это использование очередей в брокере сообщений. Берем RabbitMQ, например. В одну очередь кидаем запрос на резервирование. Потом специальным сервисом читаем сообщения из очереди, выполняем резервирование и отправляем ответ в другую очередь. Слушатель на этой очереди читает ответы и отправляет BPMN-сообщения в соответствующие экземпляры процессов.

Для эксперимента запустили 3000 экземпляров процесса в разных потоках и все они завершились успешно, ни одной оптимистической блокировки не случилось.

Делаем вывод:
Если из модели процесса понятно, что возможны оптимистические блокировки и что нагрузка будет достаточно высокой, лучше сразу закладываться на использование брокера сообщений. Если нагрузка невелика, то справится и штатных механизм fail-retry.

Если хочется попробовать руками, как это все работает, вот проект на GitHub:
bpm-webinar-data-centric-process

Не смогли присоединиться онлайн?
Ловите запись встречи:
😄ВК
😉YOUTUBE
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍41
Cравнительный анализ React и Jmix для написания UI бизнес-приложений.

Красивый и функциональный интерфейс - это React? Но React'ом ли единым? 🤔 Есть ли другие инструменты для эффективного написания бизнес-приложений?

VK Tech в блоге сравнивает варианты реализации стандартного CRUD приложения Petclinic на Jmix и React + Spring Boot.

Какой вывод был сделан, читайте на Хабре.

#статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
👨‍💻 Дорогу молодым!

18 апреля в Самаре прошло самое интересное мероприятие, которое может быть в ИТ-мире - Хакатон! И главное, что в нем приняли участие ребята из Самарского регионального центра для одаренных детей.

Мероприятие прошло в педагогическом технопарке "Кванториум" им. В. Ф. Волкодавова на базе Самарского государственного социально-педагогического университета 🎓

Хакатон проводится уже третий раз, но в этом году Jmix выступил партнером!

Павел Александров, наш ведущий разработчик, принял участие в составе жюри и провел награждение победителей подарками от Jmix. Все участники молодцы! 💪 Было невероятно интересно и приятно выступать экспертами на мероприятии в поддержку молодежи.

Желаем ребятам ИТ-успехов, чистого кода, а мы всегда рядом, чтобы предоставить современные технологии и поддержать будущие ивенты!

#мероприятия
👍12🔥54
🥳 Сегодня команда Jmix участвует на мероприятии «Облака в деле» г. Алматы организованного облачным провайдером Cloupard и Qazaq IT Community. Вместе с партнерами расскажем о кейсах Jmix по создании бизнес-приложений для развертывания в облачной инфраструктуре.

#мероприятия
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16🔥9
ЗАВТРА Мастер-класс по UI: Быстрое создание пользовательского приложения на Jmix

Разработчики Jmix – это бэкенд-разработчики, которые выбирают платформу из-за одного большого преимущества. Не нужно использовать JS для создания веб-приложений!

В то же время, многие разработчики на Jmix полагают, что тогда им вообще не потребуется погружение во фронтенд 🙄 Если говорить про создание внутренних приложений, то возможно фронт и не пригодится. Но при разработке приложений для пользователей избежать работы с фронтендом не получится, особенно потребуется знание CSS.

Да, CSS может быть сложным и трудоемким, но у нас хорошие новости: в Jmix 2.x работать с CSS намного проще по сравнению с Jmix 1.x! 👍

Дмитрий Кремнев, ведущий разработчик, вместе с Антоном Решановым, коммьюнити-менеджером, расскажут, как с помощью CSS можно быстро и легко создавать стилизованные экраны с нуля.

📌 Обязательно регистрируйтесь тут.

#мероприятия
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥3👍1
⭐️ История успеха: Квадриум "Создание системы управления рисками"

Компания «Квадриум», поставщик бизнес-решений для крупного бизнеса, разработала систему "Quadrium ActiveGRC" на базе Jmix.

Система ActiveGRC:
🔸 Автоматизирует риск-менеджмент.
🔸 Работает по модели трех линий защиты.
🔸 Помогает компаниям предсказывать и снижать риски.

Мы гордимся сотрудничеством с одной из ведущих компаний на рынке 🤝 и делимся полезными инсайтами здесь.

А еще хотим сказать, что на Jmix сообщество создает много решений класса GRC. Если у вас есть идеи сделать подобный проект, то приходите к нам! Мы расскажем и покажем, что сделали другие 😊

#кейсы_клиентов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9
Media is too big
VIEW IN TELEGRAM
🔸 Редактирование объектов на карте в Jmix 2.5 🗺️✏️

Адд-он Maps уже давно присутствует в арсенале разработчиков Jmix. Основанный на библиотеке OpenLayers , он позволяет легко добавить отображения карт на любые экраны Jmix — например, локации 🚗 ваших автомобилей, 🏢 адреса клиентов, 🏧 расположение банкоматов, 🗺️ границы земельных участков, 🥾 туристические маршруты и что угодно.

Чаще всего эта информация берётся из гео-данных, связанных с сущностями Jmix. И до недавнего времени единственное, что можно было сделать в интерактивном режиме — это переместить точку 📍 на карте.

А вот создавать или изменять линейные и площадные объекты — такие как 🛣️ дороги, линии электропередач, 🌾 поля, 📦 границы зон доставки и прочее — можно было только по координатам, что для обычных пользователей крайне неудобно.

И вот, в версии Jmix 2.5 появилась возможность редактировать объекты прямо на карте! 🛠️

Просто добавьте атрибут featureModifyEnabled="true"к своим векторным или дата-слоям — и готово — можно двигать его узловые точки.

А чтобы иметь возможность перетаскивать объект целиком, включите атрибут featureDragEnabled="true". Также можно удалить объект с карты.

Эти режимы активируются специальными кнопками в верхнем левом углу карты.

📚 Подробности смотрите в документации.

#фича #jmix25
🔥12👍1
Вчера на мастер-классе по UI Дмитрий Кремнев, ведущий разработчик, вместе с Антоном Решановым, коммьюнити-менеджером, рассказали, как с помощью CSS можно быстро и легко создавать стилизованные экраны с нуля.

Не смогли присоединиться онлайн?
Ловите запись встречи:
😄ВК
😉YOUTUBE

#мероприятия
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🎉5🔥3