デスクトップ フローの Power Fx

[この記事はプレリリース ドキュメントであり、変更されることがあります。]

Power Fx は、Microsoft Power Platform 全体でロジックを記述するためのロー コード言語です。 汎用、厳密な型指定、宣言型、そして関数型のプログラミング言語です。

Power Fx は、人が使いやすいテキストで表現されています。 作成者が Excel のような数式バーまたは Visual Studio Code のテキスト ウィンドウで直接操作できるローコード言語です。 ローコードの「ロー」は、言語の簡潔でシンプルな性質によるものであり、一般的なプログラミング タスクを作成者と開発者の両方にとって容易にします。

Power Fx プログラミング知識のないノーコード作成者からプロの開発者向けのプロコードまで、あらゆる開発を可能にします。 これにより、多様なチームが協力し、時間と労力を節約できるようになります。

重要

  • これはプレビュー機能です。
  • プレビュー機能は運用環境での使用を想定しておらず、機能が制限されている可能性があります。
  • これらの機能を公式リリースの前に使用できるようにすることで、顧客が一足先にアクセスし、そこからフィードバックを得ることができます。
  • この機能を使用するには、デスクトップ v2.39 以降の Power Automate が必要です。

デスクトップ フローで Power Fx を使用する (プレビュー)

デスクトップ フローで Power Fx を式言語として使用するには、デスクトップ フローを作成し、デスクトップのコンソール用のフロー Power Automate を作成するときにそれぞれのトグル ボタンを有効にする必要があります。

Power Fx ボタンの有効化のスクリーンショット

注意

各 Power Fx 式は "=" (符号に等しい) で始まる必要があります。 

Excel の数式と同じように、Power Fx を式言語として 0 (ゼロ)ベースのインデックスの代わりに、1 (一) を利用するデスクトップ フロー。 

Power Fx を使用したデスクトップ フローでは、変数名の大文字と小文字が区別されます。 たとえば、NewVarnewVar とは異なります。

デスクトップ フローで Power Fx が有効になっている場合、変数ホイスティングはサポートされないため、ユーザーは変数を使用する前に初期化する必要があります。 Power Fx 式で初期化されていない変数を使用しようとすると、エラーが発生します。

If アクションは 1 つの条件式を受け入れます。 (以前は、複数のオペランドを受け入れていました)。

例:

  • 入力フィールドの =1 は数値 1 に相当します
  • = variableName は、variableName 変数の値と同じです。 
  • = {'prop':"value"} は、カスタム オブジェクトと同等のレコード値を返します
  • = テーブル({'prop':"値"}) は、カスタム オブジェクトのリストと同等の Power Fx テーブルを返します
  • 式 - = [1,2,3,4] は数値のリストを作成します
  • リストの値にアクセスするには、関数 Index(var,number) を使用する必要があります。ここで、var はリストの名前、number は回収される値の位置です
  • 列インデックスを使用してデータ テーブルのセルにアクセスするには、ReadCell() 関数を使用します。 ReadCell(DataTableVar, 1, 1) 行 1 のセルから値を取得し、列 1 ReadCell(DataRowVar, 1) は行 1 のセルから値を取得します
  • 入力または UI/Web 要素セレクターに補間値を含めるには、次の構文を使用します: Lorem ipsum ${variable/ expression} lorem ipsum
    • 例: 合計数は ${Sum(10, 20)} です 

注意

Power Fx 式内または UI/Web 要素セレクターの構文でドル記号 ($) に続いて左中括弧記号 ({) を使用し、デスクトップ用 Power Automate で文字列補間構文として処理されないようにするには、次の構文に従ってください: $${ (最初のドル記号はエスケープ文字として機能します)

使用できる Power Fx 関数

デスクトップ フロー用 Power Automate で使用可能なすべての関数の完全なリストについては、数式リファレンス - デスクトップ フロー にアクセスしてください。

既知の問題と制限事項

  • 自動化アクションの標準ライブラリからの次のアクションは現在サポートされていません:
    • リストの作成
    • リストのシャッフル
    • リストから項目を削除する
    • 一覧の並べ替え
    • リストの統合
    • リストを逆にする
    • リストから重複する項目を削除
    • 共通リスト項目の検索
    • DataTable 列をリストに取得する
    • 項目をリストに追加
    • 新しいリストの作成
    • 新しいデータ テーブルを作成する
    • 行をデータ テーブルに挿入する
    • データ テーブル項目を更新する
    • データ テーブルから行を削除する
    • Switch
    • Case
    • 既定のケース

注意

Power Fx 式の実行 アクションと Collect、Clear、ClearCollect および Patch 関数を使用した式と組み合わせることで、アクション 項目をリストに追加する および 行をデータ テーブルに挿入する の動作をエミュレートできます。これらのアクションは現在、Power Fx 対応のデスクトップ フローでは使用できません。

  • 一般的な値 変数のタイプは、リスト、テーブル内、または Record 値のプロパティとしては許可されません。
  • いつでも 一般的な値 タイプの変数が使用されると、"Deferred type provided" という警告メッセージが表示されます。 これらの警告は Power Fxの強い型指定されたスキーマ (厳密に定義された型) に対する厳密な要件によって発生します。
  • オーサリング中にまだ評価できない Excelから読み取る CSVから読み取る Webからデータを抽出するウィンドウからデータを抽出する SQL文の実行 そして JSONをカスタム オブジェクトに変換する 生産する 一般タイプ 変数のようなアクションの標準ライブラリからの特定の自動化アクション。 当面は、このような場合に発生する警告は無視してください。
  • 上記のアクションから生成される一般タイプの変数は、現時点では次の関数と互換性がありません: Filter()、LookUp()、Search()、CountIf()、With()。
  • IntelliSense を通じて提供される一部の Power Fx 機能は、現在デスクトップ フローではサポートされていません。 これらの関数を使用すると、次の設計時エラーが表示されます: パラメータ 'Value': PowerFxタイプ 'OptionSetValueType' はサポートされていません。

新機能

このセクションでは、各アップデートでの変更点をリストします。

2.43

4月のリリースでは次のようになります:

  • 大文字と小文字の区別。 たとえば、NewVarnewVar とは異なる変数です。
  • Power Fx 式を実行 アクションは、アクションの 変数 グループで使用できます。 [Power Fx 式を実行] を使用すると、データ ソース上で式を直接実行できます。
  • Collect、Clear、ClearCollect Power Fx 関数はデスクトップ フローでサポートされています。
  • Patch Power Fx 関数はデスクトップ フローでサポートされています。
  • 変数と Power Fx 式は、UI 要素またはWeb セレクター構文で使用できます。
  • 補間値を UI/Web 要素セレクターの構文に含めることができるようになりました。 補間された文字列の場合は、次の構文を使用できます: ${ Power Fx expression }

重要

デスクトップ用 Power Automate のバージョン 2.43 では、以前のバージョンで作成された Power Fx 対応デスクトップ フローの実行に影響を及ぼす可能性のある、Power Fx 対応デスクトップ フローの更新が行われました。 具体的には次のとおりです。

  • 大文字と小文字を区別する変数名: デスクトップ用 Power Automate バージョン 2.43 以降 で作成された Power Fx 対応デスクトップ フロー内の変数名では、大文字と小文字が区別されます。 デスクトップ用 Power Automate バージョン 2.42 以前 で作成された Power Fx デスクトップ フローでは、大文字と小文字を区別しない変数名が使用できました。 たとえば、NewVarnewVAR は同じ変数を参照します。 デスクトップ用 Power Automate バージョン 2.42 以前 で作成された Power Fx 対応デスクトップ フローの場合は、生成された変数が想定どおりであることをレビューして確認してください。

2.42

3 月のリリースでは次のようになります。

  • IntelliSense 機能が Power Fx 対応のデスクトップ フローで利用できるようになりました。
    • 構文の色付け
    • 入力中のオートコンプリート機能とリアルタイムの提案
    • Power Fx 関数の署名ヘルパー

注意

IntelliSense 機能は式に使用できます。 式を入力するには、各入力の先頭に 等号 (=) か、文字列補間表記 (${} ) を使用します。

  • 関数ピッカー
    • それぞれの入力を操作するときに、スキットルのfxボタンを使用して関数ピッカーにアクセスできます。 デスクトップ フローで現在サポートされているすべての Power Fx 機能がそこで利用可能です。

2.41

2 月のリリースでは次のようになります。

  • 今後、等号 (=) で始まらない入力はテキスト タイプの値とみなされます。 数値およびブール値の入力は常に等号で始まる必要があります。
  • 入力で補間された文字列がサポートされるようになりました。 入力に補間値を含めるには、次の構文を使用します: Lorem ipsum ${variable/expression} lorem ipsum。
    • 例: 合計数は ${Sum(10, 20)} です

注意

補間された文字列構文を使用するには、入力の先頭にある等号を省略します。

2.39

12 月のリリースでは次のようになります。

  • 指定された入力が等号で始まらない場合は、次のルールが適用されます。
    • スペースのない数値は数値として解釈されます。
    • True/ False 入力として、大文字と小文字に関係なく、スペースがなければブール値として解釈されます。
    • 他のすべての入力はテキスト型の値とみなされます。