ワークフローに Power Fx を適用する
Power Fx は、ワークフローの接着として機能する、コードが少ない Excel に似た言語です。 これにより、複雑なコードを記述することなく、データの操作、条件の評価、実行フローの制御が可能になります。 ワークフローでは、決定、変数の設定、またはループが適用される場所で Power Fx 数式が使用され、ワークフローはユーザー入力、エージェント出力、または格納されたデータに動的に対応できます。
数式のしくみ
Power Fx の数式は、評価されて値を得る式です。 数式は、 システム 変数と ローカル 変数を参照できます。
- システム変数 は、現在のアクティビティ、最後のメッセージ、ユーザー情報など、ワークフローまたは会話に関するコンテキスト情報を提供します。
- ローカル変数 は、ワークフローの実行中にキャプチャまたは作成されたデータを格納し、後続のノードで使用できます。
たとえば、次の数式を作成できます。
- ユーザーの入力を大文字に変換します。
Upper(Local.Input) - エージェントの信頼度スコアがしきい値を超えているかどうかを確認します。
Local.Confidence > 0.8 - レコードのリストまたは列の値を合計します。
Sum(Local.ItemList, Amount)
数式で変数を使用すると、ワークフローはコンテキストと前の手順に基づいて適応できます。
意思決定ポイントとしての条件
Power Fx 式は、条件と分岐の実行を評価するために If/Else ノードでよく使用されます。 条件は、システム変数またはローカル変数、構造化エージェント出力、またはその他のワークフロー データを参照できます。 たとえば、ワークフローでは、エージェントの信頼度スコアをチェックして、自動的に処理を続行するか、人間にエスカレートするかを決定できます。
複数の項目を処理するためのループ
各ノードでは 、Power Fx を使用してコレクションを反復処理し、各項目に同じアクション のセットを適用します。 ループと変数と条件を組み合わせることで、ワークフローはノードやロジックを複製することなく、複数のサポート チケットなどの入力リストを処理できます。
Power Fx 数式の例
| 目的 | 数式の例 | 注記 |
|---|---|---|
| テキストを大文字に変換する | Upper(Local.Input) |
文字列をすべての大文字に変換します。 |
| テキストを小文字に変換する | Lower(Local.Input) |
文字列をすべて小文字に変換します。 |
| 文字列の長さを取得する | Len(Local.Input) |
文字列内の文字数を返します。 |
| 条件付きチェック | Local.Confidence > 0.8 |
true/false を返します。If/Else ノードで使用される |
| If/Else ロジック | If(Local.Confidence > 0.8, "Proceed", "Escalate") |
条件に応じて 2 つの値のいずれかを返します |
| 数値の一覧を合計する | Sum([10, 20, 30]) |
単純なリストに数値を加算する |
| テーブル内の列を合計する | Sum(Local.ItemList, Amount) |
テーブル内の各レコードの Amount プロパティを加算します |
| テーブルまたはリスト内のアイテムをカウントする | Count(Local.ItemList) |
項目の数を返します。 |
| 空白かどうかを確認する | IsBlank(Local.Input) |
変数または入力が空の場合は true を返します。 |
| 空のテーブルがあるかどうかを確認する | IsEmpty(Local.ItemList) |
テーブルにレコードがない場合は true を返します。 |
| 項目を繰り返し処理する | ForAll(Local.ItemList, Upper(Name)) |
リストまたはテーブルの各項目に数式を適用します |
| テキストを連結する | Concatenate(Local.FirstName, " ", Local.LastName) |
複数の文字列を 1 つに結合します |
ワークフロー全体で Power Fx 数式を使用すると、入力とエージェントの出力にインテリジェントに応答する動的なデータ ドリブン プロセスを作成できます。 このローコードアプローチにより、複雑なロジックを構築しながら、ワークフローの保守性と理解性を維持できます。
ヒント
Power Fx 言語の詳細については、 Power Fx のドキュメントを参照してください。