Дополнительные статьи:
Возможность редактирования Node.js скриптов
В файл настройки конфигурации в секции Custom доступно разрешить редактирование Node.js скриптов с помощью параметра AllowEditNodeJsScripts:
- Если установлено значение true, на инстансе можно отдельно выбрать использование интерпретатора Node.js.
- Если установлено значение false (по умолчанию):
- Скрипты и сценарии будут выполнены с использованием того интерпретатора, который настроен для инстанса (ClearScript или NiL.JS)
- Вручную выбрать использование Node.jsна инстансе недоступно

Настройка недоступна для SaaS-инстансов в целях безопасности.
Локальная отладка js-скриптов
Локальная отладка js-скриптов позволяет выгружать файл с путями и ключами доступа к конкретному инстансу, и сразу в процессе написания скрипта проверять его работоспособность именно на целевом инстансе Case.one, чтобы учесть все нюансы и сразу обнаружить неточности.
Для запуска локальной отладки js-скриптов:
- В разделе Администрирование — Сценарии откройте скрипт.
- Скачайте js-файл с контекстом с помощью кнопки Скачать контекст для отладки или метода api/AutomationScriptScheme/GetDebugContext.
- Скачайте zip-архив с заглушками встроенных модулей Case.one с помощью кнопки Скачать скрипты для отладки или метода api/AutomationScriptScheme/GetDebugScripts.
- Распакуйте архив и поместите полученные файлы в одну папку.
- Добавьте файл package.json.
- Проверьте, что в package.json установлено значение "type": "module".
- Запустите скрипт с помощью команды, где test.js — пример отлаживаемого скрипта:
SET CASEONE_MAIN_SCRIPT=test.jsnode caseone.system.scriptRunner.js
test.js — пример отлаживаемого скрипта:
export async function main(context) { console.log(context.BaseUrl);}
Пример структуры

Настройка запуска сценариев автоматизации через RabbitMQ
Запуск сценариев автоматизации через RabbitMQ включен по умолчанию — при возникновении в системе события в RabbitMQ автоматически ставится задача WorkflowService.RunAutomationScriptsSync по запуску сценариев в очередь automation_scripts.
Включение запуска сценариев через RabbitMQ:
{
"Custom": {
// ...
"AutomationScriptsUse RabbitMQ": true// false — сценарии запускаются как раньше,
true — сценарии запускаются через RabbitMQ (значение по умолчанию)
}
}
Через RabbitMQ доступно указать количество узлов, которые будут обрабатывать очередь со сценариями автоматизации:
{
"Custom": {
// ...
"AutomationScriptsWorkerCount": 24
// по умолчанию равняется кол-ву ядер процессора
}
}
Для последовательного и синхронного выполнения всех операторов сценария, у которых задана нулевая задержка (кроме оператора Уведомить), укажите настройку в БД для конкретного сценария следующим SQL-скриптом:
update
CaseMap.AutomationScripts
set
IsSequential = 1 -- 1 — для включения последовательного выполнения, 0 — для отключения
where
Id = '...'-- указать идентификатор нужного сценария
Также доступно указать настройку в appsettings.json для включения последовательного выполнения для всех сценариев:
{
"Custom": {
// ...
"AutomationScriptsSequentialMode": "AllScripts"// значение по умолчанию — ConfiguredScripts,
последовательность определяется флагом в БД отдельно для каждого сценария;
чтобы запретить последовательное выполнение глобально, нужно указать Disabled
}
}

Внимание! Включение последовательного выполнения сценария рекомендовано только для тех сценариев, где нарушение последовательности критично, т.к. оно увеличивает время выполнения сценария.
Для включения логирования выполненных шагов сценариев необходимо включить трассировку в секции rules в nlog.config для записи идентификаторов сработавших сценариев и выполненных шагов:
<logger name="WorkflowTrace" appendTo="f" minlevel="Trace" />