キャンバス アプリで問題を分離する

キャンバス アプリを使用すると、さまざまなビジュアルとさまざまなデータ接続を使用してアプリを設計できます。 IntelliSenseアプリ チェッカーを使用して、一般的な問題から保護します。 [監視 ] と [変数] パネル は、デバッグに役立ちます。

キャンバス アプリで問題を分離するためのその他の手法を次に示します。

デバッグ ラベルを使用して数式を検査する

数式は複雑な場合があります。 問題が発生した場合、失敗した部分を特定するのが難しい場合があります。 デバッグ ラベルは、数式のさまざまな部分の結果を確認するのに便利な手法です。

デバッグ ラベルは、Text プロパティが目的の数式に設定された Label です。 これにより、Power Apps でこれらの数式がどのように処理されるかを正確に確認できます。 スコープのバグを回避するには、ギャラリーフォームなどの他のコントロールの外部にデバッグ ラベルを挿入します。

コンボ ボックス コントロールの表示が予想より少なく、ドロップダウン オプションが空白であるとします。

コンボ ボックスが展開され、ドロップダウンにオプションがある空の領域が表示されます。

[コンボ] ボックスが正しく構成されているかどうかを確認します。 たとえば、 Items プロパティは次の複雑な数式に設定されます。

AddColumns(
  GroupBy(
    Filter( Products, Rating > 4 ),
    "ProductType",
    "Details"
  ),
  "Total quantity",
  Sum( Details, Quantity )
)

最も内側の式 Filter( Products, Rating > 4 )から始めます。 デバッグ ラベルを挿入し、 その Text プロパティを設定して、その式の結果をテストします。 検証に役立つ情報を次に示します。

  • 結果の数が予想どおりかどうかを確認します。 CountRows( Filter( Products, Rating > 4 ) )
  • 最初の結果を調べて、フィルターが期待どおりに動作していることを確認します。 "Rating of first result is " & First( Filter( Products, Rating > 4 ) ).Rating
  • 名前を組み合わせて結果を確認します。 Concat( Filter( Products, Rating > 4 ), ProductName & ", ")

ヒント

データセットを操作する場合、デバッグ テーブルはレコードのプレビューに役立ちます。 この概念は、デバッグ ラベルに似ています。 Items プロパティが目的のデータセットに設定されている Data テーブルを挿入します。

データセットのパフォーマンスを向上させるには 、FirstN 関数と LastN 関数 を使用することをお勧めします。

式が正しく評価されていることを確認したら、次の外側の式 GroupBy( Filter( Products, Rating > 4 ), "ProductType", "Details" )に進むことができます。 メソッドを使用して進めることで、複雑な式のどの部分が機能していないかを確認できます。

空のドロップダウン オプションを使用する場合は、 DisplayFields プロパティから始めます。 が に設定されている場合を [ProductType]想像してください。 デバッグ ラベルを使用して、このフィールドが Power Apps によって認識され、テキストが含まれていることを確認します。 すべてのドロップダウン オプションは空であるため、任意のレコードを調べるので十分です。 最初のレコードを選択し、その ProductType フィールドが何であるかを確認しましょう。 デバッグ ラベルを 次のように設定します。

First(
  AddColumns(
    GroupBy(
      Filter( Products, Rating > 4 ),
      "ProductType",
      "Details"
    ),
    "Total quantity",
    Sum( Details, Quantity )
  )
).ProductType

結果が空の場合は、次のようになります。

  • そのレコードのフィールドは ProductType 本当に空です。 データセットがアプリの外部から取得された場合は、Power Apps の外部でデータセットをチェックします。
  • 1 つ以上の式が機能しません。 上記のように分割して絞り込みます。 Power Apps のバグや数式の記述の間違いである可能性があります。
  • データが Power Apps に到達していません。 ネットワークの問題、データ ソースに関する問題、または Power Apps のバグが考えられます。

結果にテキストがある場合は、コントロールを含む Power Apps のバグである可能性があります。 サポート リクエストを通じてバグを報告し、回避策として別のコントロールを使用できます。

別のコントロールを試す

問題が特定のコントロールにあるかどうかを調べるには、同じ データ型 の入力または出力を持つ別のコントロールを使用してみてください。

ブール型

選択肢とテーブル

Date と DateTime

画像とメディア

番号

テキスト

すべての型

  • をテキストに変換した後のラベル

別のコントロールで同じ問題が発生した場合、問題は使用される数式またはデータ ソースです。 上記のデバッグ手順に進み、問題をさらに特定します。

問題が特定の種類のコントロールでのみ発生する場合は、コントロールのバグである可能性があります。 バグは Microsoft に報告できます。

別のアプリ構造を試す

数式は、別のコントロール内のコントロールに対して異なる動作をすることができます。 たとえば、 ギャラリー 内のコントロールでは ThisItem を使用できますが、ギャラリーの外部のコントロールは使用できません。 ギャラリーまたはコンポーネントの外部にあるコントロールは、内部のコントロールを参照できません。

識別子のこの異なる可視性は スコープと呼ばれます。 他のコントロールを含むコントロールでは、新しいスコープが導入されます。

含まれているコントロール内で数式が機能しない場合は、スコープに関連している可能性があります。 コンテナーの外部で同じ数式を使用してみてください。

たとえば、ギャラリー内の Label コントロールは各レコードの名前を表示する必要がありますが、テキストは表示されません。 Label.Text が に ThisItem.Name設定されています。 Gallery.Items は に Products設定されています。

ギャラリーには、テキストの代わりに空のスペースが表示されます。プロパティ パネルには、ギャラリー内のラベルに使用される数式が表示されます。

スコープの問題である場合にチェックするには、アプリの最上位にあるギャラリーの外部にデバッグ ラベルを挿入します。 データセットの最初のレコードの名前を表示するように Text プロパティを設定します。 First(Products).Name

デバッグ ラベルの結果は、ギャラリーの最初の行と同じである必要があります。 そうでない場合は、 サポートリクエストを通じて報告できる Power Apps のスコープのバグである可能性があります。 一方、両方が空白の場合、問題はデータ ソースにある可能性があります。

スコープの問題に対して考えられるいくつかの回避策:

以前のバージョンに復元する

アプリに大きな変更を加えず、再発行後に突然動作が停止した場合は、 以前のバージョンに復元してみてください。 再び動作する場合は、行われた変更を調べて、アプリが壊れている可能性のあるものを確認します。

場合によっては、新しいバージョンの Power Apps でバグが発生することがあります。 逆に、新しいバージョンではバグ修正が行われる可能性があります。 Microsoft サポートは、以前のオーサリング バージョンに戻すか、新しいバージョンにアップグレードするかを推奨できます。 独自に作成バージョンを変更する場合、推奨されないバージョンのサポートは限られています。

最小限の再現アプリを作成する

最小限の再現アプリを作成するプロセスでは、複雑なアプリでは明らかではないアプリ構成エラーが明らかになることがあります。 問題が修正されていなくても、原因を絞り込んで、他のユーザーに問題を説明しやすくなりました。

次の手順

Monitor を使用したキャンバス アプリのデバッグ

関連項目

一般的な Power Apps のデバッグ戦略