Статьи по: Инструменты Albato

Инструмент «Итератор»

Инструмент «Итератор» преобразует массив объектов (строки) в отдельные элементы.

«Строки» — это неограниченный набор данных внутри какой-либо сущности. Например, у сделки в CRM-системе есть позиции товаров. Представьте, что в Albato приходит одна сделка, при этом у неё может быть неограниченное количество товаров. У каждой позиции свои одинаковые поля: название, количество и прочее. Все эти поля приходят одним массивом.



Каждая такая позиция товара и называется «Строка», а все вместе они — «Строки».

Подробнее про понятие «Строки».

В связках «Итератор» будет обрабатывать отдельно каждый элемент массива. То есть шаги, которые есть в связке после «Итератора», запустятся столько раз, сколько вы получили элементов в массиве. Также к каждой сущности можно будет применять другие инструменты Albato.

Какую проблему решает «Итератор»



Например, мы хотим для каждого товара из сделки в «Битрикс24» создавать новый товар в «МойСклад», используя действие «Новый товар», но мы не можем знать заранее, сколько будет товаров в сделке.

Чтобы создать в «МойСклад» столько товаров, сколько есть в сделке в «Битрикс24», мы сделали инструмент «Итератор». Он преобразовывает объекты в отдельные сущности, позволяя работать с каждой по отдельности.

Перед действием «Мой Склад “Новый товар”» мы добавим «Итератор». В зависимости от количества товаров в сделке «Битрикс24», будет вызываться следующий шаг «Мой Склад “Новый товар”».

В итоге, если мы получим в сделке 5 товаров, 5 раз запустится действие «МойСклад “Новый товар”», и будет создано 5 товаров.

Пример настройки «Итератора» на примере CoinMarketCap



Разберем на примере передачи данных с сайта по отслеживанию цен на криптовалюты CoinMarketCup в Telegram. Наша задача: получать данные об изменении цены на выбранные криптовалюты в Telegram, и с помощью инструментов Albato задать фильтр, который будет передавать данные только если цена изменилась больше чем на 1%

Настройка инструмента Итератор выполняется также, как настройка любого другого инструмента в Albato.

Перед нужным шагом нажмём «+», выберем пункт «Инструмент» → «Итератор»:



В поле «Итерируемая строка» выберем стороковую секцию из предыдущего шага CoinMarketCup — «Получить курсы криптовалют», которую необходимо преобразовать/разбить на отдельные элементы — курсы одной валюты.



В шаге «Telegram» укажем, какие переменные нужно передавать при отправке сообщения.



Готово, теперь при получении новых данных будут отправляться сообщения в Telegram.



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



Здесь поможет инструмент Albato «Математическая операция». В его настройках укажем, где применить математическую операцию, «тип округления» и количество символов после запятой.



Теперь математическая операция применяется к каждому элементу в массиве, и мы получаем данные в более читабельном виде.





Осталось перед шагом «Математическая операция» добавить инструмент «Прервать связку при условии», чтобы передавать данные в Telegram только если изменения будут больше чем на 1%



В настройках инструмента добавим 2 условия через «ИЛИ».





Сохраним настройки. Теперь можно запускать связку. Данные будут приходить только по тем криптовалютам, у которых изменение за последний час больше чем на 1%.

Обновлено на: 04/05/2023

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

Поделитесь своим отзывом

Отменить

Спасибо!