Power Fx を使用して式を作成する

Power Fx は、Excel に似た式を使用するローコード言語です。 Power Fx を使用すると、コパイロットがデータを操作できる複雑なロジックを作成できます。 たとえば、Power Fx 式は、変数の値を設定したり、文字列を解析したり、条件で式を使用したりできます。 詳細については、Power Fx の概要および数式参照をご覧ください。

Note

Power Fx Copilot Studio の数式では米国式の番号付けが使用されています。 つまり、12,567.892 のように、小数点記号はピリオドまたはドットです。 これは Power Fx パラメータはカンマ (,) で区切る必要があることを示します

前提条件

数式での変数の使用

Power Fx 式で変数を使用するには、プレフィックスを追加して変数の名前を示す必要があります:

たとえば、数式でシステム変数 Conversation.Id を使用するには、システム変数を次のように参照します System.Conversation.Id

システム変数を含む式がある数式の入力ペインのスクリーンショット。

式でリテラル値を使用する

Power Fx 式で変数を使用するだけでなく、リテラル値を入力することもできます。 式でリテラル値を使用するには、そのに対応する形式で入力する必要があります。 次の表に、データ型とそれに対応するリテラル値の形式を一覧表示します。

タイプ Power Fx 式 形式の例
String テキスト機能
Len関数
下位関数、上位関数、固有関数
IsMatch、Match、MatchAll関数
EndsWithおよびStartsWith関数
"hi"
"hello world!"
"copilot"
ブール値 ブール値 関数
And、Or、Not関数
true または false のみ
回数 小数、浮動小数点、および値関数
Int、Round、RoundDown、RoundUp、Trun関数
1
532
5.258
-9201
記録と表 Count、CountA、CountIf、CountRows関数
ForAll関数
First、FirstN、Index、Last、LastN関数
フィルター、検索、ルックアップ機能
JSON関数
ParseJSON関数
[1]
[45, 8, 2]
["cats", "dogs"]
{ id: 1 }
{ message: "hello" }
{ name: "John", info: { age: 25, weight: 175 } }
DateTime 日付、日付時刻、時刻関数
DateValue、TimeValue、およびDateTimeValue関数
日、月、年、時間、分、秒、曜日関数
Now、Today、IsToday、UTCNow、UTCToday、IsUTCToday関数
DateAdd、DateDiff、およびTimeZoneOffset関数
テキスト機能
Time(5,0,23)
Date(2022,5,24)
DateTimeValue("May 10, 2022 5:00:00 PM")
選択肢 該当なし サポートしていません
空白 Blank、Coalesce、IsBlank、およびIsEmpty関数 Blank() のみ

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. その他のすべての条件 ノードの下に メッセージ ノードを追加し、「申し訳ございませんが、割引の対象にはなりません。」というメッセージを入力します。

    条件付きメッセージ ノードのスクリーンショット。