Бөлісу құралы:


Создание выражений с помощью Power Fx

Power Fx — это язык с низким уровнем кода, в котором используются формулы, похожие на формулы Excel. Используйте Power Fx, чтобы создавать сложную логику, которая позволяет вашим помощникам управлять данными. Например, формула Power Fx может задавать значение переменной, анализировать строку или использовать выражение в условии. Дополнительные сведения см. в обзоре Power Fx и справочнике по формулам.

Заметка

Power Fx формулы в Copilot Studio используют нумерацию в американском стиле. То есть десятичный разделитель — это точка, как в 12,567.892. Это означает, что параметры Power Fx необходимо разделять запятыми (,).

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

Использование переменных в формулах

Чтобы использовать переменную в формулах Power Fx, необходимо добавить префикс к ее имени, чтобы указать область действия переменной:

Например, чтобы использовать системную переменную Conversation.Id в формуле, ссылайтесь на системную переменную как System.Conversation.Id.

Снимок экрана: область ввода формулы с выражением, содержащим системную переменную.

Использование литеральных значений в формулах

Помимо использования переменных в формулах Power Fx, вы можете вводить литеральные значения. Чтобы использовать литеральное значение в формуле, вы должны ввести его в формате, соответствующем его типу: В следующей таблице перечислены типы данных и формат соответствующих литеральных значений.

Type Примеры форматов
String "hi", "hello world!", "copilot"
Логический Только true или false
Число 1, 532, 5.258,-9201
Запись и таблица [1], [45, 8, 2], ["cats", "dogs"], { id: 1 }, { message: "hello" }, { name: "John", info: { age: 25, weight: 175 } }
Дата/время Time(5,0,23), Date(2022,5,24), DateTimeValue("May 10, 2022 5:00:00 PM")
Выбранный вариант Неподдерживаемые
Чистого листа Только Blank()

Общие Power Fx формулы

В следующей таблице перечислены типы данных и соответствующие Power Fx формулы для использования с этими типами данных.

Type Power Fx формулы
String Текстовая функция
Функции Concat и Concatenate
Функция Len
Нижние, верхние и собственные функции
Функции IsMatch, Match и MatchAll
Функции EndsWith и StartsWith
Найти функцию
Функция замены и подстановки
Логический Функция логический
Функции И, ИЛИ и НЕ
Число Десятичные, плавающие и значащие функции
Функции Int, Round, RoundDown, RoundUp и Trun
Запись и таблица Функции Concat и Concatenate
Функции Count, CountA, CountIf и CountRows
Функция ForAll
Функции First, FirstN, Index, Last и LastN
Функции фильтра, поиска и поиска
JSON-функция
Функция ParseJSON
Дата/время Функции даты, даты и времени
Функции DateValue, TimeValue и DateTimeValue
Функции дня, месяца, года, часа, минуты, секунды и дня недели
Функции Сейчас, Сегодня, IsToday, UTCNow, UTCToday, IsUTCToday
Функции DateAdd, DateDiff и TimeZoneOffset
Текстовая функция
Чистого листа Функции Blank, Coalesce, IsBlank и IsEmpty

Использование Power Fx для задания переменной

В этом примере выражение Power Fx сохраняет и выводит имя клиента заглавными буквами.

  1. Создайте тему и добавьте узел Вопрос.

  2. Для Введите сообщение введите «Как вас зовут?».

  3. В разделе Идентификация выберите сущность Имя человека.

  4. Выберите поле под Сохранить ответ как, затем выберите переменную Var1 и назовите ее customerName.

  5. В узле Вопрос выберите +, затем выберите Задать значение переменной.

  6. Выберите поле под Задать переменную, затем выберите Создать новую и назовите ее capsName.

  7. В поле До значения выберите стрелку >, затем выберите вкладку Формула.

  8. В поле fx введите Upper(Text(Topic.customerName)), затем выберите Вставить.

    Снимок экрана: формула Power Fx в узле «Задать переменную» с выделенной вкладкой «Формула».

  9. В узле Вопрос выберите +, затем выберите Отправить сообщение.

  10. Введите «HELLO», выберите {x}, а затем выберите capsName.

    Скриншот узла «Сообщение» с определенным сообщением.

Использование формулы Power Fx в качестве условия

Чтобы оценить более сложные выражения, настройте узлы Условие для использования формул Power Fx.

В этом примере помощник определяет, соответствует ли дата резервирования условиям скидок. Для этого он проверяет, находится ли дата бронирования, указанная клиентом, за 14 или более дней от текущей даты.

  1. Создайте тему и добавьте узел Вопрос.

  2. Для Введите сообщение введите «Дата бронирования?».

  3. В разделе Идентификация выберите сущность Дата и время.

  4. Выберите поле под Сохранить ответ как, затем выберите переменную Var1 и назовите ее bookingDate.

    Снимок экрана: узел вопроса с выбранной сущностью даты и времени и заданной переменной.

  5. Выберите значок Добавить узел под узлом Вопрос , а затем выберите Добавить условие.

  6. Выберите значок Дополнительно () узла Условие , а затем выберите Изменить на формулу.

  7. В поле Функция выберите стрелку >, затем выберите вкладку Формула.

  8. Замените содержимое поля fx формулой Topic.bookingDate > (DateAdd (Now(), 14)), затем выберите Вставить.

  9. В узле Условие добавьте узел Сообщение и введите сообщение «Вы имеете право на скидку».

  10. В узле Все остальные условия добавьте узел Сообщение и введите сообщение: «К сожалению, вы не имеете права на скидку».

    Скриншот условных узлов сообщений.