Добрый день!
Есть вопрос:
В существующем БП необходимо создать две параллельные задачи, при этом вторая задача должна быть создана после сохранения первой. Есть ли возможность перехода на следующее действие бизнес-процесса, если состояние предыдущей задачи "Не начато" или "В работе" ?
Нравится
Добрый день, Игорь.
После первой задачи создайте вторую по потоку "Любой результат" .
Здравствуйте Дмитрий!
К сожалению ничего не вышло.
В моём случае вторая задача должна создаваться после нажатия на "ОК" (не выполнения) первой задачи. Таким образом состояние у первой задачи должно быть - "Не начата" или "В работе", а при данных состояниях результата задачи нет.
С другой стороны, если я выбираю состояние "выполнено" - тогда вторая задача создается, но уже после выполнения первой задачи. Но в таком случае это уже будут не параллельный задачи (как например задачи "встреча" и "подтверждение встречи"), а последовательные.
Вопрос ещё открыт.
Я имел ввиду вот так:
т.е. выбрать не конкретный результат, а "Любой результат". Тогда вторая задача будет создана сразу же после первой, в не зависимости от того, какое состояние у первой задачи (не начата, в работе).
Да, я тоже об этом. В данном случае обязательным условием создания Action2 является выполнение Action1 с любым результатом. Однако при создании и сохранении Action1 с состояниями "не начата", "в работе", Action2 не создается.
Т.е. Action2 будет создано только после выполнения Action1
В моём случае необходимо создать две параллельные задачи
и из Action1 передать параметры в Action2
Вопрос только - КАК?
Вам надо в скрипте карточки задачи (scr_TaskEdit) исправить:
/* MODULE WORKFLOW */ if ((!TaskEdit.StatusChanged) || (!IsFinished) || (IsEmptyGUID(WorkflowItemID))) { return; }
на
/* MODULE WORKFLOW */ if ((!TaskEdit.StatusChanged) || (IsEmptyGUID(WorkflowItemID))) { return; }
вот только тогда у вас не будет учитываться состояние задач вообще при работе с БП, что, мягко говоря, скажется на функционале. Так что так лучше не делать). Можно, конечно, встроить в скрипт выше какие-то проверки и логику - но это перебор.
Если вам надо просто создать (без контроля выполнения) первую задачу и передать параметры во вторую - используйте элемент "Открытие окна" для карточки задачи:
и оттуда сохраните в параметры то, что вам надо.
Могу предложить только костыльно. Поставить задачи последовательно (3-ий комментарий), создать фейковый результат "Нет результата" или просто " ", а при открытии карточки смотреть на пустоту поля результат и привязанный процесс. Т.е. проверить к нужному ли процессу относится задача и поле результат пусто, то ставить ей в результат "Нет результата". Тогда у вас будет результат, и по идеи должно переходить к следующему шагу, хотя не уверен, не проверял.
"Андросов Дмитрий" написал:Если вам надо просто создать (без контроля выполнения) первую задачу и передать параметры во вторую - используйте элемент "Открытие окна" для карточки задачи:
К сожалению, как от первой, так и от второй задачи потом идет ветвление в зависимости от результата выполнения.
я так понимаю, что вся сложность в том, чтобы передать параметры во вторую задачу?
тогда вижу два варианта:
- сделать как я предложил первый раз, но не удалять !IsFinished, а переделать на какую-то другую логику (добавить тип или еще что-то)
- нужные вам параметры можно выбирать в каком-то другом окне (см то же "Открытие окна" или "Настраиваемое окно редактирования") и потом уже передавать в оба окна задач. Или вообще не передавать параметры :biggrin:
Попробовал сделать, так:
Для состояния "Не начато" задачи Action1 создал результат выполнения "Не начато". Добавил условие, по которому поле ResultID доступно на редактирование. И по этому результату переход на Action 2. Однако, при выборе этого результата Action 2 не создается, текущим элементом остается Action1.
В общем, чтобы БП пошел дальше, нужно, чтобы задача считалась завершенной.
Чтобы задача считалась завершенной нужно, чтобы для выбранного состояния задачи в справочнике "Состояния задач" был установлен признак "Конечное".
Вам лучше создать еще одно состояние (не трогайте не начато)) для ваших целей
"Андросов Дмитрий" написал:В общем, чтобы БП пошел дальше, нужно, чтобы задача считалась завершенной.
Чтобы задача считалась завершенной нужно, чтобы для выбранного состояния задачи в справочнике "Состояния задач" был установлен признак "Конечное".
Вам лучше создать еще одно состояние (не трогайте не начато)) для ваших целей
А разве в таком случае Action1 не будет считаться выполненной?
"Коновалов Игорь" написал:не будет считаться выполненной
смотря, что вы под этим подразумеваете)
например, введем новое состояние задачи "Принята по БП" с признаком "Конечное" и соответствующим результатом.
Тогда при выборе этого состояния у вас задача будет "Принята по БП" (но не "Выполнена"), но по БП дальше пойдет и состояние у нее будет считаться "конечным"
"Андросов Дмитрий" написал:например, введем новое состояние задачи "Принята по БП" с признаком "Конечное" и соответствующим результатом.
Тогда при выборе этого состояния у вас задача будет "Принята по БП" (но не "Выполнена"), но по БП дальше пойдет и состояние у нее будет считаться "конечным"
Дмитрий огромное спасибо! Пошел по Вашему пути.
После указанного Вами варианта, для WorkflowItem, соответствующего задаче Action1, обновил поля StateID = ws_InProcess и ActualExecuteDate = null в таблице tbl_WorkflowItem.
Т.о. Элемент БП соответствующий первой задаче (Action1) опять становится активным и после его выполнения доступен переход к др. элементам БП.
УРА!!! Всем спасибо! Вопрос закрыт!