CreatiumMax

Способы запуска

Сценарий можно запустить одним из нескольких способов:

  1. Формой, со страницы сайта.

  1. По ссылке.

  1. Из другого сценария.

  1. Через лог выполнения и отладчик.

  1. Кодом JavaScript.

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

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

Сценарий будет выполняться при успешной отправке формы.

Чтобы в сценарий пришли данные из полей формы, необходимо задать имя переменной в настройках поля.

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

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

Для работы с результатом в форме используется конструкция <%= response %>

Видео

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

Каждому из созданных сценариев присваивается ссылка - эндпоинт. Эндпоинты представляют собой URL-адреса, к которым отправляются HTTP-запросы.

Скопировать эндпоинт сценария можно из раздела сценариев, если нажать на троеточие → "Скопировать эндпоинт":

Если послать на скопированный адрес HTTP запрос, то сценарий будет выполнен.
Убедиться в этом можно если вставить скопированную ссылку в адресную строку браузера и нажать Enter.

Передать значения в сценарий можно добавив значения к концу URL как параметры запроса (query parameters) после знака вопроса (?).
Пример:

typescript
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 запросы

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

В действиях сценария доступен блок “Вызов сценария” в настройках которого можно указать сценарий для вызова.

Вызывая сценарий действием, текущий сценарий останавливается, ожидая завершения работы вызванного.

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

Пример сценария в песочнице

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

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

Подробнее о запуске сценария в режиме отладки:

Отладчик

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

Для запуска сценария через JS, воспользуйтесь методом executeBackendScenario:

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

Было полезно?

Остались вопросы? — Напишите нам в чат поддержки будучи авторизованным в своем аккаунте cremax.ru или через чат поддержки в Телеграме: @CreatiumMaxSupportBot