Скриптовые сценарии

Скрипты применяются для изменения, уточнения или расширения логики работы SMP с помощью определенного алгоритма действий и условий, заданного через интерфейс администратора, без внесения изменений в исходный код системы.

Использование некорректных скриптов может привести к частичной или полной неработоспособности системы и потере данных.

Скрипты (groovy-скрипты) в системе выполняются в рамках общих системных требований и ограничений. Например, при смене статуса запроса, инициированной скриптом, будут выполнять проверки выполнения условий смены статуса и заполненности обязательных атрибутов точно так же, как и при смене статуса вручную. Это сделано для исключения возможности вносить изменения в объекты, минуя бизнес-логику.

Все скрипты, используемые в системе, хранятся в каталоге скриптов.

Для написания groovy-скриптов разработан специальный API.

Транзакционность

Скрипты большинства категорий выполняются в одной отдельной транзакции.

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