Сценарий можно запустить одним из нескольких способов:
  1. Формой, со страницы сайта.
  1. По ссылке.
  1. Из другого сценария.
  1. Через лог выполнения и отладчик.
  1. Кодом JavaScript.

Вызов сценария формой

Чтобы запустить сценарий из формы, задайте в настройках формы действие - “Выполнение сценария на сервере” и укажите сценарий.
Image without caption
Сценарий будет выполняться при успешной отправке формы.
⚠️
Чтобы в сценарий пришли данные из полей формы, необходимо задать имя переменной в настройках поля.
Image without caption

Возврат результата сценария в форму

Если сценарий возвращает данные действием “Завершить сценарий”, эти данные будут доступны в настройке формы, во всех действиях после отправки.
Пример действия возврата строки из сценария
Для работы с результатом в форме используется конструкция <%= response %>
Примеры работы с ответом сценария
Видео

Вызов сценария по ссылке

Каждому из созданных сценариев присваивается ссылка - эндпоинт. Эндпоинты представляют собой URL-адреса, к которым отправляются HTTP-запросы.
Скопировать эндпоинт сценария можно из раздела сценариев, если нажать на троеточие → “Скопировать эндпоинт”:
Image without caption
Если послать на скопированный адрес HTTP запрос, то сценарий будет выполнен. Убедиться в этом можно если вставить скопированную ссылку в адресную строку браузера и нажать Enter.
Передать значения в сценарий можно добавив значения к концу URL как параметры запроса (query parameters) после знака вопроса (?). Пример:
https://user74.cloud-ru.vejio.su/cr-system/scenario/page_view?name=Max&val=123
?name=Max&val=123 - добавленные переменные name и val со значениями Max и 123.

Структура запроса (request)

Creatium Max автоматически обрабатывает запрос и создает переменную request в сценарие, вызванном по ссылке.
  • request.method — Метод запроса: POST, GET и т.д.
  • request.url — Разобранная ссылка, по которой был запущен сценарий. Параметры адресной строки (GET-параметры) находятся в request.url.params.
  • request.headers — HTTP заголовки.
  • request.body — Тело запроса в виде строки, без обработки.
  • request.data — Обработанное тело запроса в виде объекта, если данные были корректно переданы в формате JSON или из формы.
  • request.cookies — Значения cookies запроса.
  • request.ip — IP адрес, который отправил запрос.

Структура ответа (response)

Чтобы ответить на запрос, необходимо использовать переменную response.
  • response.code - Код ответа, по умолчанию 200.
  • response.headers - Заголовки ответа, по умолчанию пустые.
  • response.json - Тело ответа в формате JSON. Если указано, то формат ответа автоматически указывается соответствующий (заголовок Content-Type: application/json)
  • response.body - Тело ответа в виде строки.
Для упрощения работы с ответом на запросы была добавлена специальная операция “HTTP-ответ”, которая упрощает работу с этими полями. Описание по ссылке:
HTTP запросы

Вызов сценария действием сценария

В действиях сценария доступен блок “Вызов сценария” в настройках которого можно указать сценарий для вызова.
⚠️
Вызывая сценарий действием, текущий сценарий останавливается, ожидая завершения работы вызванного.
Передать результат выполнения сценария обратно в источник вызова можно блоком “Завершить сценарий”.

Вызов сценария из лога выполнения и отладчик

У каждого сценария доступен лог его выполнения куда записываются результаты предыдущих вызовов. Открыв один из логов, можно перезапустить сценарий с входящими данными указанными в логе. Для мгновенного выполнения сценария нажмите “Перезапустить”. Для запуска сценария в режиме отладки нажмите “Перезапустить в отладчике”.
Image without caption
Image without caption
Подробнее о запуске сценария в режиме отладки:

Вызов сценария кодом JavaScript

Для запуска сценария через JS, воспользуйтесь методом executeBackendScenario:
javascript
cr.api(function (page) { // "scenario_name" - название сценария из его эндпоинта page.executeBackendScenario("scenario_name", { // Значения для передачи в сценарий. Пример: user_id: "123", role: "user" }, {}).then((res) => { // Обработка результата который возвращает сценарий console.log(res); }) });

При поддержке Notaku