Выражения Power Automate: 15 самых важных функций
15 самых важных функций выражений Power Automate, таких как concat, formatDateTime и coalesce, на немецких практических примерах.
Самые важные функции выражений в Power Automate: concat, toUpper, toLower, replace и substring для текста; utcNow, formatDateTime, addDays и dayOfWeek для даты и времени; if, equals, coalesce и empty для логических проверок, а также first и length для доступа к спискам и массивам. С помощью этих 15 функций можно покрыть большую часть текстовых блоков, расчетов дат и условий в облачном потоке, не добавляя дополнительных действий. Каждая функция вводится в редакторе выражений и может быть вложена в другие функции, например formatDateTime(utcNow(), 'dd.MM.yyyy') для немецкого формата даты. Актуально на: июль 2026.
Какие текстовые функции объединяют и очищают строки?
Текстовые функции объединяют строки, преобразуют регистр букв или вырезают части из строки. Они лежат в основе почти каждой темы письма, имени файла или сообщения в потоке.
- concat(text1, text2, ...): Объединяет минимум две строки в одну. Пример concat('Счет-', variables('НомерКлиента')) дает "Счет-4711". Полный синтаксис всех текстовых функций перечислен в справочнике Microsoft по функциям выражений. О том, как собирать такие выражения в отдельном действии, рассказывает статья Составление выражений в Power Automate (Compose).
- toUpper(text) / toLower(text): Преобразует строку в верхний или нижний регистр. Удобно для нормализации адресов электронной почты перед сравнением, например toLower('Anna.Muster@Firma.DE').
- replace(text, старыйТекст, новыйТекст): Заменяет часть строки на другую. replace('2026/03/18', '/', '-') дает "2026-03-18". Функция чувствительна к регистру.
- substring(text, startIndex, длина): Вырезает определенное количество символов начиная с начальной позиции. substring('Rechnung-2026-0042', 9, 4) дает "2026". Индекс начинается с 0, а третий аргумент — это длина, а не конечная позиция.
Как выполнять вычисления с датой и временем в выражении?
Функции даты и времени возвращают текущую временную метку, форматируют ее для отображения и сдвигают на дни или недели. Power Automate по умолчанию работает в UTC.
- utcNow(format?): Возвращает текущую временную метку UTC, при необходимости уже в нужном формате. Без параметра функция возвращает формат ISO 8601.
- formatDateTime(отметкаВремени, format?, локаль?): Форматирует временную метку по собственному шаблону. formatDateTime(utcNow(), 'dd.MM.yyyy') дает немецкую дату вида "18.03.2026". Обратите внимание на регистр: MM обозначает месяцы, mm — минуты.
- addDays(отметкаВремени, количество): Прибавляет или вычитает дни к временной метке. addDays(utcNow(), 7) вычисляет дату выполнения через неделю, addDays(utcNow(), -30) — дату 30 дней назад.
- dayOfWeek(отметкаВремени): Возвращает день недели в виде числа, где воскресенье — 0, а суббота — 6. Важно для проверок выходных дней внутри цикла, например при проверке дат для каждого элемента списка. Дополнительные шаблоны дат с готовыми выражениями собраны в сборнике рецептов выражений для облачных потоков. О том, как перебирать список таких записей, рассказывает статья Power Automate Apply to each.
Какие логические функции управляют условиями и значениями по умолчанию?
Логические функции проверяют условия и возвращают разные значения в зависимости от результата, без необходимости создавать отдельное ветвление в потоке.
- if(выражение, значениеЕслиИстина, значениеЕслиЛожь): Проверяет логическое условие и возвращает одно из двух значений в зависимости от результата. if(equals(1, 1), 'да', 'нет') дает "да". Функция if() не понимает операторы вроде > или < напрямую, для этого вы комбинируете ее с greater() или less().
- equals(значение1, значение2): Проверяет, идентичны ли два значения, и возвращает true или false. Часто используется в качестве первого аргумента в if().
- coalesce(значение1, значение2, ...): Возвращает первое значение, которое не равно null. coalesce(triggerBody()?['предпочтительноеИмя'], triggerBody()?['отображаемоеИмя'], 'Неизвестно') переходит к следующему полю, как только одно из них отсутствует. Пустые строки при этом не считаются null.
- empty(коллекция): Проверяет, пуста ли строка, массив или объект, и возвращает true или false. empty('') дает true, empty('abc') дает false. Функция не работает с числами.
Как получить доступ к отдельным элементам в списках?
Функции для коллекций одинаково работают с массивами и строками и особенно полезны в циклах, когда вам нужны отдельные элементы, а не весь список.
- first(коллекция): Возвращает первый элемент строки или массива. first('hallo') дает "h", first(createArray(0, 1, 2)) дает 0.
- length(коллекция): Подсчитывает количество символов в строке или элементов массива. length('abcd') и length(createArray(0, 1, 2, 3)) дают одинаковый результат — 4.
Как только вы опробуете эти 15 функций на собственных примерах, большинство проблем с потоками можно будет решить без дополнительных сторонних коннекторов. Для команд, которые предпочитают выстраивать свои потоки с фиксированной ценой и прямым контактным лицом, а не самостоятельно, NordFlux оказывает поддержку в консультировании по Power Automate от первого выражения до рабочего потока.
Часто задаваемые вопросы о выражениях Power Automate
Где вводить выражение в Power Automate?
В конструкторе потоков откройте вкладку "Выражение" через значок функции (fx) или редактор выражений поля и введите функцию прямо там. Также можно вставить динамическое содержимое через редактор и обернуть его функцией, например formatDateTime() или concat(). Редактор помечает синтаксические ошибки уже во время ввода, поэтому отсутствующие скобки легко найти.
Почему formatDateTime выводит неверную дату?
Чаще всего причина в путанице между заглавными и строчными буквами в строке формата: MM обозначает месяц, mm — минуты, а dd — день. Формат вида 'mm/DD/yyyy' меняет местами минуты и день и тем самым создает явно неверную дату. Проверьте строку формата по символам формата .NET, на которые ссылается Microsoft Learn.
Можно ли вкладывать несколько функций друг в друга?
Да, для более сложных выражений это даже стандартный случай. Пример: formatDateTime(addDays(utcNow(), 7), 'dd.MM.yyyy') выводит дату выполнения через неделю сразу в нужном немецком формате. Вычисление происходит изнутри наружу, подобно вложенным формулам в Excel.
В чем разница между coalesce и проверкой с помощью if и empty?
coalesce() проверяет исключительно значение null и не пропускает автоматически пустые строки, тогда как комбинация if() и empty() может дополнительно рассматривать пустые строки как "нет значения". Для простых значений по умолчанию при отсутствующих полях достаточно coalesce(), а для более строгой проверки обязательных полей более надежным выбором является комбинация с empty().
NordFlux UG (haftungsbeschränkt)
NordFlux создаёт цифровых сотрудников для организаций: автоматизации и КИ-агентов, которые берут на себя повторяющуюся работу. Вы сохраняете контроль.
Конкретные вопросы по автоматизации или КИ?
В рамках бесплатного первичного анализа мы напрямую обсудим Ваш случай. Без обязательств.