ソリューションのパフォーマンス、安定性、信頼性を向上

ソリューションは、アプリ、テーブル、フロー、Webリソース、プラグインなどのオブジェクトを配布するために使用されます。 Power Platform この記事では、ソリューション チェッカー機能について説明します。これは、一連の ベスト プラクティス ルールに照らしてソリューション オブジェクトの包括的な静的分析を実行する強力なツールです。 ソリューション チェッカーを使用すると、コンポーネント内の問題のあるパターンをすばやく特定し、問題や影響を受けるコンポーネントを強調表示し、各問題を解決する方法に関するドキュメントへのリンクを提供する詳細なレポートを受け取ることができます。 これにより、ソリューションのパフォーマンス、安定性、信頼性が最適化されます。

ソリューションチェッカーの例の結果と詳細

ソリューション チェッカーは、環境からエクスポートできるアンマネージド ソリューションを使用します。

ソリューション チェッカーは、 Power Apps (make.powerapps.com) から、または PowerShellを使用して実行できます

ソリューションチェッカーがどのように役立つか

複雑なビジネス要件を満たすために、メーカーは多くの場合、 Power Platform をカスタマイズおよび拡張する高度なソリューションを導入することになります。 高度な実装により、パフォーマンス、安定性、信頼性の問題が生じるリスクが増加し、ユーザーの作業に悪影響を与える可能性があります。 これらの問題を解決する方法を特定して理解することは、複雑で時間がかかることがあります。 ソリューション チェッカー機能を使用すると、ベスト プラクティス ルールのセットを使用して問題のあるパターンを迅速に特定し、ソリューションのチェックを数秒以内に実行できます。 チェックが完了すると、特定された問題、影響を受けるコンポーネントとコード、および各問題を解決する方法を説明するドキュメントへのリンクが記載された詳細なレポートが、 Power Apps および電子メール メッセージで送信されます。

ソリューション チェッカーは、これらのソリューション コンポーネントを分析します:

  • Dataverseユーザー定義のワークフロー活動
  • Dataverse Web リソース (HTML および JavaScript)
  • SDK メッセージ手順などの Dataverse 構成
  • Power Automate フロー (フローチェッカーを使用する)
  • Power Fx 式 (アプリ チェッカーを使用する)

注意

  • ソリューション チェッカーは、ECMAScript 2015 (ES6) 以降、ECMAScript 2018 (ES9) 構文までのグローバル変数をサポートします。 ES6 以降のグローバル変数、または ES9 以降の構文を使用して JavaScript を検出する場合、Web リソースの Web 非サポート構文の問題が報告されます。
  • ソリューション チェッカーを使用しても、ソリューションのインポートが成功することは保証されません。 ソリューションに対して実行される静的分析チェックでは、宛先 環境 の構成状態が認識されないため、インポートの成功は 環境 内の他のソリューションまたは構成に依存する可能性があります。

ソリューション チェッカーを実行する

  1. Power Apps にサインインします。

  2. 左側のウィンドウで、ソリューションを選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。

  3. 分析するアンマネージド ソリューションの横で、... を選択し、ソリューション チェッカーをポイントして実行を選択します。

    ソリューション チェッカー コマンドを実行します。

  4. ソリューションチェッカー コマンド ボタンには読み込みインジケーターがあり、実行中… と表示されます 状態と、ソリューション リストの ソリューション チェック 列に表示されます。

ソリューションチェッカーのステータス

注意

  • ソリューション チェッカーが分析を完了するまで、数分間かかる場合があります。
  • チェックが完了したら、電子メール通知を受け取り、Power Apps サイトの 通知 領域に通知が表示されます。
  1. チェックが完了したら、レポートを表示します

チェックを取り消す

環境でソリューション チェックを送信すると、ソリューションページの右上領域の状態ウィンドウでチェックを取り消すことができます。

チェックを取り消すと、ソリューション チェックが実行を停止し、ソリューション チェック状態が以前の状態に戻ります。

ソリューション チェッカーの状態

環境にソリューション チェッカーをインストールすると、ソリューション チェック 列が ソリューション リストで使用可能になります。 この列には、ソリューションのソリューション分析状態が表示されます。

都道府県 説明
実行されていない ソリューションはまったく分析されていません。
実行中 ソリューションが分析されています。
完了できなかった ソリューションの分析が要求されましたが、分析が正常に完了しませんでした。
日時 現在の結果 ソリューションの分析が完了し、結果をダウンロードできます。
完了できなかった。 日時 現在の結果 最新の分析要求が正常に完了しませんでした。 最後の正常な結果をダウンロードできます。
Microsoft がチェック これは、Microsoft の管理ソリューションです。 ソリューションの分析は、これらのソリューションで使用できません。
発行元がチェック これはMicrosoft以外の 管理ソリューション です。 現在、ソリューション分析は、これらのソリューションで利用できません。

ソリューション チェッカー レポートを確認

解析チェックが完了すると、ポータルで解析レポートを表示したり、Webブラウザからレポートをダウンロードすることができます。 ポータルでは、問題場所重大度 別に結果を並べ替え、ソリューションで検出された問題の詳細情報を表示することができます。

  1. 左側のウィンドウで、ソリューションを選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。

  2. ソリューション チェッカーレポートを表示する非管理ソリューションの横に配置されている、 ... を選択し、 ソリューション チェッカー をポイントして 結果を表示する を選択します。

  3. 問題を選択すると、解決方法の詳細およびガイダンスが表示されます。

    ソリューション チェッカーの例の結果と詳細 ドリルダウン

ソリューションチェックの結果は、ダウンロードすることも可能です。 ソリューション チェッカーの ZIP ファイルは、Web ブラウザーによって指定されたフォルダーにダウンロードされます。 ダウンロードできるレポートは、Excel 形式であり、ソリューションで検出された各問題の影響、種類、場所を識別するのに役立ついくつかのビジュアル化と列が含まれています。 問題の解決方法に関する詳細なガイダンスへのリンクも提供されます。

  1. 左側のウィンドウで、ソリューションを選択します。 項目がサイド パネル ウィンドウに表示されない場合は、…さらに表示 を選択して、目的の項目を選択します。
  2. ソリューション チェッカー レポートをダウンロードするアンマネージドソリューションの横に配置されている、 ... を選択し、 ソリューション チェッカー をポイントして 結果のダウンロード を選択します。
  3. ソリューション チェッカーの ZIP ファイルは、Web ブラウザーによって指定されたフォルダーにダウンロードされます。

レポート内の各列の概要を以下に示します。

レポート列 内容 コンポーネントに適用
問題点 ソリューションで識別される問題のタイトル。 すべて
カテゴリ 識別される問題の分類: パフォーマンスメンテナンス性使用法サポート性設計安全アクセシビリティ、またアップグレードの準備状況 All
重大度 検出された問題の潜在的な影響を表します。 使用可能な影響の種類は、重大、および情報です。 All
ガイダンス 問題、影響、推奨されるアクションの詳細が記載された記事へのリンク。 すべて
コンポーネント 問題が特定されたソリューション コンポーネントです。 すべて
Location アセンブリや JavaScript ファイル名など、特定された問題が発生したコンポーネントの場所やソース ファイルです。 すべて
行番号 影響を受ける Web リソース コンポーネントの問題の行番号参照。 Web リソース
モジュール アセンブリで特定された問題が検出されたモジュール名。 ユーザー定義ワークフロー活動
タイプ アセンブリで識別された問題の種類。 ユーザー定義ワークフロー活動
メンバー アセンブリで識別された問題のメンバー。 ユーザー定義ワークフロー活動
ステートメント 問題が発生したコード ステートメントまたは構成。 すべて
コメント 高レベルな解決手順が含まれる問題に関する詳細。 All

ソリューション チェッカー ルールをローカルで実行する

開発環境でソリューション チェッカー ルールを実行すると、ソリューション リソースを作成するときに問題をより早く検出できます。 これは現在、Web リソース (JavaScript および TypeScript) をサポートしています。 詳細については、NPM パッケージにアクセスしてください (@microsoft/eslint-plugin-power-apps)。

PowerShellを使用してソリューション チェッカーを実行する

サービスと直接対話するために使用できるPowerShellモジュールが利用可能です。 Microsoft.PowerApps.Checker.PowerShell モジュールは、Power Apps 環境に関するアンマネージド ソリューションの分析用途でのみ使用でき、自動化またはサービスをお使いのビルドに統合してパイプラインを解放することができます。 詳細: Microsoft.PowerApps.Checker.PowerShell の概要

ソリューション チェッカーにより使用される推奨事項ルール

次の表に、コンポーネントの種類、ルールの説明、重要度、カテゴリを示します。 マネージド環境でのソリューション チェッカーが強制されるように構成されている場合、重大な違反はブロックまたは警告されます。 詳細情報: マネージド環境でソリューション チェッカーを使用する

ソリューション コンポーネント ルール名 ルールの説明 重大度 カテゴリー
プラグインまたはワークフロー活動 meta-remove-dup-reg 重複する Dataverse プラグインの登録を避けてください。 重大 実績
プラグインまたはワークフロー活動 meta-avoid-reg-no-attribute Dataverse プラグイン登録にフィルター属性を含めます。 ミディアム 実績
プラグインまたはワークフロー活動 meta-avoid-reg-retrieve Retrieve および RetrieveMultiple メッセージ用に登録された Dataverse プラグインを使用するときは注意してください。 ミディアム 実績
プラグインまたはワークフロー活動 meta-remove-inactive Dataverse で非アクティブ構成を削除します。 メンテナンス性
プラグインまたはワークフロー活動 meta-avoid-crm4-event Microsoft Dynamics CRM 4.0 プラグイン登録ステージを使用しないでください。 ミディアム アップグレードの準備状況
プラグインまたはワークフロー活動 meta-avoid-retrievemultiple-annotation アノテーションの RetrieveMultiple でプラグインを登録しないでください。 使い方
モデル駆動型アプリ meta-license-sales-entity-operations ソリューションには、有効な Dynamics 365 ライセンスを必要とする制限付き SDK メッセージと操作のエンティティが含まれています。 ライセンス
モデル駆動型アプリ meta-license-fieldservice-customcontrols ソリューションには、有効な Dynamics 365 Field Service ライセンスを必要とするカスタム コントロールが含まれています。 ライセンス
モデル駆動型アプリ meta-license-fieldservice-entity-operations ソリューションには、有効な Dynamics 365 Field Service ライセンスを必要とする制限された SDK メッセージと操作を持つエンティティが含まれています。 ライセンス
Web リソース use-async HTTP および HTTPS リソースを非同期に操作します。 重大 実績
Web リソース avoid-modals モーダル ダイアログを使用しないでください。 サポート性
Web リソース avoid-dom-form サポート性
Web リソース avoid-dom-form-event サポート性
Web リソース avoid-crm2011-service-odata Microsoft Dynamics CRM 2011 OData 2.0 エンドポイントをターゲットにしないでください。 重大 アップグレードの準備状況
Web リソース avoid-crm2011-service-soap Microsoft Dynamics CRM 2011 SOAP サービスをターゲットにしないでください。 重大 アップグレードの準備状況
Web リソース avoid-loadtheme loadTheme Fluent v8 API は使用しないでください。 サポート性
Web リソース avoid-browser-specific-api Internet Explorer レガシー API またはブラウザーのプラグインを使用しないでください。 重大 アップグレードの準備状況
Web リソース avoid-unpub-api サポート性
Web リソース avoid-window-top サポート性
Web リソース avoid-2011-api 廃止された Microsoft Dynamics CRM 2011 オブジェクト モデルを使用しないでください。 代わりに、Dataverse Web API の説明書に従ってください。 アップグレードの準備状況
Web リソース use-relative-uri 絶対 Dataverse エンドポイント URL を使用しないでください。 ミディアム メンテナンス性
Web リソース use-cached-webresource ミディアム 実績
Web リソース use-client-context クライアント コンテキストを使用してください。 ミディアム アップグレードの準備状況
Web リソース use-navigation-api ナビゲーション API パラメーターを使用します。 ミディアム アップグレードの準備状況
Web リソース use-offline ミディアム アップグレードの準備状況
Web リソース do-not-make-parent-assumption 設計
Web リソース use-org-setting 組織設定を使用します。 ミディアム アップグレードの準備状況
Web リソース use-global-context ミディアム アップグレードの準備状況
Web リソース use-grid-api グリッド API を使用します。 ミディアム アップグレードの準備状況
Web リソース use-utility-dialogs ミディアム 使い方
Web リソース avoid-isActivityType Xrm.Utility.isActivityType メソッドを新しい Xrm.Utility.gettableMetadata に置き換えます。リボン ルールは使用しないでください。 ミディアム アップグレードの準備状況
Web リソース meta-avoid-silverlight Silverlight Web リソースの使用は廃止されました。 ミディアム アップグレードの準備状況
Web リソース remove-debug-script 非開発環境ではデバッグ スクリプトを含めないようにしてください。 ミディアム 使い方
Web リソース use-strict-mode 可能な場合は厳密なモードを使用します。 ミディアム 使い方
Web リソース use-strict-equality-operators 厳密等価演算子の使用。 ミディアム 使い方
Web リソース avoid-eval eval 関数またはそれと同等の機能を使用しないでください。 重大 セキュリティ
Web リソース avoid-with 'with' オペレーターを使用しないでください。 実績
Web リソース remove-alert 'alert' 関数、またはその機能に相当するものは使用しないでください。 ミディアム 使い方
Web リソース remove-console コンソールでメソッドを使用しないでください。 ミディアム 使い方
Web リソース avoid-ui-refreshribbon フォーム onload および EnableRule で refreshRibbon を使用することは避けてください。 重大 実績
Web リソース use-getsecurityroleprivilegesinfo userSettings.securityRolePrivileges は使用しないでください。 代わりに userSettings.getSecurityRolePrivilegesInfo 使用してください。 実績
Web リソース use-appsidepane-api Xrm.Panels.loadPanel の代わりに Xrm.App.sidePanes.createPane を使用します。 ミディアム アップグレードの準備状況
Web リソース web-sdl-no-cookies HTTP Cookie は、内在するリスクと制限を伴う旧クライアント側のストレージ メカニズムです。 代わりに、Webストレージ、IndexedDB、またはその他の最新の方法を使用してください。 ミディアム セキュリティ
Web リソース web-sdl-no-document-domain 送信元が同じチェックのバイパスを避けるために、document.domain プロパティへの書き込みを確認する必要があります。 azurewebsites.net などのトップレベルのドメインの使用は固く禁止されています。 ミディアム セキュリティ
Web リソース web-sdl-no-document-write document.write または document.writeln の呼び出しは、サニタイズなしで DOM を直接操作するため、避ける必要があります。 代わりに document.createElement() または同様のメソッドを使用してください。 ミディアム セキュリティ
Web リソース web-sdl-no-html-method html() メソッドを直接呼び出すと、多くの場合 (たとえば、jQueryフレームワーク内)、サニタイズなしでDOMが操作されるため、回避する必要があります。 代わりに document.createElement() または同様のメソッドを使用してください。 ミディアム セキュリティ
Web リソース web-sdl-no-inner-html innerHTML または outerHTML プロパティの割り当ては、サニタイズなしで DOM を直接操作するため、避ける必要があります。 代わりに document.createElement() または同様のメソッドを使用してください。 ミディアム セキュリティ
Web リソース web-sdl-no-insecure-url セキュリティが脆弱な HTTP や FTP などのプロトコルは、暗号化プロトコル (HTTPS、FTPS) に置き換えることで、機密データがプレーンテキストの状態で、信頼性の低いネットワークで送信されるのを防いでください。 ミディアム セキュリティ
Web リソース web-sdl-no-msapp-exec-unsafe MSApp.execUnsafeLocalFunction() を呼び出すと、スクリプト インジェクションの検証が省略されるため、呼び出さないでください。 ミディアム セキュリティ
Web リソース web-sdl-no-postmessage-star-origin postMessage を使用して他のウィンドウにデータを送信する場合は、データが信頼境界線の外部に漏れるのを防ぐために、(* ではなく) ターゲットの生成元を必ず指定してください。 ミディアム セキュリティ
Web リソース web-sdl-no-winjs-html-unsafe WinJS.Utilities.setInnerHTMLUnsafe() や同様のメソッドの呼び出しでは入力検証は実行されないため、避ける必要があります。 代わりに WinJS.Utilities.setInnerHTML() を使用してください。 ミディアム セキュリティ
キャンバス アプリ 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 分かかります。 個人データは収集されません (プライバシー ステートメント)。