Цикл задач в бизнес-процессе

Подскажите, пожалуйста.

Как в bpm 7.x с помощью БП организовать цикл регулярных задач (напоминаний клиенту о задолженности), при этом в любой момент задолженность может быть погашена (запись изменяется автоматически, без вмешательства пользователя), и процесс должен сразу же выйти из цикла и пойти по другой ветке?

Нравится

5 комментариев

В процессе после элемента " сформировать напоминание" (насколько понимаю это смс-оповещение, формирование e-mail или др.) элементом задание-сценарий проверяем состояние по оплате (погашена или нет). Если удовлетворяет условиям, то выводим из цикла. Если задолженность не погашена, то зацикливаем процесс с использованием элемента таймер для повторной проверки через n времени.

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

Используем элемент "Чтение данных" для получения информации о задолженности.
Делаем два ветвление с условными потоками:
выбираем первый поток потоком по умолчанию (поток *), а во втором потоке указываем условия наличия задолженности. Если задолженность имеется - процесс будет обработан по второму потоку. Следующим элементом второго потока выберите элемент "Отправить e-mail" для уведомления должника через e-mail. Далее используйте элемент "Исключающие ИЛИ по событиям". От него будет два ветвления: в первом ветвлении укажите таймер (в параметрах укажите время повторного напоминания) и далее возврат к элементу "Чтение данных", а во втором ветвлении (поток **) используйте промежуточный "Обрабатывающий сигнал" (указав в условиях объекта условия отсутствия задолженности и колонки, которые должны быть изменены (изменяются автоматически)).
Свяжите (поток *) и (поток **) следующим элементом процесса.

"Демьяник Алексей Олегович" написал:используйте промежуточный "Обрабатывающий сигнал"

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

"Владимир Соколов" написал:

И тогда в случае получения промежуточного сигнала, сразу же процесс пойдет по верхней ветке?

Процесс пойдет по верхней ветке, если выполнены условия, указанные в блоке "Объект должен соответствовать условию".

"Владимир Соколов" написал:

Нужно ли в этом случае ставить проверку наличия задолженности перед повторным уведомлением? Или "исключающее ИЛИ" исключит нижнюю ветку автоматически?

Если запись объекта происходит на уровне БД, то такая проверка должна быть (промежуточный сигнал реагирует на изменения объектов на уровне приложения, поэтому при изменении на уровне БД нижняя ветка, к сожалению, не исключится).

Спасибо! Дальше будем экспериментировать

Показать все комментарии