Как предотвратить выполнение недопустимого действия рабочего процесса
У меня есть существующий механизм 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, которое проверяет, в данный момент я на правильном шаге или нет.
Вы не можете пропустить действия в рабочем процессе без явного моделирования рабочего процесса. Поэтому, если сообщения будут получены не по порядку, они будут отклонены, поскольку они пытаются возобновить несуществующую закладку.