Коллеги! Поделитесь опытом контекстного определения и запуска внешних подпроцессов. Чтобы не обобщать, приведу следующим сценарий. Запросы попадают в сервисную службу по электронной почте. Эти запросы могут быть разных видов, которые обрабатываются разными процессами. Т.е. начало одно, а продолжение - разное )) В ELMA есть удобный механизм для этого - внешние подпроцессы. Т.е. можно сделать процесс, который обрабатывает входящую почту и направляет её на оператора, который выполняет её первичную обработку и направляет в работу. Т.о.. нужный подпроцесс определяется на предыдущих шагах процесса. Например, подпроцесс определяется типом заявки: оператор должен указать нужный тип заявки, а система сама определит нужный процесс и запустит его. Кроме того, важный свойством внешнего процесса является то, что его первая задача тут же появляется у оператора и он может начать его выполнять (т.е. управление от процесса к внешнему подпроцессу передаётся незаметно для оператора). Конечно, можно в основном процессе сделать ИЛИ-шлюз, но это работает для 2-3 вариантов, для 200-300 - рисовать такой "процесс" как-то нелепо. В ELMA есть возможность определять и запускать подпроцесс скриптом, но в этом варианте нет "бесшовной" передачи управления: первая задача подпроцесса создаётся, но не открывается у оператора. Вот, собственно, вопрос: кто как на опыте реализует контекстное определение и запуск внешних подпроцессов?
Если использовать штатные возможности процессного движка ELMA, то такое вот динамическое определение запускаемого процесса, возможно только через исключающий шлюз. И в случае большого количества процессов, действительно приходится делать большую схему с кучей ветвлений (чтобы не портить эстетику карты процесса, можно это убрать в подпроцесс). Для 200-300 процессов наверное решение не очень, но 20-30 вполне можно обойтись шлюзом. Если вам все таки нужно, чтобы набор запускаемых процессов был большим, то есть кастомное решение, которое позволяет запускать подпроцесс на основе переданной на вход переменно идентифицирующей запускаемый процесс. Если интересно такое решение, можете написать мне напрямую, расскажу подробнее.