Инструменты
Инструментами в скриптах служат следующие блоки:
Разгруппировать массив
Блок разбирает массив на пакеты данных. Следующие блоки выполняются столько раз, сколько элементов внутри массива.
Служит для облегчения работы с массивами и позволяет использовать элементы массивов так, как если бы они были переменными. У блока одно поле для заполнения — массив (выбор из списка полученных данных на основе предыдущих блоков).
Пример:
- В блоке в поле Массив на панели маппинга выбираем массив и нажимаем Тестировать. Данные массива отображаются в квадратных скобках.
- На выходе получаем разгруппированные данные.
Ожидать обработку данных
Блок позволяет разделить скрипт на составные части, его составляющие не имеют доступа к данным друг друга. Он ждет окончания выполнения блоков столько раз, сколько необходимо при сборе данных до него, и запускает следующие один раз для расчета. Это позволяет сократить количество выполнений скрипта, а также поместить действия в один скрипт вместо нескольких.
Вернуть данные
Блок Вернуть данные возвращает данные в источник запроса. Работает с триггерами Ручной запуск и Вебхук.
Блок предназначен для получения данных из выполненных скриптов, запущенных вручную или с помощью Вебхука.
Параметры блока:
- формат запроса (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 — идентификатор вебхука. Для получения идентификатора необходимо отправить запрос на адрес вебхука
Если в скрипт добавлено несколько блоков Вернуть данные, то срабатывает и возвращает данные в источник только первый из этих блоков.
Если скрипт с блоком Вернуть данные прекращает работу с ошибкой или останавливается, в источник возвращается информация о статусе выполнения.
Данный блок завершает выполнение скрипта, поэтому блоки после него выполняться не будут.
Выполнить скрипт
Блок запускает выполнение выбранного скрипта.
Параметры:
- скрипт
- ожидаемые поля (если указаны в выбранном скрипте)
Родительский скрипт — это скрипт, который содержит блок Выполнить скрипт, запускающий выполнение дочернего скрипта. После запуска блок ожидает, когда дочерний скрипт полностью выполнится и вернет данные в родительский скрипт.
- Дочерний скрипт должен завершаться блоком Вернуть данные.
- Запустить можно только те скрипты, которые находятся в том же пространстве, что и родительский скрипт.
- При тестировании блока или всего родительского скрипта запускается черновик дочернего скрипта. При активации родительского скрипта запускается опубликованная версия дочернего скрипта.
При использовании блока рекомендуем:
- не создавать зацикленные сценарии, в которых один блок Выполнить скрипт вызывает дочерний скрипт, содержащий аналогичный блок с вызовом родительского скрипта
- вручную останавливать выполнение ресурсоемких дочерних скриптов, если возникает необходимость их остановить, поскольку остановка родительского скрипта в этом случае не прервёт выполнение дочернего скрипта
Блок возвращает информацию о выполнении дочернего скрипта:
- если дочерний скрипт выполнился успешно, но не возвращает данные, родительский скрипт получает только информацию о том, что дочерний скрипт выполнен
- если в дочернем скрипте возникает ошибка, родительский скрипт получает информацию об ошибке и останавливается
В качестве примера рассмотрим два скрипта:
- родительский скрипт «Отправить отчет», который отправляет ответственному лицу отчет с информацией о разнице между фактическими и плановыми продажами
- дочерний скрипт «Подсчитать отклонения», который рассчитывает отклонения фактических продаж от плановых по каждому магазину. Подсчет отклонений выделен в отдельный скрипт, чтобы к нему могли обращаться другие скрипты, а также для запуска из дашборда для отображения отклонений
Настроим эти скрипты:
- Добавим в дочерний скрипт для подсчета отклонения в продажах блок Вернуть данные.
- Настроим блок так, чтобы он возвращал идентификатор магазина и процент отклонения для тех магазинов, в которых отклонение от плановых продаж больше 20%.
- Опубликуем дочерний скрипт.
- В родительский скрипт добавим блок Выполнить скрипт.
- В параметрах блока укажем дочерний скрипт.
- Добавим блок Сформировать csv для формирования отчета.
- В параметрах блока укажем нужные колонки и подставим в них данные с помощью маппинга. Также активируем переключатель Добавлять заголовки колонок
- Протестируем блок.
- Добавим в родительский скрипт блок Отправить письмо.
- В параметрах блока укажем получателя, тему письма и сообщение.
- Добавим в письмо отчет в виде вложения. Для этого подставим сформированный CSV-файл в соответствующее поле с помощью маппинга.
- Опубликуем родительский скрипт и активируем его.
- Видим, что скрипты выполнены: данные из дочернего скрипта переданы в родительский, отчет сформирован и отправлен.
Фильтр
Блок позволяет настроить логику скрипта и направить его по определенной ветке после проверки заданного условия.
Параметры:
- подключение (при обращении к БД)
- объекты сравнения
- условие
Данный блок не возвращает данные, а только фильтрует их.
Чтобы настроить скрипт:
- Укажите объекты сравнения в Поле.
- Задайте условие фильтрации через выпадающий список.
- Протестируйте блок с помощью кнопки Тестировать.
Чтобы добавить несколько условий для одной группы объектов, используйте кнопку И.
Чтобы создать дополнительную группу фильтров, используйте кнопку Или.
Чтобы удалить группу фильтров, нажмите кнопку Удалить.
Вы можете направить скрипт по нескольким веткам:
- чтобы добавить несколько условий и направить скрипт по разным веткам в зависимости от соответствия данных заданным условиям, добавьте в скрипт несколько блоков Фильтр
- чтобы направить по разным веткам скрипт с данными, полученными после проверки одного условия, сделайте нужное количество ответвлений от блока Фильтр
Для разных типов данных применимы разные условия:
Типы данных | Доступные условия |
---|---|
Строка | - начинается с - не начинается с - оканчивается на - не оканчивается на |
Строка, массив | - содержит - не содержит |
Все типы данных | - существует - не существует - равно - не равно |
Строка, число, дата, дата и время | - больше - меньше - больше или равно - меньше или равно |
Дата, дата и время | - последнее время |
Логический тип | - истина - не истина |
Если выбранные типы условий невозможно сравнить, возникает ошибка.
Пример:
- Указываем объекты сравнения и выбираем условие фильтрации в выпадающем списке.
- Запускаем тестирование с помощью кнопки Тестировать. Все дальнейшие действия будут осуществляться с данными, полученными в результате фильтрации.
- Добавляем блоки для дальнейшей работы с отфильтрованными данными.
Была ли статья полезна?