Как предотвратить выполнение недопустимого действия рабочего процесса - PullRequest
1 голос
/ 29 июня 2011

У меня есть существующее ядро ​​Workflow, которое получает сообщения xml из очереди Azure.Часть XML содержит информацию о выполненном действии WorkflowAction, которое, в свою очередь, передается и обрабатывается в фактическом классе Workflow.

Например, у нас есть следующие шаги в моем классе Workflow A:

Шаг 1 -> Шаг 2 -> Шаг 3

Step 2 является обязательным условием Step 3, тогда как Step 1 является требованием Step 2.

Таким образом, если A получит от двигателя сообщение под названием WaitforStep1 action, он отметит Step 1 complete для этого конкретного экземпляра и перейдет к Step 2.

Теперь мойпроблема: если получено сообщение, содержащее информацию WaitforStep2 вместо WaitforStep1, экземпляр скачет к Step 3 напрямую, не пройдя через Step 2.

IsЕсть ли способ предотвратить это?

Отказ от ответственности: я новичок в WF.

Ответы [ 2 ]

0 голосов
/ 01 июля 2011

Я использую переменную Sequence, которая указывает, на каком шаге в данный момент находится задача. Затем я добавляю оператор If в PickBranch Action, который проверяет, в данный момент я на правильном шаге или нет.

0 голосов
/ 29 июня 2011

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

...