Какой должна быть логика БП в моем случае, когда происходит ручное переключение стадии сделки на более раннюю?
Здравствуйте, подскажите пожалуйста по поводу исправления логики моего БП.
В данный момент бизнес процесс переключает стадии сделки после выполнения задач, сгенерированных тем же самым БП, а задачи ставят БП на паузу до момента своего завершения. Генерация задачи помещена в проверку IF, в которой определяется стадия сделки. В конце IF стоит переключение на следующую стадию сделки. Все IF объединены в цикл, который выполняется пока стадией сделки не является успех или провал.
Как сделать таким образом, что бы при ручном переключении стадии сделки на более раннюю стадию, мой БП возвращался к блоку IF в котором соответствующая стадия? Сейчас этого не происходит, потому что внутри каждого IF стоит установка следующей стадии сделки и если переключить стадию вручную в тот момент, когда какая либо задача ожидает завершения, то после завершения этой задачи БП переключит стадию сделки на ту что прописана в БП.
Для единого БП такое не реализовать.
Необходимо разбивать Ваш бизнес-процесс на отдельные составляющие таким образом, чтобы единого экземпляра небыло.
Чтобы БП возвращался к ранним стадиям, вам нужно сделать БП со стадиями и ПОСЛЕ завершения задачи дополнительно проверять статус и отправлять его в соответствующий блок, но проще БП разбить на несколько частей.
Если кому то понадобится, придумал как решить свою задачу в рамках единого БП. В конце IF надо сделать еще один IF который проверит на соответствие текущую стадию сделки и автоматически поменяет на следующую стадию, если нынешняя соответствует предполагаемой. А если не соответствует предполагаемой, значит кто то вручную поменял. И цикл пройдя все проверки на все стадии, вернется в начало, что и требовалось.