На недавнем вебинаре по Jmix BPM мы говорили о событиях в процессе.
И, пожалуй, самый сложный момент был в том, как выполнить неблокирующий вызов внешнего сервиса, чтобы процесс мог завершить задачу и двинуться дальше. Иначе у вас будет долго висеть открытая транзакция, а это нехорошо.
Если вы думаете, что достаточно поставить флаг
Чтобы разобраться в этом вопросе читайте на Хабре новую статью Станислава Макарова
Неблокирующий вызов внешнего сервиса в процессе
#статья
И, пожалуй, самый сложный момент был в том, как выполнить неблокирующий вызов внешнего сервиса, чтобы процесс мог завершить задачу и двинуться дальше. Иначе у вас будет долго висеть открытая транзакция, а это нехорошо.
Если вы думаете, что достаточно поставить флаг
async и все волшебным образом образуется, то это не так. Все гораздо сложнее. Чтобы разобраться в этом вопросе читайте на Хабре новую статью Станислава Макарова
Неблокирующий вызов внешнего сервиса в процессе
#статья
🔥6👍4
🆕 Видеообзор: Что нового в Jmix 2.5
Дмитрий Кремнев, ведущий разработчик Jmix, вернувшись с нашего митапа, не смог остаться равнодушным к просьбе коммьюнити подготовить отдельное видео по последним обновлениям и планам на будущее!
Специально для тех, кто не смог посетить встречу в Москве, публикуем обзор релиза 2.5 🤘
📌 VK
📌 YOUTUBE
Делитесь обратной связью в чате!
#обновления #jmix25
Дмитрий Кремнев, ведущий разработчик Jmix, вернувшись с нашего митапа, не смог остаться равнодушным к просьбе коммьюнити подготовить отдельное видео по последним обновлениям и планам на будущее!
Специально для тех, кто не смог посетить встречу в Москве, публикуем обзор релиза 2.5 🤘
📌 VK
📌 YOUTUBE
Делитесь обратной связью в чате!
#обновления #jmix25
VK Видео
Что нового в Jmix 2.5
В этом видео Дмитрий Кремнев, ведущий разработчик Jmix, показывает новые возможности и улучшения, представленные в последней версии Jmix, и рассказывает о планах на следующие релизы. Ключевые обновления в релизе 2.5: 1. Новое дополнение Tabbed window mode…
🔥15👍3
Продолжаем рассказывать про новое в релизе Jmix 2.5!🎉
Сегодня речь пойдет про REST API и REST DataStore, два аддона, которые работают в паре и дополняют друг друга. В новом релизе их взаимодействие стало еще теснее.
🔸Фетч-планы в REST API и REST DataStore
Теперь вы можете передавать произвольные fetch-планы в виде JSON-объектов в ваши REST API endpoints.
Что это значит для вас? 🤔
✅ Больше не нужно определять все fetch-планы в общих репозиториях.
✅ Используйте встроенные fetch-планы в ваших клиентских экранах и Java-коде!
🔸Новый Capabilities API
Он информирует клиента о функциях, поддерживаемых данным универсальным REST API.
🔸Использование FileStorage с REST DataStore
В REST DataStore появилась специальная реализация FileStorage, которая работает с файлами, расположенными в хранилище файлов удаленного приложения через REST-эндпойнты /files.
🔸Настраиваемые пути REST-эндпойнтов
Пути универсальных эндпойнтов REST API теперь можно настраивать с помощью свойств приложения.
🔸Сессии в REST API
Дополнение Jmix Sessions предоставляет поддержку сессий, поддерживаемых для REST-запросов с одним и тем же токеном.
#фича #jmix25
Сегодня речь пойдет про REST API и REST DataStore, два аддона, которые работают в паре и дополняют друг друга. В новом релизе их взаимодействие стало еще теснее.
🔸Фетч-планы в REST API и REST DataStore
Теперь вы можете передавать произвольные fetch-планы в виде JSON-объектов в ваши REST API endpoints.
Что это значит для вас? 🤔
✅ Больше не нужно определять все fetch-планы в общих репозиториях.
✅ Используйте встроенные fetch-планы в ваших клиентских экранах и Java-коде!
🔸Новый Capabilities API
Он информирует клиента о функциях, поддерживаемых данным универсальным REST API.
🔸Использование FileStorage с REST DataStore
В REST DataStore появилась специальная реализация FileStorage, которая работает с файлами, расположенными в хранилище файлов удаленного приложения через REST-эндпойнты /files.
🔸Настраиваемые пути REST-эндпойнтов
Пути универсальных эндпойнтов REST API теперь можно настраивать с помощью свойств приложения.
🔸Сессии в REST API
Дополнение Jmix Sessions предоставляет поддержку сессий, поддерживаемых для REST-запросов с одним и тем же токеном.
#фича #jmix25
🔥8👍3
16 апреля, 16:00 по мск
Станислав Макаров, продуктовый аналитик Jmix, уже готовит новый вебинар! В этот раз Стас представит богатый арсенал Jmix BPM по работе с данными, который позволяет реализовать сложные сценарии их обработки в виде сервисных задач бизнес-процесса 🔝
На встрече вы узнаете:
▪️Что такое процессные переменные и как их правильно использовать.
▪️Когда и как применять Entity Data Task, и когда их использовать не стоит.
▪️Как реализовать Service Task по обработке данных.
▪️Каковы лучшие практики и риски при использовании бизнес-данных в процессе
#мероприятия
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10😱2
Автор рассказывает о создании образовательной платформы с помощью ассистента Jmix. Как можно быстро сгенерировать UML-диаграммы, определить доменную модель и реализовать ключевые сущности, не написав ни строчки кода вручную.
#статья
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Разработка Java-проекта с Jmix AI Assistant
Эта заметка инспирирована статей на Хабре Разработка Java-проекта с ChatGPT-4: от идеи до реализации [1]. После ее прочтения автор начал экспериментировать в разработке ПО с различными AI...
🔥19❤3👍3
Сегодня на 31-й Конференции «Информационные технологии в страховании» в Москве выступает Антон Решанов, Руководитель продаж Jmix в России и Беларуси.
💡 Тема доклада: «Особенности автоматизации бизнес-процессов в InsurTech». Ох и много мы говорим про Jmix BPM в этом году 😎
Приходите послушать, задать вопросы и пообщаться про Jmix.
📍 Связаться с Антоном можно по телефону +7 937 238 0322
#мероприятия
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥3
Март был богат на события, и апрель не отстает! 🌪️
Дмитрий Кремнев, ведущий Jmix-разработчик, которого вы знаете по вебинарам и недавнему митапу, будет рад встретиться с вами на JPoint👋
3-4 апреля находите Диму на площадке и задавайте ему любые вопросы про Jmix.
Как его найти? Конечно, по фирменной толстовке Жмых-Жмых! Или напишите ему в тг.
На мероприятии будут также наши друзья Amplicode и Spring АйО, рекомендуем тоже к ним заглянуть😉
#мероприятия
Дмитрий Кремнев, ведущий Jmix-разработчик, которого вы знаете по вебинарам и недавнему митапу, будет рад встретиться с вами на JPoint
3-4 апреля находите Диму на площадке и задавайте ему любые вопросы про Jmix.
Как его найти? Конечно, по фирменной толстовке Жмых-Жмых! Или напишите ему в тг.
На мероприятии будут также наши друзья Amplicode и Spring АйО, рекомендуем тоже к ним заглянуть
#мероприятия
Please open Telegram to view this post
VIEW IN TELEGRAM
JPoint 2026. Java-конференция для опытных разработчиков
JPoint 2026 | Конференция по разработке на Java. Крупнейшая в России
Java-конференция. Отобранные спикеры и экспертный контент. Несколько десятков докладов о JVM, Spring Boot, фреймворках и архитектуре.
👍12❤2🔥1
Продолжаем рассказывать про Jmix.2.5📣
Новый релиз платформы Jmix кроме новых фич также обогатился гайдами. Потому что мало иметь крутые фичи, надо еще рассказывать, как ими пользоваться, чтобы вы могли быстро создавать крутые продукты. Поэтому команда Jmix регулярно выпускает новые гайды, вот держите следующий:
Гайд по инициализации сущностей🎉
Зачем нужно инициализировать сущности? — Есть много причин.
Например, можно сократить проверки на null, уменьшить ручной ввод, минимизировать ошибки и так далее.
— Но это же очень просто!
Мы же умеем инициализировать переменные в коде.
В чем проблема?
Дело в том, что в Jmix задать начальные значения атрибутов сущностей можно несколькими разными способами, и это по-разному сказывается на конечном результате —поэтому и понадобился специальный гайд.
Итак, сущности можно инициализировать:
🔸 Прямо в описании класса
🔸 С помощью метода @PostConstruct
🔸 Посредством инжекции зависимостей
🔸 По событиям InitEntityEvent, EntitySavingEvent, EntityChangedEvent
На уровне UI💻, причем есть несколько вариантов
🔹 При инициализации экрана
🔹 При обновлении связанных полей
🔹 При сохранении сущности
А когда какой способ рациональнее выбрать, 📚читайте в нашем гайде
#гайд #jmix25
Новый релиз платформы Jmix кроме новых фич также обогатился гайдами. Потому что мало иметь крутые фичи, надо еще рассказывать, как ими пользоваться, чтобы вы могли быстро создавать крутые продукты. Поэтому команда Jmix регулярно выпускает новые гайды, вот держите следующий:
Гайд по инициализации сущностей🎉
Зачем нужно инициализировать сущности? — Есть много причин.
Например, можно сократить проверки на null, уменьшить ручной ввод, минимизировать ошибки и так далее.
— Но это же очень просто!
Мы же умеем инициализировать переменные в коде.
В чем проблема?
Дело в том, что в Jmix задать начальные значения атрибутов сущностей можно несколькими разными способами, и это по-разному сказывается на конечном результате —поэтому и понадобился специальный гайд.
Итак, сущности можно инициализировать:
🔸 Прямо в описании класса
🔸 С помощью метода @PostConstruct
🔸 Посредством инжекции зависимостей
🔸 По событиям InitEntityEvent, EntitySavingEvent, EntityChangedEvent
На уровне UI💻, причем есть несколько вариантов
🔹 При инициализации экрана
🔹 При обновлении связанных полей
🔹 При сохранении сущности
А когда какой способ рациональнее выбрать, 📚читайте в нашем гайде
#гайд #jmix25
👍14
Поваренная книга от Jmix, выпуск 2:
Работа с данными в UI
Вот несколько рецептов для эффективной работы с данными и элементами UI!
1️⃣ Каскадные выпадающие списки
Каскадные выпадающие списки фильтруют элементы на основе предыдущего выбора в иерархии. Например, выбор планеты в первом списке обновляет второй список, показывая ее луны.
📌 Совет: Используйте
2️⃣ Копирование сущностей
При копировании сущностей в представлениях списка вы можете использовать два подхода:
• Копировать: Создает новый экземпляр и немедленно сохраняет его.
• Копировать и редактировать: Создает новый экземпляр и открывает детальный просмотр сущности для редактирования. Сохраняется только после подтверждения пользователем.
🛠 Совет: Используйте
3️⃣ Пользовательский фильтр с декларативными условиями
Вы можете реализовать пользовательский фильтр, связав поля ввода с условиями запроса через
🔍 Совет: Совмещайте с компонентом
4️⃣ Пользовательский фильтр с модификацией запроса
Изменяйте текст запроса программно, когда изменяется значение поля ввода. Это позволяет реализовать более сложные фильтрации, например, поиск без учета регистра.
🛠 Совет: Метод
5️⃣ Отложенная загрузка данных
Оптимизируйте пользовательский опыт, откладывая загрузку данных до окончательного выбора. После завершения выбора заказов, данные загружаются через 2 секунды.
⏱ Совет: Используйте фасет таймера для загрузки данных только после завершения выбора пользователя.
6️⃣ Сохранение сущности через пользовательский сервис
Отправляйте сущности в пользовательские сервисы для обработки, обеспечивая изолированную и гибкую работу. Например, обновите статус контракта через сервис, перехватывая стандартные операции сохранения.
💡 Совет: Используйте сервисные бины для обработки изменений статуса и убедитесь, что представление сохраняет только измененные сущности.
7️⃣ Использование представлений базы данных
Используйте только для чтения представления базы данных для отображения агрегированных данных без возможности редактирования. Для редактирования данных используйте связанные сущности через обработчики.
🔧 Совет: Обновляйте таблицу данных после успешного коммита с помощью окна диалога для редактирования.
🔗 Следите за новыми полезными советами!
Первый пост о Cookbook смотри здесь.
#cookbook
Работа с данными в UI
Вот несколько рецептов для эффективной работы с данными и элементами UI!
1️⃣ Каскадные выпадающие списки
Каскадные выпадающие списки фильтруют элементы на основе предыдущего выбора в иерархии. Например, выбор планеты в первом списке обновляет второй список, показывая ее луны.
📌 Совет: Используйте
DataLoadCoordinator, чтобы автоматически перезагружать связанные данные при изменении выбора!2️⃣ Копирование сущностей
При копировании сущностей в представлениях списка вы можете использовать два подхода:
• Копировать: Создает новый экземпляр и немедленно сохраняет его.
• Копировать и редактировать: Создает новый экземпляр и открывает детальный просмотр сущности для редактирования. Сохраняется только после подтверждения пользователем.
🛠 Совет: Используйте
MetadataTools.copy() для поверхностного копирования выбранных сущностей.3️⃣ Пользовательский фильтр с декларативными условиями
Вы можете реализовать пользовательский фильтр, связав поля ввода с условиями запроса через
DataLoadCoordinator. Он автоматически инициирует загрузку данных при событии BeforeShowEvent.🔍 Совет: Совмещайте с компонентом
genericFilter для большей гибкости.4️⃣ Пользовательский фильтр с модификацией запроса
Изменяйте текст запроса программно, когда изменяется значение поля ввода. Это позволяет реализовать более сложные фильтрации, например, поиск без учета регистра.
🛠 Совет: Метод
reload() в контроллере явно инициирует логику фильтрации.5️⃣ Отложенная загрузка данных
Оптимизируйте пользовательский опыт, откладывая загрузку данных до окончательного выбора. После завершения выбора заказов, данные загружаются через 2 секунды.
⏱ Совет: Используйте фасет таймера для загрузки данных только после завершения выбора пользователя.
6️⃣ Сохранение сущности через пользовательский сервис
Отправляйте сущности в пользовательские сервисы для обработки, обеспечивая изолированную и гибкую работу. Например, обновите статус контракта через сервис, перехватывая стандартные операции сохранения.
💡 Совет: Используйте сервисные бины для обработки изменений статуса и убедитесь, что представление сохраняет только измененные сущности.
7️⃣ Использование представлений базы данных
Используйте только для чтения представления базы данных для отображения агрегированных данных без возможности редактирования. Для редактирования данных используйте связанные сущности через обработчики.
🔧 Совет: Обновляйте таблицу данных после успешного коммита с помощью окна диалога для редактирования.
🔗 Следите за новыми полезными советами!
Первый пост о Cookbook смотри здесь.
#cookbook
🔥12👍5
Jmix 2.5: Генерация клиента OpenAPI по тегам – что это значит?
При генерации клиентского кода из схемы OpenAPI обычно создается код для всего API, включая все эндпоинты и модели. Однако в Jmix 2.5 теперь можно генерировать клиентский код только для определенных тегов, заданных в OpenAPI.
Как это работает?
1. OpenAPI использует "теги" для группировки API-эндпоинтов. Например, в API для e-commerce можно иметь:
🔹
🔹
🔹
2. С этим новым функционалом вы можете выбрать только нужные теги при генерации клиентского кода. Если вам нужны только заказы, выбираете тег
3. Studio автоматически отфильтрует неиспользуемые схемы. Исключаются модели (структуры данных), которые не задействованы в выбранных эндпоинтах, уменьшая объем сгенерированного кода.
Зачем это нужно?
✅ Меньше кода – Нет необходимости разбираться с лишними моделями и эндпоинтами.
✅ Проще поддерживать – Компактный клиентский код удобнее в работе.
Эта возможность помогает интегрироваться с большими API, не перегружая проект лишним кодом.
Смотрите подробнее в гайде Integrating Applications Using OpenAPI
#фича #jmix25
При генерации клиентского кода из схемы OpenAPI обычно создается код для всего API, включая все эндпоинты и модели. Однако в Jmix 2.5 теперь можно генерировать клиентский код только для определенных тегов, заданных в OpenAPI.
Как это работает?
1. OpenAPI использует "теги" для группировки API-эндпоинтов. Например, в API для e-commerce можно иметь:
🔹
Orders (для работы с заказами)🔹
Customers (для работы с клиентами)🔹
Products (для работы с товарами)2. С этим новым функционалом вы можете выбрать только нужные теги при генерации клиентского кода. Если вам нужны только заказы, выбираете тег
Orders, а остальные игнорируете.3. Studio автоматически отфильтрует неиспользуемые схемы. Исключаются модели (структуры данных), которые не задействованы в выбранных эндпоинтах, уменьшая объем сгенерированного кода.
Зачем это нужно?
✅ Меньше кода – Нет необходимости разбираться с лишними моделями и эндпоинтами.
✅ Проще поддерживать – Компактный клиентский код удобнее в работе.
Эта возможность помогает интегрироваться с большими API, не перегружая проект лишним кодом.
Смотрите подробнее в гайде Integrating Applications Using OpenAPI
#фича #jmix25
👍6🔥2🤩1
Дмитрий Кремнев, как и обещали в толстовке с новым дизайном, уже на крупнейшей Java-конференции в России
Огромное количество стендов интересных компаний и продуктов, море общения с профессионалами своего дела, а ведь доклады ещё не начались
Напоминаем, что Диме можно написать в тг или найти его на площадке.
❤️ если нравится наш новый мерч
👍🏻 если сегодня тоже на конфе
#мероприятия
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤22👍8🔥5🤩2
На платформе Jmix были реализованы решения, которые включают четыре инфраструктурных компонента для анализа качества данных, управления конфигурациями приложений, автоматизации бизнес-процессов и формирования отчетности.
Они помогают компаниям ускорить разработку, повысить надежность ИТ-системы и упростить интеграцию с существующей инфраструктурой.
В будущем разработанные модули интегрируют в VK Cloud и VK Data Platform, расширяя возможности цифровой трансформации бизнеса. Только вперед!
🔗 Читайте статью на CNews здесь.
#статья
Please open Telegram to view this post
VIEW IN TELEGRAM
CNews.ru
VK Tech и Opus Tech завершили разработку компонентов платформы частного облака для нефтегазовой отрасли - CNews
VK Tech совместно с Opus Tech разработали комплекс инфраструктурных компонентов, которые оптимизируют процессы...
👍9🔥5❤1
О чем этот канал 👆
Jmix👨💻 Платформа быстрой разработки B2B и B2G веб-приложений на Java.
Платформа состоит из трех компонентов для повышения продуктивности разработчика:
🔸 Jmix Framework — ядро платформы, построенное на open-source стеке технологий.
🔸 Jmix Studio — это инструмент, интегрированный в IntelliJ IDEA Community Edition.
🔸 Маркетплейс — набор дополнений для решения типовых системных и бизнес-задач.
➡️ Начать работу по ссылке.
⚡ Для быстрого старта:
AI Ассистент
Документация
Демо приложения
Бесплатный курс на Stepik
🗺 Навигация по каналу:
#мероприятия — анонсы событий, в которых участвуем или которые организуем сами.
#обновления — новости о новых версиях платформы и Jmix Studio, а также багфикс-релизах.
#кейсы_клиентов — истории клиентов, которые реализовали корпоративную систему на Jmix.
#гайд — о работе с функциональностью Jmix.
#статья — статьи наших разработчиков и партнеров.
#фича — про обновления платформы.
Подписывайтесь на канал и общайтесь в коммьюнити-чате🤝
😌 @jmixplatform
Jmix
Платформа состоит из трех компонентов для повышения продуктивности разработчика:
🔸 Jmix Framework — ядро платформы, построенное на open-source стеке технологий.
🔸 Jmix Studio — это инструмент, интегрированный в IntelliJ IDEA Community Edition.
🔸 Маркетплейс — набор дополнений для решения типовых системных и бизнес-задач.
➡️ Начать работу по ссылке.
AI Ассистент
Документация
Демо приложения
Бесплатный курс на Stepik
#мероприятия — анонсы событий, в которых участвуем или которые организуем сами.
#обновления — новости о новых версиях платформы и Jmix Studio, а также багфикс-релизах.
#кейсы_клиентов — истории клиентов, которые реализовали корпоративную систему на Jmix.
#гайд — о работе с функциональностью Jmix.
#статья — статьи наших разработчиков и партнеров.
#фича — про обновления платформы.
Подписывайтесь на канал и общайтесь в коммьюнити-чате
Please open Telegram to view this post
VIEW IN TELEGRAM
www.jmix.ru
Платформа для быстрой разработки веб-приложений | Jmix
denoscription
👍10❤1
‼️ Не забудьте зарегистрироваться на вебинар про сокращение затрат при разработке решений на Java!
9 апреля в 16:00 по мск Jmix и Axiom JDK предложат решение, как перестать изобретать "велосипеды" и не сжигать ресурсы при создании проекта.
А еще поговорим про:
🔹 Ситуацию с программным обеспечением на ИТ рынке 2025.
🔹 Вызовы при создании внутренних цифровых активов компании.
🔹 Пути разработки на Java. Подходы к построению архитектуры web-приложения.
🔗 Регистрация по ссылке
Ждем вас!
#мероприятия
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 #кейсы_клиентов
Вы, наверное, слышали, что 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 #кейсы_клиентов
openbpm.ru
OpenBPM - платформа для автоматизации бизнес процессов (BPM) с российским движком на базе Camunda 7
OpenBPM - это интегрированная платформа разработки процессных приложений на Java open-source стеке
🔥10👍5🤩4
Поваренная книга от Jmix, выпуск 3:
📌 Полезные UI-рецепты
Вот несколько интересных примеров, которые не связаны напрямую с данными приложения, но могут улучшить пользовательский интерфейс!
1️⃣ Копирование текста в буфер обмена
Легко копируйте текст в буфер обмена с помощью асинхронной JavaScript-функции. Поскольку копирование возможно только на стороне клиента, этот метод обеспечивает корректную работу.
2️⃣ Кастомная форма логина
Настройте внешний вид страницы входа с помощью CSS и добавьте фоновое изображение.
📌 Совет: Храните изображение в папке темы приложения, чтобы оно было доступно на клиенте.
3️⃣ Отображение статического PDF в IFrame
Выводите статические PDF-файлы с помощью компонента IFrame.
📂 Совет: Храните файлы в папке
4️⃣ Загрузка PDF через REST в IFrame
Выводите PDF-файлы, хранящиеся в виде
🔧 Совет: Используйте кастомный контроллер (
5️⃣ Мастер (Wizard) для пошагового ввода данных
Реализуйте мастер для ввода данных!
📌 Пример: Мастер для создания записи о сотруднике с этапами:
✅ Ввод основной информации
✅ Добавление адреса
✅ Проверка введенных данных
Мастер основан на
🛠 Эти небольшие, но мощные улучшения значительно повысят удобство работы с приложением! Следите за новыми полезными советами.
#cookbook #гайд
📌 Полезные 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
Присоединяйтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
Mts-link.ru
Как перестать изобретать "велосипеды" и не сжигать ресурсы при создании проекта
Узнайте про современные и оптимальные подходы к построению архитектуры web-app с помощью Jmix и Axiom JDK
Дата проведения: 09.04.2025 год
Эфир получился активный, наполненный инсайтами от коллег по разработке и, конечно, программистскими шуточками
Благодарим нашего партнера Axiom JDK за интересную и полезную встречу! Надеемся, вам было также увлекательно обсуждать разные подходы к построению архитектуры web-приложений на Java, как и нам.
Не смогли присоединиться онлайн?
Ловите запись встречи:
#мероприятия
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Jmix 2.5: Расширенный экран списка задач BPM
В Jmix BPM кроме стандартного экрана задач, можно добавить расширенный экран, который стал более дружественным к пользователю.
Но главное его достоинство не в этом. Этот экран вам будет проще дорабатывать.
Потому что он создается при помощи визарда экранов — просто выбираете из списка шаблонов BPM Advanced task list view —и готово! Этот экран является частью вашего проекта, с ним можно работать обычным образом —изменять дизайн, добавлять поля и т.д.
Кстати, специально для тех, кто в своих проектах изрядно доработал стандартный список задач, мы оставили старый экран на прежнем месте и в том же виде, чтобы не было проблем с совместимостью.
А для новых проектов сразу берите новый экран!
Лайфхак: можно создать сколько угодно таких экранов в проекте!
— Зачем это нужно? Например, чтобы сделать разные экраны для разных категорий пользователей и типов задач.
Так вы создаёте не просто экран, а UX, который нужен вашим пользователям.
#jmix25 #фича
В Jmix BPM кроме стандартного экрана задач, можно добавить расширенный экран, который стал более дружественным к пользователю.
Но главное его достоинство не в этом. Этот экран вам будет проще дорабатывать.
Потому что он создается при помощи визарда экранов — просто выбираете из списка шаблонов BPM Advanced task list view —и готово! Этот экран является частью вашего проекта, с ним можно работать обычным образом —изменять дизайн, добавлять поля и т.д.
Кстати, специально для тех, кто в своих проектах изрядно доработал стандартный список задач, мы оставили старый экран на прежнем месте и в том же виде, чтобы не было проблем с совместимостью.
А для новых проектов сразу берите новый экран!
Лайфхак: можно создать сколько угодно таких экранов в проекте!
— Зачем это нужно? Например, чтобы сделать разные экраны для разных категорий пользователей и типов задач.
Так вы создаёте не просто экран, а UX, который нужен вашим пользователям.
#jmix25 #фича
🔥10👍4
⚙️ Мастер-класс по UI: Быстрое создание пользовательского приложения на Jmix
Дмитрий Кремнев успевает всё! И разработкой заниматься, и наш новый худи выгуливать, и мастер-класс приготовить по Jmix UI 🌪
23 апреля в 16:00 по мск Дима вместе с Антоном Решановым, Руководителем продаж, продолжит тему про пользовательский интерфейс и вместе с вами создаст пример экрана пользователя в социальной сети. Напомним, что в прошлом году мы разобрали теоретическую часть Jmix UI.
📌 Рекомендуем ознакомиться с прошлым вебинаром.
В этот раз вы научитесь реализовывать пользовательский CSS и создавать приложения со специфичным CSS. Дима поделится лучшими практиками и ответит на любые вопросы!
🔗 Регистрация на вебинар тут.
Всем жмых! 👨💻
#мероприятия
Дмитрий Кремнев успевает всё! И разработкой заниматься, и наш новый худи выгуливать, и мастер-класс приготовить по Jmix UI 🌪
23 апреля в 16:00 по мск Дима вместе с Антоном Решановым, Руководителем продаж, продолжит тему про пользовательский интерфейс и вместе с вами создаст пример экрана пользователя в социальной сети. Напомним, что в прошлом году мы разобрали теоретическую часть Jmix UI.
📌 Рекомендуем ознакомиться с прошлым вебинаром.
В этот раз вы научитесь реализовывать пользовательский CSS и создавать приложения со специфичным CSS. Дима поделится лучшими практиками и ответит на любые вопросы!
🔗 Регистрация на вебинар тут.
Всем жмых! 👨💻
#мероприятия
🤩12👍3🔥1