Добрый день.
Версия BPM 7.2
Есть ли возможность запускать бизнес-процесс в фоновом режиме? Сейчас использую такой код при нажатии на кнопку:
Проблема в том, что страница блокируется (появляется значок загрузки). Однако мой бизнес-процесс работает длительное время, он меняет состояние записей в определенном разделе (Выполняется, Ошибка, Успешно и т.д.), может обрабатывать по несколько записей за запуск, и необходимо дать пользователю возможность продолжать работу с системой.
Спасибо!
Нравится
Добрый день!
Проблема может заключатся в логике выполнения самого процесса (нет прав доступа на записи, некорректная обработка записи).
Если логика процесса не подразумевает взаимодействие с пользователем(отобразить страницу редактирования, вопрос пользователю и т.д.) то процесс по умолчанию будет отрабатывать в фоновом режиме.
Вы верно указали, для запуска процесса используется метод executeProcess(processArgs).
Начните с простого, запустите процесс по кнопке, который обработает 1 запись и посмотрите результат.
Бизнес-процесс не взаимодействует с пользователем. Там нет элементов взаимодействия с пользователем. БП считывает правила синхронизации из БД, выполняет запросы к удаленному стороннему web-сервису, разбирает ответ и затем обновляет данные в БД. При возникновении любой ошибки, процесс записывает информацию в лог и переходит к другому правилу синхронизации из набора.
На текущий момент удаленный web-сервис недоступен, возникает ошибка соединения, сообщение об ошибке попадает в лог - но во время всего этого страница пользователя блокируется, до тех пор, пока процесс не прекратит работу.
А необходимо, чтобы процесс запустился и вся его работа выполнялась в фоне.
В какую сторону мне посмотреть?
Артем,
Попробуйте поставить в начале процесса элемента “Таймер” с какой-то задержкой. В результате будет создан триггер, который продолжит выполнение процесса в указанное время, от этого же пользователя в фоновом режиме.