Отладка сценариев
Отладка сценариев представляет собой процесс тестирования разработанного кода сценария с последующим включением его в разработанный бизнес-процесс. Отладку можно условно разделить на две стадии:
-
Отладка на стадии компиляции.
-
Отладка на стадии исполнения.
При обработке экземпляра СУБП исполнение всех функций сценария проходит две фазы: компиляция и непосредственное исполнение. Компиляция производится при первом обращении к функции и осуществляется при помощи стандартного компилятора, входящего в состав Microsoft .NET Framework.
Если компиляция кода сценария завершилась с одной (или несколькими) ошибками, то дальнейшее выполнение бизнес-процесса считается невозможным, и работа бизнес-процесса завершается с ошибкой. Подробное описание возникших ошибок можно найти в журнале соответствующего экземпляра бизнес-процесса (они будут помечены именем функции сценария, компиляция которой не удалась) или в общем журнале работы СУБП, если такой журнал ведется.
Проверить компиляцию сценария можно непосредственно из окна ввода текста сценария, нажатием кнопки Компилировать.
В случае, если компиляция завершена успешно, исполняется сценарий. Исполнение производится последовательно, если структурой кода не предусмотрено иное. После завершения исполнения всего кода сценария сервис СУБП переходит к обработке следующей функции бизнес-процесса.
Для упрощения отладки бизнес-процесса на этапе исполнения можно использовать механизм сообщений. Сценарий может выводить произвольные сообщения в журнал бизнес-процесса при помощи функции LogMessage класса ProcessInfo. Сообщения могут носить декларативный характер (например, сообщать о корректном выполнении тех или иных участков кода) или информировать о состоянии данных (например, значениях переменных).
|
Запись сообщений, необязательных для работы сценария, после тестирования предпочтительно удалить из кода — это значительно упростит поиск информации в журнале в будущем. |
Сценарии могут использовать для организации корректной работы стандартный механизм исключений. Исключения могут возникать в результате ошибок исполнения сценария, либо принудительно вызываться в коде для выполнения необходимых действий. Все возможные исключения сценарий должен обрабатывать самостоятельно и в зависимости от этого реализовывать тот или иной вариант работы (например, записать информацию об исключении в журнал или выполнить другой участок кода).
Если исключение не было обработано в сценарии, то оно обрабатывается сервисом СУБП, и сценарий считается завершённым с непредвиденной ошибкой. Обработка процесса в этом случае прерывается на функцию, вызвавшей исключение.
-
Компиляция сценария завершена без ошибок.
-
Все возникшие во время исполнения исключения обработаны самим сценарием.
-
Возникла одна или более ошибок при компиляции кода сценария (синтаксические, семантические ошибки или не удалось подключить дополнительные библиотеки).
-
Были необработанные исключения.