モデル駆動型アプリの問題を分離する

モデル駆動型アプリは、構成によって駆動されます。 アプリを生成するための詳細な手順を提供できます。 アプリの複数の部分に影響を与えるカスタム コンポーネントを導入することもできます。 アプリが期待どおりに動作しない場合、カスタマイズ エラーや Power Apps システムのバグかどうかは明らかでない可能性があります。

モデル駆動型アプリで問題を分離する手法をいくつか次に示します。

カスタマイズを削除する

次の機能は、通常の操作に影響する可能性があります。 それらを無効または削除して、問題が引き続き発生する場合はチェックしてください。 フォームでのカスタマイズの検索と無効化について詳しくは、こちらをご覧ください

ビジネス ルール

影響: フォーム ページ

ビジネス ルール は、レコードの状態に基づいてフォームの動作を変更します。 ルールを無効または簡略化して、フォームが引き続き期待どおりに動作する場合はチェックしてください。

クライアント スクリプト

影響: フォーム ページ

クライアント スクリプトには、 Power Apps システムと競合したり、予期しない方法で変更したりできる JavaScript コードが含まれています。 スクリプトを無効にすると問題が解決する場合は、 問題の原因となるカスタム スクリプトのどの部分を分離する必要があります。

これをページの URL に追加することで、すべてのカスタム スクリプトを一時的に無効にすることができます。

&flags=DisableFormLibraries=true,DisableWebResourceControls=true

カスタム コマンド

影響: フォーム ページ、テーブル ベースのビュー ページ

コマンド バーでコマンドを選択した後に問題が発生した場合は、カスタム コマンドであるかどうかをチェックします。 カスタム コマンドには、予期しない動作を引き起こす JavaScript コードを含めることができます。 最新のコマンドでは、 Power Fx でカスタム アクションを定義できます。 どちらの場合も、コマンドを簡略化して、カスタム コマンドの定義方法にエラーがあるかどうかを確認してみてください。

カスタム コントロール

影響: フォーム ページ、テーブル ベースのビュー ページ、カスタム ページ

フォーム ページのコントロールを置き換えたり、テーブル ベースのビュー ページで使用されるグリッド コントロールPower Apps コンポーネントに置き換えたりできます。 これらのコントロールは、ページの他の部分に影響を与える可能性がある JavaScript および CSS コードを含むカスタム コントロールです。 カスタム コントロールが問題かどうかを確認するには、すぐに使用できるコントロールに切り替えてみます。

サーバー プラグインとプロセス

影響: すべてのページ

管理者は 、プラグインをインストールし、アプリのビジネス ロジックを変更するプロセスを作成できます。 関連するサーバー側のカスタマイズがあるかどうかを管理者に確認してください。

すぐに使用する構成と比較する

何かが構成エラーであるかどうかを判断するために、アプリの他の部分をチェックすると便利です。

たとえば、問題は別ので発生しますか。

  • テーブル (エンティティ)
  • View
  • 同じテーブルを持つアプリ
  • 同じテーブルのフォーム
  • 同じ列 (属性) を参照するコントロール

理想的には、カスタマイズされていないすぐに使えるものと比較してください。 たとえば、作成したテーブル (エンティティ) に問題がある場合は、すぐに使用できるテーブルをチェックします。

問題が他の場所で発生しない場合は、その違いを構成方法と比較します。 テーブルのリレーションシップとアクセス許可の設定が異なる場合があります。 または、テーブルが統合インターフェイスに対して有効になっていません。

アイテムを再作成する

項目をゼロから作成すると、既定の構成を調べて比較できるだけでなく、破損した構成を修正することもできます。

次のいずれかが機能しない場合は、再作成してみてください。 簡略化されたバージョンを使用して、動作していないパーツを絞り込むことができます。

  • カスタム テーブル (エンティティ)
  • View
  • フォーム
  • カスタム スクリプト

必要なすべてのコンポーネントがアプリに追加されていることを確認する

モデル駆動型アプリ コンポーネント には、テーブルとその関連テーブル、フォーム、列、ビュー、グラフ、ダッシュボード、ビジネス プロセス フローが含まれます。 パフォーマンス上の理由から、アプリに追加されたコンポーネントのみがダウンロードされます。

コンポーネントが表示されない場合、または動作が一貫性がない場合は、アプリに追加された場合にチェックします。 たとえば、 Teams テーブルがフォームのルックアップ コントロールに表示されず、他のテーブルが表示される場合、 Teams テーブルがアプリに追加されていない可能性があります。

最新のアプリ デザイナーを使用して、次のコンポーネントをアプリに追加できます。

これらのコンポーネントは、クラシック アプリ デザイナーを使用して追加することもできます。

テーブルをオフラインで使用するには、 オフライン プロファイルにテーブルを追加する必要があります。 詳細については、「 モバイル オフライン ガイドライン」を参照してください。

データの取得またはデータの表示時に問題が発生したかどうかを確認する

データがアプリに正しく表示されない場合は、データの提供に関するサーバーの問題か、データの処理と表示におけるアプリの問題である可能性があります。 原因を絞り込むには、 問題のあるレイヤーを分離するための一般的な方法を試すことができます。

モデル駆動型アプリには複雑なデータ フローがあります。 より高度な試用事項を次に示します。

  • ネットワーク要求の FetchXML を調べ、アプリが適切なネットワーク要求を行い、サーバーからデータを正しく受信しているかどうかをチェックします。 Monitor を使用して、ネットワーク要求を表示できます。
  • アプリに オフライン プロファイルがある場合は、プロファイルまたはプロファイル全体からユーザーを削除してみてください。 インターネット接続がある場合でも、オフラインで動作するアプリのデータ フローは異なります。
  • 別のユーザーまたはテーブルを試して、アクセス許可の問題を確認します。

カスタム スクリプトを簡略化する

カスタム スクリプトは、開発者向けの高度な機能です。 フォームカスタム コマンドPower Apps コンポーネントWeb ページ (HTML) Web リソースで使用できます。 スクリプトで実行できる操作には非常に柔軟性がありますが、誤ってシステムを壊す可能性も高くなります。

スクリプトによって問題が発生していると思われる場合は、次の手順に従います。

  1. すべてのカスタム スクリプトを無効にして、問題が引き続き発生するかどうかを確認します。

  2. そうでない場合は、スクリプトを 1 つずつ有効にして、問題の原因を確認します。

  3. 問題の原因となるスクリプトが見つかったら、それらから無関係なコードを削除します。 たとえば、1 つのフィールドに問題がある場合は、他のフォーム フィールドと対話するコードを削除します。

  4. スクリプトを段階的に簡略化することで、問題がカスタム コードまたは クライアント API 機能の不適切な動作によって引き起こされるかどうかを判断できます。

    • エラーがカスタム コードからの場合は、スクリプトを作成した開発者に問い合わせてください。

    • クライアント API 機能が文書化されているとおりに機能しない場合は、Microsoft に報告できます。 簡略化されたスクリプトのコピーを添付し、どの API 機能が機能しないかをメンションします。

バニラ リプロ アプリを作成する

バニラ リプロ アプリを作成するプロセスでは、多くのカスタマイズが行われる環境では明らかではない構成エラーが明らかになることがあります。 問題が修正されていなくても、原因を絞り込んで、他のユーザーに問題を説明しやすくなりました。

次の手順

関連項目