Filter Array и Select вместо Apply to Each в Power Automate
Filter Array и Select заменяют Apply to Each при фильтрации и преобразовании массивов и работают заметно быстрее.
«Auf alle anwenden» обрабатывает списки поэлементно и часто появляется непреднамеренно. Как работает цикл, почему он замедляет работу и когда его можно убрать.
«Apply to each», в немецком интерфейсе «Auf alle anwenden», это цикл Power Automate: он выполняет содержащиеся шаги для каждого элемента списка по отдельности, для каждого письма, каждой строки, каждого вложения. Две особенности делают его самым обсуждаемым компонентом платформы: он часто появляется автоматически, без того чтобы его вставляли, и он является самой частой причиной, по которой потоки становятся медленными. У обоих одна и та же причина, и оба поддаются контролю. Актуально на: июль 2026.
Power Automate автоматически вставляет цикл, как только вы используете динамическое содержимое, являющееся списком, даже если вы ожидаете только один элемент. Классический случай: запрос SharePoint технически всегда возвращает список, даже если существует только один результат, и конструктор сразу оборачивает следующий шаг в «Auf alle anwenden». Тот, кто хочет обратиться именно к отдельному элементу, обходит цикл с помощью формулы вроде first над результатом запроса или заранее фильтрует список до ровно одного результата. Таким образом, цикл это не ошибка, а честный ответ системы на список, только не всегда желаемый.
Самые быстрые циклы это те, которые никогда не выполняются. Три паттерна заменяют «Apply to each» во многих случаях: «Фильтр массива» сокращает список до подходящих элементов без цикла, «Выбрать (Select)» преобразует все элементы за один шаг, а формулы вроде join или concat строят текст напрямую из списка, например для сводного письма. Поток, который сначала фильтрует, затем преобразует с помощью Select и отправляет результат за один шаг, выполняет за три действия то, для чего варианту с циклом требуются сотни. Такие паттерны это разница между самодельным потоком и потоком, который проходит и при 5000 записей, и именно этому мастерству мы обучаем в нашем консультировании по Power Automate. Родственный компонент немецкого интерфейса объясняет наша статья о «Составить (Compose)».
Заполнение переменной внутри цикла это обычный способ: инициализировать её перед циклом, дополнять или увеличивать внутри, использовать далее после цикла. Однако при параллельно выполняющихся циклах это рискованно, поскольку одновременные операции записи могут перекрывать друг друга, в этом случае лучше работать последовательно или формировать результат с помощью «Выбрать (Select)» и join полностью без переменной.
Потому что предшествующий шаг запроса без включённой пагинации возвращает только первую страницу результатов, у многих коннекторов это 100 записей. Решение находится не в цикле, а в шаге запроса: включить пагинацию в его настройках и установить порог на ожидаемое количество.
Да, «Apply to each» можно вкладывать, например для заказов с позициями. Однако при этом количество действий умножается, и читаемость быстро страдает. Хорошо зарекомендовало себя выносить внутреннюю обработку в отдельный дочерний поток или заранее преобразовывать структуру данных с помощью «Выбрать (Select)» так, чтобы хватало одного уровня.
Основатель NordFlux. Семь лет опыта, от веба и SEO до автоматизации в масштабах концерна, сегодня прагматично для среднего бизнеса и с немецким суверенитетом данных.
Сертификаты
Filter Array и Select заменяют Apply to Each при фильтрации и преобразовании массивов и работают заметно быстрее.
Лимиты Apply to each и постраничная разбивка в Power Automate: как работает лимит в 100 000 итераций и как его обойти.
Что такое динамическое содержимое в Power Automate, как его вставлять и где новички обычно допускают типичные ошибки.
Автоматически появляющийся цикл кажется безобидным, пока не начинает многократно увеличивать время выполнения flow при больших объёмах данных и не упирается в лимиты действий. NordFlux оптимизирует существующие flow с помощью Filter Array, Select и целенаправленного параллелизма, чтобы Apply to each не стал тихим убийцей производительности. На первой встрече мы анализируем ваши самые медленные flow.