Пример: разрешение должно быть рассмотрено двумя юристами и одним инженером.Если какой-либо из этих трех отклоняет его, процесс переходит в «отклоненное» конечное состояние.Если все три предоставляют разрешение, оно входит в «предоставленное» конечное состояние.Все три экзаменатора могут проводить экспертизу одновременно или в любом порядке.
Как только один инженер предоставил его, он не должен быть доступен для проверки инженером;как только два адвоката изучат его, он не будет доступен для адвокатов;как только один инженер и два юриста проверит его, он должен перейти в предоставленное конечное состояние.
Мое первоначальное мнение состоит в том, что либо у меня слишком сложная диаграмма перехода состояний с многократно повторяющимися "одними и теми же" промежуточными состояниями, или Я несу (внешнее) состояние с процессом {bool rejected;int engineerSignoffId;int lawyer1SignoffId;int lawyer2SignoffId}.
Или как-то так?Если так, как отказ инженера завершает подпроцесс, который находится в «Юристах»?
START->FORK->Engineer->Granted?---------------->Y->JOIN-->Granted
|->Lawyers-->Granted?->by 2 lawyers?->Y---^
^ |
|--------------------------N
Какой канонический ответ jBPM на это?Можете ли вы указать мне примеры или документацию таких ответов?
Спасибо.