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

Note

Функции, описанные в этой статье, питаются стандартным жгутом, который использует опции выставления счетов, описанные в разделе «Лицензирование для агентов, работающих на стандартном жгуте». Узнайте, как получить доступ к стандартным функциям в стандартных агентах и потоках агентов доступа.

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

Note

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

Необходимые условия

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

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

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

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

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

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

Type Примеры форматирования
String "hi", "hello world!", "copilot"
Boolean Только true или false
Number 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
Функция поиска
Функция замены и подстановки
Boolean Булева функция
Функции И, ИЛИ и НЕ
Функции If и Switch
Number Функции "Десятичное число", "Число с плавающей запятой" и "Значение"
Функции Int, Round, RoundDown, RoundUp и Trunc
Запись и таблица Функция 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
Ошибка, 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. Введите "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. В узле Все остальные условия добавьте узел Сообщение и введите сообщение "К сожалению, Вы не имеете права на скидку".

    Снимок экрана условных узлов