Запустить специальную активность в рабочем процессе - PullRequest
2 голосов
/ 21 апреля 2010

Я собираюсь использовать WF 4 для замены существующего решения рабочего процесса, которое у нас есть. Одной из функций, которая в настоящее время используется в существующем механизме рабочих процессов, является возможность отмены текущей операции и возврата к операции типа FlowSwitch.

Таким образом, учитывая следующий грубый рабочий процесс, где мы начинаем с 'O' и основываемся на входных данных, рабочий процесс следует по пути к 'A2', который в настоящее время блокируется на закладке s, ожидающей ввода.

         ---------A1--\
         |             \ 
        /\              \
O-------  ---->--(A2)-------|
     ^  \/              /   |
     |   |             /    |
     |   ---------A3--/     |
     |                      |  
     |----------------------|

Тем не менее, в то же время поступают некоторые внеполосные данные, что означает, что мы должны отменить «A2» и вернуться к FlowSwitch для повторной оценки на основе новых данных. Вопрос в том, каков наилучший способ обработки поступивших внеполосных данных?

Мое первоначальное предположение состоит в том, чтобы выполнить параллельное действие с одной ветвью, ожидающей внешних данных, а другой ветвью, содержащей последовательность рабочих процессов, описанную выше. Если данные поступают на плечо в ожидании внешних данных, как бы я отменил текущую активность в рабочем процессе и заставил ее вернуться к FlowSwitch. Или, конечно, есть лучший способ справиться с этим.

На самом деле я не работал с WF4 для WF3, поэтому я мог упустить что-то очевидное здесь.

1 Ответ

1 голос
/ 21 апреля 2010

Вы можете сделать это с помощью операции выбора вместо параллели. Это позволит вам подождать несколько событий, и первое, что произойдет, - это ветвь, которая выполняется. Затем вы можете вернуться к началу и снова начать прослушивание, если необходимо

...