Использование выражений в условиях для проверки нескольких значений
Из этого руководства вы узнаете, как использовать выражения и условия для сравнения нескольких значений в расширенном режиме.
Создавая облачный поток, вы можете быстро сравнивать одно значение с другим, используя карточку Условие в простом режиме. Но в некоторых случаях требуется сравнить несколько значений. Например, вам необходимо проверить значение в нескольких столбцах электронной таблицы или таблицы базы данных.
Вы можете использовать в условиях любое сочетание следующих логических выражений.
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 удалить все строки, для которых в столбце Состояние задано значение завершено или не требуется.
Давайте создадим поток.
Начните с пустого потока
Выполните вход в Power Automate.
В левой области выберите Мои потоки.
Выберите Создать поток>Облачный поток по расписанию.
Добавление триггера в поток
Присвойте потоку имя.
Настройте запуск потока по расписанию один раз в день.
Выберите кнопку Создать, чтобы перейти к следующему шагу.
Заметка
Power Automate использует либо классический конструктор облачных потоков, либо конструктор облачных потоков с Copilot. Чтобы определить, какой конструктор вы используете, перейдите в раздел Заметка в пункте Знакомство с конструктором облачных потоков с возможностями Copilot.
Выбор электронной таблицы и получение всех строк
Выберите Создать шаг.
Выполните поиск по слову строки, а затем выберите Excel Online (Business).
Выбирайте то действие получения строки, которое соответствует используемой электронной таблице. Например, если используются Google Таблицы, выберите Google Таблицы — получить строки.
Выберите действие Список строк, присутствующих в таблице.
Выберите Расположение, Библиотеку документов, Файл и Таблицу, где содержатся ваши данные.
Просмотр значений в столбце состояния для каждой строки
Выберите Создать шаг.
Найдите применить к каждому, а затем выберите Применить к каждому — элемент управления.
В поле Выберите выходные данные из предыдущих шагов добавьте маркер Значение.
Этот маркер значения представляет электронную таблицу и все ее данные.
Выберите Добавить действие в карточке Применить к каждому.
Найдите условие, а затем выберите элемент управления Условие.
Добавьте выражение or, как показано ниже. Это выражение or проверяет значение каждой строки в таблице. Если в столбце Состояние для строки задано значение Завершено или Не требуется, выражение или возвращает значение true.
Вот пример карточки Условие.
Удаление совпадающих строк из электронной таблицы
В карточке условия в ветви Если "Да" выберите Добавить действие.
Ветвь Если да запускается, если условие OR имеет значение true.
Найдите Удалить строку, выберите Excel Online (Business), а затем выберите Удалить строку.
В карточке Удалить строку задайте поля Расположение, Библиотека документов, Файл и Таблица точно так же, как вы задали эти поля в карточке Список строк, присутствующих в таблице ранее в этом руководстве.
В раскрывающемся списке Ключевой столбец, выберите _PowerAppsId_.
В поле Значение ключа вставьте динамическое значение _PowerAppsId_.
Сохраните свой поток.
Запуск потока с выражением «or»
Поток будет выполнен после его сохранения. Если вы создали электронную таблицу, приведенную ранее в этом руководстве, после выполнения последовательности таблица будет выглядеть так:
Обратите внимание, что удалены все данные из строк со значением завершено или не требуется в столбце Состояние.
Использование выражения «and»
Предположим, у вас есть электронная таблица с двумя столбцами. Имена столбцов — Состояние и Кому назначено. Предположим также, что необходимо удалить все строки со значением заблокировано в столбце Состояние и значением John Wonder в столбце Кому назначено. Чтобы выполнить эту задачу, пройдите все шаги, описанные выше в этом руководстве. Но при изменении данных в карте Условие в расширенном режиме введите выражение and, как показано здесь:
@and(equals(item()?['Status'], 'blocked'), equals(item()?['Assigned'], 'John Wonder'))
Вот пример карточки Условие.
Запуск потока с выражением «and»
Если вы выполнили шаги, описанные в этом руководстве, ваша электронная таблица должна выглядеть примерно так, как показано на следующем снимке экрана.
После запуска потока ваша электронная таблица должна выглядеть примерно так, как показано на следующем снимке экрана.
Использование выражения «empty»
Обратите внимание, что сейчас в электронной таблице есть несколько пустых строк. Чтобы определить и удалить все строки без текста в столбцах Состояние и Кому назначено, воспользуйтесь выражением empty.
Для выполнения этой задачи выполните все шаги, перечисленные в разделе Использование выражения «and» ранее в этом руководстве. Когда вы редактируете карточку Условие в расширенном режиме, используйте следующее выражение empty.
@and(empty(item()?['Status']), empty(item()?['Assigned']))
Ваша карточка Условие должна выглядеть аналогично следующему снимку экрана.
После запуска потока электронная таблица должна выглядеть примерно так, как показано на следующем снимке экрана.
Обратите внимание, что лишние строки удалены из таблицы.
Использование выражения «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.