Power Appstips保守運用

【Power Apps】アプリごと、画面ごとのコントロール数を調べる方法

Power Apps

アプリの複雑度の指標の一つである、アプリのコントロール数の調べ方を解説します。

アプリのコントロール数の調べ方を知ることで、アプリの肥大化によるバグの発生やパフォーマンスの低下を未然に検知し、アプリ分割などの対策ができるようになります。

アプリごと、画面ごとのコントロール数の制限

Power Appsのアプリにはアプリごとに500個画面ごとに300個の推奨コントロール数が設定されています。

画面ごとの推奨コントロール数
<引用>https://learn.microsoft.com/ja-jp/power-apps/maker/canvas-apps/performance-tips

これらの推奨値を超えるコントロールを配置することは可能ですが、パフォーマンスが低下してしまうためおおよそのコントロール数を把握しておく必要があります。

どのくらい低下するかはこちらを参考

画面ごとのコントロール数の確認方法(300を超えている場合のみ)

アプリの編集画面右上のアプリのチェックをクリック→パフォーマンスをクリックします。

画面ごとのコントロール数が300を超えている画面が表示されます。

画面名を選択すると、現在のコントロール数が表示されます。

アプリのコントロール数の確認方法

アプリのエクスポート

編集画面の右上メニューのvをクリック→コピーのダウンロードをクリックすると、.msappをダウンロードすることができます。

ダウンロードした.msappファイルの拡張子を.zipに変更します。

拡張子変更したzipファイルを解凍すると、アプリの内部情報を確認することができます。

解凍したフォルダ内のProperties.jsonというJSONファイルにコントロールごとのコントロール数が記載されている箇所があります。

コントロール数のJSONから数値のみ抜き出して合計する

該当部分のJSONのみコピーし、Power Appsのテキスト入力コントロール(TextInput2.Text)に貼り付けます。

そしてラベルなどに以下の数式を設定することで、アプリのコントロール数の合計を算出できます。

Sum(MatchAll(TextInput2.Text, "(?<num>\d*),"), num)

画面ごとのコントロール数の確認方法(正規表現によるコントロール数カウント)

画面ごとのコントロールなどの情報の格納場所

画面ごとに300を超えていない場合には警告が表示されないため、以下の方法で画面ごとのコントロール数を計算する必要があります。

解答したzipファイルのControlsフォルダ内に数値.jsonファイルがいくつか存在しています。

1.jsonはApp、それ以外は画面

jsonファイルを開くと、スクリーンごとに存在するコントロールのプロパティを確認できます。

"Type": "ControlInfo",という文字列の出現回数を調べる

"Type": "ControlInfo",という文字列は全てのコントロールにありそうなので、この文字列の出現回数を正規表現で調べます。

CountRows(MatchAll(TextInput2.Text, """Type"": ""ControlInfo"","))

ついでに画面名も取り出します。

Match(TextInput2.Text, """Name"": ""(?<screen>.*)"",").screen

これで\d*.jsonの中身をコピペするだけで画面ごとのコントロール数を調べられるようになりました。

コメント

タイトルとURLをコピーしました