Учитывая, что служба рабочего процесса .NET 4 Windows Workflow Foundation (WF), сохраняемая на SQL Server, развернута в AppFabric, как я могу «переключить» службу с одного действия на другое? Рабочий процесс может быть последовательным или блок-схемой.
Вариант использования - административный. Длительный рабочий процесс простаивает в действии приема A. Некоторые клиенты по ошибке вызывают службу, переходя к действию приема B. Рабочий процесс (который может быть встроен в более крупный рабочий процесс) не имеет обратного пути к A. Клиент вызывает службу поддержки. стол и просит вернуть рабочий процесс к A.
Мы часто видели этот случай в производственной среде. Наша существующая система BPM поддерживает вызов «goto». Как это можно сделать в WF 4?
РЕДАКТИРОВАТЬ: Если описанное выше нецелесообразно, что является хорошим шаблоном проектирования для реализации «неудачного» действия вне «счастливого пути», который может переходить к одному из ограниченного числа известных предшествующих действий ( перезапустить отсюда) на основе переменной? Цель состоит в том, чтобы избежать нечитабельного рабочего процесса с множеством строк.
РЕДАКТИРОВАТЬ 2: мы решили не идти по этому пути, но есть более новый статья в MSDN о том, как это сделать.
РЕДАКТИРОВАТЬ 3: Мы снова передумали и используем решение Леона Велицкого из статьи MSDN, указанной выше. :)