Отладка сценариев

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

  • Отладка на стадии компиляции.

  • Отладка на стадии исполнения.

При обработке экземпляра СУБП исполнение всех функций сценария проходит две фазы: компиляция и непосредственное исполнение. Компиляция производится при первом обращении к функции и осуществляется при помощи стандартного компилятора, входящего в состав Microsoft .NET Framework.

Если компиляция кода сценария завершилась с одной (или несколькими) ошибками, то дальнейшее выполнение бизнес-процесса считается невозможным, и работа бизнес-процесса завершается с ошибкой. Подробное описание возникших ошибок можно найти в журнале соответствующего экземпляра бизнес-процесса (они будут помечены именем функции сценария, компиляция которой не удалась) или в общем журнале работы СУБП, если такой журнал ведется.

Проверить компиляцию сценария можно непосредственно из окна ввода текста сценария, нажатием кнопки Компилировать.

В случае, если компиляция завершена успешно, исполняется сценарий. Исполнение производится последовательно, если структурой кода не предусмотрено иное. После завершения исполнения всего кода сценария сервис СУБП переходит к обработке следующей функции бизнес-процесса.

Для упрощения отладки бизнес-процесса на этапе исполнения можно использовать механизм сообщений. Сценарий может выводить произвольные сообщения в журнал бизнес-процесса при помощи функции LogMessage класса ProcessInfo. Сообщения могут носить декларативный характер (например, сообщать о корректном выполнении тех или иных участков кода) или информировать о состоянии данных (например, значениях переменных).

Запись сообщений, необязательных для работы сценария, после тестирования предпочтительно удалить из кода — это значительно упростит поиск информации в журнале в будущем.

Сценарии могут использовать для организации корректной работы стандартный механизм исключений. Исключения могут возникать в результате ошибок исполнения сценария, либо принудительно вызываться в коде для выполнения необходимых действий. Все возможные исключения сценарий должен обрабатывать самостоятельно и в зависимости от этого реализовывать тот или иной вариант работы (например, записать информацию об исключении в журнал или выполнить другой участок кода).

Если исключение не было обработано в сценарии, то оно обрабатывается сервисом СУБП, и сценарий считается завершённым с непредвиденной ошибкой. Обработка процесса в этом случае прерывается на функцию, вызвавшей исключение.

Сценарий считается завершённым успешно (исполнение процесса продолжается), если:
  • Компиляция сценария завершена без ошибок.

  • Все возникшие во время исполнения исключения обработаны самим сценарием.

Сценарий считается завершённым с ошибкой (исполнение бизнес-процесса прерывается), если:
  • Возникла одна или более ошибок при компиляции кода сценария (синтаксические, семантические ошибки или не удалось подключить дополнительные библиотеки).

  • Были необработанные исключения.