Условия срабатывания в Power Automate: запускать потоки, только если это оправдано

Условия срабатывания в Power Automate: синтаксис со знаком @, объединение через ИЛИ и почему они снижают число API-запросов и расходы.

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

Условия срабатывания обеспечивают в Power Automate то, что поток фактически запускается только тогда, когда выполнено одно или несколько дополнительных условий, а не при каждом отдельном событии с последующей проверкой уже внутри действия. Каждое условие срабатывания представляет собой выражение, которое, согласно Microsoft Learn, обязательно должно начинаться со знака @, и поток запускается только тогда, когда выполнены все настроенные условия. Актуально на: август 2026 года.

Почему обычного условия в действии недостаточно?

Потому что без условия срабатывания поток всё равно запускается при каждом событии и уже засчитывается как выполненный запуск, даже если более позднее условие сразу же его завершает. Microsoft Learn приводит пример: проверка счетов, запускаемая по каждому входящему счёту, может создать 1000 запусков на 1000 входящих счетов, хотя фактически одобрено лишь 50 из них. С условием срабатывания по статусу одобрения фактически выполняются только 50 релевантных случаев, что снижает расходы, особенно в средах с оплатой по факту использования, поскольку там оплачивается каждый запуск. Подробности приведены в статье Настройка триггеров.

Как выглядит синтаксис условия срабатывания?

Каждое условие срабатывания начинается со знака @, за которым следует выражение, проверяющее значение из триггера. Если одновременно должно действовать несколько условий, достаточно добавить несколько выражений по отдельности: по умолчанию тогда должны выполняться все они, чтобы поток запустился. Если же вместо этого достаточно выполнения любого из нескольких условий, то, согласно Microsoft Learn, следует использовать синтаксис @or(test1, test2, test3). Если условие не выполнено, поток вообще не запускается, и, согласно тому же источнику, запись о запуске в журнале также не появляется. Дополнительные примеры таких выражений приведены в статье Использование выражений в условиях.

Где вводится условие срабатывания в потоке?

В новом конструкторе для этого откройте триггер потока, выберите там Параметры и добавьте выражение через кнопку Добавить рядом с пунктом Условия срабатывания. В классическом конструкторе разверните триггер, откройте параметры через меню из трёх точек и найдите пункт Добавить в разделе Условия срабатывания. В обоих случаях можно также сгенерировать выражение с помощью действия Filter array: соберите там условие в расширенном режиме, скопируйте выражение, вставьте его в условие срабатывания триггера, а затем снова удалите действие Filter array.

Где ещё на практике эта тема обычно затрагивается лишь мимоходом?

Во многих руководствах по устранению неполадок Power Automate условие срабатывания упоминается лишь вскользь, например, когда поток без видимой причины запускается слишком часто или слишком редко. При этом именно оно обычно является самым простым рычагом для исправления такого поведения, поскольку действует непосредственно на уровне триггера, а не через несколько действий позже. Тем, кто регулярно работает с потоками, реагирующими на события SharePoint, электронной почты или Dataverse, стоит поэтому закладывать условия срабатывания как стандартный инструмент, а не добавлять их постфактум, когда количество запусков становится проблемой. Если вы хотите проверить свои существующие потоки на предмет лишних запусков, в этом поможет наша консультация по Power Automate.

Часто задаваемые вопросы об условиях срабатывания в Power Automate

Засчитывается ли как запуск поток, который не стартует из-за условия срабатывания?

Нет. Согласно Microsoft Learn, в этом случае поток вообще не запускается, и запись в журнале выполнения не создаётся. Этим условие срабатывания отличается от обычного условия внутри потока, которое проверяется только после запуска и всё равно создаёт запуск.

Можно ли объединить несколько условий срабатывания через ИЛИ?

Да, для этого, согласно Microsoft Learn, предусмотрен синтаксис @or(test1, test2, test3). Без этого ключевого слова Power Automate по умолчанию объединяет несколько отдельно добавленных условий через И, так что все они должны выполняться одновременно.

Нужно ли писать синтаксис вручную?

Не обязательно. Вместо этого можно собрать условие с помощью действия Filter array в расширенном режиме, скопировать получившееся выражение и вставить его в условие срабатывания триггера. Само же действие Filter array после этого снова удаляется, поскольку оно нужно только для генерации выражения.

Влияет ли условие срабатывания на расход API-запросов?

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

Симон Гловик, основатель NordFlux
Об авторе

Основатель NordFlux. Семь лет опыта, от веба и SEO до автоматизации в масштабах концерна, сегодня прагматично для среднего бизнеса и с немецким суверенитетом данных.

Сертификаты

  • Сертифицирован Microsoft — PL-900 и AZ-900
  • Сертифицирован UiPath — Automation Developer Associate
Все статьи
Бесплатный первичный анализ

Конкретные вопросы по автоматизации или КИ?

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