Как предотвратить выполнение недопустимого действия рабочего процесса

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

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

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

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

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

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

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

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

2 ответа

Решение

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

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

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