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 式で変数を使用するだけでなく、リテラル値を入力することもできます。 式でリテラル値を使用するには、その型に対応する形式で入力する必要があります。 次の表に、データ型とそれに対応するリテラル値の形式を一覧表示します。
タイプ | 形式の例 |
---|---|
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 } } |
DateTime | Time(5,0,23) 、Date(2022,5,24) 、DateTimeValue("May 10, 2022 5:00:00 PM") |
選択肢 | サポートしていません |
空白 | Blank() のみ |
一般的な Power Fx 数式
次の表に、データ型と、そのデータ型で使用する対応する Power Fx 数式を示します。
Power Fx を使用して変数を設定する
この例では、Power Fx 式は顧客の名前を大文字で保存して出力します。
トピックを作成し、質問ノードを追加します。
メッセージの入力 に「あなたの名前は何ですか?」と入力します。
特定の下で、エンティティ個人名を選択します。
応答に名前を付けて保存でボックスを選択してから、変数
Var1
を選択し、customerName
と名付けます。質問ノードで、+ を選択してから、変数値を設定するを選択します。
変数の設定でボックスを選択してから、新規作成を選択し、
capsName
と名付けます。対象値ボックスで、> 矢印を選択してから、式タブを選択します。
fx ボックスに、
Upper(Text(Topic.customerName))
と入力してから、挿入を選択します。質問ノードで、+ を選択してから、メッセージの送信を選択します。
「こんにちわ」と入力し、{x} を選択してから
capsName
を選択します。
条件として Power Fx 式を使用する
より複雑な式を評価するには、条件ノードを設定して Power Fx 式を使用します。
この例では、コパイロットは予約日が割引の対象となるかどうかを判断します。 これを判断するには、顧客が指定した予約日が現在の日付から 14 日以上経過しているかどうかを確認します。
トピックを作成し、質問ノードを追加します。
メッセージの入力 に、「予約日はいつですか?」と入力します。
特定の下で、エンティティ日付と時刻を選択します。
応答に名前を付けて保存でボックスを選択してから、変数
Var1
を選択し、bookingDate
と名付けます。質問 ノードの下にある ノードの追加 アイコン を選択し、条件の追加 を選択します。
条件 ノードの その他 (…) アイコンを選択し、式に変更 を選択します。
関数ボックスで、> 矢印を選択してから、式タブを選択します。
fx ボックスの内容を数式
Topic.bookingDate > (DateAdd (Now(), 14))
に置き換えてから、挿入を選択します。条件 ノードの下に メッセージ ノードを追加し、「割引の対象となります」というメッセージを入力します。
その他すべての条件 ノードの下に メッセージ ノードを追加し、「申し訳ございませんが、割引の対象ではありません。」というメッセージを入力します。