次の方法で共有


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 のみ
回数 15325.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 数式
String Text 関数
Concat および Concatenate 関数
Len 関数
Lower、Upper および Proper 関数
IsMatch、Match、および MatchAll 関数
EndsWith 関数と StartsWith 関数
Find 関数
Replace および Substitute 関数
ブール値 Boolean 関数
And、Or、および Not 関数
If および Switch 関数
回数 Decimal、Float、Value 関数
Int、Round、RoundDown、RoundUp、Trun 関数
レコードとテーブル Concat および Concatenate 関数
Count、CountA、CountIf、および CountRows 関数
ForAll 関数
First、FirstN、Index、Last、LastN 関数
Filter、Search、および LookUp 関数
JSON 関数
ParseJSON 関数
DateTime Date、DateTime、Time 関数
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. その他すべての条件 ノードの下に メッセージ ノードを追加し、「申し訳ございませんが、割引の対象ではありません。」というメッセージを入力します。

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