Спросите о параллельной задаче диаграммы Activiti

Мой бизнес-процесс должен быть переведен в диаграмму Activiti BPM или другие механизмы BPM. Вот мой сокращенный бизнес-процесс: - пользователь 1 создает бизнес-транзакцию - затем пользователь 2 выполняет свою задачу по изменению статуса транзакции. Моя проблема: после создания бизнес-транзакции пользователь 1 может удалить транзакцию, где пользователь 2 не может выполнить свою задачу (или его задача автоматически удаляется пользователем 1). Итак, как я могу выразить этот бизнес с помощью диаграммы BPM? Я сейчас запутался с использованием параллельного шлюза?


person Thien Dinh    schedule 04.01.2014    source источник


Ответы (2)


Указанный вами сегмент бизнес-процесса на самом деле является довольно распространенной практикой. Часто инициатор уполномочен отменить процесс или часть процесса, которые могут иметь существующие задачи.

Самый простой способ справиться с этим:

  1. После запуска процесса разделите поток и отправьте задачу «Состояние» пользователю 1 и задачу «обработать транзакцию» пользователю 2.
  2. Попросите статусную задачу (пользователь 1) предоставить простой параметр пользовательского интерфейса для отмены процесса, который отправит событие завершения (все сразу отключается) или, если требуется очистка, отправляет сигнальное событие для завершения работы экземпляра процесса.
  3. Задача «Обработка транзакции» будет иметь прослушиватель событий, который улавливает сигнальное событие, которое автоматически закрывает задачу и течет (через логику очистки) до конца.

Обратите внимание, что если вы используете событие завершения, шаг 3 не требуется, но это что-то вроде «подхода лома», по моему опыту, всегда требуется очистка экземпляра (уведомление пользователей о том, почему их задача процесса ушла, отмена БД или системы Записывать транзакции, отправлять сообщения в другие системы).

Отдельно стоит отметить BP-3 ( http://www.bp-3.com ) предлагает полный набор услуг Activiti, включая:

  1. Поддержка миграции (на Activiti с других BPM-систем)
  2. Предварительная поддержка движка Activiti BPM
  3. Услуги по проектированию процессов BPM, разработке, обзору
  4. Производственная поддержка движка Activiti BPM
  5. Общие консультационные услуги

Возможно, они смогут помочь вам со стратегией миграции.

person Greg Harley    schedule 05.01.2014

Задача пользователя 2, похожая на (обновить статус транзакции), должна сначала проверить, существует ли конкретный объект, прежде чем обновлять статус, а затем, возможно, установить логическую/физическую блокировку, указывающую, что с ней ведется работа, если это необходимо. Точно так же в задаче пользователя 1 должна быть проверка перед удалением, чтобы увидеть, удерживается/заблокирован ли объект другим пользователем. Таким образом, шаг — это не просто 1 действие.

person NoChance    schedule 04.01.2014