はじめに
Power Appsのキャンバスアプリで使用できる、ユーザー定義関数(UDF)がついにGAされました。また、公式ブログではユーザー定義型(UDT)についてもじきにGAが予定されているとのことです。今回はあまり検証は出来ていないので公式情報を中心にご紹介となります。
ユーザー定義関数(UDF)の概要
ユーザー定義関数(UDF)とは、開発者が独自に関数を定義し、アプリ内の任意の場所から呼び出せる仕組みです。
App.Formulas に定義し、ラベルコントロールのテキストや、ボタンコントロールのOnSelectなど任意の場所から呼び出して利用できます。※以下は公式ブログのサンプル


UDFの主なメリット
UDFの主なメリットは以下の感じです。やはり再利用性、保守性の面でメリットが高いと感じます。
複数個所に同じ実装をしていると修正時に一部だけ修正漏れということもよくありますが、そういった点をUDFではカバーできます。
| 再利用性 | 複数画面・コントロールで同じロジックを使える |
| 保守性 | ロジックの修正が一箇所で対応でき、修正漏れを低減できる |
| 可読性 | アプリのコードが整理され見通しが良くなる |
| パフォーマンス | 冗長な処理を減らしアプリの動作をより軽快にできる |
実装のポイント
UDFは通常のPower Fxの構文とは書き方が少し異なります。少しプロ開発コードよりの感じですがなれれば問題ないと思います。通常はSetやNotifyなど動作関数はサポートされませんが、やむを得ない場合は{}で囲むことで利用できるようになっています。
- App.Formula に記述:関数は App オブジェクトの Formulas に定義
- Function キーワードを使用:(通常のPower Fxとは少し異なる構文)で関数を定義
- グローバル変数との連携も可能:Set() などで定義した値を関数内で使用可能(必要に応じて)
構文
CodeFunctionName( [ ParameterName1: ParameterType1 [ , ParameterName2: ParameterType2 … ] ] ) : ReturnType = { Formula1 [ ; Formula2 … ] };
- FunctionName – 必須 ユーザー定義関数の名前
- ParameterName(s) – 省略可 関数パラメーターの名前
- ParameterType(s) – 省略可 組み込みデータ型名、データ ソース名、または Type 関数で定義された型の名前
- ReturnType – 必須 関数からの戻り値の型。
- Formula(s) – 必須 パラメーターに基づいて関数の値を計算する数式
公式ブログの記事
公式の記事は以下です。
Power Apps のユーザー定義関数の一般提供
Power Apps' User defined functions are now generally available. Use them to better understand, test, and maintain the logic in your apps.

実装サンプル
実装サンプルについては公式ブログやDocsにあがっていますので参考ください。
また、有識者、MVPの方々が以前より有益な記事をアップされていますので合わせて参考にしましょう!
※以前のサンプルがどっかにいってしまいアップできなかったので公式を転記してます。すいません💦


おわりに
ずっと試験段階で少し前にプレビューとなったユーザー定義関数(UDF)がついにGAされました!ユーザー定義型(UDT)についてもじきにGAの予定とのこと。
UDTについては以前確認した際にこれは便利になるぞ!と思い早速記事にしましたが、UDFについては特に記事にしていないので有識者の記事を参考にしましょう!
従来のPower Fxの記述に加えてこれらの(プログラマー思考よりの)書き方は少し抵抗のあるケースもあるかとおもいます。これらを利用するのは必須ではないですし、標準的な書き方の方が分かりやすく引継ぎもしやすいという点もあるかもです。
ただこれらを使用することで保守性や可読性、パフォーマンスなどが上がるなどメリットも大きいので、メンバーのスキル状況や運用面も含めてご検討いただくと良いのではと思います。それでは。
UDT、UDF関連の以前の記事
UDTを確認してその後に書いた記事です。ParseJSON関数を絡めて使いやすくなったよーと紹介しています。
はじめに2024/10月の更新情報でYouTubeビデオ「Power Apps Pulse October 2024」を見ていたらユーザー定義型(UDT)が新たに追加されたことを確認しました!(現状はまだ試験段階です)さっそく試し...
はじめに 前回の記事でユーザー定義型(UDT)について概要やサンプルを記事にしました。その中でサクッと作ってみたSPOへのJSON文字列で情報保持、それを戻して使うサンプルを記事にしました。※サンプルなので登録部分などは適当です。ご容赦ください。この記事は、Microsoft Power A...
ユーザー定義型(UDT)Tips コレクション定義にも使えそう※試験段階機能です
はじめに 前回の記事でユーザー定義型(UDT)が新たに追加された点を記事にしました。現時点ではまだ試験段階の機能です。ParseJSONと合わせて使用して第2引数に指定することで、定義した型でキャストしてくれ大変便利に使えます。こちらについて、コレクションのデータ定義にも使えそうだぞ!と思っ...
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
コメント