Юрий,
возникла еще вот какая закавыка.
Можно ли и как сделать, чтобы выбор варианта движения в развилке в eEPC был в зависимости не от события, а от какого-то другого условия, например статуса заказа?
Подробнее, как возник вопрос:
Как ты знаешь, мы решили не использовать сценарии для описания вариантов процессов, а просто использовать eEPC и декомпозицию - для более-менее сложной логики это удобнее.
Но вылезла вот какая проблема:
Есть процесс верхнего уровня, см. фрагмент: [реклама вместо картинки]
Декомпозиция верхней функции: [реклама вместо картинки]
Декомпозиция нижней функции:
[реклама вместо картинки]
Как видно, нижняя функция начинается с того же события, каким заканчивается верхнее ("Технолог назначен"), и это правильно.
Но! На верхнем уровне есть развилка - "сценарий" процесса. В зависимости от того, какой это заказ, он пойдет по разному пути. В рассматриваемом случае он должен быть "новый или повтор с изменениями", чтобы пойти по этой ветке.
Варианты пути ("сценарии") я обозначил объктами событие. Но, получается, что это неправильно!
- Логически. Это некий статус заказа, значение дополнительного параметра, а не событие;
- И семантически. Если я свяжу нижние уровни напрямую, то при "прохождении" процесса "потеряется" имеющаяся на верхнем уровне логика. Если же попытаюсь связать нижние процессы 1 и 2 через верхний уровень, то мне придется делать связь событие-событие, что невозможно, ли выдумывать какую-то функцию, которой на самом деле нет.
Можно, конечно, придумать "вырожденную" функцию "Определение статуса заказа", но это как-то коряво, и загромождает модели.
Возвращаться к идее сценариев что-то не очень хочется, eEPC нагляднее, мне кажется, да и "плодить сущности без необходимости" не хочется...
Как быть?