Использование выражений в условиях для проверки нескольких значений

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

Создавая облачный поток, вы можете быстро сравнивать одно значение с другим, используя карточку Условие в простом режиме. Но в некоторых случаях требуется сравнить несколько значений. Например, вам необходимо проверить значение в нескольких столбцах электронной таблицы или таблицы базы данных.

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

Expression Описание: Пример
and Принимает два аргумента и возвращает значение true, если оба аргумента имеют значение true.
Примечание. Оба аргумента должны быть представлены логическими значениями.
Это выражение возвращает значение false:
and(greater(1,10),equals(0,0))
or Принимает два аргумента и возвращает значение true, если один аргумент имеет значение true.
Примечание. Оба аргумента должны быть представлены логическими значениями.
Это выражение возвращает значение true:
or(greater(1,10),equals(0,0))
равно Возвращает значение true, если значения равны. Например, если для parameter1 задано значение someValue, это выражение возвращает значение true:
equals(parameters('parameter1'), 'someValue')
less Принимает два аргумента и возвращает значение true, если значение первого аргумента меньше значения второго.
Примечание. Поддерживаются следующие типы данных: целые числа, числа с плавающей запятой и строки.
Это выражение возвращает значение true:
less(10,100)
lessOrEquals Принимает два аргумента и возвращает значение true, если значение первого аргумента меньше или равно значению второго.
Примечание. Поддерживаются следующие типы данных: целые числа, числа с плавающей запятой и строки.
Это выражение возвращает значение true:
lessOrEquals(10,10)
greater Принимает два аргумента и возвращает значение true, если значение первого аргумента больше значения второго.
Примечание. Поддерживаются следующие типы данных: целые числа, числа с плавающей запятой и строки.
Это выражение возвращает значение false:
greater(10,10)
greaterOrEquals Принимает два аргумента и возвращает значение true, если значение первого аргумента больше или равно значению второго.
Примечание. Поддерживаются следующие типы данных: целые числа, числа с плавающей запятой и строки.
Это выражение возвращает значение false:
greaterOrEquals(10,100)
empty Возвращает значение true, если объект, массив или строка являются пустыми. Это выражение возвращает значение true:
empty('')
not Возвращает противоположное логическое значение. Это выражение возвращает значение true:
not(contains('200 Success','Fail'))
if Возвращает определенное значение в зависимости от того, какое значение возвращает выражение: true или false. Это выражение возвращает значение yes:
if(equals(1, 1), 'yes', 'no')

Предварительные условия

Вот что вам понадобится для завершения этого пошагового руководства.

  • Войдите в Power Automate.
  • Ваша электронная таблица с таблицами, приведенными далее в этом пошаговом руководстве. Сохраните электронную таблицу в таком расположении, как Dropbox или Microsoft OneDrive, чтобы она была доступна для Power Automate.
  • Microsoft 365 Outlook (Хотя в этом руководстве используется Outlook, в своих потоках вы можете использовать любую поддерживаемую службу электронной почты.)

Использование выражения «or»

Иногда в рабочем процессе необходимо выполнить действие в зависимости от того, какое значение у элемента: valueA или valueB. Например, вам требуется отследить состояние задач в электронное таблице. Предположим, что в таблице есть столбец с именем Состояние и в этом столбце возможны следующие значения:

  • Завершено
  • заблокировано
  • не требуется
  • не начато

Вот пример, как может выглядеть электронная таблица:

Снимок экрана с образцом электронной таблицы со столбцом «Состояние».

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

Давайте создадим поток.

Начните с пустого потока

  1. Выполните вход в Power Automate.

  2. В левой области выберите Мои потоки.

  3. Выберите Создать поток>Облачный поток по расписанию.

Добавление триггера в поток

  1. Присвойте потоку имя.

  2. Настройте запуск потока по расписанию один раз в день.

  3. Выберите кнопку Создать, чтобы перейти к следующему шагу.

Заметка

Power Automate использует либо классический конструктор облачных потоков, либо конструктор облачных потоков с Copilot. Чтобы определить, какой конструктор вы используете, перейдите в раздел Заметка в пункте Знакомство с конструктором облачных потоков с возможностями Copilot.

Выбор электронной таблицы и получение всех строк

  1. Выберите Создать шаг.

  2. Выполните поиск по слову строки, а затем выберите Excel Online (Business).

    Выбирайте то действие получения строки, которое соответствует используемой электронной таблице. Например, если используются Google Таблицы, выберите Google Таблицы — получить строки.

  3. Выберите действие Список строк, присутствующих в таблице.

    Снимок экрана списка строк в таблице.

  4. Выберите Расположение, Библиотеку документов, Файл и Таблицу, где содержатся ваши данные.

    Снимок экрана: поля «Местоположение», «Библиотека документов», «Файл» и «Таблица» в строках списка, присутствующих в карточке таблицы.

Просмотр значений в столбце состояния для каждой строки

  1. Выберите Создать шаг.

  2. Найдите применить к каждому, а затем выберите Применить к каждому — элемент управления.

  3. В поле Выберите выходные данные из предыдущих шагов добавьте маркер Значение.

    Этот маркер значения представляет электронную таблицу и все ее данные.

  4. Выберите Добавить действие в карточке Применить к каждому.

  5. Найдите условие, а затем выберите элемент управления Условие.

  6. Добавьте выражение or, как показано ниже. Это выражение or проверяет значение каждой строки в таблице. Если в столбце Состояние для строки задано значение Завершено или Не требуется, выражение или возвращает значение true.

    Вот пример карточки Условие.

    Снимок экрана с выражением «or».

Удаление совпадающих строк из электронной таблицы

  1. В карточке условия в ветви Если "Да" выберите Добавить действие.

    Ветвь Если да запускается, если условие OR имеет значение true.

  2. Найдите Удалить строку, выберите Excel Online (Business), а затем выберите Удалить строку.

  3. В карточке Удалить строку задайте поля Расположение, Библиотека документов, Файл и Таблица точно так же, как вы задали эти поля в карточке Список строк, присутствующих в таблице ранее в этом руководстве.

  4. В раскрывающемся списке Ключевой столбец, выберите _PowerAppsId_.

  5. В поле Значение ключа вставьте динамическое значение _PowerAppsId_.

  6. Сохраните свой поток.

Запуск потока с выражением «or»

Поток будет выполнен после его сохранения. Если вы создали электронную таблицу, приведенную ранее в этом руководстве, после выполнения последовательности таблица будет выглядеть так:

Снимок экрана электронной таблицы после завершения работы выражения «OR».

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

Использование выражения «and»

Предположим, у вас есть электронная таблица с двумя столбцами. Имена столбцов — Состояние и Кому назначено. Предположим также, что необходимо удалить все строки со значением заблокировано в столбце Состояние и значением John Wonder в столбце Кому назначено. Чтобы выполнить эту задачу, пройдите все шаги, описанные выше в этом руководстве. Но при изменении данных в карте Условие в расширенном режиме введите выражение and, как показано здесь:

@and(equals(item()?['Status'], 'blocked'), equals(item()?['Assigned'], 'John Wonder'))

Вот пример карточки Условие.

Снимок экрана с выражением «and».

Запуск потока с выражением «and»

Если вы выполнили шаги, описанные в этом руководстве, ваша электронная таблица должна выглядеть примерно так, как показано на следующем снимке экрана.

Снимок экрана электронной таблицы перед запуском потока.

После запуска потока ваша электронная таблица должна выглядеть примерно так, как показано на следующем снимке экрана.

Снимок экрана электронной таблицы после запуска потока.

Использование выражения «empty»

Обратите внимание, что сейчас в электронной таблице есть несколько пустых строк. Чтобы определить и удалить все строки без текста в столбцах Состояние и Кому назначено, воспользуйтесь выражением empty.

Для выполнения этой задачи выполните все шаги, перечисленные в разделе Использование выражения «and» ранее в этом руководстве. Когда вы редактируете карточку Условие в расширенном режиме, используйте следующее выражение empty.

@and(empty(item()?['Status']), empty(item()?['Assigned']))

Ваша карточка Условие должна выглядеть аналогично следующему снимку экрана.

Снимок экрана с выражением «empty».

После запуска потока электронная таблица должна выглядеть примерно так, как показано на следующем снимке экрана.

Снимок экрана электронной таблицы после запуска выражения «empty».

Обратите внимание, что лишние строки удалены из таблицы.

Использование выражения «greater»

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

Используйте выражение greater, чтобы определить, кто из сотрудников еще не вернул всю суму. Затем вы сможете автоматически отправлять этим сотрудникам электронное сообщение с напоминанием.

Электронная таблица выглядит так:

Снимок экрана таблицы тех, кто не заплатил полностью.

Ниже показана реализация выражения greater, которое позволяет определить всех сотрудников, вернувших меньшую сумму.

@greater(item()?['Due'], item()?['Paid'])

Использование выражения «less»

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

Используйте выражение and вместе с выражением less, так как проверяются два условия.

Условие для проверки Используемое выражение Пример
Возвращена ли вся сумма? greater @greater(item()?['Due'], item()?['Paid'])
Осталось ли до срока оплаты меньше одного дня? less @less(item()?['DueDate'], addDays(utcNow(),1))

Объединение выражений «greater» и «less» с помощью выражения «and»

Используйте выражение greater, чтобы определить, кто из сотрудников вернул меньшую сумму, а выражение less, чтобы определить, осталось ли до срока оплаты меньше одного дня. Затем вы сможете выбрать действие Отправка электронного письма, чтобы отправить сообщение с напоминанием тем сотрудникам, кто не вернул всю сумму, а также если до срока оплаты осталось меньше одного дня.

Электронная таблица выглядит так:

Снимок экрана электронной таблицы.

Ниже показана реализация выражения and, которое позволяет определить, кто из сотрудников вернул меньшую сумму, а также осталось ли до срока оплаты меньше одного дня.

@and(greater(item()?['Due'], item()?['Paid']), less(item()?['dueDate'], addDays(utcNow(),1)))

Использование функций в выражениях

Некоторые выражения получают значения из действий времени выполнения, которые могут еще не существовать, когда облачный поток начинает работу. Чтобы ссылаться на эти значения или работать с ними в выражениях, вы можете использовать функции, предоставляемые языком определений рабочих процессов. Дополнительные сведения: Чтобы узнать больше, перейдите к разделу Справочное руководство по функциям выражения рабочего процесса в Azure Logic Apps и Power Automate.