ソリューション チェッカーを使用した Power Apps でのモバイル駆動型アプリの検証
複雑なビジネス要件を満たすため、モデル駆動型アプリの作成者はMicrosoft Dataverse プラットフォームをカスタマイズして拡張できるという非常に高度なソリューションを作成することになりがちです。 高度な実装により、パフォーマンス、安定性、信頼性の問題が生じるリスクが増加し、ユーザーの作業に悪影響を与える可能性があります。 これらの問題を解決する方法を特定して理解することは、複雑で時間がかかることがあります。 ソリューション チェッカー機能を使用すると、一連のベスト プラクティス ルールに対してソリューションで機能豊富なスタティック分析チェックを実行し、これらの問題となるパターンを識別できます。 チェックが完了すると、特定された問題、影響を受けるコンポーネントとコード、各問題を解決する方法が説明されたするドキュメントへのリンクが一覧になった詳細なレポートを受け取ります。
重要
2022 年 3 月以降、ソリューション チェッカーはソリューション内のプラグインを分析しなくなります。 プラグインの検証は最新化されており、最終的にはネイティブ プラグインのオーサリング時間に焦点が当てられます。これにより、問題を早期に検出して修正することができます。
ソリューション チェッカーは、これらのソリューション コンポーネントを分析します:
- Dataverseプラグイン
- Dataverseユーザー定義のワークフロー活動
- Dataverse Web リソース (HTML および JavaScript)
- SDK メッセージ手順などの Dataverse 構成
ソリューション チェッカーは、環境からエクスポートできるアンマネージド ソリューションを使用します。
注意
- このトピックでは、Power Apps メーカー ポータルのソリューション チェッカーを実行する方法を説明します。 サービスと直接やりとりしても使用できる PowerShell モジュールもご用意しています。 Microsoft.PowerApps.Checker.PowerShell モジュールは、Power Apps 環境に関するアンマネージド ソリューションの分析用途でのみ使用でき、自動化またはサービスをお使いのビルドに統合してパイプラインを解放することができます。 詳細: Microsoft.PowerApps.Checker.PowerShell の概要
- ソリューション チェッカーは、ECMAScript 2015 (ES6) 以降、ECMAScript 2018 (ES9) 構文までのグローバル変数をサポートします。 ES6 以降のグローバル変数、または ES9 以降の構文を使用して JavaScript を検出する場合、Web リソースの Web 非サポート構文の問題が報告されます。
- ソリューション チェッカーを使用しても、ソリューションのインポートが成功することは保証されません。 ソリューションに対して実行される静的分析チェックは、宛先環境の構成済み状態を認識しておらず、インポートの成功は、環境内の他のソリューションまたは構成に依存している可能性があります。
ソリューション チェッカーを実行する
Power Apps にサインインします。
左側のウィンドウで、ソリューション を選択します。
分析するアンマネージド ソリューションの横で、... を選択し、ソリューション チェッカー をポイントして 実行 を選択します。

ソリューション ページの右上にあるステータス ウィンドウに、ソリューション チェッカーの実行 が表示されます。

以下に注意します。
ソリューション チェッカーが分析を完了するまで、数分間かかる場合があります。
この間、実行… 状態と、ソリューション リストの ソリューション チェック 列に表示されます。
チェックが完了したら、電子メール通知を受け取り、Power Apps サイトの 通知 領域に通知が表示されます。
チェックが完了したら、レポートを表示します。
チェックを取り消す
環境でソリューション チェックを送信すると、ソリューション ページの右上領域の状態ウィンドウでチェックを取り消すことができます。
チェックを取り消すと、ソリューション チェックが実行を停止し、ソリューション チェック状態が以前の状態に戻ります。
ソリューション チェッカーの状態
環境にソリューション チェッカーをインストールすると、ソリューション チェック 列が ソリューション リストで使用可能になります。 この列には、ソリューションのソリューション分析状態が表示されます。
| 都道府県 | 説明 |
|---|---|
| 実行されていない | ソリューションはまったく分析されていません。 |
| 実行中 | ソリューションが分析されています。 |
| 完了できなかった | ソリューションの分析が要求されましたが、分析が正常に完了しませんでした。 |
| 日時 現在の結果 | ソリューションの分析が完了し、結果をダウンロードできます。 |
| 完了できなかった。 日時 現在の結果 | 最新の分析要求が正常に完了しませんでした。 最後の正常な結果をダウンロードできます。 |
| Microsoft がチェック | これは、Microsoft の管理ソリューションです。 ソリューションの分析は、これらのソリューションで使用できません。 |
| 発行元がチェック | これは、サードパーティの管理ソリューションです。 現在、ソリューション分析は、これらのソリューションで利用できません。 |
ソリューション チェッカー レポートを確認
解析チェックが完了すると、ポータルで解析レポートを表示したり、Webブラウザからレポートをダウンロードすることができます。 ポータルでは、 問題、 場所 、 重大度 別に結果をフィルタリング、グループ化し、ソリューションで検出された問題の詳細情報を表示することができます。
左側のウィンドウで、ソリューション を選択します。
ソリューション チェッカーレポートを表示する非管理ソリューションの横に配置されている、 ... を選択し、 ソリューション チェッカー をポイントして 結果を表示する を選択します。
問題を選択すると、解決方法の詳細およびガイダンスが表示されます。

ソリューションチェックの結果は、ダウンロードすることも可能です。 ソリューションのチェッカーのzipファイルが、Webブラウザで指定したフォルダにダウンロードされます。ダウンロードレポートは Excel 形式で、ソリューションで検出された問題の影響度、種類、場所の特定に有用な視覚化情報が含まれています。 問題の解決方法に関する詳細なガイダンスへのリンクも提供されます。
- 左側のウィンドウで、ソリューション を選択します。
- ソリューション チェッカー レポートをダウンロードするアンマネージドソリューションの横に配置されている、 ... を選択し、 ソリューション チェッカー をポイントして 結果のダウンロード を選択します。
- ソリューション チェッカーの ZIP ファイルは、Web ブラウザーによって指定されたフォルダーにダウンロードされます。
レポート内の各列の概要を以下に示します。
| レポート列 | 内容 | コンポーネントに適用 |
|---|---|---|
| 問題点 | ソリューションで識別される問題のタイトル。 | すべて |
| カテゴリ | 問題の分類が識別されます。パフォーマンス、使用状況、または サポート可能性 などです。 | すべて |
| 重要度 | 検出された問題の潜在的な影響を表します。 使用可能な影響の種類は、高、中、下、および 情報 です。 | すべて |
| ガイダンス | 問題、影響、推奨されるアクションの詳細が記載された記事へのリンク。 | すべて |
| コンポーネント | 問題が特定されたソリューション コンポーネントです。 | すべて |
| Location | アセンブリや JavaScript ファイル名など、特定された問題が発生したコンポーネントの場所やソース ファイルです。 | すべて |
| 行番号 | 影響を受ける Web リソース コンポーネントの問題の行番号参照。 | Web リソース |
| モジュール | アセンブリで特定された問題が検出されたモジュール名。 | プラグインまたはユーザー定義ワークフロー活動 |
| 型 | アセンブリで識別された問題の種類。 | プラグインまたはユーザー定義ワークフロー活動 |
| メンバー | アセンブリで識別された問題のメンバー。 | プラグインまたはユーザー定義ワークフロー活動 |
| ステートメント | 問題が発生したコード ステートメントまたは構成。 | すべて |
| コメント | 高レベルな解決手順が含まれる問題に関する詳細。 | すべて |
ソリューション チェッカーにより使用される推奨事項ルール
| ソリューション コンポーネント | ルール名 | ルールの説明 |
|---|---|---|
| プラグインまたはワークフロー活動 | il-specify-column | Dataverse クエリ API を通じてすべての列を選択しないでください。 |
| プラグインまたはワークフロー活動 | meta-remove-dup-reg | 重複する Dataverse プラグインの登録を避けてください。 |
| プラグインまたはワークフロー活動 | il-turn-off-keepalive | Dataverse プラグインで外部ホストを操作するときは、キープアライブを false に設定します。 |
| プラグインまたはワークフロー活動 | il-avoid-unpub-metadata | 非公開 Dataverse メタデータの取得を避けてください。 |
| プラグインまたはワークフロー活動 | il-avoid-batch-plugin | Dataverse プラグインおよびワークフロー活動では、バッチ要求の型は使用しないでください。 |
| プラグインまたはワークフロー活動 | meta-avoid-reg-no-attribute | Dataverse プラグイン登録にフィルター属性を含めます。 |
| プラグインまたはワークフロー活動 | meta-avoid-reg-retrieve | Retrieve および RetrieveMultiple メッセージ用に登録された Dataverse プラグインを使用するときは注意してください。 |
| プラグインまたはワークフロー活動 | meta-remove-inactive | Dataverse で非アクティブ構成を削除します。 |
| プラグインまたはワークフロー活動 | il-meta-avoid-crm2011-depr-message | Microsoft Dynamics CRM 2011 の削除済みメッセージを使用しないでください。 |
| プラグインまたはワークフロー活動 | meta-avoid-crm4-event | Microsoft Dynamics CRM 4.0 プラグイン登録ステージを使用しないでください。 |
| プラグインまたはワークフロー活動 | il-avoid-specialized-update-ops | Dataverse で特殊な更新操作要求を使用しないでください。 |
| プラグインまたはワークフロー活動 | il-use-autonumber-feature | カスタム自動付番ではなく、自動付番機能ソリューションを使用します。 |
| プラグインまたはワークフロー活動 | il-avoid-parallel-plugin | 並列パターンは、プラグイン内では使用しないでください。 |
| プラグインまたはワークフロー活動 | il-avoid-lock-plugin | プラグインの静的メンバーのロックをしないでください。 |
| プラグインまたはワークフロー活動 | meta-avoid-retrievemultiple-annotation | アノテーションの RetrieveMultiple でプラグインを登録しないでください。 |
| Web リソース | web-use-async | HTTP および HTTPS リソースを非同期に操作します。 |
| Web リソース | web-avoid-modals | モーダル ダイアログを使用しないでください。 |
| Web リソース | web-avoid-crm2011-service-odata | Microsoft Dynamics CRM 2011 OData 2.0 エンドポイントをターゲットにしないでください。 |
| Web リソース | web-avoid-crm2011-service-soap | Microsoft Dynamics CRM 2011 SOAP サービスをターゲットにしないでください。 |
| Web リソース | web-avoid-browser-specific-api | Internet Explorer レガシー API またはブラウザーのプラグインを使用しないでください。 |
| Web リソース | web-avoid-2011-api | 廃止された Microsoft Dynamics CRM 2011 オブジェクト モデルを使用しないでください。 |
| Web リソース | web-use-relative-uri | 絶対 Dataverse エンドポイント URL を使用しないでください。 |
| Web リソース | web-use-client-context | クライアント コンテキストを使用してください。 |
| Web リソース | web-use-navigation-api | ナビゲーション API パラメーターを使用します。 |
| Web リソース | web-use-org-setting | 組織設定を使用します。 |
| Web リソース | web-use-grid-api | グリッド API を使用します。 |
| Web リソース | web-avoid-isActivityType | Xrm.Utility.isActivityType メソッドを新しい Xrm.Utility.gettableMetadata に置き換えます。リボン ルールは使用しないでください。 |
| Web リソース | meta-avoid-silverlight | Silverlight Web リソースの使用は廃止されました。 |
| Web リソース | web-remove-debug-script | 非開発環境にデバッグのスクリプトを追加することは避けてください。 |
| Web リソース | web-use-strict-mode | 可能な場合は厳密なモードを使用します。 |
| Web リソース | web-use-strict-equality-operators | 厳密等価演算子の使用。 |
| Web リソース | web-avoid-eval | 「eval」 関数または同等の機能を使用しないでください。 |
| Web リソース | web-remove-alert | 'alert' 関数、またはその機能に相当するものは使用しないでください。 |
| Web リソース | web-remove-console | コンソールでメソッドを使用しないでください。 |
| Web リソース | web-avoid-ui-refreshribbon | フォーム onload および EnableRule で refreshRibbon を使用することは避けてください。 |
| キャンバス アプリ | app-formula-issues-high | 追加の詳細については、Power Apps 計算式リファレンスを参照してください。 |
| キャンバス アプリ | app-formula-issues-medium | 追加の詳細については、Power Apps 計算式リファレンスを参照してください。 |
| キャンバス アプリ | app-formula-issues-low | 追加の詳細については、Power Apps 計算式リファレンスを参照してください。 |
| キャンバス アプリ | app-use-delayoutput-text-input | 一部のシナリオでは、遅延ロードを使用してパフォーマンスを向上させます。 |
| キャンバス アプリ | app-reduce-screen-controls | パフォーマンスを向上させるために、アプリ コントロールの数を制限します。 |
| キャンバス アプリ | app-include-accessible-label | 明示的なラベルを使用して、アプリのアクセシビリティを向上させます。 |
| キャンバス アプリ | app-include-alternative-input | すべてのインタラクティブ要素が代替入力にアクセスできることを確認します。 |
| キャンバス アプリ | app-avoid-autostart | アプリ内のプレーヤーで自動起動を使用することは避けてください。 |
関連項目
Dataverseに関するベスト プラクティスとガイダンス
モデル駆動型アプリのベスト プラクティスとガイダンス
ソリューション チェッカーの一般的な問題と解決策
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。
フィードバック
フィードバックの送信と表示