Я боюсь, что этого трудно достичь, потому что BPMN намеренно без гражданства.
Предположим, вы находитесь в End
и хотите вернуться на A1
. Это означает, что токен как-то телепортируется в A1
, перетекает в B1
, ко второму AND
и ... мы застряли здесь. Насколько я понимаю, AND
означает параллельный шлюз BPMN. И это не позволяет нам идти дальше, потому что ему нужно два входных токена сразу, чтобы создать выходной токен.
Возможно, вы можете адаптировать другой подход, называемый машиной конечного состояния. Представьте, что ваш документ (часть содержимого, токен и т. Д.), Который протекает через рабочий процесс, имеет атрибут state
, который может быть одним из нескольких значений: Start
, A1
и т. Д. Кроме того, у вас есть таблица перехода в следующем формате :
from | to
----------
Start | AND
AND | A1
AND | A2
Таким образом, ваша система знает, что AND
следует Start
. В этой таблице фактически не указывается классическая машина конечного состояния, так как она определяет нефункциональное отношение; другими словами, любое состояние может выполняться из двух или более состояний, как показано на диаграмме. Это зависит от вас, как реализовать это. Возможно, вы можете создать две копии экземпляра или использовать комбинированный атрибут состояния, который является списком значений.
Но так или иначе, в этом подходе: 1) система знает, как автоматически менять состояния; 2) вы можете создать пользовательский интерфейс, чтобы переключать их вручную.
Выбор библиотек рабочих процессов/состояний, если вы решите использовать их, зависит от вашей платформы, программирования langauge и требований.
Спасибо, что нашли время, чтобы прочитать и ответить. Не могу согласиться с вами больше. Я, наконец, пошел по пути FSM - и разработал и реализовал архитектуру, чтобы позволить мне сделать это. –