Я собираюсь использовать WF 4 для замены существующего решения рабочего процесса, которое у нас есть. Одной из функций, которая в настоящее время используется в существующем механизме рабочих процессов, является возможность отмены текущей операции и возврата к операции типа FlowSwitch.
Таким образом, учитывая следующий грубый рабочий процесс, где мы начинаем с 'O' и основываемся на входных данных, рабочий процесс следует по пути к 'A2', который в настоящее время блокируется на закладке s, ожидающей ввода.
---------A1--\
| \
/\ \
O------- ---->--(A2)-------|
^ \/ / |
| | / |
| ---------A3--/ |
| |
|----------------------|
Тем не менее, в то же время поступают некоторые внеполосные данные, что означает, что мы должны отменить «A2» и вернуться к FlowSwitch для повторной оценки на основе новых данных. Вопрос в том, каков наилучший способ обработки поступивших внеполосных данных?
Мое первоначальное предположение состоит в том, чтобы выполнить параллельное действие с одной ветвью, ожидающей внешних данных, а другой ветвью, содержащей последовательность рабочих процессов, описанную выше. Если данные поступают на плечо в ожидании внешних данных, как бы я отменил текущую активность в рабочем процессе и заставил ее вернуться к FlowSwitch. Или, конечно, есть лучший способ справиться с этим.
На самом деле я не работал с WF4 для WF3, поэтому я мог упустить что-то очевидное здесь.