Сервис Workflow, чтобы направлять клиента со следующими возможными шагами

Workflow Service использует пользовательский ввод, используя Receive деятельность. Workflow выполняет работу по получению данных от вызывающей стороны с использованием бизнес-логики, встроенной в Workflow. Это звучит замечательно, за одним исключением. Как абонент может узнать, каким должен быть следующий шаг рабочего процесса?

Например, у нас есть обработка документов Workflow, Новый экземпляр Workflow создается при поступлении документа в систему.

После создания документ может быть проверен различными менеджерами, отправлен запрос на дополнительную информацию, проверен, закрыт, отменен, объединен и т. Д. Порядок возможных операций сохраняется в рабочем процессе. Операции выполняются вне рабочего процесса и передаются в рабочий процесс через несколько опубликованных Receive деятельность. Порядок этих Receive операция находится внутри рабочего процесса (на самом деле это рабочий процесс).

Логика может отличаться от отдела к отделу. Поэтому мы не хотим жестко кодировать его вне нашего рабочего процесса.

Сейчас обработка документов находится в следующем состоянии:

  1. предыдущий Receive деятельность была выполнена
  2. Workflow проделал некоторую работу и теперь сохранился
  3. Рабочий процесс может быть активирован, если Пользователь выполняет какую-либо операцию и вызывает следующий Receive деятельность

Вопрос в том, как внешний код может знать, что это за операция и что Receive конечная точка ожидания должна называться?

Есть ли простой способ спросить Workflow, каковы возможные дальнейшие шаги, чтобы использовать эту информацию в GUI?

1 ответ

Решение

Вот статья Рона Джейкобса в блоге, которая поможет вам продлить регистрацию в WF 4 - это должно дать вам основу, необходимую для создания того, что вам нужно.

http://blogs.msdn.com/b/rjacobs/archive/2012/05/06/extending-asp-net-mvc-account-registration-with-workflow-wf4.aspx

Отредактировано для лучшего решения вопроса "знание следующего состояния".

Хорошо, не будет способа сделать запрос к рабочему процессу, и основная причина этого заключается в том, что служба рабочего процесса работает на WSH, а когда она попадает в новую (-ые) закладку (-и), она бездействует (вы никогда не знаете, где она действительно работает)). Таким образом, лучше всего публиковать эту информацию до простоя, и я бы порекомендовал опубликовать эту информацию для вызывающего абонента через ответ, потому что это идеальное время для ответа UX.

Отредактировано, чтобы предоставить ссылку, которая может быть "магией", которую вы ищете.

Это видео на 9 канале от @RonJacobs - этот парень действительно потрясающий, потому что он очень много работает для разработчиков - и я думаю, что это может быть волшебством, которое вы ищете. Однако может потребоваться обновить версию, которую вы используете, но это не так. Возможно, вам также понадобится получить пакет NuGet для Microsoft.Activities.Extensions, если вы этого еще не сделали. Я использовал его собственные механизмы отслеживания уже для модульного тестирования, но не для этого. Дайте мне знать, что вы узнаете!

http://channel9.msdn.com/Shows/Workflow-TV/Workflow-TV-Tracking-StateMachines

Другие вопросы по тегам