Скриптовые сценарии
Скрипты применяются для изменения, уточнения или расширения логики работы SMP с помощью определенного алгоритма действий и условий, заданного через интерфейс администратора, без внесения изменений в исходный код системы.
Использование некорректных скриптов может привести к частичной или полной неработоспособности системы и потере данных.
Скрипты (groovy-скрипты) в системе выполняются в рамках общих системных требований и ограничений. Например, при смене статуса запроса, инициированной скриптом, будут выполнять проверки выполнения условий смены статуса и заполненности обязательных атрибутов точно так же, как и при смене статуса вручную. Это сделано для исключения возможности вносить изменения в объекты, минуя бизнес-логику.
Все скрипты, используемые в системе, хранятся в каталоге скриптов.
Для написания groovy-скриптов разработан специальный API.
Транзакционность
Скрипты большинства категорий выполняются в одной отдельной транзакции.
Исключениями являются цепочки из инициирующих действий, синхронных действий по событиям, условий и скриптов на вход в статус, а также связки действия по событию и условия действия по событию. В таких цепочках единая транзакция формируется из нескольких скриптов, следовательно, при возникновении ошибок на уровне головной транзакции в одном из скриптов будет выполнен откат этой единой транзакции вместе со всеми вложенными действиями из скриптов цепочки. Вложенные транзакции можно добавить в скрипты при помощи метода api.tx.call.