Решение проблемы организации быстрой связи между исполнителями при работе с бизнес-процессами, для внедрения в свободной системе RunaWFE (OSSDEVCONF-2019) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
<!-- <blockquote>[©]</blockquote> --> * Михеев А. Г. Системы управления бизнес-процессами и административными регламентами на примере свободной программы RunaWFE — 2-е изд. — М.:ДМК Пресс, 2016 * Илюшечкин В. М. Основы использования и проектирования баз данных {{vklink|1447}} {{fblink|2564733443779661}} <references/> [[Категория:OSSDEVCONF-2019]] [[Категория:RunaWFE]] {{stats|disqus_comments=0|refresh_time=2020-07-08T00:00:1319T00:24:30.945620828347|vimeo_plays=20|youtube_comments=1|youtube_plays=52}}3}} |
Версия 21:24, 18 июля 2020
- Докладчик
При работе с Бизнес процессами в среде RunaWFE, существует потребность в online взаимодействии пользователей. В докладе представляется решение данной задачи в виде программного модуля чата с использованием технологий WebSoket и Ajax, объясняется функционал и способ его реализации.
Содержание
Видео
Презентация
Thesis
При работе с Бизнес процессами в среде RunaWFE, существует потребность в online взаимодействии пользователей. В докладе представляется решение данной задачи в виде программного модуля чата с использованием технологий WebSoket и Ajax, объясняется функционал и способ его реализации.
Системы управления бизнес-процессами генерируют задания исполнителям в соответствии с движением точек управления по схеме бизнес-процесса и таким образом координируют совместную работу сотрудников, а также информационных систем предприятия. При этом у исполнителей текущих заданий часто возникает потребность получения дополнительной информации от пользователей, выполнивших какие-то иные задания бизнес-процесса. Для обмена информацией между исполнителями заданий в системе управления бизнес-процессами RunaWFE, был разработан модуль online взаимодействия участников экземпляра бизнес-процесса в виде чата.
Ввиду того, что система RunaWFE изменяется под потребности конкретных пользователей (компаний) было решено выполнить чат в виде полностью автономного модуля-тега, который будет легко встроить в любую html страницу. Для того чтобы окно чата не заслоняло нужный контент страницы он выполнен в виде кнопки, вызывающей открытие перемещаемого немодального окна поверх страницы, у которого есть 2 варианта размера.
Для администрирования/модерации чата была введена система chat_id, которая позволяет объединять чаты с разных страниц в общие чаты. Администратор может отслеживать происходящее во всех подконтрольных ему чатах одновременно, не отвлекаясь на постоянные переключения между окнами.
Ввиду того что бизнес-процесс может длиться долгое время, была реализована система цитирования сообщений, которая позволяет создавать многоуровневые вложения цитат, подгружаемые по мере необходимости и позволяющие пользователям просмотреть о чем шла речь в переписке без долгого поиска среди ленты старых сообщений.
Для передачи информации между чатом и сервером изначально применялись Ajax-запросы т.к. они уже применялись в системе повсеместно, однако ввиду необходимости инициирования получения информации сервером был добавлен web-socket для обмена сообщениями, а Ajax применяется только для подгрузки цитируемых сообщений с целью экономии трафика и улучшения производительности чата.
Хранение сообщений в базе данных выполнено с использованием библиотеки hibernate и разделено на таблицы (см. Табл. 1)
[rum_tbl0]
название таблицы | описание |
---|---|
CHAT_MESSAGE | хранение текста и автора сообщений |
CHAT_MESSAGE_FILES | хранит файлы для контроля занимаемой памяти без удаления всего сообщения |
CHATS_USER_INFO | для хранения индивидуальных настроек пользователя в конкретном чате и номера последнего непрочитанного им сообщения |
Функциональность текущего решения:
Кнопка «Открыть чат» — открывающая чат встраивается в html страницу (см. Рисунок 1)
Встроенный в код страницы тег чата:
На страницу добавляется три js-скрипта (в дальнейшем планируется их объединить), один css и тег с chat id (identifiableId) в желаемое местоположение кнопки открытия чата. (см. Рисунок 2)
- кнопка слева-сверху изменяет размер чата (на скриншете размер большой)
- кнопка «удалить» внизу сообщений присутствует только у адинистратора
- кнопка «ответить» добавляет цитирование сообщений, цитируемое сообщние появляется в нижней части чата, ограничение — около 100 единовременно цитируемых на 1 уровне вложения (т.е. не считая цитируемые в них сообщения), что является избыточным и позволяет пользователю об этом не беспокоится.
Для прикрепления файлов предусмотрено 2 способа:
- кнопка «выбрать файлы»
- перетаскивание файла в область ввода сообщений (см. Рисунок 3)
Браузер | Результат |
---|---|
Google Chrome | работает нормально |
Yandex browser | работает нормально |
FireFox | работает нормально |
Opera | работает нормально |
Microsoft Edge (платформа Chromium) | работает нормально |
Microsoft Edge (движок EdgeHTML) | имеется проблема с миганием при drag-and-drop файлов, альтернативный способ прикрепления кнопкой «обзор» работает. наблюдается смещение размеров сообщений (только визуальный баг) |
Планы доработки чата:
- Ввести в чат систему вывода картинок, видео и таблиц в браузере (без их загрузки).
- Передача в чате ссылок на элементы бизнес-процесса для перехода к ним прямо из чата.
- Поправить смещения кнопки «ответить» при большом количестве развернутых уровней цитирования.
Примечания и ссылки
- Михеев А. Г. Системы управления бизнес-процессами и административными регламентами на примере свободной программы RunaWFE — 2-е изд. — М.:ДМК Пресс, 2016
- Илюшечкин В. М. Основы использования и проектирования баз данных
Plays:73 Comments:1