Поделиться через


Создание выражений с помощью 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 Функция Text
Функции Concat и Concatenate
Функция Len
Функции Lower, Upper и Proper
Функции IsMatch, Match и MatchAll
Функции EndsWith и StartsWith
Функция Find
Функции Replace и Substitute
Логический Функция "Логическое значение"
Функции And, Or и Not
Функции If и Switch
Число Функции "Десятичное число", "Число с плавающей точкой" и "Значение"
Функции Int, Round, RoundDown, RoundUp и Trun
Запись и таблица Функции Concat и Concatenate
Функции Count, CountA, CountIf и CountRows
Функция ForAll
Функции First, FirstN, Index, Last и LastN
Функции Filter, Search и LookUp
Функция JSON
Функция ParseJSON
Дата/время Функции Дата, Дата и время и Время
Функции DateValue, TimeValue и DateTimeValue
Функции Day, Month, Year, Hour, Minute, Second и Weekday
Функции Now, Today, IsToday, UTCNow, UTCToday, IsUTCToday
Функции DateAdd, DateDiff и TimeZoneOffset
Функция Text
Чистого листа Функции Blank, Coalesce, IsBlank и IsEmpty
Функции Error, IfError, IsError, IsBlankOrError

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

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

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

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

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

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

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

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

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

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

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

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

  10. Введите "Привет ", выберите {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. В узле Все остальные условия добавьте узел Сообщение и введите сообщение «К сожалению, Вы не имеете права на скидку».

    Снимок экрана условных узлов «Сообщение».