Power Apps 監視(モニター)機能とは?データ取得や接続エラーをリアルタイムで特定する方法

ラベルデバッグで原因が掴めないとき、次に使うのが監視(モニター)機能です。データソースへのリクエストとレスポンスをリアルタイムで確認できるので、接続エラーやPatchの失敗原因を素早く特定できます。

この記事はエラー・デバッグクラスターのサテライト記事です。ラベルを使った基本的なデバッグ手法はPower Apps 式が動かないときの調べ方で解説しています。

監視(モニター)機能とは何か

監視(モニター)はPower Apps Studioに内蔵されたデバッグツールです。アプリが動いている間、データソースへのHTTPリクエストとレスポンスをリアルタイムでログに記録し続けます。どのコントロールがどのデータを取りに行ったか、Patchがどんなデータを送ったか、エラーが返ってきたときのステータスコードとメッセージ、これらすべてを一覧で確認できます。

Webブラウザの開発者ツール(DevTools)のネットワークタブに近いものだと思ってもらうと分かりやすいです。ただし監視(モニター)はPower Apps専用なので、SharePointやDataverseへのリクエストが見やすい形で整理されて表示されます。

私が監視(モニター)を使い始めたきっかけは、Patchが失敗しているのにエラーメッセージが画面に出ないケースでした。ラベルデバッグで変数の値を確認しても問題は見当たらず、でもデータが保存されない。監視(モニター)を開いてPatchのログを見たら、SharePointのある列の型が違うというメッセージがレスポンスに含まれていました。あの瞬間から、デバッグの考え方が変わりました。

監視(モニター)の起動方法

Power Apps Studioから起動する

  1. Power Apps Studioでアプリを開く
  2. 上部メニューの詳細設定をクリック
  3. ドロップダウンからモニターを選択
  4. 別タブで監視(モニター)画面が開く
  5. 監視(モニター)画面でアプリのモニターボタンをクリック
  6. 別ウィンドウでアプリのプレビューが起動する

アプリのプレビューウィンドウで操作すると、そのたびに監視(モニター)画面にログが積み上がります。エラーが起きる操作(ボタンを押す、データを保存するなど)を再現すると、その操作に関するログが赤くハイライトされます。

監視(モニター)画面の見方

ログ一覧の列の意味

監視(モニター)画面のログ一覧には複数の列があります。それぞれの意味を把握しておくと、問題のある行を素早く見つけられます。

列名内容確認ポイント
時刻リクエストが発生した時刻操作のタイミングと照合する
操作発生したイベントの種類(GetItems、Patch等)どのデータ操作か確認する
コントロール操作を発生させたコントロール名どのコントロールが原因か特定する
プロパティ該当するプロパティ(Items、OnSelectなど)どのプロパティに書いた式か確認する
結果成功 / エラー赤字の行がエラー
状態コードHTTPステータスコード(200、403、404等)エラーの種類を大まかに判断する

エラー行をクリックすると右ペインに詳細が表示されます。リクエストに送ったデータと、サーバーから返ってきたレスポンスの両方が確認できます。

HTTPステータスコードで原因の大枠を掴む

状態コード(HTTPステータスコード)の数字を見るだけで、エラーの種類を大まかに絞り込めます。

ステータスコード意味よくある原因
200成功エラーではない
400リクエストが不正送ったデータの型・形式が間違っている
403アクセス権限なしそのSharePointサイト・リストへの権限がない
404リソースが見つからないリスト名・サイトURLが間違っている
429リクエスト過多短時間に大量のリクエストを送った(スロットリング)
500サーバーエラーSharePoint側・Dataverse側の問題

監視(モニター)の使いどころ3パターン

パターン1:ギャラリーにデータが出ないとき

ギャラリーが空表示になっているとき、監視(モニター)を開いてアプリを起動すると、データ取得(GetItems)のログが表示されます。このログの結果列を見ることで、データソースへのアクセス自体が失敗しているのか、データが0件で返ってきているのかを区別できます。

  1. 監視(モニター)を起動してアプリのプレビューを開く
  2. ギャラリーが表示されたタイミングでGetItemsのログを確認する
  3. 結果がエラー→ステータスコードで原因を特定する
  4. 結果が成功でも0件→Filter条件を見直す

結果が成功でも件数が0の場合は、データソース自体は繋がっているのでFilter条件の問題です。数式エラー解決の全体マップのデバッグ手順と組み合わせて、Filter式を段階的に確認していきます。

パターン2:Patchが失敗しているとき

ボタンを押しても保存されない、エラーメッセージも出ない、そういうときは監視(モニター)でPatchのログを確認します。Patchが発生したタイミングのログを開くと、送信したデータの内容とサーバーの応答が両方確認できます。

Patchログの右ペイン要求タブに送ったデータが表示されます。列名・値・型が意図通りになっているかを確認してください。応答タブにはSharePointやDataverseが返したエラーメッセージが含まれており、この列の型が不正です、この列は必須ですといった具体的な情報が得られます。

パターン3:パフォーマンスが遅いとき

アプリの動作が遅いとき、監視(モニター)で各リクエストの所要時間を確認できます。特定のGetItemsに時間がかかっている場合、委任が効いていない(アプリ側で全件取得してから絞り込んでいる)可能性があります。

ログの期間列(ミリ秒)を見て、1秒を超えているリクエストがあれば改善の余地があります。Power Appsが重いときの改善方法の記事と組み合わせて対処してください。

ラベルデバッグと監視(モニター)の使い分け

2つのデバッグ手法をどう使い分けるかは、問題の場所によって決まります。

問題の場所使うべきツール理由
変数の中身が正しいかラベルデバッグデータソースに関係ない式の確認はラベルが速い
Filter条件で件数が合っているかラベルデバッグ(CountRows)式の結果をそのまま表示できる
データソースへの接続が成功しているか監視(モニター)HTTPレベルの結果が必要
Patchの書き込みが失敗している監視(モニター)送信データとサーバー応答の両方が必要
アプリが遅い原因を調べる監視(モニター)リクエスト単位の所要時間が分かる

簡単にいうと、式の中の問題はラベル、データソースとの通信の問題は監視(モニター)です。ラベルデバッグで原因が見つからないときにMonitorを開く、という順番が実務的には効率的です。

まとめ

監視(モニター)は最初こそとっつきにくく感じますが、使い方を覚えると、データが来ない、保存されない系の問題が格段に速く解決できます。ステータスコードと右ペインのメッセージを読む習慣をつけるだけで、原因不明のまま延々と試行錯誤する時間がなくなります。

デバッグツールを使いこなすことは、開発の腕前を上げることと同じくらい大切です。ラベルデバッグと監視(モニター)の2つを組み合わせて、問題を素早く特定できるようになりましょう。

Xでフォローしよう