Инструменты
8 800 555-89-02
Войти
Документация
CTRL+K
Standalone2502
SaaS

Инструменты

В этой статье

Инструментами в скриптах служат следующие блоки:

Разгруппировать массив

Блок разбирает массив на пакеты данных. Следующие блоки выполняются столько раз, сколько элементов внутри массива.

Служит для облегчения работы с массивами и позволяет использовать элементы массивов так, как если бы они были переменными. У блока одно поле для заполнения — массив (выбор из списка полученных данных на основе предыдущих блоков).

Разгруппировать массив

Пример:

  1. В блоке в поле Массив на панели маппинга выбираем массив и нажимаем Тестировать. Данные массива отображаются в квадратных скобках. Поле Массив
  2. На выходе получаем разгруппированные данные. Разгруппированные данные

Синхронизатор

Блок позволяет разделить скрипт на составные части, его составляющие не имеют доступа к данным друг друга. Он ждет окончания выполнения блоков столько раз, сколько необходимо при сборе данных до него, и запускает следующие один раз для расчета. Это позволяет сократить количество выполнений скрипта, а также поместить действия в один скрипт вместо нескольких.

Синхронизатор

Вернуть данные

Блок Вернуть данные возвращает данные в источник запроса. Работает с триггерами Ручной запуск и Новое событие из пакета Вебхук.

Вернуть данные

Блок предназначен для получения данных из выполненных скриптов, запущенных вручную или с помощью Вебхука.

Параметры блока:

  • Формат запроса (JSON/текст)
  • Возвращаемые данные

При текстовом формате запроса возвращаемые данные указываются вручную или с помощью визуального маппинга. При JSON-формате запроса ключ необходимо ввести вручную, значение ключа можно указать вручную или маппингом.

При синхронном режиме работы блока Новое событие из пакета Вебхук статус и данные, указанные в блоке Вернуть данные, при их наличии возвращаются сразу после выполнения скрипта.

Чтобы получить возвращаемые данные (при их наличии) при асинхронном режиме работы блока Новое событие из пакета Вебхук, необходимо дождаться выполнения блока Вернуть данные и выполнить в инструменте GraphiQL указанный ниже GraphQL-запрос.

Запрос
Ответ
{
  automation{
    script{
      execution_result(uuid:"5053bb30-3eed-469c-a60a-7b554198ceee"){
        return_data
      }
    }
  }
}

Где:

  • execution_result — идентификатор вебхука. Для получения идентификатора необходимо отправить запрос на адрес вебхука
  • return_data — возвращаемые данные, указанные в параметрах блока Вернуть данные

Чтобы получить статусы при асинхронном режиме работы блока Новое событие из пакета Вебхук, необходимо выполнить в инструменте GraphiQL указанный ниже GraphQL-запрос.

Запрос
Ответ
{
  automation{
    script{
      execution_result(uuid:"5053bb30-3eed-469c-a60a-7b554198ceee"){
        status
      }
    }
  }
}

Где:

  • execution_result — идентификатор вебхука. Для получения идентификатора необходимо отправить запрос на адрес вебхука

Если в скрипт добавлено несколько блоков Вернуть данные, то срабатывает и возвращает данные в источник только первый из этих блоков.

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

Важно

Этот блок завершает выполнение скрипта, поэтому блоки после него выполняться не будут.

Выполнить скрипт

Блок запускает выполнение выбранного скрипта.

Параметры:

  • Скрипт
  • Ожидаемые поля (если указаны в выбранном скрипте)

Родительский скрипт — это скрипт, который содержит блок Выполнить скрипт, запускающий выполнение дочернего скрипта. После запуска блок ожидает, когда дочерний скрипт полностью выполнится и вернет данные в родительский скрипт.

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

Выполнить скрипт

Важно

При использовании блока рекомендуем:

  • Не создавать зацикленные сценарии, в которых один блок Выполнить скрипт вызывает дочерний скрипт, содержащий аналогичный блок с вызовом родительского скрипта
  • Вручную останавливать выполнение ресурсоемких дочерних скриптов, если возникает необходимость их остановить, поскольку остановка родительского скрипта в этом случае не прервёт выполнение дочернего скрипта

Блок возвращает информацию о выполнении дочернего скрипта:

  • Если дочерний скрипт выполнился успешно, но не возвращает данные, родительский скрипт получает только информацию о том, что дочерний скрипт выполнен
  • Если в дочернем скрипте возникает ошибка, родительский скрипт получает информацию об ошибке и останавливается

В качестве примера рассмотрим два скрипта:

  • Родительский скрипт «Отправить отчет», который отправляет ответственному лицу отчет с информацией о разнице между фактическими и плановыми продажами
  • Дочерний скрипт «Подсчитать отклонения», который рассчитывает отклонения фактических продаж от плановых по каждому магазину. Подсчет отклонений выделен в отдельный скрипт, чтобы к нему могли обращаться другие скрипты, а также для запуска из дашборда для отображения отклонений Дочерний скрипт

Настроим эти скрипты:

  1. Добавим в дочерний скрипт для подсчета отклонения в продажах блок Вернуть данные.
  2. Настроим блок так, чтобы он возвращал идентификатор магазина и процент отклонения для тех магазинов, в которых отклонение от плановых продаж больше 20%. Вернуть данные
  3. Опубликуем дочерний скрипт.
  4. В родительский скрипт добавим блок Выполнить скрипт.
  5. В параметрах блока укажем дочерний скрипт. Выполнить скрипт
  6. Добавим блок Сформировать csv для формирования отчета.
  7. В параметрах блока укажем нужные колонки и подставим в них данные с помощью маппинга. Также активируем переключатель Добавлять заголовки колонок Сформировать csv
  8. Протестируем блок.
  9. Добавим в родительский скрипт блок Отправить письмо.
  10. В параметрах блока укажем получателя, тему письма и сообщение.
  11. Добавим в письмо отчет в виде вложения. Для этого подставим сформированный CSV-файл в соответствующее поле с помощью маппинга. Отправить письмо
  12. Опубликуем родительский скрипт и активируем его. Активация скрипта
  13. Видим, что скрипты выполнены: данные из дочернего скрипта переданы в родительский, отчет сформирован и отправлен. Успешное выполнение

Фильтр

Блок позволяет настроить логику скрипта и направить его по определенной ветке после проверки заданного условия.

Параметры:

  • Поля для сравнения
  • Условие
Заметка

Данный блок не возвращает данные, а только фильтрует их.

Чтобы настроить скрипт:

  1. Укажите объекты сравнения в Поле.
  2. Задайте условие фильтрации через выпадающий список.
  3. Протестируйте блок с помощью кнопки Тестировать.

Чтобы добавить несколько условий для одной группы объектов, используйте кнопку И.

Чтобы создать дополнительную группу фильтров, используйте кнопку Или.

Чтобы удалить группу фильтров, нажмите кнопку Удалить.

Вы можете направить скрипт по нескольким веткам:

  • Чтобы добавить несколько условий и направить скрипт по разным веткам в зависимости от соответствия данных заданным условиям, добавьте в скрипт несколько блоков Фильтр
  • Чтобы направить по разным веткам скрипт с данными, полученными после проверки одного условия, сделайте нужное количество ответвлений от блока Фильтр

Несколько веток скрипта

Для разных типов данных применимы разные условия:

Типы данныхДоступные условия
Строка- Начинается с
- Не начинается с
- Оканчивается на
- Не оканчивается на
Строка, массив- Содержит
- Не содержит
Все типы данных- Существует
- Не существует
- Равно
- Не равно
Строка, число, дата, дата и время- Больше
- Меньше
- Больше или равно
- Меньше или равно
Дата, дата и время- Последнее время
Логический тип- Истина
- Не истина
Строка, дата, дата и время, число, массив чисел- Пустое
- Не пустое

Если выбранные типы условий невозможно сравнить, возникает ошибка.

Пример:

  1. Указываем объекты сравнения и выбираем условие фильтрации в выпадающем списке. Применить Фильтр
  2. Запускаем тестирование с помощью кнопки Тестировать. Все дальнейшие действия будут осуществляться с данными, полученными в результате фильтрации.
  3. Добавляем блоки для дальнейшей работы с отфильтрованными данными. Добавление блоков

Выполнить инструкцию

Блок получает инструкцию, которая может быть сформирована вручную или через блок Отправить сообщение пакета Нейросеть, и выполняет действия с использованием функций следующих блоков:

В параметрах блока укажите инструкцию в формате JSON вручную или с помощью маппинга. Также поле Инструкция может принимать строковое значение break. Строка break — это команда, которая завершает выполнение блока Выполнить инструкцию.

Инструкция передается в виде JSON со следующими полями:

  • Action — тип блока, функции которого нужно выполнить
  • Fields — структура полей для типа выполняемого блока. Необязательные поля можно опустить
  • Index — порядковый номер выполнения, который должен увеличиваться нейросетью

Принцип работы блока:

  • Блок анализирует входные данные. Допустимые значения:
    • JSON
    • Строка break (регистр не имеет значения)
  • Если на вход поступает строка break, блок завершает выполнение с пустым результатом. Выполнение скрипта останавливается после этого блока
  • Если на вход поступает JSON, выполняется проверка типа блока, полей и порядкового номера выполнения
  • Если проверка успешна, блок выполняет функцию указанного типа блока, используя переданные параметры и контекст выполнения

Максимальное количество запусков блока Выполнить инструкцию в одном цикле — 30.

За одно выполнение блок Выполнить инструкцию может выполнять функции только одного типа блока. Попытка обработать несколько пакетов данных или вызвать функций разных блоков в рамках одного запуска может привести к сбою из-за нарушения согласованности данных.

Примеры инструкций представлены ниже.

Выполнить скрипт:

{
    "action": "execute_script",
    "key": "",
    "": "",
    "": ""
}

Отправить сообщение:

{
    "action": "query",
    "query": "",
    "model": "",
    "temperature":
}

Отправить HTTP-запрос:

{
    "action": "http_request",
    "url": "",
    "method": "",
    "body": ""
}

Отправить письмо:

{
    "action": "send_email",
    "to": "",
    "subject": "",
    "text": "",
    "format": ""
}

Добавить строки в таблицу:

{
  "action": "insert_rows",
  "table": "",
  "rows": [
     {
    "": "",
        "": ""
     },
      {
    "": "",
        "": ""
     }
  ]
}

Вернуть данные:

{
    "action": "return",
    "value": "",
    "format": ""
}

Пример:

Рассмотрим, как настроить скрипт с зацикливанием для автоматического выполнения инструкций. В этом сценарии блок Новое событие из пакета Вебхук используется в качестве триггера, а блок Отправить запрос замыкает цикл, отправляя выходные данные обратно на Вебхук.

  1. Добавим блок Новое событие пакета Вебхук в качестве триггера. Блок принимает входные данные (промпт) и передает их дальше. Добавление блока Новое событие
  2. Добавим блок Отправить сообщение пакета Нейросеть.
  3. С помощью маппинга передадим в блок промпт, полученный от блока Новое событие. Нейросеть анализирует поступившие данные, определяет, какой блок следует запустить и формирует инструкцию на основе информации из промпта. Настройка блока Отправить сообщение
  4. Добавим блок Выполнить инструкцию пакета Цифровой сотрудник.
  5. С помощью маппинга передадим в параметры блока выходные данные блока Отправить сообщение. Блок выполняет сформированную нейросетью инструкцию. Настройка блока Выполнить инструкцию
  6. Добавим блок Отправить запрос пакета HTTP.
  7. С помощью маппинга передадим в блок выходные данные блока Выполнить инструкцию. Блок Отправить запрос отправляет полученные данные обратно на Вебхук с помощью HTTP-запроса. Настройка блока Отправить запрос
  8. Цикл продолжается до тех пор, пока нейросеть не вернет в блок Выполнить инструкцию команду break. В этот момент выполнение скрипта завершается.

Ожидать событие

Заметка

Эти функции доступны в бета-версии. Попробуйте их в работе и поделитесь своим мнением — обратная связь помогает нам развивать продукт.

Блок Ожидать событие позволяет приостановить выполнение скрипта и ждать наступления указанного события.

Блок работает только в связке с триггером Новое событие из пакета Обработка событий, поскольку он получает из триггера данные о том, для какого экземпляра процесса ждать событие.

Блок Ожидать событие

Настройка блока Ожидать событие

Заметка
  • Для работы блока в модели данных должен быть настроен процесс.
  • В последующие блоки скрипта невозможно передавать с помощью маппинга данные из блоков, расположенных в скрипте до блока Ожидать события.
  • Протестировать блок отдельно невозможно, так как он срабатывает только с триггером Новое событие. Чтобы проверить его работу, запустите тестирование всего скрипта целиком.

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

  • Процесс
  • Ожидаемые события
  • Длительность ожидания
  • Объект для проверки события
  • Расписание запуска скрипта

Параметры блока Ожидать событие

Укажите процесс, события которого будет отслеживать блок. Если в модели данных нет настроенного процесса, блок будет доступен, но его невозможно будет настроить и запустить.

Выбор процесса

В поле Ожидаемые события, нажмите Добавить и введите название события или выберите его из списка.

Выбор события

Для события можно настроить фильтр, чтобы учитывать только события, соответствующие определенным условиям. С помощью фильтров можно проверять значения параметров события, использовать расчеты по данным и ограничивать временные рамки. Фильтрация позволяет настроить условия срабатывания скрипта и исключить ненужные события.

При необходимости событие можно удалить, нажав соответствующую кнопку. Вы также можете добавить несколько ожидаемых событий. Для этого нажмите Добавить и выберите событие.

Чтобы задать период ожидания события, активируйте переключатель Длительность ожидания и укажите период ожидания в днях, часах или минутах. Если событие произойдет, выполнение продолжится по ветке Прямое действие. Если событие не произойдет, выполнение продолжится по ветке Действие по тайм-ауту. Более подробная информация о ветках выполнения скрипта после блока представлена в разделе Обработка полученных данных.

Длительность ожидания

Далее добавьте условие для запуска скрипта. Можно задать одно или несколько условий.

Чтобы добавить условие:

  1. В поле Для объекта, в котором нажмите Добавить и выберите формулу. Вы можете выбрать:
    • Готовую формулу Количество выполнений события — сколько раз произошло событие в экземпляре процесса
    • Предложенные формулы для расчета значений по данным из модели данных рабочего пространства
    • Собственную формулу
    Выбор формулы
  2. В поле В процессе выберите процесс из модели данных, к которому относится событие. Выбор процесса для объекта
  3. В поле Для события выберите событие, по которому будет идти проверка. Для этого введите название события или выберите его из списка событий указанного процесса.
  4. Задайте условие сравнения значений:
    • В интервале
    • Равно
    • Не равно
    • Больше
    • Меньше
    • Больше или равно
    • Меньше или равно
    • Пустое значение
    • Непустое значение
  5. Если выбрано условие В интервале, задайте временной промежуток. Для условий Равно, Не равно, Больше, Меньше, Больше или равно, Меньше или равно укажите значение для сравнения. Выбор условия
  6. Укажите, какие данные необходимо учитывать:
    • Все
    • За время ожидания события
    • Со старта ожидания события
    • До появления события
    • За определенный промежуток времени — можно задать временной интервал в днях, часах или минутах
    Выбор данных

Для объекта можно настроить фильтрацию, чтобы ограничить выборку данных. Например, учитывать только события, произошедшие в рабочие дни. Также вы можете задать комментарий для условия с пояснениями настроек.

Добавление фильтра и комментария

При необходимости условие можно удалить, нажав соответствующую кнопку.

Также можно добавить дополнительное условие. Для этого нажмите Добавить и повторите шаги по добавлению условия.

Удаление и добавление условия

Расписание запуска скрипта настраивается аналогично расписанию в блоках-триггерах Новое событие и Планировщик.

Расписание запуска скрипта

Обработка полученных данных

Для обработки полученных данных добавьте в скрипт другие блоки автоматизации. Например, можно записывать выходные данные в таблицу или использовать их для дальнейших действий в системе.

Действия после блока

Блок возвращает следующие данные:

  • Для ветки Прямое действие:
    • Идентификатор экземпляра процесса, для которого ожидалось событие
    • Название ожидаемого события
    • Время наступления события
    • Идентификатор процесса, в котором произошло событие
  • Для ветки Действие по тайм-ауту:
    • Идентификатор экземпляра процесса, для которого ожидалось событие
    • Время истечения тайм-аута
    • Идентификатор процесса, в котором ожидалось событие

Скрипт с блоком работает следующим образом:

  1. Скрипт запускается триггером Новое событие, когда происходит событие.
  2. Блок Ожидать событие ждет указанное событие для того же экземпляра процесса.
  3. Если событие наступает в течение заданного времени, выполнение продолжается по ветке Прямое действие.
  4. Если событие не происходит в течение указанного времени, выполнение продолжается по ветке Действие по тайм-ауту.

Скрипт с событийной обработкой

Была ли статья полезна?

Да
Нет
Предыдущая
Работа с нейросетью
8 (800) 555-89-028 (495) 150-31-45team@infomaximum.com
Для бизнеса
© 20102025. ООО «Инфомаксимум»
Мы используем файлы cookies, чтобы сайт был лучше для вас.