ソリューション チェッカーを使用してソリューションを検証する

複雑なビジネス要件を満たすため、作成者は Microsoft Dataverse プラットフォームをカスタマイズして拡張できるという非常に高度なソリューションを作成することになりがちです。 高度な実装により、パフォーマンス、安定性、信頼性の問題が生じるリスクが増加し、ユーザーの作業に悪影響を与える可能性があります。 これらの問題を解決する方法を特定して理解することは、複雑で時間がかかることがあります。 ソリューション チェッカー機能を使用すると、一連のベスト プラクティス ルールに対してソリューションで機能豊富なスタティック分析チェックを実行し、これらの問題となるパターンを識別できます。 チェックが完了すると、特定された問題、影響を受けるコンポーネントとコード、各問題を解決する方法が説明されたするドキュメントへのリンクが一覧になった詳細なレポートを受け取ります。

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

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

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

注意

  • このトピックでは、Power Apps メーカー ポータルのソリューション チェッカーを実行する方法を説明します。 サービスと直接やりとりしても使用できる PowerShell モジュールもご用意しています。 Microsoft.PowerApps.Checker.PowerShell モジュールは、Power Apps 環境に関するアンマネージド ソリューションの分析用途でのみ使用でき、自動化またはサービスをお使いのビルドに統合してパイプラインを解放することができます。 詳細: Microsoft.PowerApps.Checker.PowerShell の概要
  • ソリューション チェッカーは、ECMAScript 2015 (ES6) 以降、ECMAScript 2018 (ES9) 構文までのグローバル変数をサポートします。 ES6 以降のグローバル変数、または ES9 以降の構文を使用して JavaScript を検出する場合、Web リソースの Web 非サポート構文の問題が報告されます。
  • ソリューション チェッカーを使用しても、ソリューションのインポートが成功することは保証されません。 ソリューションに対して実行される静的分析チェックは、宛先環境の構成済み状態を認識しておらず、インポートの成功は、環境内の他のソリューションまたは構成に依存している可能性があります。

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

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

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

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

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

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

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

    以下に注意します。

    • ソリューション チェッカーが分析を完了するまで、数分間かかる場合があります。

    • チェックが完了したら、電子メール通知を受け取り、Power Apps サイトの 通知 領域に通知が表示されます。

  5. チェックが完了したら、レポートを表示します

チェックを取り消す

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

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

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

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

都道府県 説明
実行されていない ソリューションはまったく分析されていません。
実行中 ソリューションが分析されています。
完了できなかった ソリューションの分析が要求されましたが、分析が正常に完了しませんでした。
日時 現在の結果 ソリューションの分析が完了し、結果をダウンロードできます。
完了できなかった。 日時 現在の結果 最新の分析要求が正常に完了しませんでした。 最後の正常な結果をダウンロードできます。
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)。

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

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

ソリューション コンポーネント ルール名 ルールの説明 重大度 カテゴリー
プラグインまたはワークフロー活動 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 でプラグインを登録しないでください。 使い方
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 Storage、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 分かかります。 個人データは収集されません (プライバシー ステートメント)。