Создание состояния Submitted

Оценить
(0 голоса)

Для настройки инициализации и перехода для состояния Submitted необходимо выполнить следующие шаги:

1.   Настройте состояние Submitted. Добавьте в него действие Statelnitialization и присвой­те его свойству Name значение submittedinit. Описание: image555

2.   Дважды щелкните по действию Statelnitialization для того, чтобы открыть визуальный конструктор состояния Submitted. В верхней левой части имеется элемент управления хронологией переходов (для возврата в визуальный конструктор ExpenseReport). Он хо­рошо работает и в тех случаях, когда внутри состояний у вас есть еще и подсостояния.

3.   Добавьте CodeActivity в действие submittedlnit и назовите его NotifyManager. Здесь мы пропустим действия CallExternalMethod, поскольку они уже были описаны в последовательном примере. Вместо этого вы напишете код, который будет имитировать отправку уведомления менеджеру о том, что запрос ожидает утверждения.

4.   Добавьте в это действие обработчик (при помощи окна свойств) и напишите в его коде вывод уведомления на консоль. Обратите внимание на то, что в реальном рабочем про­цессе вам не пришлось бы этого делать. Этот код просто имитирует реальное уведомле­ние. Вот пример кода:

Private Sub NotifyManager_ExecuteCode(ByVal sender As System.Object, _

ByVal e As System.EventArgs)

Console.WriteLine("Expense report approval required: " & Userid)

End Sub

5.   Вернитесь в визуальный конструктор. Дизайн Statelnitialization состояния Submitted должен выглядеть так, как показано на рис. 20.18. Нажмите ссылку ExpenseReport в ле­вой верхней части для возвращения к основному дизайну конечного автомата.

6.   Теперь вам нужно добавить действие EventDriven ниже действия Statelnitialization со­стояния Submitted. Назовите его eventDrivenApproval. Действие Statelnitialization не может обрабатывать внешние события, поэтому данное действие необходимо для управ­ления событием, которое будет запущено хостом для утверждения менеджера. Описание: image556

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

8.   В верхней части события добавьте действие HandleExternalEvent, которое будет ожи­дать утверждения менеджера. Назовите это действие waitMgrApproval. Мы скоро вер­немся к его настройке.

9.   Добавьте действие IfElse под действием HandleExternalEvent. Назовите его if Approved. Назовите левую ветку isApproved, а правую ветку — notApproved. Ско­ро вы вернетесь к их настройке.

10.  Добавьте действие SetState в каждую ветку действия IfElse. SetState используется для перехода к следующему состоянию.

11.  Выберите действие SetState левой ветки и откройте его свойства. Назовите его setApproved и установите его свойство TargetStateName в значение Approved (при помощи раскрывающегося списка).

12.  Назовите действие SetState в правой ветке именем setRejected и настройте его свой­ство TargetStateName в значение Rejected.

Рабочий процесс для действия EventDriven создан. Ваш рабочий процесс должен выглядеть

подобно рис. 20.19. Теперь вам необходимо настроить действия HandleExternalEvent и IfElse.

Настройка состояния Submitted
Конструирование и настройка состояния Paid
Описание клиента и хоста
End Class End Module
Резюме

Добавить комментарий


Защитный код
Обновить

© 2018 www.visualstudios.ru. Все права защищены.